我有这些坐标:
(45.463688, 9.18814)
(46.0438317, 9.75936230000002)
我需要(我认为是 Google API V3)以米为单位获得这两个点之间的距离。我该怎么做?
我有这些坐标:
(45.463688, 9.18814)
(46.0438317, 9.75936230000002)
我需要(我认为是 Google API V3)以米为单位获得这两个点之间的距离。我该怎么做?
如果您想使用 v3 谷歌地图 API,这里有一个函数可以使用: 注意:您必须添加&libraries=geometry
到您的脚本源
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=geometry"></script>
<script>
var p1 = new google.maps.LatLng(45.463688, 9.18814);
var p2 = new google.maps.LatLng(46.0438317, 9.75936230000002);
alert(calcDistance(p1, p2));
//calculates distance between two points in km's
function calcDistance(p1, p2) {
return (google.maps.geometry.spherical.computeDistanceBetween(p1, p2) / 1000).toFixed(2);
}
</script>
我认为您可以在没有任何特定 API 的情况下进行,并使用纯 Javascript 计算距离:
这个站点有关于地理计算的很好的信息和用于距离计算的 Javascript 示例。
好的,快速浏览一下 Google API 页面,您似乎可以通过以下方式完成:
这主要是通过 google api 之外的数学完成的,因此除了找到正确的坐标之外,您不需要使用该 API。
知道这一点,这里有一个链接,指向先前回答的与 Javascript 相关的问题。
试试这个
CLLocationCoordinate2D coord1;
coord1.latitude = 45.463688;
coord1.longitude = 9.18814;
CLLocation *loc1 = [[[CLLocation alloc] initWithLatitude:coord1.latitude longitude:coord1.longitude] autorelease];
CLLocationCoordinate2D coord2;
coord2.latitude = 46.0438317;
coord2.longitude = 9.75936230000002;
CLLocation *loc2 = [[[CLLocation alloc] initWithLatitude:46.0438317 longitude:9.75936230000002] autorelease];
CLLocationDistance d1 = [loc1 distanceFromLocation:loc2];