GPS跟踪解决方案(Google Maps API)

问题描述 投票:1回答:1

我正在研究gps跟踪解决方案。但我的问题是我有我的地理位置,但我想要一种方法从我的位置到我之前定义的另一个位置。我该怎么做 ?我正在使用Google Maps API

gps tracking
1个回答
0
投票

您可以使用Haversine公式,如下所示:

Number.prototype.toRad = function() {
  return this * Math.PI / 180;
}

var Point = function(lat, lng){
  this.lat = lat;
  this.lng = lng;
}

var p1 = new Point(-23.6536633, -46.70669269999996);
var p2 = new Point(-23.5553565, -46.66189859999997);

var deltaLat = p2.lat - p1.lat;
var deltaLng = p2.lng - p1.lng;
var lat = deltaLat.toRad()/2;
var lng = deltaLng.toRad()/2;
var a = Math.sin(lat) * Math.sin(lat) + 
    Math.cos(p1.lat.toRad()) * Math.cos(p2.lat.toRad()) *
    Math.sin(lng) * Math.sin(lng);

var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a))
var distance = 6371 * c;
console.log(distance);

document.getElementById("demo").innerHTML = distance.toFixed(2) +" km";
<p id="demo"></p>

灵感来自这个主题:

Using the Haversine Formula in Javascript

© www.soinside.com 2019 - 2024. All rights reserved.