高德JSAPI两种海量点对比


前言

  1. 对比两种海量点代码区别。
  2. 对比两种海量点绘制所用时间。

提示:以下是本篇文章正文内容,下面案例可供参考

一、海量标注 LabelMarker

示例代码如下:

var layer = new AMap.LabelsLayer({
  zooms: [3, 20],
  zIndex: 1000,
  collision: false,
});

// 将图层添加到地图
map.add(layer);

var markers = [];
var icon = {
  type: "image",
  image: "https://webapi.amap.com/theme/v1.3/markers/n/mark_b.png",
  size: [11, 12],
  anchor: "bottom-center",
};

for (var i = 0; i < citys.length; i++) {
  var curPosition = citys[i].lnglat;
  if (citys[i].style == 1) {
    icon.image = "https://webapi.amap.com/images/mass/mass0.png";
  } else {
    icon.image =
      "https://webapi.amap.com/theme/v1.3/markers/n/mark_b.png";
  }
  var curData = {
    position: curPosition,
    icon,
  };
  var labelMarker = new AMap.LabelMarker(curData);

  markers.push(labelMarker);
}

// 一次性将海量点添加到图层
layer.add(markers);

二、海量点标记 MassMarks

示例代码如下:

 var style = [
     {
       url: "https://webapi.amap.com/images/mass/mass0.png",
       anchor: new AMap.Pixel(6, 6),
       size: new AMap.Size(11, 12),
       zIndex: 3,
     },
     {
       url: "https://webapi.amap.com/images/mass/mass1.png",
       anchor: new AMap.Pixel(4, 4),
       size: new AMap.Size(11, 12),
       zIndex: 2,
     },
     {
       url: "https://webapi.amap.com/images/mass/mass2.png",
       anchor: new AMap.Pixel(3, 3),
       size: new AMap.Size(11, 12),
       zIndex: 1,
     },
   ];

   var mass = new AMap.MassMarks(citys, {
     opacity: 0.8,
     zIndex: 111,
     cursor: "pointer",
     style: style,
   });

   mass.setMap(map);

三、区别对比

官方对比

当需要在地图添加千级以上的点标记时,LabelMarker 是代替 Marker 的更好选择。不同于 MassMarks,LabelMarker 不仅可以绘制图标,还可以为图标添加文字信息,且万级以上数据也具有较好性能,配置也更加灵活。另外,LabelMarker 之间还支持避让功能,JSAPI 2.0 版本还支持地图标注避让 LabelMarker,可以让您的marker 更加明显。

示例绘制时间对比

LabelMarker绘制生成时间:LabelMarker

MassMarks绘制生成时间:
在这里插入图片描述

总结

MassMarks相比LabelMarker,代码更为简洁,配置简单。但大数据量下,生成时间不如LabelMarker,灵活程度不如LabelMarker。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值