usar una puntos multiples marcar marcadores google georreferenciación geolocalizacion ejemplos desde datos como añadir javascript google-maps-api-3 geocode

javascript - puntos - marcadores multiples desde una base de datos en google maps



Geocodificación con Google Maps API: actualización del marcador existente en lugar de agregar otro (1)

  1. Haz que el marcador sea global.
  2. Verifique si existe antes de crear uno nuevo.
  3. si existe use .setPosition para moverlo a la nueva ubicación
  4. si no existe, crea un marcador en la ubicación deseada.

Ejemplo que hace algo parecido a lo que quieres

fragmento de código de trabajo:

var map = null; var marker = null; var geocoder = new google.maps.Geocoder(); var infowindow = new google.maps.InfoWindow({pixelOffset: new google.maps.Size(0,-34)}); function initialize() { map = new google.maps.Map(document.getElementById(''map-canvas''), { center: new google.maps.LatLng(42, -85), zoom: 4 }); } function codeAddress() { var address = document.getElementById(''address'').value; geocoder.geocode({ ''address'': address }, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { map.setCenter(results[0].geometry.location); content = results[0].formatted_address; infowindow.setContent(content); if (marker && marker.setPosition) { marker.setPosition(results[0].geometry.location); } else { marker = new google.maps.Marker({ map: map, icon: { url: ''http://maps.google.com/mapfiles/arrow.png'', anchor: new google.maps.Point(10, 34) }, position: results[0].geometry.location }); google.maps.event.addListener(marker, ''click'', function(evt) { infowindow.open(map); }); } infowindow.setPosition(results[0].geometry.location); infowindow.open(map); } else { alert(''Your search was not successful for the following reason: '' + status); } }); } google.maps.event.addDomListener(window, ''load'', initialize);

html, body, #map-canvas { height: 500px; width: 500px; margin: 0px; padding: 0px }

<script src="https://maps.googleapis.com/maps/api/js?v=3"></script> <input id="address" value="New York, NY" /> <input id="geocode" type="button" value="Find" onclick="codeAddress()" /> <div id="map-canvas"></div>

Cómo, al geocodificar, puede simplemente mover un marcador existente al resultado de un nuevo resultado de geocodificación.

Tomemos este ejemplo:

  • Cuando se carga el mapa, aparece un marcador
  • Cuando alguien geocodifica, el marcador se mueve hacia el resultado
  • El marcador es arrastrable, por lo que el usuario puede mover aún más el marcador (si así lo desean)
  • Quizás quieran volver a geocodificar una ubicación, por lo que el nuevo resultado debería mover automáticamente el marcador existente.

En esta muestra:

https://google-developers.appspot.com/maps/documentation/javascript/examples/geocoding-simple

... se dibuja un nuevo marcador para cada nuevo código geográfico.

¿Tiene sentido?

¡¡¡Gracias!!!

-metro