Alex Franco

Blog de Alex Franco, aquí podrás encontrar temas de tecnología, desarrollo web y móvil, Python, Django, Mongo, DBs y… otros temas más
Home  /  Codigo  /  Geocode Simple: Buscar direcciones (coordenadas a partir de direcciones) con GMaps API v3

Geocode Simple: Buscar direcciones (coordenadas a partir de direcciones) con GMaps API v3

Alex Franco API, Direcciones, Geocode, Geocoding, GMaps, Maps 76 Comments

Si no tienes mucha experiencia o tienes dudas con respecto a algo que usemos en este post, puedes consultar los demás ejemplos que se han realizado anteriormente aquí.

Ya hemos visto el cómo obtener geolocalización para ubicar el lugar donde nos encontramos, pero, ¿qué pasa cuando buscamos una dirección diferente a donde nos encontramos?, sería necesario escribir y buscar la dirección deseada, bien pues el proceso es relativamente sencillo. (Para esto requeriremos que agregues los scripts de GMaps y de jQuery, consulta los anteriores post si tienes duda de esto).

Lo que haremos se resume en: escribir una dirección, verificar si existe, si existe, colocar un marcador, centrar y dar zoom en el mapa en la región de la dirección obtenida, si no existe la dirección arrojar un error diciendo que no existe.

Ver Demo Geocoding

La parte importante del código es generar un objeto que nos permita comunicarnos con la API  de Google Maps y nos convierta la dirección en latitud y longitud de manera que podamos maniobrarlas a placer.

var geocoder = new google.maps.Geocoder();

Cuando se genera una petición de Geocoding, pueden enviarse varios parámetros para obtener resultados más específicos, un objeto de solicitud completa comprendería:

  • address (obligatorio *): es la dirección que deseas codificar de forma geográfica.
  • latLng (obligatorio *): la latitud y la longitud (LatLng ) para las que deseas obtener la dirección interpretable por humanos más cercana.
  • bounds (opcional): los límites de latitud y de longitud (LatLngBounds) dentro de los que quieres predeterminar los resultados de codificación geográfica con mayor importancia. Para obtener más información, consulta la sección Especificación de la ventana gráfica que encontrarás a continuación.
  • language (opcional): es el idioma en el que se devuelven los resultados.
  • region (opcional): el código de región, especificado como una subetiqueta region del lenguaje IANA. En la mayoría de los casos, estas etiquetas se asignan directamente a valores de dos caracteres ccTLD (“dominio de nivel superior”) ya conocidos. Para obtener más información, consulta la sección Especificación del código de región que encontrarás a continuación.

* Nota: la búsqueda funciona incluyendo solamente el campo address, aunque siempre es requisito incluir un campo address o un campo latLng obligatoriamente, si se coloca un campo latLng, el geocoder realizará el proceso conocido como codificación geográfica inversa, o sea, convertir coordenadas en direcciones, pero, eso lo veremos en otro post.

La solicitud se hace de la siguiente manera:

// Obtenemos la dirección y la asignamos a una variable
var address = $('#address').val();
// Creamos el Objeto Geocoder
var geocoder = new google.maps.Geocoder();
// Hacemos la petición indicando la dirección e invocamos la función
// geocodeResult enviando todo el resultado obtenido
geocoder.geocode({ 'address': address}, geocodeResult);

El objeto que se obtiene de respuesta es un JSON, donde lo manejaríamos como regularmente se hace en javascript, el resultado es algo como esto:

{
  "status": "OK",
  "results": [ {
    "types": [ "street_address" ],
    "formatted_address": "1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA",
    "address_components": [ {
      "long_name": "1600",
      "short_name": "1600",
      "types": [ "street_number" ]
    }, {
      "long_name": "Amphitheatre Pkwy",
      "short_name": "Amphitheatre Pkwy",
      "types": [ "route" ]
    }, {
      "long_name": "Mountain View",
      "short_name": "Mountain View",
      "types": [ "locality", "political" ]
    }, {
      "long_name": "California",
      "short_name": "CA",
      "types": [ "administrative_area_level_1", "political" ]
    }, {
      "long_name": "United States",
      "short_name": "US",
      "types": [ "country", "political" ]
    }, {
      "long_name": "94043",
      "short_name": "94043",
      "types": [ "postal_code" ]
    } ],
    "geometry": {
      "location": {
        "lat": 37.4219720,
        "lng": -122.0841430
      },
      "location_type": "ROOFTOP",
      "viewport": {
        "southwest": {
          "lat": 37.4188244,
          "lng": -122.0872906
        },
        "northeast": {
          "lat": 37.4251196,
          "lng": -122.0809954
        }
      }
    }
  } ]
}

