查找坐标是否在多边形内
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)
.
的点
我想知道给定的坐标(纬度和经度)是否在给定的 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)
.