Google maps v3 перетаскиваемый маркер



Я новичок в Google maps, и я пытаюсь его изучить.



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


Это моя позиция маркера, когда я инициализирую позицию маркера, чем я знаю название места (например: XY street, New York,), но из-за перетаскиваемой опции она меняется, и мой вопрос заключается в том, как я могу получить новое имя места, какой обработчик событий мне нужен.

515   2  

2 ответов:

наконец я нашел ответ:

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 изначально устанавливает маркер в заданной точке на карте

  • переменная адреса используется для назначения заголовка. Его можно проигнорировать.

  • draggable: true делает маркер перетаскивать.

  • использовать прослушиватель событий google.карты.событие.addListener (маркер, 'dragend', функция(маркер) для прослушивания изменений в положении маркера

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

Comments

    Ничего не найдено.