Google地图v3可拖动标记

我是新的谷歌地图,我试图学习它。

marker = new google.maps.Marker( { map:map, draggable:true, animation: google.maps.Animation.DROP, position: results[0].geometry.location }); 

这是我的标记位置,当我初始化标记位置比我知道的地方名称(例如:XY街,纽约),但由于可拖动的选项它正在改变,我的问题是我怎么能新的地名,我需要什么事件处理程序。

最后我find了答案:

 marker = new google.maps.Marker( { map:map, draggable:true, animation: google.maps.Animation.DROP, position: results[0].geometry.location }); google.maps.event.addListener(marker, 'dragend', function() { geocodePosition(marker.getPosition()); }); function geocodePosition(pos) { geocoder = new google.maps.Geocoder(); geocoder.geocode ({ latLng: pos }, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { $("#mapSearchInput").val(results[0].formatted_address); $("#mapErrorMsg").hide(100); } else { $("#mapErrorMsg").html('Cannot determine address at this location.'+status).show(100); } } ); } 

使用lat / lang在地图上设置一个位置,并使标记可拖动

  • 使用lat / lang最初在地图上的给定点设置一个标记

  • 地址variables用于标题目的。 它可以被忽略。

  • draggable:true使标记可拖动。

  • 使用事件监听器google.maps.event.addListener(marker,'dragend',function(marker))监听标记位置的变化

     function showMap(lat,lang,address) { var myLatLng = {lat: lat, lng: lang}; var map = new google.maps.Map(document.getElementById('map_canvas'), { zoom: 17, center: myLatLng }); var marker = new google.maps.Marker({ position: myLatLng, map: map, title: address, draggable:true, }); google.maps.event.addListener(marker, 'dragend', function(marker){ var latLng = marker.latLng; currentLatitude = latLng.lat(); currentLongitude = latLng.lng(); jQ("#latitude").val(currentLatitude); jQ("#longitude").val(currentLongitude); }); }