Lo único que nos faltaría es el código para validar, interpretar y dibujar. Para esto, hay 3 cosas importantes que debemos tomar en cuenta del JSON que tenemos de respuesta:

  • status: contiene la respuesta del estado de la petición, si fue satisfactoria o si hubo algún error y que tipo de error.
  • geometry.location: la ubicación de la dirección solicitada
  • geometry.viewport: los límites recomendados para ajustar el zoom del mapa, haciendo un cuadrante con las esquinas Noreste (superior derecha) y Suroeste (inferior izquierda).

Con esto en presente, la función siguiente nos mostrará solamente el primer resultado obtenido, quedando así :

function geocodeResult(results, status) {
    // Verificamos el estatus
    if (status == 'OK') {
        // Si hay resultados encontrados, centramos y repintamos el mapa
        // esto para eliminar cualquier pin antes puesto
        var mapOptions = {
            center: results[0].geometry.location,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map($("#map_canvas").get(0), mapOptions);
        // fitBounds acercará el mapa con el zoom adecuado de acuerdo a lo buscado
        map.fitBounds(results[0].geometry.viewport);
        // Dibujamos un marcador con la ubicación del primer resultado obtenido
        var markerOptions = { position: results[0].geometry.location }
        var marker = new google.maps.Marker(markerOptions);
        marker.setMap(map);
    } else {
        // En caso de no haber resultados o que haya ocurrido un error
        // lanzamos un mensaje con el error
        alert("Geocoding no tuvo éxito debido a: " + status);
    }
}

Y listo con esto tenemos terminado nuestro ejercicio, puedes verificarlo en funcionamiento en la página de demos:

Ver Demo Geocoding

El código completo quedaría así:

$(document).ready(function() {
    load_map();
});

var map;

function load_map() {
    var myLatlng = new google.maps.LatLng(20.68009, -101.35403);
    var myOptions = {
        zoom: 4,
        center: myLatlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    map = new google.maps.Map($("#map_canvas").get(0), myOptions);
}

$('#search').live('click', function() {
    // Obtenemos la dirección y la asignamos a una variable
    var address = $('#address').val();
    // Creamos el Objeto Geocoder
    var geocoder = new google.maps.Geocoder();
    // Hacemos la petición indicando la dirección e invocamos la función
    // geocodeResult enviando todo el resultado obtenido
    geocoder.geocode({ 'address': address}, geocodeResult);
});

function geocodeResult(results, status) {
    // Verificamos el estatus
    if (status == 'OK') {
        // Si hay resultados encontrados, centramos y repintamos el mapa
        // esto para eliminar cualquier pin antes puesto
        var mapOptions = {
            center: results[0].geometry.location,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map($("#map_canvas").get(0), mapOptions);
        // fitBounds acercará el mapa con el zoom adecuado de acuerdo a lo buscado
        map.fitBounds(results[0].geometry.viewport);
        // Dibujamos un marcador con la ubicación del primer resultado obtenido
        var markerOptions = { position: results[0].geometry.location }
        var marker = new google.maps.Marker(markerOptions);
        marker.setMap(map);
    } else {
        // En caso de no haber resultados o que haya ocurrido un error
        // lanzamos un mensaje con el error
        alert("Geocoding no tuvo éxito debido a: " + status);
    }
}

Y en el Body solamente esto:

<div><input type="text" maxlength="100" id="address" placeholder="Dirección" /> <input type="button" id="search" value="Buscar" /></div><br/>
<div id='map_canvas' style="width:600px; height:400px;"></div>

Espero les sirva y cualquier cosa, ya saben cómo contactarme…

Enjoy this Life!

Relacionado

About Author

Alex Franco

 IT

Previous Article Activar actualizaciones de WordPress vía SSH/SFTP
Next Article Buscar y trazar rutas con GMaps API v3

Related Posts

  • Enviar correo personalizado automáticamente cuando respondan un Formulario de Google

    Enviar correo personalizado automáticamente cuando respondan un Formulario de Google

  • Django + AllAuth + Google OAuth 2.0

    Django + AllAuth + Google OAuth 2.0

  • Agregar número consecutivo y enviar correo al contestar Formulario de Google Drive

76 Comments

  1. juan Reply
    2011-07-27 at 9:54 pm

    hola como hago para agrgarle el recuadro de fotos y de wikipeia como aparecee n la pgina google maps

    • Alex Franco Reply
      2011-07-28 at 7:14 am

      @juan es HTML simple, al momento de que mandas abrir un infowindow, en el contenido tienes que linkear la foto que quieres que aparezca, para wikipedia, es necesario usar el API de Wikipedia vaya, eso es sencillo pero requiere de tiempo y algo más de código para adentrarse a esa API

    • Inmoroma services Reply
      2016-08-15 at 7:41 pm

      En el localhost me muestra el siguiente problema… se ve 5 seg el mapa pero al terminar de cargar la pagina sale esto:
      Se ha producido un error.
      Esta página no ha cargado Google Maps correctamente. Descubre los detalles técnicos del problema en la consola de JavaScript.

      los jquery que pude bajar y tengo son
      jquery.min.js
      jquery-1.11.0.min.js
      jquery-3.1.0.min

      veo que en el encabezado usas un jquery.js el cual no tengo y no lo encontré, si ese es el problema, podrías facilitar el archivo por favor, gracias y excelentes tutoriales, me gustaría que hicieras uno de login con facebook sdk5 y php, por que no le entiendo a la explicación de la pagina :v

      • Alex Franco
        2016-08-24 at 12:50 pm

        En la página da click derecho y luego en Inspect (o inspeccionar), ahí te mostrará el error preciso que se necesita corregir.
        Si lo que requieres son los scripts que en su momento utilicé, ve el código fuente (de nuevo click derecho, ver código fuente), da click en los enlaces y guarda los archivos en tu aplicación.

  2. juan Reply
    2011-07-28 at 6:01 pm

    lo que pasa es que yo estoy en mi tesis y en ella estoy utilizando sig y he tomado el gogle maps para ello
    y me gustaria poder lograr realizar obtener ytodo el tipo de informaacion que cuando yo le de una direccion el me pueda arrojar el mapa y ademas todas las fotos que se encuentren en panoramica de ese sitio o pais, ciudad y utilizar la informacion de wikipedia te agradesco me ayudes

    • Alex Franco Reply
      2011-07-28 at 8:17 pm

      @juan lo que buscas es algo como esto http://jafrancov.com/projects/mtwsoa/ pero para eso necesitas consultar tantas APIs como datos quieras mostrar, lo que ves en google maps o google earth es una consulta a todas las APIs que selecciones y muestren datos del lugar que marques.

      • juan
        2011-07-29 at 11:17 am

        si algo asi ,pero quiero agregarle un boton de fotos que al dar click hay me muestre las imagenes como aparece en la pagina oficial de google maps que utilizan panaromico q aparecen todas las fotos que estan publicadas hay y el boton de wikipedia

      • juan
        2011-07-29 at 6:38 pm

        necesito q me puedas ayudar o un ejemplo para guiarme

  3. samuel Reply
    2011-08-16 at 11:52 am

    Hola te agradezco mucho el que compartas tus conocimientos y estoy aqui de nuevo molestandote con una duda, probe este ejemplo y resulto genial, despues queria que la lat y la lng se mostraran en 2 cuadros de texto de un form, crei que solo usando sus propiedades era suficiente pero no se que es toy haciendo mal, no me marca error pero tampoco me da el resultado deseado, me podrias ayudar por favor??

    if (status == ‘OK’ && results.length > 0)
    {
    // Si hay resultados encontrados, centramos y repintamos el mapa
    // esto para eliminar cualquier pin antes puesto
    var mapOptions = {
    zoom: 14,
    center: results[0].geometry.location,
    mapTypeId: google.maps.MapTypeId.ROADMAP

    };
    map = new google.maps.Map($(“#map_canvas”).get(0), mapOptions);
    // fitBounds acercará el mapa con el zoom adecuado de acuerdo a lo buscado
    map.fitBounds(results[0].geometry.viewport);
    // Dibujamos un marcador con la ubicación del primer resultado obtenido
    var markerOptions = { position: results[0].geometry.location,draggable: true}
    var marker = new google.maps.Marker(markerOptions);
    //Obtener Lactitud y Longitud, mostrandolos en cuadros de texto y mostrar un infowindow
    var markerLatLng = marker.getPosition();
    $(‘#x’).val()=markerLatLng.markerLatLng.lat();
    $(‘#y’).val()=markerLatLng.markerLatLng.lng();
    marker.setMap(map);
    }

    • Alex Franco Reply
      2011-08-16 at 4:53 pm

      @Samuel yo creo que necesitas leer un poco de jQuery =P la asignación es lo erróneo, el
      $(‘#x’).val() = ‘algo’
      debería ser:
      $(‘#x’).val(‘algo’)

      Así lo resuelves 🙂

      • samuel
        2011-08-16 at 5:22 pm

        Ok, muchas gracias, si de jqry no se nada 🙁 tendre que estudiarlo, muchas gracias

  4. samuel Reply
    2011-08-16 at 11:59 am

    Veo tambien que al agregar estas lineas de codigo:
    //Obtener Lactitud y Longitud, mostrandolos en cuadros de texto y mostrar un infowindow
    var markerLatLng = marker.getPosition();
    $(‘#x’).val()=markerLatLng.lat();
    $(‘#y’).val()=markerLatLng.lng();
    o cualquier otra, como por ejemplo para poner un window info, el marcador que estaba lo desaparece, seguro que algo esta mal, me podrias apoyar?? por favor, de antemano te agradezco mucho y disculpa las molestias

    • Alex Franco Reply
      2011-09-21 at 9:55 am

      @Samuel La asignación es lo erróneo en jQuery para este caso debe ser:

      $(‘#x’).val(markerLatLng.lat());
      $(‘#y’).val(markerLatLng.lng());
      
  5. Joaquin Reply
    2011-09-21 at 3:47 am

    Hola, estoy intentando pasar toda mi pagina al API3 pero me encuentro con el siguiente problema. Como cambiar esta instruccion de API 2 a API 3, concretamente me da problemas “point.toURLValue()”, si lo pongo no sale nada en el sidebar, me refiero siempre si migro esta instrucción al API3

     function createMarker(point,name,html,category) {
       html += '<a href="http://maps.google.com/maps?' +
          'saddr=&daddr=' + point.toUrlValue() + 
          'rel="nofollow">Pulsa para llegar hasta aqui';
       var marker = new GMarker(point,gicons[category]);
       marker.mycategory = category;                                 
       marker.myname = name;
       GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html); });
       gmarkers.push(marker);
       return marker;} 
    

    Un saludo

    • Alex Franco Reply
      2011-09-21 at 9:46 am

      @Joaquin Hola, buscando encontré que la función .toString() devuelve las coordenadas con decimales completos del lugar, y en paréntesis, algo como:
      (60.174391639841424, 24.939823150634766)

      Otra opción que puedes tomar, es por separado extraer el Lat/Lng, algo como:

      myLatlng.lat().toFixed(6) + ',' + myLatlng.lng().toFixed(6) 

      Espero eso ayude, saludos!!!

  6. Joaquin Reply
    2011-09-21 at 11:53 am

    Hola Alex, ante todo gracias por estar ahí ayudando a los demás. Una pregunta rápida: Estoy intentando hacer un ejemplo de mapa con KML, solo copiar y pegar algunos de los ejemplos que hay, y no consigo que funcione ninguno, sale el mapa pero como si no encontrara los datos del klm (con el api2 funciona perfectamente) pero con el api3 no consigo que funcione. Hay algun problema.

    Un abrazo

    • Alex Franco Reply
      2011-09-21 at 11:58 am

      @Joaquín pues no se supone que haya problemas, aunque si estás mezclando APIs no va a funcionar, necesitaría ver el código para poder ver si hay algo fuera de lo ordinario que te esté causando conflictos, porque los KML si los muestra en la API v2 es que están bien hechos, entonces no debería haber problema en la v3

  7. Joaquin Reply
    2011-09-21 at 12:58 pm

    Hola Alex, no mezclo nada, tomo como ejemplo la galeria de demostraciones de google maps para api3, el ejemplo 41 que funciona perfectamente, si lo copias todo, html, kml y js y tratas de verlo tu, solo sale el mapa.

    http://gmaps-samples-v3.googlecode.com/svn/trunk/xmlparsing/

  8. eduardo Reply
    2011-11-18 at 9:52 pm

    ES ORRIBLE

  9. Daniel Reply
    2012-02-10 at 10:14 am

    Hola, gracias a tu blog he solucionado un par de cosas de una página que estoy haciendo, asi que gracias 😀 pero hay algo que no encuentro en ningún lado, quiero obtener la dirección (formatted address) de varios marcadores, a traves de las coordenadas, me resulta como para los primeros 5 pero despues sale OVER_QUERY_LIMIT y no sé que hacer. Ayuda porfa :c
    Saludos

    • Alex Franco Reply
      2012-02-10 at 5:59 pm

      @Daniel deja me hago un post para hacer geocode inverso, no sé cómo es que lo estés haciendo pero por lo que te arroja, tienes una sobrecarga, mejor, en un comentario quedaría corto, así que deja me pongo a escribir un poco, saludos!

      • Daniel
        2012-02-13 at 5:54 am

        Si, creo que tengo una sobrecarga por que lo debo hacer para muchos marcadores y lo puse dentro de un for.. bueno, espero tu post y gracias!

      • Daniel
        2012-02-14 at 11:09 am

        Hola, lo solucione ! 😀 poniendo el geocode dentro del addListener en vez de en el for, así hace una consulta a la vez y no se sobrecarga. Igual espero el post, saludos!

    • Mega Reply
      2012-10-10 at 12:43 am

      Que tal Daniel,acerca de como hacer la geolocalizacion inversa, tengo algo de tiempo intentando hacerlo y por mas ejemplos que veo, no logro más que obtener mi posisión actual por medio del API HTML5, agradeceria mucho cualquier ayuda de tu parte o de Alex.

    • Alex Franco Reply
      2012-10-30 at 5:05 pm

      El post de Geocode Inverso http://jafrancov.com/2012/10/reverse-geocode/

      • Mega
        2013-04-16 at 1:40 pm

        Que tal Alex, el problema se resolvió,resulta que el administrador de la red había bloqueado los puertos (creo) que la API de google trabaja,por ello es que no obtenía ningún resultado.
        Muchas gracias!!

  10. Lemay Reply
    2012-03-19 at 2:08 pm

    Muy buen post, tengo una duda, en vez de hacer la busqueda por dirección la debo hacer por código postal, perteneciente a un país determinado, cómo sería en este caso ???

    Sds y gracias

    • Alex Franco Reply
      2012-03-20 at 7:32 pm

      @Lemay El Geocode hace la búsqueda al igual por Código Postal, el detalle es que probablemente necesites concatenar un “, México” para que lo busque en el país correcto, ya que por experiencia, algunos o se repiten o hay lugares que específicamente se llaman por números y elige el más cercano al meridiano 0, sencillo, ¿no? 😉

      Saludos!

      • Lemay
        2012-03-21 at 8:58 am

        entonces sería algo como esto:

        geocoder.geocode({ ‘address’: pcode+’, España’,’region’:’es’}, geocodeResult);

        ??

        Saludos !

      • Lemay
        2012-03-21 at 9:22 am

        Ok, ya solo especificando la region, funciona con código postal.

        Muchas gracias

      • Alex Franco
        2012-03-21 at 10:20 am

        @Lemay Exactamente, puedes concatenar el país o indicar la región, con cualquiera de los 2 funciona suerte!

      • Daniel Rubilar
        2012-04-11 at 12:49 pm

        Al parecer es un poco tarde mi respuesta, pero de todas maneras la dejaré por acá.. con la api de foursquare se puede hacer una especie de Geocode Inverso al utilizar la “https://api.foursquare.com/v2/venues/trending”
        puedes utilizar el parametro “ll” para buscar por latitud/longitud o el parametro “near” para buscar por ubicación, te devuelve un json con la ciudad, region y pais, ademas de las coordenadas poligonales en latitud, longitud del ará de la ubicación.

        Muy bueno tu blog, lo visito frecuentemente pero de manera pasiva.. saludos!

      • Alex Franco
        2012-04-11 at 4:05 pm

        @DanielRubilar es correcto, pero el punto es hacer el geocoding inverso con la API de Maps directamente, gracias por la visita 😉

  11. Henry Reply
    2012-05-19 at 5:24 pm

    Hola Alex.

    He intentado mezclar tus dos ejemplos:

    “Geocode: Buscar direcciones con GMaps API v3”

    y

    “Marcador arrastrable y cómo obtener su Lat/Lng GMaps API v3”

    en una sola aplicación pero no lo he logrado. Ya tengo varios días en esto y por más que lo intento no lo logro.
    ¿Podrías ayudarme a hacer esa mezcla en un mismo mapa?

    Muchísimas gracias de antemano por tu ayuda.

    • Alex Franco Reply
      2012-05-22 at 2:08 pm

      @Henry si lo que quieres es mover la ruta, usa el ejemplo del post de las rutas, y antes de la variable directionsDisplay, coloca y sustituye esa línea por esto:

      var rendererOptions = {
       draggable: true
      };
      var directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);
      

      Con eso será suficiente para que puedas mover los marcadores.

  12. Gustavo Reply
    2012-05-31 at 10:07 am

    Como puedo Obtener solo las coordenadas? osea colocar la dirección y obtener las coordenadas pero sin mostrar un mapa.
    Lo necesito para un trabajo el en cual tengo que buscar las coordenadas en base a una dirección que se me entrega.

    Que estés muy bien! 🙂

    • Alex Franco Reply
      2012-08-06 at 10:34 am

      @Gustavo haces todo el proceso y el código tal cual está pero en la función que despliega el mapa solo pondrás esto:

      function geocodeResult(results, status) {
          // Verificamos el estatus
          if (status == 'OK') {
              var lat = results[0].geometry.location.lat()
              var lng = results[0].geometry.location.lng()
              // Usalos como se ajuste a tus necesidades
          } else {
              // En caso de no haber resultados o que haya ocurrido un error
              alert("Geocoding no tuvo éxito debido a: " + status);
          }
      }
      
  13. Jaume Reply
    2012-10-06 at 6:30 am

    Hola Alex,
    Estoy intentando hacer una funcion que me sirva para codificar una pequeña base de datos junto con PHP.
    Partiendo de tu ejemplo he modificado el codigo para que en lugar de situar en un mapa muestre un mensaje, pero no funciona. Puedes echarme una mano??? MUCHAS GRACIAS:

    Google Maps JavaScript API v3 Example: Geocoding Simple

    function codeAddress() {
    var address = document.getElementById(‘address’).value;
    var geocoder = new google.maps.Geocoder();
    geocoder.geocode( { ‘address’: address}, function(results, status) {
    if (status == google.maps.GeocoderStatus.OK) {
    alert(‘HOLA????’);
    });
    } else {
    alert(‘Geocode was not successful for the following reason: ‘ + status);
    }
    });
    }

    • Alex Franco Reply
      2012-10-29 at 2:21 pm

      @jaume el problema está en esto:

      google.maps.GeocoderStatus.OK

      esto es porque ya has mandado la base del estatus que es google.maps.GeocoderStatus, solamente debes colocar el OK entre comillas, con eso funcionará.

  14. María Reply
    2012-10-15 at 4:57 pm

    Lo que yo estoy intentando hacer es dado un array de direcciones pasárselo al geocoder y que me saque las coordenadas para meterlas en una base de datos. Pero no funciona, solo hace la primera.
    ¿Sabes porqué puede ser? Muchísimas gracias!

    • Alex Franco Reply
      2012-10-29 at 2:44 pm

      @Maria ¿cómo lo estás haciendo? Además recuerda que Google ha introducido más controles para evitar el mal uso de sus APIs si se puede, pero no estoy seguro que deje hacerlos en bloque.

      • María
        2012-11-05 at 5:31 pm

        Al final he utilizado bing, google no me permitía hacer consultas usando un array.

  15. Mandox Reply
    2012-10-24 at 12:08 pm

    Hola Alex, oye una pregunta, me queda claro que para una busqueda esta bien, pero cuando se requiere hacer una busqueda en bloque, digamos 50 direcciones, ¿es acosnejable usar este mismo metodo? o se puede usar algun otro.

    Muchas gracias de antemano

    • Alex Franco Reply
      2012-10-29 at 3:07 pm

      @Mandox Google no permite las búsquedas en bloque, a menos que tengas una cuenta premium de uso de la API (eso significa pagar), no he hecho búsquedas en bloque pero deja investigo y ya lo posteo.

  16. Raul Reply
    2012-10-24 at 4:36 pm

    hola… esta genial la informacion… pero como seria desde una base de datos

    • Alex Franco Reply
      2012-10-29 at 3:10 pm

      @Raul Es necesario hacer uso de AJAX para obtener la información desde un lenguaje de servidor, como PHP por ejemplo, generes un XML o un JSON y los trabajes con Javascript, pero como lo he mencionado antes, y si es que pretendes hacer búsquedas en bloque, no estoy seguro del límite de Geocoding que te permita hacer Google.

      • Raul
        2012-11-03 at 9:04 pm

        Gracias por responder…
        estoy haciendo unos ejemplos y no me funciona
        podrias darme una orientacion de como podria hacerlo…
        genero el Json, pero como lo uso con javascript.

  17. colocho Reply
    2013-03-06 at 1:43 pm

    Hola, existiría el modo de obtener el código completo de este ejemplo para estudiarlo? soy nuevo en programación y me cuesta algo entenderlo. Gracias anticipadas

    • Alex Franco Reply
      2013-04-16 at 12:29 pm

      Pues en el post está el código completo… =P

  18. Carlos Reply
    2013-06-11 at 10:48 am

    Hola,

    He cogido tu código como ejemplo, pero no me está funcionando bien. Por ejemplo, para búsquedas de paises como Francia o Italia el zoom mostrado en tu ejemplo es mayor. ¿Sabes porqué podría ser?, llevo un rato mirando y no doy con ello.

    Gracias!

    • Alex Franco Reply
      2013-07-25 at 10:06 am

      @Carlos el zoom depende de la zona y las imágenes disponibles, por ejemplo si buscas en un desierto que no requiere gran calidad en las fotos, el número de zooms que puedes hacer se reduce, en cambio, si ves New York por ejemplo, te da una calidad muy alta, lo que significa muchos niveles de zoom, cuando buscas el geocode, en el resultado te trae algo que se llama bounds, eso te da el cuadro de zoom adecuado para la búsqueda que realizas.

  19. RDuuke Reply
    2013-07-25 at 9:37 am

    Buenas, pregunta sería hacer filtrados a partir de listas desplegables.
    si tenes un manual o algún documento de guía,
    saludos

    • Alex Franco Reply
      2013-07-25 at 10:30 am

      @RDuuke creo que no entendí bien qué es lo que buscas hacer, solamente puedo recomendarte algo, si tu aplicación es pública, debes tener cuidado con los límites de uso, para una aplicación normal son 2500 peticiones de geocode por día. Si pudieras explicar un poco más a detalle qué buscas hacer, podría orientarte, saludos…

  20. Misael Reply
    2013-07-31 at 12:53 pm

    ola buenas tardes tengo una duda,
    necesito mostrar en mi website la ubicación de una propiedad.
    me podrías ayudar…
    saludos.

    • Alex Franco Reply
      2013-07-31 at 3:48 pm

      @Misael este video que hice te puede ayudar Mapas Personalizados con Google Maps

  21. Uriel Reply
    2013-08-21 at 9:43 pm

    Oe Brother deberia de compartir el codigo completo , que ademas google bloquea por que dice sobre una llave sobre la api hermano si seria tan amable de ayudarme con esto te lo agradesco

    • Alex Franco Reply
      2013-08-29 at 10:05 am

      @Uriel El código está completo, como lo menciono al inicio de los post, si no has trabajado antes con la API te recomiendo leas los primeros pasos para comenzar con la API de Google Maps.

  22. Jaime Reply
    2013-08-23 at 2:46 pm

    Como puedo hacerle si al buscar por ejemplo una calle (“Niños Heroes”) , esta calle en mi ciudad esta como 3 veces, lo que quiero es que me aparezca el listado de las 3 calles y y al dar click me mande al mapa en esa dirección algo parecido como cuando se busca en https://maps.google.com.mx/ y aparece de la siguiente forma:

    Quizás quisiste decir:
    Niños Heroes, Gil y Sáenz (El Aguila), 86080 Villahermosa, TAB
    Niños Heroes, Río Viejo 1a Sección, TAB
    Niños Heroes, Francisco Villa, 86017 Villahermosa, TAB

    • Alex Franco Reply
      2013-08-29 at 10:11 am

      @jaime para eso tendrías que echarte un clavado directo a la API de Geocoding dado que tendrías que analizar y usar los datos que te resulten en el JSON, armar tú la lista y hacer el proceso que requieras.

    • Jaime Reply
      2013-08-31 at 1:42 pm

      Gracias amigo, me ha servido de mucho estos ejemplos, te lo agradezco mucho.

  23. sergio Reply
    2014-10-26 at 12:11 pm

    agradezco tu aporte, muchas gracias ! 😀

  24. vale Reply
    2014-11-17 at 1:55 pm

    Hola! muy buen aporte.
    Como podria a partir de un mapa tocar en un punto y obtener sus coordenadas?
    Gracias!

    • Alex Franco Reply
      2014-11-24 at 12:50 pm

      Quizá esto te sirva http://jafrancov.com/2010/09/draggable-marker-getting-lat-lng-gmaps-api-v3/

  25. Freddy Reply
    2015-09-21 at 5:07 pm

    Hola buena tarde, tengo un listado muy grande de coordenadas en .csv del cual quiero consultar sus direcciones son cerca de 6000 registros. Hay alguna manera o apliacion que facilite tan extensa labor??

    • Alex Franco Reply
      2016-04-11 at 1:56 pm

      Puedes hacerlo con código, aunque los límites de la API no te permitirán hacerlo todo de una vez, ya que tiene limitantes de 2500 llamadas gratis por día y 10 llamadas por segundo https://developers.google.com/maps/documentation/geocoding/usage-limits

  26. derechosencapilla Reply
    2016-02-09 at 4:34 pm

    Muy bueno! voy a utilizar el código para un proyecto en donde tengo que sacar las coordenadas a partir de la búsqueda de una dirección.Tengo un sitio de mapas, el proyecto estaría incluido alli: http://mapa-maps.com.ar/ . Claro que la consulta estaría en el backend. Deberé trabajar en eso. Gracias por ayudarme en el puntapie inicial. Pablo

  27. EDUARDO Reply
    2016-02-24 at 12:03 pm

    Hola, gracias por el aporte.
    Me podrias dar una sugerencia en cuanto al orden de mis datos para hacer una solicitud más exacta, tengo lo siguiente:
    calle, colonia, del o municipio, ciudad, estado y codigo postal
    Saludos

    • Alex Franco Reply
      2016-04-11 at 12:45 pm

      Depende de la información disponible que exista en la región, entre más específico llevas más riesgo de no encontrar datos. Lo que yo recomiendo es usar los siguientes campos: calle, colonia (si la ciudad es muy grande ya que puede haber muchas calles con el mismo nombre), ciudad, estado, país.

  28. Javier Reply
    2016-03-11 at 6:55 am

    Hola, primero agradecer la gran aportación
    Me surge una duda, (ya que lo necesito para un proyecto) se podría hacer lo mismo pero introduciendo los orígenes y destinos con una tabla y que cree una ruta para pasar por el orden marcado en la tabla
    Muchas gracias de antemano

    • Alex Franco Reply
      2016-04-11 at 12:40 pm

      Eso puedes hacerlo con rutas http://jafrancov.com/2011/12/trazar-rutas-gmaps-api-v3/ pero para cada origen/destino debes incluir un input en tu código.

  29. Midorima Reply
    2016-04-26 at 2:14 pm

    Hola.

    Estoy empezando a hacer pruebas con maps y mi duda es si puedo cargar mas de 100 mil direcciones para que en resume se verifique que cada una existe, si existe, colocar un marcador, centrar y dar zoom en el mapa en la región de la dirección obtenida, si no existe la dirección capturar el error para identificar que direcciones no pudieron ser cargadas.

    De antemano muchas gracias por tu tiempo y comportar tu conocimiento.

    • Alex Franco Reply
      2016-05-11 at 1:24 pm

      Hay un inconveniente, si se puede pero tendrías que pagar por el uso que excede los límites de uso gratuito de la API, son 2500 peticiones por días con un máximo de 10 por segundo (https://developers.google.com/maps/documentation/geocoding/usage-limits), te podría recomendar que utilices algún otro algoritmo para obtenerlas paulatinamente en lugar de todas de una vez, ya que aunque no encuentre la ubicación cuenta como petición.

  30. Katherine Reply
    2016-07-09 at 10:20 am

    muchas gracias, me sirvió muchisimo 😀

  31. Elena Reply
    2016-08-17 at 7:43 am

    Buenas, he utilizado tu post para leer direcciones que se incluyen en el Google Calendar y mostrar el mapa.
    Sin embargo, me gustaría saber si hay alguna manera de añadir a éste un enlace de manera que cuando pinchas en el mapa te abre una nueva ventana con el google maps y la dirección, para saber cómo llegar, etc.

    • Alex Franco Reply
      2016-08-24 at 12:52 pm

      Google Calendar ya hace eso, si pones una dirección que exista, te pondrá un enlace que dice Mapa, click ahí y abrirá lo que necesitas.

  32. Pingback: Geocode Inverso: Buscar direcciones a partir de Coordenadas con GMaps API v3 | Alex Franco

ComentaCancelar respuesta

Posts populares

  • Geocode Simple: Buscar direcciones (coordenadas a partir de direcciones) con GMaps API v3
  • Buscar y trazar rutas con GMaps API v3
  • Recuperar o ver las claves de las redes inalámbricas en tu Mac (o cualquier App)
  • Enviar correo después de contestar Formulario de Google Drive automáticamente

Suscríbete

Suscríbirme!

Quizá te interese

  • Recuperar o ver las claves de las redes inalámbricas en tu Mac (o cualquier App)
  • Herramienta para medir la velocidad de carga de sitios web
  • 3er Destilando Web Guanajuato
  • Agregar número consecutivo y enviar correo al contestar Formulario de Google Drive
Alex Franco 2009 - 2023