2012-06-03 80 views
1

我每隔5-7秒就會將gps sigal保存到數據庫。當我從數據庫中「總結」所有lat和lng值時,我怎麼能看到我到目前爲止走過的距離。而且我怎麼能每天看到這個數據?如何在Google地圖中獲取lat和lng的總距離

例如。當我在實時預覽中跟蹤汽車時,我希望有距離作爲當天的實時數據。而當我正在尋找例如某輛卡車的月公里時?

我正在看THIS鏈接,但我不知道如何動態填充數據,因爲它們已經在數組中。

如果你已經實施了同樣的事情,你能給我一些想法和例子嗎?

爲什麼使車輪如果已經取得:)

謝謝

回答

1

或者,您也可以使用谷歌地圖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> 
+0

嗨我試圖執行您的代碼 –

+0

這個工作時,我得到一些錯誤的詞'sperical'。我怎樣才能指定區域以公里爲單位? –

+0

這個結果是什麼單位?腳? –

2

一些三角將讓你有。

我希望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; 
} 
+0

我必須說,我還一直在尋找LAT和液化天然氣的方式。是的,我需要的是對lat和lng進行求和。 –

+0

繼續前進,並添加了一個點列表上的距離總和功能:) –

+0

不錯的安迪:)另外一件事...我需要改變,如果我想要得到公制值(公里) –

相關問題