繁体   English   中英

无法从Google地图中提取经纬

[英]Fail to extract Lat Long from Google Maps

我想创建一个在Google Map上单击以插入MySQL表的Lat Long点列表。 首先,我尝试在文本框中显示一个单击的“纬度长点”。 下面的JavaScript代码是从PHP生成的。 显示地图和文本框,但不显示单击的坐标。 光标是抓手。 单击将手闭合(准备拖动),然后双击放大。 我不熟悉JavaScript,并且已经从他人那里复制了代码。 我错过了什么?

<style type='text/css'> 
html { height: 100% } 

body { height: 100%; margin: 0; padding: 0 } 

#map-canvas { height: 80% } 

</style> 

<script type='text/javascript' src='https://maps.googleapis.com/maps/api/js?key=MYKEY'> 

</script> 

<script type='text/javascript'> 

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.addDomListener(window, 'load', initialize);
google.maps.event.addListener(map,'click',
   function event() { document.getElementById('latlongclicked').value = event.latLng.lat() + ', ' + event.latLng.lng() })
</script>

<div class='eventtext'> 
  <div>Lat Lng on click: 
  <input type='text' id='latlongclicked'>
  </input>
  </div> 
</div>

更改此:

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”事件监听器,该事件监听器无法访问它(并且还将在必须创建地图之前尝试进行此操作)。

也将该事件侦听器移到Initialize函数内(或使其成为全局变量,即,定义var map;在JavaScript的顶部)

例如这应该工作

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM