是否有内置功能检查点是否在多边形内?
Google地图:
google.maps.geometry.poly.containsLocation(point.latLng, polygon)
Yandex地图:
polygon.geometry.contains(point.geometry.getCoordinates())
此处地图:
?
答案 0 :(得分:0)
从我通过JavaScript API进行的搜寻中可以发现,似乎没有一种方法可以仅通过JS API本身来确定多边形中是否存在Point。
但是,由于您可以从Here Maps多边形中获取GeoJSON Feature对象,因此可以使用第三方库(例如Turf.js(尤其是booleanPointInPolygon
method)来查找是否特定点包含在多边形中。
// This checks to see whether the Sydney Harbour Bridge is contained somewhere in Sydney
poly = new H.map.Polygon(new H.geo.LineString([150.64, -34.08, 0, 150.64, -33.53, 0, 151.33, -33.53, 0, 151.33, -34.08, 0]),
{
style: { fillColor: 'rgba(150, 100, 0, .8)', lineWidth: 0 }
}
)
point = new H.geo.Point(151.21, -33.84);
console.log(turf.booleanPointInPolygon(point.toGeoJSON(), poly.toGeoJSON())) // true
答案 1 :(得分:-1)
对于简单用例,可以使用Turfjs.org库。 对于更复杂的情况,请使用HERE Fleet Telematics Geofencing,请访问developer.here.com