使用标记从谷歌地图获取纬度/经度坐标

Posted

技术标签:

【中文标题】使用标记从谷歌地图获取纬度/经度坐标【英文标题】:Get latitude/longitude coordinates from a Google map using a marker 【发布时间】:2012-02-18 12:35:54 【问题描述】:

我只是想知道是否有人知道可以执行以下操作的简单脚本:

在视图中加载谷歌地图,单击时会显示一个标记,该标记会将经纬度值保存到变量中?

有谁知道php中是否已经存在类似的东西?

提前致谢

【问题讨论】:

【参考方案1】:

也许您正在寻找与Latitude-Longitude Finder Tool 类似的东西。示例代码 is 是 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
);

Demo

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

【讨论】:

我几乎破解了它 - 我无法从对象中获取 lat/lng 值,但可以在控制台日志中看到这些值......它到达那里了吗? jsfiddle.net/ZW9jP/6 很棒的萨尔曼!你这个男人!! :) 您的代码完美运行!我已经稍微调整了一些 jQuery,感谢您的努力,非常感谢!【参考方案2】:
// 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();
    );

我认为当您获得 lat-lng 时,您可以放置​​标记。

【讨论】:

【参考方案3】:

查看 Google 地图 API v.3。来自events page:

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

【讨论】:

【参考方案4】:

到目前为止,我已经完成了以下操作 - 当我点击地图上的任意位置时,如何修改它以移动标记位置

http://jsfiddle.net/ZW9jP/

我添加了以下内容,但它似乎没有做任何事情

google.maps.event.addListener(map, 'click', function(event) 
  addMarker(event.latLng);
);  

【讨论】:

【参考方案5】:

下面的代码运行良好

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();
);

【讨论】:

以上是关于使用标记从谷歌地图获取纬度/经度坐标的主要内容,如果未能解决你的问题,请参考以下文章

从谷歌静态地图中的像素坐标获取经度/纬度

如何从谷歌地图的经纬度坐标中获取城市名称?

从谷歌地图获取纬度和经度

从谷歌地图获取经度和纬度的不断更新[重复]

从谷歌地图 url ftid (hex) 获取纬度/经度

html 从谷歌地图获取经度和纬度