使用标记在Google地图中获取纬度/经度坐标

18

我想知道是否有一个简单的脚本可以做到以下几点:

加载谷歌地图,并在点击时显示标记,将经纬度值保存到变量中?

请问是否已经有类似于 PHP 的解决方案了呢?

提前感谢。

5个回答

29

也许你正在寻找类似于纬度经度查找工具的东西。示例代码使用的是API v2。以下是使用Google Maps API v3简化版本的代码:

var latlng = new google.maps.LatLng(51.4975941, -0.0803232);
var map = new google.maps.Map(document.getElementById('map'), {
    center: latlng,
    zoom: 11,
    mapTypeId: google.maps.MapTypeId.ROADMAP
});
var marker = new google.maps.Marker({
    position: latlng,
    map: map,
    title: 'Set lat/lon values for this property',
    draggable: true
});
google.maps.event.addListener(marker, 'dragend', function(a) {
    console.log(a);
    // bingo!
    // a.latLng contains the co-ordinates where the marker was dropped
});

演示

解释:你必须将标记的 draggable 属性设置为 true。然后,可以将回调函数挂钩到该标记的 dragend 事件上;新坐标将传递给函数,您可以将它们分配给 JavaScript 变量或表单字段。


我快要解决了 - 我无法从对象中获取lat/lng值,但可以在控制台日志中看到这些值...它正在接近解决?http://jsfiddle.net/ZW9jP/6/ - Zabs
太棒了Salman!你是最棒的!! :) 你的代码完美运行! 我稍微调整了一下,加入了一些jQuery,感谢你的努力,真的非常感激! - Zabs

7
// add a click event handler to the map object
    GEvent.addListener(map, "click", function(overlay, latLng)
    {
        // display the lat/lng in your form's lat/lng fields
        document.getElementById("latFld").value = latLng.lat();
        document.getElementById("lngFld").value = latLng.lng();
    });

我认为当您获取了经纬度后,就可以放置标记。

5

请查看Google地图API v.3。从事件页面中了解更多:

 google.maps.event.addListener(map, 'click', function(event) {
   // use event.latLng to place a google.maps.Marker
 });

3
我已经做了以下工作-当我单击地图上的任何位置时,如何修改此内容以移动标记位置 http://jsfiddle.net/ZW9jP/ 我已添加以下内容,但似乎没有任何作用。
google.maps.event.addListener(map, 'click', function(event) {
  addMarker(event.latLng);
});  

3

以下代码运行良好。

var latlng = new google.maps.LatLng(51.4975941, -0.0803232);
var map = new google.maps.Map(document.getElementById('map'), {
    center: latlng,
    zoom: 11,
    mapTypeId: google.maps.MapTypeId.ROADMAP
});
var marker = new google.maps.Marker({
    position: latlng,
    map: map,
    title: 'Set lat/lon values for this property',
    draggable: true
});

google.maps.event.addListener(marker, 'dragend', function (event) {
    document.getElementById("latbox").value = this.getPosition().lat();
    document.getElementById("lngbox").value = this.getPosition().lng();
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接