2012-06-14 27 views
25

estoy usando la API de Google Maps. Y estoy usando el código a continuación para obtener las coordenadas del marcador.Obtención de coordenadas de marcador de Google Maps API

var lat = homeMarker.getPosition().$a; 
var lng = homeMarker.getPosition().ab; 

Todo funciona bien con la aplicación que construí usando Google Maps. Pero lo probé hoy y tuve problemas para obtener las coordenadas correctas. Solo para descubrir que el código anterior está indefinido. Después de console.log (homeMarker.getPosition()) descubrí que ahora son las variables que usaron para las coordenadas.

var lat = homeMarker.getPosition().ab; 
var lng = homeMarker.getPosition().cb; 

No preguntaré por qué Google Maps actúa de esta manera, pero también puede incluirlo en su respuesta. Mi pregunta es cómo puedo obtener las coordenadas sin cambiar mi código cada vez que google maps cambia las variables que están usando.

Respuesta

2

Uno más opciones alternativas

var map = new google.maps.Map(document.getElementById('map_canvas'), { 
    zoom: 1, 
    center: new google.maps.LatLng(35.137879, -82.836914), 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 

var myMarker = new google.maps.Marker({ 
    position: new google.maps.LatLng(47.651968, 9.478485), 
    draggable: true 
}); 

google.maps.event.addListener(myMarker, 'dragend', function (evt) { 
    document.getElementById('current').innerHTML = '<p>Marker dropped: Current Lat: ' + evt.latLng.lat().toFixed(3) + ' Current Lng: ' + evt.latLng.lng().toFixed(3) + '</p>'; 
}); 

google.maps.event.addListener(myMarker, 'dragstart', function (evt) { 
    document.getElementById('current').innerHTML = '<p>Currently dragging marker...</p>'; 
}); 

map.setCenter(myMarker.position); 
myMarker.setMap(map); 

y archivos html

<body> 
    <section> 
     <div id='map_canvas'></div> 
     <div id="current">Nothing yet...</div> 
    </section> 
</body> 
+0

google.maps.event.addListener (myMarker, 'dragend', function (evt) {} ..); Esto arroja una excepción – rajkiran

2

Además, se puede mostrar la posición actual oyente "arrastre" y escribirla en el campo visible u oculto. Es posible que también necesite almacenar el zoom. Aquí de copiar pegar desde & herramienta de trabajo:

  function map_init() { 
      var lt=48.451778; 
      var lg=31.646305; 

      var myLatlng = new google.maps.LatLng(lt,lg); 
      var mapOptions = { 
       center: new google.maps.LatLng(lt,lg), 
       zoom: 6, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      }; 

      var map = new google.maps.Map(document.getElementById('map'),mapOptions); 
      var marker = new google.maps.Marker({ 
       position:myLatlng, 
       map:map, 
       draggable:true 
      }); 

      google.maps.event.addListener(
       marker, 
       'drag', 
       function() { 
        document.getElementById('lat1').innerHTML = marker.position.lat().toFixed(6); 
        document.getElementById('lng1').innerHTML = marker.position.lng().toFixed(6); 
        document.getElementById('zoom').innerHTML = mapObject.getZoom(); 

        // Dynamically show it somewhere if needed 
        $(".x").text(marker.position.lat().toFixed(6)); 
        $(".y").text(marker.position.lng().toFixed(6)); 
        $(".z").text(map.getZoom()); 

       } 
      );     
      } 
Cuestiones relacionadas