gpt4 book ai didi

javascript - 在矩形、圆形和多边形内填充标记

转载 作者:搜寻专家 更新时间:2023-11-01 05:30:20 26 4
gpt4 key购买 nike

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

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

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

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

问题:-

  • 上述方法适用于矩形,所有标记都填充在矩形内。
  • 不适用于圆形和多边形。标记也填充在圆和多边形之外(附近)。我猜 getBounds() 方法是通过创建一个接触圆和多边形所 Angular 框来给出边界或计算面积。

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

提前致谢。

最佳答案

按照@kmandov 的建议通过 PIP 解析多边形内的点,并通过以下过程解析圆:-

  • 获取点的经纬度。
  • 获取圆心的经纬度。
  • 对上述两个经纬度中的任何一个运行 distanceTo() 方法,并将第二个经纬度作为参数传递。
  • 检查距离是否大于圆的半径。
  • 如果它大于半径,则该点在圆外,否则在圆内。

这是我使用的条件:

if (customMarker.getLatLng().distanceTo(myCircle.getLatLng()) <= myCircle.getRadius()) {
console.log("Marker is inside circle");
}else{
console.log("Marker is outside circle");
}

关于javascript - 在矩形、圆形和多边形内填充标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31723201/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com