由于需要在地图上绘制大量的多边形,国内地图高德、百度等都有对应API可以使用,如果在国外就无法使用这些地图了,加上也会有偏移等问题,所以此时leaflet就发挥了很大的作用,提供了众多且强大的API等。
具体如何使用leaflet,因为比较基础,这里不详细说明,具体建议查看官网以及各大博主的博客
具体思路:
1.leaflet提供了在地图上绘制圆,多边形,矩形,折线等各种API,以下思路对矢量图层绘制用法一致
官网链接:链接: link.
在这里插入图片描述
其实思路很简单,只需要有对应位置的经纬度即可
直接上代码:

// An highlighted block
// create a red polygon from an array of LatLng points
var latlngs = [[37, -109.05],[41, -109.03],[41, -102.05],[37, -102.04]];
var polygon = L.polygon(latlngs, {color: 'red'}).addTo(map);
// zoom the map to the polygon
map.fitBounds(polygon.getBounds());

以上是绘制单个多边形,那么多个就是从中拓展出来,将数组变成动态数据即可

// An highlighted block
for (var i = 0; i < getlats.length; i++) {
  var polygon = L.polygon(
   [
   [getlats[i].x, getlons[i].y],
   [getlats[i].x, getlons[i].y],
   [getlats[i].x, getlons[i].y],
   [getlats[i].x, getlons[i].y],
   [getlats[i].x, getlons[i].y],
  ],
  {
    color: "green",
    fillColor: "yellow",
    fillOpacity: 1,
    weight: 1,
  }).addTo(map);
}

这边的getlats[i].x, getlons[i].y的格式分别是纬度和经度
拓展:
当在缩放地图级别时,想要保持多边形大小不变,请看下一篇博客。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