在输入中获取Latlng并输出



当你拖动谷歌地图引脚时,我已经添加了一个监听器,但它似乎不工作。

使用这个api: https://developers.google.com/maps/documentation/javascript/examples/places-searchbox

所以获取latlng只是这个例子的一个附加功能,但我不明白为什么它不在输入中输出latlng。

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" />

编辑:设法在字段中输出latLng,但我如何在拖动标记时更新latLng ?

var locPositionLat = place.geometry.location.lat(),
          locPositionLng = place.geometry.location.lng();
          $('#lat').val(locPositionLat);
          $('#lng').val(locPositionLng);
google.maps.event.addListener(markers, 'dragend', function(event) {
            document.getElementById('lat').value = event.locPositionLat; 
        });

标记:

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

最新更新