2011-01-04 6 views
1

Im en utilisant cet excellent plugin jquery pour travailler avec google maps:google maps - obtenir les coordonnées d'un marqueur traîné

http://googlemaps.mayzes.org/

Im en utilisant l'exemple "Carte marqueur Drag".

Une fois que je l'ai traîné un marqueur comment puis-je obtenir les nouvelles/coordonnées actuelles du marqueur?

Merci

+0

Je ne vois aucune liaison d'événement dans ce plugin. Je suggère d'utiliser le google api et non un plugin puisque l'API est également facile à utiliser.En outre, ce plugin utilise v2 api qui est vieux et obsolète.Vous devez migrer à Google Maps javascript api v3. –

Répondre

0

Vous pouvez accéder aux marqueurs .latLng() pour obtenir les coordonnées de tout marqueur.

3

j'ai écrit un projet qui fait exactement cela, il utilise la version 2 de l'API Google Maps. Voici l'extrait de code pour un marqueur draggable qui montrera lat/long après que vous le faites glisser vers un nouvel emplacement sur la carte:

  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

Cette réponse est pas pertinente car la question ne demande pas de l'aide sur google maps api. –

+0

pas directement. Mais le script mentionné ci-dessus utilise l'API Google Maps. et la façon la plus simple de faire ce qu'il veut faire est expliquée dans ce post. –

2

Essayez quelque chose comme ceci à l'aide de javascript et de l'API Google Maps:

// 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()); 
    }); 
} 
Questions connexes