查找坐标是否在多边形内

Finding whether the coordinate is within polygon

我想知道给定的坐标(纬度和经度)是否在给定的 4 个坐标内。

即,如果我有 A、B、C、D 和 E 的经纬度,并且我想检查 E 是否位于 A、B、C 和 E 内。

我该怎么做?

我试图从 Google Map Coordinates LatLngBound class - contains 看到这个例子。

我能看到的例子是

var bounds = new google.maps.LatLngBounds(
    new google.maps.LatLng(54.69726685890506,-2.7379201682812226),
    new google.maps.LatLng(55.38942944437183, -1.2456105979687226)
);
var center = bounds.getCenter();  // still returns (55.04334815163844, -1.9917653831249726)
var x = bounds.contains(center);  // now returns true

它只有2个坐标,比如A&B。没有 C&D 的坐标怎么可能?

因为这是使用 LatLngBounds 创建的矩形,而不是多边形。如果您有一个盒子的两个角,则可以假定其他两个角。您只需要指定对角。在您的示例中,您只需要将 A 和 D 或 B 和 C 作为一对发送,其他两个可以忽略。如果你需要一个多边形,那么你想创建 a polygon 然后确定它是否包含 google.maps.geometry.poly.containsLocation(point, polygon).

的点

containsLocation() Documentation here.

Full example here.