我有一个计算函数和latlng值,但我如何计算第一个和最后一个之间的距离?
function calculate() {
//poo abbreviation for point of origin not poo=shit
var poolat = locations[0].lat;
var poolng = locations[0].lng;
var destlat = locations[locations.length - 1].lat;
var destlng = locations[locations.length - 1].lng;
答案 0 :(得分:3)
此问题已在此处得到解答:Calculate distance between two latitude-longitude points? (Haversine formula)
请注意,Haversine公式假设一个完美的球体,而不是地球的球体。
答案 1 :(得分:1)
有两种方法,你可以使用Haversine公式,这需要更多的输入,或者你可以使用API。
在计算功能中尝试以下操作
var distance = google.maps.geometry.spherical.computeDistanceBetween(
new google.maps.LatLng(poolat, poolng),
new google.maps.LatLng(destlat, destlng)
);
的console.log(距离);
注意:强>
距离的默认值以米为单位。
答案 2 :(得分:0)
试试这个。内置的数学函数使其更容易
function calculate() {
//poo abbreviation for shit
var poolat = locations[0].lat;
var poolng = locations[0].lng;
var destlat = locations[locations.length - 1].lat;
var destlng = locations[locations.length - 1].lng;
return Math.sqrt(Math.pow((destlat - poolat),2) + Math.pow((destlng - poolng),2))
}