获取Latlng并输入输出

时间:2015-10-07 16:28:09

标签: javascript google-maps-api-3

当您拖动Google地图图钉时,尝试输出Lat和Long,我添加了一个监听器,但它似乎无法正常工作。

使用此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);

1 个答案:

答案 0 :(得分:1)

你没有像这样组合事件监听器:

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