我有一个包含地理编码坐标的大约500个地址的数据库。现在设置的方式是使用默认标记在地图上标记所有500个地址,现在我需要做的是能够输入地址或邮政编码并找出我的500个地址中的哪一个数据库距离输入的地址或邮政编码最近。在Google Maps API中是否有内置函数?我很好奇我将如何实现这一点我一直在寻找一种方法,而不是想出任何结果。
答案 0 :(得分:2)
Google提供computeDistanceBetween
函数来计算两个google.maps.LatLng
点之间的直线距离。
修改脚本标记以包含可选的几何库:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&v=3&libraries=geometry"></script>
然后调用computeDistanceBetween
:
var distanceInMeters = google.maps.geometry.spherical.computeDistanceBetween(origin, dest);
Dev docs @ https://developers.google.com/maps/documentation/javascript/geometry#Distance
如果您想计算实际行程距离/时间,则需要使用Google Distance Matrix API。 (正如@ Yamaha32088所述,Distance Matrix API具有非常严格的配额限制,根据您的许可证,您可能会超出限额。)
有关距离矩阵API的更多信息,请参阅https://developers.google.com/maps/documentation/distancematrix/。