2

我目前的任務是將存儲在MySQL 數據庫中的一些GPS數據與谷歌地球整合。我們的目標是創建 這些讀數的地標/航點,並將它們顯示在Google地球上的 上。將Garmin GPS閱讀轉換成適用於Google Earth API的合適格式的問題

我搜索了這個任務,發現了一篇文章: 「一個數據庫驅動的地球應用程序:使用PHP與地球API的MySQL &」。

坐落於網址:

https://developers.google.com/earth/articles/phpsqlearth 

我跟着它成功;直到我來到我必須創建地點 的地方。主要的問題是,「createPlacemark」功能 具有以下特徵:

"createPlacemark(name,address,type,lat,lng)" . 

我關心的主要觀點是latlng參數(經度和緯度),因爲在 數據庫中的GPS數據都其格式如下:

 "N5 bb.xxx E8 cc.yyy". 

沒有存儲單獨的經度或緯度數據。數據是通過garmin gps收集的 。 我在想,也許我可以通過 解決此問題,這樣做:

var point = ge.createPoint('N5 bb.xxx E8 cc.yyy ') , 

,忘了

point.setLatitude(parseFloat(lat)) 

point.setLongitude(parseFloat(lng)) statements. 

不過,我想確認我是在正確的道路上看到我將離開我的開發機器幾天。

回答

1

沒有,調用GEPlugin方法createPoint就像你擁有了它

var point = ge.createPoint('N5 bb.xxx E8 cc.yyy'); 

將創建一個ID N5 bb.xxx E8 cc.yyy一個點 - createPoint方法只需要一個字符串參數和用於設置的的ID目的。

當你擁有了它產生的點KML是這樣的:

<Point id="N5 bb.xxx E8 cc.yyy"> 
</Point> 

您將需要調用創建設置緯度和經度數據點實際的對象上的一個或多個方法。 point.set()point.setLatitude()point.setLongitude() - 然後,您最終可以將地點設置爲地標幾何圖元以使其工作。

看着它,你真正需要做的就是使用一個簡單的函數來解析Garmin GPS。只需使用空格分隔字符串應該很好。

//parse a string in the Garmin format "N5 bb.xxx E8 cc.yyy" 
    //returns a kmlpoint 
    function gpsToPoint(data) { 
    var parts = data.split(' '); 
    var point = ge.createPoint(''); 
    point.setLatitude(parseFloat(parts[1])); 
    point.setLongitude(parseFloat(parts[3])); 
    return point; 
    } 

,讓您創建具有新gpsToPoint()方法通過在Garmin的數據點對象,然後只需更改createPlacemark功能。

這將使你喜歡KML

<Point> 
    <coordinates>bb.xxx,cc.yyy,0</coordinates> 
</Point>