我有這些座標:谷歌地圖 - 如何獲得米之間的兩點之間的距離?
(45.463688, 9.18814)
(46.0438317, 9.75936230000002)
,我需要(trought谷歌API V3,我認爲),以獲得在這些米2點之間的距離。我該怎麼做?
我有這些座標:谷歌地圖 - 如何獲得米之間的兩點之間的距離?
(45.463688, 9.18814)
(46.0438317, 9.75936230000002)
,我需要(trought谷歌API V3,我認爲),以獲得在這些米2點之間的距離。我該怎麼做?
如果你正在尋找使用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計算距離:
This網站有關於地理計算和JavaScript樣本距離計算的很好的信息。
好吧,在谷歌API網頁快速瀏覽一下,似乎,你可以通過做:
這主要與數學做谷歌的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];
如何獲得2點之間的路線距離,這只是給出了直接距離(在物理學文獻中:位移),如何獲得路徑距離 –
這就是目標C :)問題是關於Javascript API谷歌地圖 –
請提供解釋,而不是「試試這個」。 –
試試這個:
const const toRadians = (val) => {
return val * Math.PI/180;
}
const toDegrees = (val) => {
return val * 180/Math.PI;
}
// Calculate a point winthin a circle
// circle ={center:LatLong, radius: number} // in metres
const pointInsideCircle = (point, circle) => {
let center = circle.center;
let distance = distanceBetween(point, center);
//alert(distance);
return distance < circle.radius;
};
const distanceBetween = (point1, point2) => {
//debugger;
var R = 6371e3; // metres
var φ1 = toRadians(point1.latitude);
var φ2 = toRadians(point2.latitude);
var Δφ = toRadians(point2.latitude - point1.latitude);
var Δλ = toRadians(point2.longitude - point1.longitude);
var a = Math.sin(Δφ/2) * Math.sin(Δφ/2) +
Math.cos(φ1) * Math.cos(φ2) *
Math.sin(Δλ/2) * Math.sin(Δλ/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
return R * c;
}
請改善您的答案。爲什麼它更好,它是如何工作的等等。「試試這個」是不夠的。 Stackoverflow不是關於盲目嘗試,而是閱讀和理解事物的工作方式。還是謝謝你的貢獻:) –
如果您使用距離矩陣api來計算距離和行程時間,則可以使用距離矩陣api。 – commando24