我每隔5-7秒就會將gps sigal保存到數據庫。當我從數據庫中「總結」所有lat和lng值時,我怎麼能看到我到目前爲止走過的距離。而且我怎麼能每天看到這個數據?如何在Google地圖中獲取lat和lng的總距離
例如。當我在實時預覽中跟蹤汽車時,我希望有距離作爲當天的實時數據。而當我正在尋找例如某輛卡車的月公里時?
我正在看THIS鏈接,但我不知道如何動態填充數據,因爲它們已經在數組中。
如果你已經實施了同樣的事情,你能給我一些想法和例子嗎?
爲什麼使車輪如果已經取得:)
謝謝
我每隔5-7秒就會將gps sigal保存到數據庫。當我從數據庫中「總結」所有lat和lng值時,我怎麼能看到我到目前爲止走過的距離。而且我怎麼能每天看到這個數據?如何在Google地圖中獲取lat和lng的總距離
例如。當我在實時預覽中跟蹤汽車時,我希望有距離作爲當天的實時數據。而當我正在尋找例如某輛卡車的月公里時?
我正在看THIS鏈接,但我不知道如何動態填充數據,因爲它們已經在數組中。
如果你已經實施了同樣的事情,你能給我一些想法和例子嗎?
爲什麼使車輪如果已經取得:)
謝謝
或者,您也可以使用谷歌地圖API的幾何圖形庫做同樣的事情:
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?libraries=geometry&sensor=false"></script>
<script type="text/javascript">
function initialize() {
var myLatLng = new google.maps.LatLng(0, -180);
var myOptions = {
zoom: 3,
center: myLatLng,
mapTypeId: google.maps.MapTypeId.TERRAIN
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var coordinates = [
new google.maps.LatLng(37.772323, -122.214897),
new google.maps.LatLng(21.291982, -157.821856),
new google.maps.LatLng(-18.142599, 178.431),
new google.maps.LatLng(-27.46758, 153.027892)
];
console.log(google.maps.geometry.spherical.computeLength(coordinates));
}
</script>
一些三角將讓你有。
我希望Lat/Lng與2D表面上的X/Y座標一樣簡單。不幸的是,由於我們生活在一個稱爲地球的(非常美妙的)球體上,因此經緯度指的是參照地球中心(緯度)或我們在地球上畫的虛線(經度)的三角形角度。 History stuff is neat,但這不是重點。
我已經使用Haversine論壇來計算球體的距離,如果你願意的話,你可以用read more about。
爲了簡單起見,我只是在這裏發佈代碼。我已經寫在Javascript,所以這是你會得到什麼:)給出兩個緯度/經度點A和B,則:
// units can be english (miles) or metric (km)
var units = "english";
function calculate_distance(a, b) {
var R = (units == "english") ? 3958.7558 : 6371;
var dLat = (a.lat - b.lat) * Math.PI/180;
var dLon = (a.lng - b.lng) * Math.PI/180;
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(a.lat * Math.PI/180) * Math.cos(b.lat * Math.PI/180) *
Math.sin(dLon/2) * Math.sin(dLon/2);
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
return R * c;
}
如果反覆應用你對點之間的這種功能,總結的距離.. 。 答對了。
function get_distance(list_of_points) {
if (list_of_points.length == 0) return 0;
var sum = 0;
var last_point = list_of_points.shift();
while (list_of_points.length > 0) {
var next_point = list_of_points.shift();
sum += calculate_distance(last_point, next_point);
last_point = next_point;
}
return sum;
}
我必須說,我還一直在尋找LAT和液化天然氣的方式。是的,我需要的是對lat和lng進行求和。 –
繼續前進,並添加了一個點列表上的距離總和功能:) –
不錯的安迪:)另外一件事...我需要改變,如果我想要得到公制值(公里) –
嗨我試圖執行您的代碼 –
這個工作時,我得到一些錯誤的詞'sperical'。我怎樣才能指定區域以公里爲單位? –
這個結果是什麼單位?腳? –