【问题标题】:google maps polygon on click , show summary of markers within the polygon点击时谷歌地图多边形,显示多边形内标记的摘要
【发布时间】:2016-04-07 15:21:10
【问题描述】:

在谷歌地图多边形区域方面需要一些帮助。我在谷歌地图上绘制了许多标记。在地图上也绘制了一些多边形区域。每当单击多边形区域时,我都想找到多边形覆盖的标记点总数。请在这个方向指导或提供一些好的链接 谢谢。

【问题讨论】:

  • geometry library poly namespace 有一个containsLocation(point:LatLng, polygon:Polygon) 方法(返回值:布尔值,计算给定点是否位于指定多边形内。)

标签: google-maps google-maps-api-3 polygon


【解决方案1】:

你可以试试ray casting algorithm。实现将是这样的:

var markers = []; // list of your markers
var polygonPath = polygon.getPath();
var location;

for (var i = 0; i < markers.length; i++) {
    location = markers[i].getPosition();

    console.log(isPositionInside(location.lat, location.lng, polygonPath));
}

function isPositionInside(mLat, mLng, polygonPoints) {
    var isInside = false;

    for (var a = 0, b = polygonPoints.length - 1; a < polygonPoints.length; b = a++) {
        var aLng = polygonPoints[a].lng,
            aLat = polygonPoints[a].lat,
            bLng = polygonPoints[b].lng,
            bLat = polygonPoints[b].lat;

        if ((aLng > mLng) != (bLng > mLng) && (mLat < (bLat - aLat) * (mLng - aLng) / (bLng - aLng) + aLat)) {
            isInside = !isInside;
        }
    }

    return isInside;
};

这不是最佳解决方案,正如您在 wiki article 中看到的那样,但在大多数情况下它可以完成工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 2012-07-01
    相关资源
    最近更新 更多