在GOOGLE地图API v3上显示圈内的点数

时间:2011-03-22 22:10:13

标签: javascript google-maps-api-3

我有一个javascript,它可以在标记图标周围绘制一个圆圈,其中标记图标是键入地址的位置。我在excel文件中有几千个点的纬度和经度。我想在谷歌地图上显示这些点,但仅限于圆圈内。 任何javascript解决方案都将非常感激。

谢谢, Monir

1 个答案:

答案 0 :(得分:0)

将您的观点转换为更友好的网络格式。 JSON很棒。然后,您可以将它们直接加载到您的页面中。从那里,您可以使用以下方法计算任何点与标记之间的距离:

    function distance(lat1, lng1, lat2, lng2) {
        var radius = 3956.0; // miles

        var deltaLat = ToRadians(lat2 - lat1);
        var deltaLng = ToRadians(lng2 - lng1);
        var sinLat = Math.sin(0.5*deltaLat);
        var sinLng = Math.sin(0.5*deltaLng);
        var cosLat1 = Math.cos(ToRadians(lat1));
        var cosLat2 = Math.cos(ToRadians(lat2));
        var h1 = sinLat*sinLat + cosLat1*cosLat2*sinLng*sinLng;
        var h2 = Math.sqrt(h1);
        var h3 = 2*Math.asin(Math.min(1, h2));
        var distance = radius*h3;
        return distance;
    }

    function ToRadians(degree) {
        return (degree * (Math.PI / 180));
    }

如果距离小于您的半径,则显示它。

鲍勃