我想创建一个在谷歌地图上点击插入到MySQL表中的经度长点列表。作为开始,我尝试在文本框中显示一个单击的经度长点。下面的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>发布于 2016-10-10 23:16:21
更改此设置:
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 ()
您还有一个问题,因为您在initialize函数中将map定义为一个局部变量。但是您在该函数之外添加了'click‘事件侦听器,而该函数还没有访问它(并且还会在必要的映射创建之前尝试这样做)。
在初始化函数中也移动该事件侦听器(或者将其设置为全局变量,即在javascript顶部定义var map; )
例如,这应该是可行的
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);https://stackoverflow.com/questions/39958198
复制相似问题