openstreetmap:检查latlong是否在多边形(区域)之外

时间:2016-02-29 07:11:42

标签: javascript leaflet openstreetmap

我在 openstreetmap 上创建了一个区域(多边形),我想检查当前的lat-long是否在该多边形内。我正在使用 leafletjs 。这是我的链接 - > http://imaker.asia/leaflet/area.html

3 个答案:

答案 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)函数