2012-01-30 25 views
0

通常情況下,人們在mySQL中創建了2個稱爲經度和緯度的列來存儲和檢索點的座標。然而,我的應用程序檢索整個經度和緯度座標,並將它們插入到1列中。我可以從一個列中的lat和lng一起從mySQL中檢索谷歌地圖座標嗎?

實施例示出:(1.372442,103.94954699999994)

是否有可能插入我數據庫列到像下方的位置?或者任何我能做到的方式。

var marker = new google.maps.Marker({ 
position: new google.maps.LatLng(<?php echo $location['locationOne']), 
map: map, 
}); 

谷歌地圖可以承認這一點,並根據我的示例檢索點和繪製出來嗎?謝謝

回答

1

你並不需要分裂 - 只要你的服務器端代碼產生有效的JavaScript - 用戶的瀏覽器將解析它。恰巧,javascript使用逗號來分隔函數調用中的變量。

從你的例子看來,它已經在提供的值上有括號,所以你不需要硬編碼的。

position: new google.maps.LatLng<?php echo $location['locationOne']; ?>, 

但是你可能需要做一些驗證,裏面locationOne值 - 否則易產生無效的JavaScript,這將在最好的給一個神祕的錯誤信息給用戶。不好。

+0

謝謝..它的工作原理:D – SupaFlybaba 2012-01-31 05:27:36

+0

嗨,因爲我有一個名爲locationOne,locationTwo,locationThree,locationFour,locationFive的數據庫行中的5個位置。是否有可能輸入所有內部陳述並顯示所有內容? – SupaFlybaba 2012-01-31 06:24:56

+0

我認爲只需要爲每個位置添加整個標記。所以需要複製整個標記碼。 – barryhunter 2012-02-01 19:11:02

1

您需要將列分成兩個單獨的值來創建Google地圖LatLng對象。

+0

我該如何做到這一點?任何參考或代碼將有助於..謝謝 – SupaFlybaba 2012-01-30 04:19:07

+0

php explode()函數將讓你分隔字符串的分隔符。在這種情況下,分隔符是逗號。這裏是文檔:http://www.php.net/manual/en/function.explode.php – Alex 2012-01-30 05:14:28

0

您可以在服務器端使用PHP分割列,也可以使用JavaScript在客戶端分割列。下面是示例的JavaScript代碼:

var latlng = "<?php echo $location['locationOne'] ?>".split(","); 
var marker = new google.maps.Marker({ 
    position: new google.maps.LatLng(latlng[0], latlng[1]), 
    map: map, 
}); 
+0

嗨邁克,感謝您的答覆。我明天再試。 :D – SupaFlybaba 2012-01-30 19:09:25

0

你可以保留你的值,因爲它們在數據庫中有或沒有逗號。如果谷歌地圖不喜歡它,那麼您可以添加它或使用PHP和JavaScript功能刪除它。 JavaScript = replace();和PHP = str_replace();

如果您正在按照數據過濾您的地圖,您將無法將數據「緩存」到JSON中進行檢索,這會使地圖加載速度更快。祝你好運!

相關問題