2012-06-21 27 views
16

Me pregunto si hay una forma de usar el código postal en lugar de Lat y Lng, usando este fragmento o usando solicitudes de geocodificación.Cómo usar el código postal en lugar de Lat y Lng en Google Maps API

<script type="text/javascript"> 
     function initialize() { 
      var latlng = new google.maps.LatLng(22.1482635,-100.9100755); 
      // var latlang = new google.maps.zipcode(7845); <- Is there a way to do that? 
      var myOptions = { 
       zoom: 8, 
       center: latlng, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      }; 

      var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
      var marker = new google.maps.Marker({ 
       position: latlng, 
       map: map, 
       title:"zipcode" 
      }); 

     } 
    </script> 

Respuesta

25

Puede utilizar la API de Google GeoCode para solicitar la latitud y longitud para el código postal e ir de allí.

La API URL de solicitud sería así si quisiera hacerlo directamente oa través de algún otro medio

http://maps.googleapis.com/maps/api/geocode/json?address=50323&sensor=false

Dónde 50323 es el código postal.

O puede utilizar la API de JavaScript de Google para hacer esto a través de jQuery.

var geocoder; //To use later 
var map; //Your map 
function initialize() { 
    geocoder = new google.maps.Geocoder(); 
    //Default setup 
    var latlng = new google.maps.LatLng(-34.397, 150.644); 
    var myOptions = { 
    zoom: 8, 
    center: latlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
} 

//Call this wherever needed to actually handle the display 
function codeAddress(zipCode) { 
    geocoder.geocode({ 'address': zipCode}, function(results, status) { 
     if (status == google.maps.GeocoderStatus.OK) { 
     //Got result, center the map and put it out there 
     map.setCenter(results[0].geometry.location); 
     var marker = new google.maps.Marker({ 
      map: map, 
      position: results[0].geometry.location 
     }); 
     } else { 
     alert("Geocode was not successful for the following reason: " + status); 
     } 
    }); 
    } 
+0

Gracias por el ejemplo de trabajo. –

+1

Da error Uncaught nf: en la dirección de la propiedad: no es una cadena –

+2

Mismo problema aquí, si paso el código postal como una cadena va a Sudáfrica (Trying 8790, código postal de Bélgica), y si paso el código postal como número entero, devuelve el mismo error que @ Mohd.Umar dice – AlvaroAV

Cuestiones relacionadas