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