Javascript 在输入中获取Latlng和输出
尝试输出Lat和Long,当你拖动谷歌地图的pin时,我添加了一个侦听器,但它似乎不起作用 使用此api: 所以获取latlng只是本例的一个附加功能,但我不明白为什么它不在输入中输出latlngJavascript 在输入中获取Latlng和输出,javascript,google-maps-api-3,Javascript,Google Maps Api 3,尝试输出Lat和Long,当你拖动谷歌地图的pin时,我添加了一个侦听器,但它似乎不起作用 使用此api: 所以获取latlng只是本例的一个附加功能,但我不明白为什么它不在输入中输出latlng google.maps.event.addListener(markers, 'dragstart', 'dragend', function (event) { document.getElementById("lat").value = event.LatLng.lat();
google.maps.event.addListener(markers, 'dragstart', 'dragend', function (event) {
document.getElementById("lat").value = event.LatLng.lat();
document.getElementById("long").value = event.LatLng.lng();
});
<input id="lat" name="lat" val="51.5000" />
<input id="long" name="long" val="0.1167" />
标记:
var newMarker = new google.maps.Marker({
map: map,
title: place.name,
position: place.geometry.location,
animation: google.maps.Animation.DROP,
draggable: true
})
// Create a marker for each place.
markers.push(newMarker);
您不能这样组合事件侦听器:
google.maps.event.addListener(markers, 'dragstart', 'dragend', function (event) {
只要做:
google.maps.event.addListener(markers, 'dragend', function (event) {
如果需要对dragend和dragstart使用相同的函数,请首先创建该函数,并为两个事件侦听器引用该函数
function updateCoords(event) {
document.getElementById("lat").value = event.latLng.lat();
document.getElementById("long").value = event.latLng.lng();
}
google.maps.event.addListener(markers, 'dragstart', updateCoords);
google.maps.event.addListener(markers, 'dragend', updateCoords);
您的
LatLng.lat()?有一段时间没用了,但我想我记得LatLng在某个地方作为静态对象可以从事件中检索。但是我希望你的代码会出错,你没有提到发生了什么。什么是标记
?您在何处/如何创建标记?请提供一份说明问题的报告markers
听起来像是一个数组,它不起作用。event
对象没有locPositionLat
属性,这只是一个局部变量,与Google的dragend
事件处理程序返回的事件无关。根据我的回答使用event.latLng.lat()
。是的,我想我可以使用var,但是是的。现在可以工作了,只是尝试获取邮政编码是另一项任务,并且输出它类似于Latlngt。包含坐标的a的属性是latLng
(而不是latLng
)@geocodezip。对了,我应该已经发现了!请参见编辑,我设法在现场输出板条。我试过google.map.event.Lis。。。“我的编辑”中的行,但该行不起作用。@MrNew请添加显示如何创建markers@duncan请参阅我的原始帖子中的更新。当我现在拖动标记时,我成功地获得了latLng,但不确定如何在字段中正确地输入它。
function updateCoords(event) {
document.getElementById("lat").value = event.latLng.lat();
document.getElementById("long").value = event.latLng.lng();
}
google.maps.event.addListener(markers, 'dragstart', updateCoords);
google.maps.event.addListener(markers, 'dragend', updateCoords);