Ver Mensaje Individual
  #5 (permalink)  
Antiguo 19/07/2013, 14:33
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Google Maps mostrar marcadores y enviar dirección para mostrarla

Es algo muy parecido a lo que habíamos visto antes () pero con diferente función:

Por campo input: si tenemos las coordenadas, más fácil:
Código HTML:
Ver original
  1. <input type="text" id="xxx" value="37.890054, -4.778567" />
Código Javascript:
Ver original
  1. var mi_marcador_nuevo = document.getElementById('xxx').value;
Y después lo lanzamos:
Código Javascript:
Ver original
  1. var nuevomarker = new google.maps.Marker({
  2.         map: map,
  3.         position: mi_marcador_nuevo
  4.       });

Si lo que va en el input es una dirección, tenemos que acudir a geocoder: básicamente es esto
Código Javascript:
Ver original
  1. function codeAddress() {
  2.   var address = document.getElementById('xxx').value;
  3.   geocoder.geocode({
  4.     'address': address
  5.   }, function (results, status) {
  6.     if (status == google.maps.GeocoderStatus.OK) {
  7.       map.setCenter(results[0].geometry.location);
  8.       document.getElementById('xxx').value = results[0].formatted_address;
  9.       var marker = new google.maps.Marker({
  10.         map: map,
  11.         position: results[0].geometry.location
  12.       });
  13.     } else {
  14.       alert('Geocode no tuvo éxito por la siguiente razón: ' + status)
  15.     }
  16.   })
  17. }
:
En este caso, la función function codeAddress() es llamada desde
Código HTML:
Ver original
  1. <input type="button" value="Localizar" onclick="codeAddress()">

Los códigos que te envío son muy de memoria y pueden contener algún error.
También tienes la posibilidad de añadir un nuevo marcador por click:
Código Javascript:
Ver original
  1. google.maps.event.addListener(map, 'click', function (event) {
  2.         geocoder.geocode({
  3.             'latLng': event.latLng
  4.         }, function (results, status) {
  5.             if (status == google.maps.GeocoderStatus.OK) {
  6.                 if (results[0]) {
  7.                     document.getElementById('xxx').value=results[0].formatted_address;
  8.                     if (marker) {
  9.                         marker.setPosition(event.latLng)
  10.                     } else {
  11.                         marker = new google.maps.Marker({
  12.                             position: event.latLng,
  13.                             map: map
  14.                         })
  15.                     }
  16.                 } else {
  17.                     document.getElementById('mensaje').innerHTML = 'No se encontraron resultados'
  18.                 }
  19.             } else {
  20.                 document.getElementById('mensaje').innerHTML = 'Geocodificación  ha fallado debido a: ' + status
  21.             }
  22.         })
  23.     });

Tal vez lo más importante, es que metas tu nuevo marcador en una función aparte como te hice ya referencia.