V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
shangjiyu
V2EX  ›  问与答

怎样在百度地图上高效的添加几千个 marker 不至浏览器 卡死?

  •  
  •   shangjiyu · 2014-08-13 09:57:17 +08:00 · 10305 次点击
    这是一个创建于 3742 天前的主题,其中的信息可能已经有所发展或是发生改变。
    百度开源库 markersClusterer.js 性能也不好,也会导致浏览器卡死。。。
    8 条回复    2014-08-13 16:28:09 +08:00
    sun019
        1
    sun019  
       2014-08-13 10:12:57 +08:00
    没那么密吧 ,你看参考搜房的做法,太多的时候就显示这个区(县)的总个数,满屏几千个点,是人都没点击的欲望啊。
    shangjiyu
        2
    shangjiyu  
    OP
       2014-08-13 10:20:18 +08:00
    @sun019 现在项目里碰到的的模拟设备都集中在一个地方。。。然后搜索显示的时候一下全部集中在一个点上了,,1000+的marker 浏览器卡10多秒样子。。 我倒是看到google map的那个markersClustererPlus.js 聚合1000个才几百个毫秒。

    嗯, 我去看看搜房
    learnshare
        3
    learnshare  
       2014-08-13 10:23:09 +08:00
    根据缩放等级筛选显示的点吧,一次全部显示不仅卡,而且难看。

    Google 的 Map Engine 应该是 Canvas 的,只会增大一点点内存。不像百度这样,对 DOM 的改动过多。
    hvsy
        4
    hvsy  
       2014-08-13 10:26:08 +08:00
    @shangjiyu 百度地图也有 markersCluster 工具.
    http://developer.baidu.com/map/library.htm
    在这里可以找到.但是这个是聚合起来的..之前开发类似产品的时候,客户要求都要用点.显示出来
    只能用 baidu 地图的麻点图..
    shangjiyu
        5
    shangjiyu  
    OP
       2014-08-13 12:46:06 +08:00
    @hvsy 麻点图是不是就是那个lbs云的api? 数据要上传的?
    catcn
        6
    catcn  
       2014-08-13 13:43:54 +08:00
    google的fusion table。
    绘制贴图
    hvsy
        7
    hvsy  
       2014-08-13 14:09:56 +08:00
    @shangjiyu 自己模拟麻点图.在服务器端绘制图片.然后贴到 baidu 地图上面.
    http://developer.baidu.com/map/reference/index.php?title=Class:总类/地图图层类
    用这个图层类来显示你在服务器端渲染的图片
    http://www.cnblogs.com/jz1108/tag/地图API/
    这里有百度地图的各种坐标转换的文章.
    otakustay
        8
    otakustay  
       2014-08-13 16:28:09 +08:00
    如果不是IE6-8的话,几千个应该不是问题,以前用OpenLayers,因此有更高的自己定制性,有2种优化方式可以很好地提升性能,不知道百度地图是不是允许这么玩

    1. 先创建一个层,不要加到DOM中,在上面放完1000个点,然后再把层加进地图里,使用这个方法当时在2000-3000个点的时候,IE6依旧“能操作”,并没有卡到无法接受,注意地图移动的时候改变的是这个层的left/top,不要每个点都去改
    2. 让服务器生成一张图,直接在图上把点画完(就是一张有几千个点的透明图片),然后把这张图作为一个层图,使用<map>标签在图上面做标记控制点击
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2547 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 05:53 · PVG 13:53 · LAX 21:53 · JFK 00:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.