2011-04-24 227 views
1

我希望我的用戶能夠在地圖上選擇一個地方,並返回可以上傳到數據庫的緯度和經度。任何幫助,將不勝感激從谷歌地圖獲取經緯度

+0

你喜歡什麼語言? – Sudantha 2011-04-24 12:06:57

+0

的PHP和HTML?可能是我最好的,但我不是很好在他們 – James 2011-04-24 12:10:20

+0

可能重複的[谷歌地圖V3 - 用標記數據填充文本字段?](http://stackoverflow.com/questions/4533303/google-maps-v3-populate-text-字段與標記數據) – ifaour 2011-04-24 12:59:13

回答

5

因爲你正在處理Google Maps API(基於你的問題的標籤),我想利用JavaScript中的內置API功能可能會有所幫助。您可以轉到this place開始學習JavaScript,然後您會閱讀the API here,最終將能夠使用JavaScript自動設置其值已經被JavaScript自動設置的用戶的經度和緯度點擊地圖。

這裏有一點你可能要做些什麼,但你可能需要學習一些JavaScript來擴展它還是有效地使用它:所以

var map = new GMap2(document.getElementById("map_canvas")); 

map.setCenter(new GLatLng(37.4419, -122.1419), 13); 

GEvent.addListener(map,"click", function(overlay, latlng) {  
    if (latlng) { 
    alert("Latitude : " + latlng.lat() + " , Longitude: " + latlng.lng()); 
    } 
}); 

,假設你創建一個簡單的HTML頁面用形式持有這樣的緯度和經度:

<form action="some_server_side_script_or_path" method="POST" id="map_form"> 
<!-- display the map --> 
<div id="map_canvas"></div> 
<label for="mlatitude">Male</label> 
    <input type="text" name="mlatitude" id="mlatitude" readonly="readonly"/> 
    <br /> 
<label for="mlongitude">Male</label> 
    <input type="text" name="mlongitude" id="mlongitude" readonly="readonly"/> 
    <br /> 
<input type="submit" value="Submit Location" /> 
</form> 

然後,通過modfying我們的Clik處理這樣,我們就可以自動設置窗體上的經度和緯度,然後讓用戶只需點擊提交將值發佈到服務器。

GEvent.addListener(map,"click", function(overlay, latlng) {  
    if (latlng) { 
    var lat = document.getElementById("mlatitude"); 
    var lng = document.getElementById("mlongitude"); 
    lat.value = latlng.lat(); 
    lng.value = latlng.lng(); 
    //at this point, you can even use Javascript to auto-submit the form using 
    //document.forms["map_form"].submit(); 
    } 
});