无法从Google地图中提取Lat Long

时间:2016-10-10 12:21:49

标签: javascript google-maps

我想创建一个点击谷歌地图的Lat Long点列表,以插入MySQL表格。首先,我尝试在文本框中显示一个单击的Lat Long点。下面的JavaScript代码是从PHP生成的。将显示地图和文本框,但不会显示单击的坐标。光标是抓手。单击将关闭手(准备拖动)并双击缩放。我不熟悉JavaScript并且已经复制了其他人的代码。我错过了什么?

Microsoft.Office.Server.Diagnostics.PortalLog.LogString("Message");

1 个答案:

答案 0 :(得分:0)

改变这个:

google.maps.event.addListener(map,'click', function event() { document.getElementById('latlongclicked').value = event.latLng.lat() + ', ' + event.latLng.lng() })

对此:

google.maps.event.addListener(map,'click', function(event) { 
    document.getElementById('latlongclicked').value = event.latLng.lat() + ', ' + event.latLng.lng() 
});

你需要引用event作为函数的参数,即function(event) ......而你正在做function event ()

您还有一个问题,即您map函数中已将initialize定义为局部变量。但是你在该函数之外添加了“click”事件监听器,该监听器无法访问它(并且还必须在创建映射之前尝试执行此操作)。

将该事件监听器移动到初始化函数中(或使其成为全局变量,即在javascript顶部定义var map;

e.g。这应该工作

function initialize() {
    var mapOptions = {
        center: {
            lat: 55.9355,
            lng: -4.61192
        },
        zoom: 12,
        zoomControl: true
    };
    var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

  google.maps.event.addListener(map, 'click', function (event) {
    document.getElementById('latlongclicked').value = event.latLng.lat() + ', ' + event.latLng.lng()
  });
}

google.maps.event.addDomListener(window, 'load', initialize);