BMap添加海量点数据,BMap.Point携带数据

在web开发中,使用百度地图API遇到海量点数据展示问题,通过BMap.PointCollection提高加载速度。然而,官方示例只能获取经纬度。本文探讨两种在点击事件中获取自定义数据的方法:1. 数据量适中时,通过循环比对获取;2. 利用JavaScript弱类型特性,让BMap.Point携带数据。推荐使用后者,示例代码展示了如何实现。
摘要由CSDN通过智能技术生成

在开发web项目的过程中使用到了百度地图,由于要在地图中画出很多点比较影响加载速度,查看官方文档,发现有提供加载海量点的功能BMap.PointCollection,用这个加快速度,但是官方文档中提供的demo中仅能获取到点击坐标的经度、纬度。无法再获取到其他信息,用户自定义的数据也不行。要想在点的点击事件中获取到其他information,思考后有两种解决方案:

**1. 获取到经度、纬度之后,通过经度和纬度,循环原先的数据集进行比对,判断出点中的地图点,从而找出开发者需要的数据。
这种方法在数据集的size适中时可以使用,不会对运行速度有太大的影响,但是弊端非常明显,首先如果数据量巨大,循环需要花费大量的时间,这显然与我们之前想要提升性能相违背。其次有可能出现位置相同的点,那可能会出现得到错误的information。
2. BMap.PointCollection中的元素为BMap.Point, JavaScript是弱类型的,我们可以让BMap.Point在加入到点集合BMap.PointCollection之前携带数据,那么数据会存储到BMap.PointCollection中,在点击这个点是就可得到BMap.Point,从而得到它携带的除经纬度之外的信息数据。 优选此方案
示例:**

运行结果

重要代码如下:

$(document).ready(function(){
   
            // 百度地图API功能 -122.3695400,"olat":47.6646100  116.404, 39.915
            var map = new BMap.Map("container", {});
            map.centerAndZoom(new BMap.Point(-122.3695400, 47.6646100), 15);
            map.enableScrollWheelZoom();
            $(
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值