百度地图的API虽然说覆盖物多了可以用聚合,但聚合使用下来,性能并不好

目前解决方案是,获取地图的左下角和右上角的经纬度,然后根据此经纬度范围,到数据库中搜索,把该区域内的覆盖物取出标注到地图上。

生成地图时绑定事件,在移动和缩放时触发:

Js代码  
  1. map.addEventListener("moveend", queryInRect);
  2. //map.addEventListener("moveend", funMoveend);
  3. map.addEventListener("zoomend", queryInRect);
Js代码  
  1. function queryInRect (event) {
  2. //alert(event.type + '==' + event.target);
  3. var cp = map.getBounds(); // 返回map可视区域,以地理坐标表示
  4. var sw = cp.getSouthWest(); // 返回矩形区域的西南角
  5. var ne = cp.getNorthEast(); // 返回矩形区域的东北角
  6. zoom = map.getZoom();
  7. if (zoom < defaultShowLampZoom) {
  8. // 放大级数小于17后,清除所有覆盖物,但百度覆盖物不能删除
  9. // 以后做成清除非网关控制器 TODO
  10. var markers = getCurrentMarkers();
  11. for (var i=0; i<markers.length; i++) {
  12. map.removeOverlay(markers[i]);
  13. }
  14. return;
  15. }
  16. //如果放大到17级别,则取屏幕范围内的标注
  17. var param = {
  18. swlng : sw.lng,
  19. swlat : sw.lat,
  20. nelng : ne.lng,
  21. nelat : ne.lat
  22. };
  23. $.ajax( {
  24. type : "POST",
  25. url : "queryInRect.action",
  26. data : param,
  27. dataType : "json",
  28. success : function(jsonData) {
  29. // 把数据加载到地图上去。
  30. if (jsonData.rtnMsg) {
  31. alert(jsonData.rtnMsg);
  32. //window.location.href = "login.html";
  33. return;
  34. }
  35. if (jsonData.controllerList) {
  36. // 添加前清空地图上标记物 TODO,应该是有,则不更新,而不是现在全部清空
  37. // 但不清空百度地图标记物
  38. var markers = getCurrentMarkers();
  39. for (var i=0; i<markers.length; i++) {
  40. map.removeOverlay(markers[i]);
  41. }
  42. $.each(jsonData.controllerList, function(i, controller) {
  43. var point = new BMap.Point(controller.longitude, controller.latitude);
  44. addMarker(point, controller, markers);
  45. // 插入或更新数据采集的taffyDb
  46. insertOrUpdateDataCollection(controller);
  47. // 插入或更新故障信息的taffyDb
  48. insertOrUpdateAlarm(controller);
  49. });
  50. //如果是树上右击定位而来,0.8秒后设置灯跳跃
  51. if (find) {
  52. setTimeout(jumpIcon, 800);
  53. }
  54. }
  55. },
  56. error : function(XMLHttpRequest, textStatus, errorThrown) {
  57. //if (XMLHttpRequest.status == 12029 && textStatus == "error") {
  58. //alert("WEB服务器未启动或已宕机,请联系管理员。");
  59. //}
  60. alert('服务器异常');
  61. }
  62. });
  63. }

转载于:https://www.cnblogs.com/yzycoder/p/6824439.html

