2011-01-04 3 views
1

Im, используя этот превосходный JQuery плагин для работы с картами Google:Google Maps - получить координаты перемещаемых маркеров

http://googlemaps.mayzes.org/

Im используя пример "Map Marker Drag".

Как только я перетащил маркер, как я могу получить новые/текущие координаты маркера?

Благодаря

+0

Я не вижу привязки к событию в этом плагине. Я бы предложил использовать google api, а не плагин, так как api одинаково прост в использовании. Также этот плагин использует v2 api, который является старым и устаревшим. Вы должны перенести to google maps javascript api v3. –

ответ

0

Вы можете получить доступ к маркерам .latLng(), чтобы получить координаты любых маркеров.

3

Я написал проект, который делает именно это, он использует версию 2 API Карт Google. Вот фрагмент кода, чтобы сделать перемещаемой маркер, который будет показывать широту/долготу после перетащить его на новое место на карте:

  function createMarker(latlng, number, html) { 
       var marker = new GMarker(latlng, {draggable: true}); 
       marker.value = number; 
        var myHtml = html; 
        var center = marker.getLatLng(); 
        map.openInfoWindowHtml(latlng, "<font color=black>" + myHtml + "<br>" + center.toString() + "</font>"); 
       GEvent.addListener(marker, "dragstart", function() { 
        map.closeInfoWindow(); 
       }); 
       GEvent.addListener(marker, "dragend", function() { 
        var center = marker.getLatLng(); 
        marker.openInfoWindowHtml("<font color=black>" + myHtml + "<br>" + center.toString() + "</font>"); 
       }); 
       return marker; 
      } 
+0

Этот ответ не имеет значения, так как вопрос не запрашивает помощь на картах Google api. –

+0

не напрямую. Но вышеупомянутый скрипт использует API Карт Google. и самый простой способ сделать то, что он хочет сделать, объясняется в этой статье. –

2

попробовать что-то вроде этого, используя JavaScript и Google Maps API:

// update element with latest lat and lon 
function updateMarkerPosition(latLng) { 
    document.getElementById('ll').value = [ 
    latLng.lat(), 
    latLng.lng() 
    ].join(', '); 
} 

function initialize() { 
    // look for any lat lon in url, to set map center 
    if ($.urlParam('ll')) { 
    var llparam = $.urlParam('ll').split(', '); 
    var lat = parseFloat(llparam[0]); 
    var lon = parseFloat(llparam[1]); 
    var latLng = new google.maps.LatLng(lat, lon); 
    } else { 
    var latLng = new google.maps.LatLng(47.65130629733119, -122.34994607543945); 
    } 

    var map = new google.maps.Map(document.getElementById('mapCanvas'), { 
    zoom: 12, 
    center: latLng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    }); 

    var marker = new google.maps.Marker({ 
    position: latLng, 
    map: map, 
    draggable: true 
    }); 

    // Update current position info. 
    updateMarkerPosition(latLng); 

    // Add dragging event listeners. 

    google.maps.event.addListener(marker, 'drag', function() { 
    updateMarkerPosition(marker.getPosition()); 
    }); 
} 
Смежные вопросы