2011-04-24 205 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(); 
    } 
}); 
相关问题