百度地图上的标注物太多导致界面卡顿的解决办法相关推荐

  1. vue+cesium cesium数据量太大导致浏览器卡顿解决办法

    vue+cesium cesium数据量太大 导致浏览器卡顿 解决办法 解决方案 : 不要把任何的cesium对象 放在data中监听,因为在data中的变量 , vue会劫持数据 , 导致迟缓. 解 ...

  2. Word 域嵌套太深弹窗,更新域卡顿,解决办法

    1.问题描述 用Word编辑几百页或者上千页的文档时,因为资料来源和拷贝的关系,总会遇到各种有问题的文档块,一般更新目录页码或者题注序号时,最快的操作就是CTRL+A,然后F9,但是偶尔会遇到这样的文 ...

  3. vue+cesium cesium数据量太大 导致浏览器卡顿 解决办法

    如题 博主在开发过程中遇到了问题就是 当数据量过大时 浏览器特别卡 情景: 每秒实时渲染数据 效果:当前数据没有渲染完就开始渲染下一秒的数据了 如何将巨大的数据 在一秒内快速渲染到页面上呢? 解决方案 ...

  4. 怎么在百度地图上标注公司地址

    从某种意义上来讲,现在的地图推广是非常重要的,百度地图,就相当于以百度的名义来为自己量身定做一种随时查阅的电子名片.这是非常不错的一种方法,通过这样的方式能够在第一时间快速的完成推广,能够让用户更加轻 ...

  5. 百度地图上自定义添加一个标注

    在百度地图上,自定义添加一个标注,标注可以是自己的图片. 步骤:先确定你要标注的点的坐标–>创建一个添加标注的函数addMarker–>(1)在该函数中创建这个图标,并说明图标的来源(网址 ...

  6. python百度地图标注自己的店名_百度地图上怎么显示店名 百度地图标注店名方法...

    对于很多经营小店的小伙伴来说,能让人一打开百度地图就能看到自己的店名显示在其中便觉得这是一件颇为高兴的事情,但问题是如何在百度地图上怎么显示自己的店名呢?下面小编就为大家带来百度地图标注店名方法,希望 ...

  7. 如何将小车标注在百度地图上并且设置车头方向

    如何将小车标注在百度地图上并且设置车头方向 首先,需要在项目中引入百度地图的API 第二步,将百度地图嵌入到项目中 第三步,将小车标注在地图中 第四步,设置车头的方向 <html lang=&q ...

  8. 【百度地图API】如何在地图上添加标注?——另有:坐标拾取工具+打车费用接口介绍...

    摘要: 在这篇文章中,你将学会,如何利用百度地图API进行标注.如何使用API新增的打车费用接口. -------------------------------------------------- ...

  9. 怎样在百度地图上标注上自己公司的名称使别人能在搜索百度地图的同时在地图上能看见本公司地址?

    怎样在百度地图上标注上自己公司的名称使别人能在搜索百度地图的同时在地图上能看见本公司地址?   百度地图 分享到: 专业回答 飞花SEO 团队    光娟娟 2015-04-25 13:00 1.注册 ...

最新文章

  1. PHPUnit实践三(构建模块化的测试单元)
  2. 安卓绿色联盟两项免费福利重磅发布:EMUI9.0和绿色应用2.0测试能力
  3. 跟我学Spring3(8.2):对ORM的支持之集成Hibernate3
  4. Shiro框架:缓存、session会话、自定义FormAuthenticationFilter、RemenberMe
  5. JZOJ 4421. aplusb
  6. UIAlertControl的使用对比与UIAlertView和UIActionSheet
  7. CentOS 7 yum安装Tomcat7-jenkins
  8. 增量式PID是什么?不知道你就落伍了
  9. VScode 用socks5代理连接远程服务器
  10. win10去掉微软拼音的简繁体转换
  11. 帆软数据分析:BI物流可视化
  12. unity的矢量数学
  13. 搜索框的代码css,css搜索框_精美css搜索框代码
  14. Precision, Recall, BLEU and ROUGE
  15. Docker出现exited(127)的解决方法
  16. 02-寻找 VIP(上)-有福利|长期招收编程一对一
  17. 摘自《机器视觉技术》陈兵旗—机器视觉的功能与精度
  18. C语言 利用高斯消元求解方程组
  19. Python小游戏——外星人入侵(保姆级教程)第一章 06让飞船移动
  20. 主板没有rgb接口怎么接灯_赚翻亏钱一念之间 RGB接口让颜值突破

热门文章

  1. XSS-Game level 6
  2. Treap树(堆树)
  3. hadoop2.0初识1.2
  4. eclipse集成maven
  5. Windows 编程[20] - 改变菜单项并换行
  6. Android JNI入门第六篇——C调用Java
  7. ROS学习笔记4(编译一个ROS Package)
  8. r roc函数_如何处理R(pROC包)中的多类ROC分析?
  9. 6.5版本虚拟机的封装
  10. Linux下的虚拟机拷贝与快照生成