我在 openstreetmap 上创建了一个区域(多边形),我想检查当前的lat-long是否在该多边形内。我正在使用 leafletjs 。这是我的链接 - > http://imaker.asia/leaflet/area.html
答案 0 :(得分:1)
我认为Leaflet-PIP库(Point In Polygon)应该为您提供所需的功能。
var gjLayer = L.geoJson(statesData);
var results = leafletPip.pointInLayer([-88, 38], gjLayer);
// results is an array of L.Polygon objects containing that point
然后只需检查您的多边形是否在结果数组中。
请注意,第一个参数可以是L.LatLng
对象(例如,使用myMarker.getLatLng()
),也可以是坐标数组,但必须按照[Lng, Lat]
<的顺序/ strong>,与传单[Lat, Lng]
相反。
第二个参数必须是GeoJSON组图层。
答案 1 :(得分:0)
传单的另一种选择是Turf.js。它提供了更多的空间功能,但没有与Leaflet紧密集成(需要开发人员直接处理坐标)
答案 2 :(得分:-1)
除了https://github.com/Leaflet/Leaflet api之外,不需要使用任何其他内容。只需使用polygon.getBounds()。contains(e.latlng)函数