Google maps api 3 在地图上标出相距30公里的标记

Google maps api 3 在地图上标出相距30公里的标记,google-maps-api-3,Google Maps Api 3,我对谷歌地图API v3非常陌生。我已经参考了谷歌开发者指南,但我没有得到正确的结论。 我有地址清单。 我想把它们作为一个(源)-多个地址(目的地)发送到谷歌地图,我想在地图上标出与源地址相距30公里的地址 有没有任何可能的方法来实现这一点与谷歌地图 是否可以就此向任何人提出建议。您要查找的内容之一是几何体库()中的computedIstanceBeween()函数。这将提供两个LatLng对象之间的距离(以米为单位)。有了它,你可以做任何你需要的测试——不清楚你的意思是“小于30公里”还是“大

我对谷歌地图API v3非常陌生。我已经参考了谷歌开发者指南,但我没有得到正确的结论。 我有地址清单。 我想把它们作为一个(源)-多个地址(目的地)发送到谷歌地图,我想在地图上标出与源地址相距30公里的地址

有没有任何可能的方法来实现这一点与谷歌地图


是否可以就此向任何人提出建议。

您要查找的内容之一是几何体库()中的
computedIstanceBeween()
函数。这将提供两个
LatLng
对象之间的距离(以米为单位)。有了它,你可以做任何你需要的测试——不清楚你的意思是“小于30公里”还是“大于30公里”或“大约30公里”。但是给出了一种计算距离的方法,当你在标记中循环时,你可以做任何你需要的测试

这里有一个例子。假设您有一些类似的数据-可能来自JSON对象,或者其他任何数据:

var data = {
    source: { lat: n, lng: n },
    places: [
        { lat: n, lng: n, name: str },
        { lat: n, lng: n, name: str },
        ...
    ]
};
初始化地图后,您可以使用类似这样的代码在
数据中循环。放置
并仅创建符合距离标准的标记。在本例中,我们将创建距离震源30公里以内的标记:

var sourceLatLng =
    new google.maps.LatLng( data.source.lat, data.source.lng );
for( var i = 0;  i < data.places.length;  ++i ) {
    addPlace( data.places[i] );
}

function addPlace( place ) {
    var placeLatLng = new google.maps.LatLng( place.lat, place.lng );
    var distance =
        google.maps.geometry.spherical.computeDistanceBetween(
            placeLatLng,
            sourceLatLng
        );
    if( distance > 30000 )
        return;

    var marker = new google.maps.Marker({
        map: map,
        position: placeLatLng
    });
}

我不确定你的意思。您是否有位置列表(lat/lng),但您只想在相距超过30公里的位置上设置标记?除了什么?彼此?迈克尔,条件应该是
距离<30000
?@Beetroot-Beetroot-这取决于OP想要什么,这在问题中并不清楚。如果标记位于30公里以内,我列出的代码将创建标记。翻转条件,你会得到超过30公里的标记。我最初将Q理解为大于阈值的图目的地,但再次读取时,它是不明确的。
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=geometry">
</script>