gpt4 book ai didi

leaflet - 确定一个点是否位于传单多边形内

转载 作者:行者123 更新时间:2023-12-03 22:49:06 25 4
gpt4 key购买 nike

假设我使用如下演示中的传单绘制多边形:http://leaflet.github.io/Leaflet.draw/
我的问题是如何确定给定点是否位于多边形内。

最佳答案

使用光线转换算法检查点(标记)是否位于多边形内:

function isMarkerInsidePolygon(marker, poly) {
var polyPoints = poly.getLatLngs();
var x = marker.getLatLng().lat, y = marker.getLatLng().lng;

var inside = false;
for (var i = 0, j = polyPoints.length - 1; i < polyPoints.length; j = i++) {
var xi = polyPoints[i].lat, yi = polyPoints[i].lng;
var xj = polyPoints[j].lat, yj = polyPoints[j].lng;

var intersect = ((yi > y) != (yj > y))
&& (x < (xj - xi) * (y - yi) / (yj - yi) + xi);
if (intersect) inside = !inside;
}

return inside;
};

jsfiddle例如。

代码的原始来源: https://github.com/substack/point-in-polygon/blob/master/index.js

另请参阅 2014 年的类似答案, https://stackoverflow.com/a/41138512/287948

关于leaflet - 确定一个点是否位于传单多边形内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31790344/

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