【发布时间】:2012-02-18 12:35:54
【问题描述】:
我只是想知道是否有人知道可以执行以下操作的简单脚本:
在视图中加载谷歌地图,单击时会显示一个标记,该标记会将经纬度值保存到变量中?
有谁知道PHP中是否已经存在类似的东西?
提前致谢
【问题讨论】:
标签: javascript php google-maps google-maps-api-3
我只是想知道是否有人知道可以执行以下操作的简单脚本:
在视图中加载谷歌地图,单击时会显示一个标记,该标记会将经纬度值保存到变量中?
有谁知道PHP中是否已经存在类似的东西?
提前致谢
【问题讨论】:
标签: javascript php google-maps google-maps-api-3
也许您正在寻找与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
});
说明:您必须将标记的draggable 属性设置为true。然后,您可以将回调函数挂接到该标记的dragend 事件;新坐标被传递给函数,您可以将它们分配给 JavaScript 变量或表单字段。
【讨论】:
// 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 时,您可以放置标记。
【讨论】:
查看 Google 地图 API v.3。来自events page:
google.maps.event.addListener(map, 'click', function(event) {
// use event.latLng to place a google.maps.Marker
});
【讨论】:
到目前为止,我已经完成了以下操作 - 当我点击地图上的任意位置时,如何修改它以移动标记位置
我添加了以下内容,但它似乎没有做任何事情
google.maps.event.addListener(map, 'click', function(event) {
addMarker(event.latLng);
});
【讨论】:
下面的代码运行良好
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();
});
【讨论】: