微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 在矩形,圆形和多边形内填充标记

我的要求是在用户绘制区域内填充标记,可以是圆形,矩形,多边形.

这就是我目前正在尝试的: –

map.on('draw:created', function(e) {
    var type = e.layerType, layer = e.layer;
    var bounds =  layer.getBounds();
});

现在我使用这些边界(southWest,northEast)latlongs来虚拟地创建行列间距,然后相应地填充标记.

问题: –

>上述方法适用于矩形,所有标记都填充在矩形内.
>不适用于圆形和多边形.标记位于圆形和多边形的外部(附近).
我猜getBounds()方法通过创建一个接触圆和多边形的所有角的框来给出边界或计算区域.

有关如何在圆和多边形的内部或边界上严格填充标记的任何建议?

提前致谢.

解决方法:

您可以使用PointInLayer leaflet plug-in来检查您所在区域内是否有一个点.

然后,您可以仅为实际位于多边形内的网格点添加标记.

像这样的东西:

// the user area:
var areaLayer = L.geoJson(userArea);

// iterate over your grid of points
for (var i = 0; i < gridPoints.length; i++) {

   // add marker only if the point is within the area
   var results = leafletPip.pointInLayer(gridPoints[i], areaLayer, true);
   if (results.length > 0) {
      L.marker(gridPoints[i]).addTo(map);
   }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