我的点在谷歌代码中的(多边形)区域内

时间:2015-05-13 12:39:36

标签: javascript google-maps google-maps-api-3 geolocation

我实际上正在使用谷歌地图编写一个Web应用程序。

在这个应用程序中,我用4个点定义了一些区域(多边形)。

如果我点击地图,我需要通过计算知道点击的实际点是否在该区域内。

你知道我怎么能这样做?还是用数学方法来了解它?

enter image description here

感谢您提前

2 个答案:

答案 0 :(得分:2)

您希望加载Geometry library,如下所示:

<script src="https://maps.googleapis.com/maps/api/js?v=3&libraries=geometry"></script>

然后你可以在地图上有一个事件监听器,用于点击事件,它使用Geometry库的poly.containsLocation函数来检查多边形是否包含点击的坐标:

map.addListener('click', function(e) {
    if (google.maps.geometry.poly.containsLocation(e.latLng, yourPolygon)) {
        console.log('in polygon');
    }
}

答案 1 :(得分:0)

您可以使用您知道的多边形内部或外部的点,并检查您在该点与所点击的点之间穿过的多边形线。

如果在多边形外面有一个已知点(这很容易,因为你可以选择一个很远的点),并且你用一条绘制到点击点的线穿过奇数个多边形线,那么你就知道了点击的点位于多边形内部。