2012-02-27 29 views
0

我使用以下命令獲取航點的數組:谷歌地圖API的使用航點的LatLng

var waypoints = displayer.getDirections().routes[0].legs[0].via_waypoints; 

這將返回與它周圍的括號格式化座標的陣列,像(37.09024,-95.71289),( 37.09324,-95.71259)。

當我嘗試將這些座標作爲沿新路線的路標插入時,它會中斷。有沒有什麼我需要做的解析這個數組,並獲得座標沒有圍繞lat/lng值的括號?

謝謝!

回答

0

由於.via_waypoints返回一個LatLng座標,將其轉換爲一個字符串可以給它括號。

我可以找到這種方法的唯一方法是使用正則表達式在將數組加入字符串後去除圍繞座標的括號。

每次創建新的航點時,我都會添加到字符串中,然後更新航點座標的隱藏輸入。

然後將數據保存到數據庫中,當地圖再次載入時,我拉動座標字符串,將它們拆分回數組中,並將它們解析爲我的地圖的航點值。

0

Google Maps API Reference documentation只顯示一個用於LatLng對象

LatLng(lat:number, lng:number, noWrap?:boolean) 

所以,如果你只是傳遞一個字符串像"(37.09024, -9571289)"或字符串數​​組LatLng構造函數的構造函數,你不能指望它那神奇的參數轉換座標。

您可以將您的路線座標的二維數組

var Points = [ 
    [11.2222, 22.3333], 
    [33.4444, 44.5555] 
    ]; 

和contstruct在new google.maps.LatLng(x,y)對象進行循環,通過將Points陣列的每個內部元件。你

.. 
ContstructedLatLng[i] = new google.maps.LatLng(Points[i][0],Points[i][2]); 
.. 

也可以使用Firebug擴展Mozilla Firefox瀏覽器在運行時調試的JavaScript。

+0

.via_waypoints自動返回括號中的緯度/經度座標,所以如果我嘗試並將其存儲在第二陣列,不會它看起來像這樣: VAR積分= [ [(緯度,經度)] [(lat,lng)] ]; – HWD 2012-02-27 21:46:37

+0

@HWD是的。如果可以,您可以改變'.via_waypoints'屬性來返回'LatLng'數組。或者,你可以實現一些讀取'.via_waypoints'等其他方法並實例化'LatLng'對象來渲染它們。你可以稱它爲渲染處理程序。 – 2012-02-27 22:37:15

+0

去掉括號的正則表達式似乎很麻煩。你有更好的建議來實例化LatLng數組嗎?謝謝你的幫助。 – HWD 2012-02-28 00:02:17