我怎么知道标记是否在几个边缘内?使用https://leafletjs.com/
例如如何检查标记是否类似
L.marker([51.505000, -0.09000]).addTo(mymap);
位于
之类的多边形内L.polygon([ [51.509, -0.08], [51.503, -0.06], [51.51, -0.047] ,[51.53, -0.047] ]).addTo(mymap).bindPopup("I am a polygon.");
答案 0 :(得分:1)
有几种方法。我会选择leaflet-pip,或更通用的方式选择TurfJS's booleanPointInPolygon
,例如:
var pt = turf.point([ -0.09000, 51.505]);
var poly = turf.polygon([[
[ -0.08, 51.509], [-0.06, 51.503], [-0.047, 51.51] ,[-0.047, 51.53]
]]);
if (turf.booleanPointInPolygon(pt, poly)) {
...
} else {
...
}
请注意,leaflet-pip需要L.GeoJSON
的实例,并且TurfJS处理GeoJSON格式的数据。请注意Leaflet's lat-long vs GeoJSON's long-lat。
从https://leafletjs.com/plugins.html#geoprocessing看,(在撰写本文时)似乎没有实用程序仅对L.Marker
和L.Polygon
实例进行多边形点计算。 / p>