首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Google地图提取Lat Long失败

从Google地图提取Lat Long失败
EN

Stack Overflow用户
提问于 2016-10-10 20:21:49
回答 1查看 59关注 0票数 0

我想创建一个在谷歌地图上点击插入到MySQL表中的经度长点列表。作为开始,我尝试在文本框中显示一个单击的经度长点。下面的JavaScript代码是从PHP生成的。将显示地图和文本框,但不显示单击的坐标。光标是抓取手。单击可使手闭合(准备拖动),双击可缩放。我对JavaScript并不熟悉,并且从别人那里抄袭了代码。我错过了什么?

代码语言: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>
EN

回答 1

Stack Overflow用户

发布于 2016-10-10 23:16:21

更改此设置:

代码语言:javascript
复制
google.maps.event.addListener(map,'click', function event() { document.getElementById('latlongclicked').value = event.latLng.lat() + ', ' + event.latLng.lng() })

要这样做:

代码语言:javascript
复制
google.maps.event.addListener(map,'click', function(event) { 
    document.getElementById('latlongclicked').value = event.latLng.lat() + ', ' + event.latLng.lng() 
});

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

您还有一个问题,因为您在initialize函数中将map定义为一个局部变量。但是您在该函数之外添加了'click‘事件侦听器,而该函数还没有访问它(并且还会在必要的映射创建之前尝试这样做)。

在初始化函数中也移动该事件侦听器(或者将其设置为全局变量,即在javascript顶部定义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);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39958198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档