2011-05-23 26 views

Respuesta

27

Simplemente crear una instancia de google.maps.Geocoder y llamar a su método geocode, pasando en un objeto que posee los atributos necesarios para que sea un GeocoderRequest.

Por lo tanto:

var geocoder = new google.maps.Geocoder(); 
geocoder.geocode({address: /* zip you got from user input */}, 
    function(results_array, status) { 
     // Check status and do whatever you want with what you get back 
     // in the results_array variable if it is OK. 
     // var lat = results_array[0].geometry.location.lat() 
     // var lng = results_array[0].geometry.location.lng() 
}); 
+0

obtengo 'ZERO RESULTS' cada vez que prueba solo un código postal – Leeish

+0

Puede intentar agregar ['region'] (https://developers.google.com/maps/documentation/javascript/reference?csw=1#GeocoderRequest) a su solicitud y ver si eso ayuda a Google a eliminar la ambigüedad del valor. –

11

Se puede utilizar esta alternativa:

URL: http://maps.googleapis.com/maps/api/geocode/json?address=santa+cruz&components=postal_code:695564&sensor=false

simplemente llame a esta URL en un jquery-Ajax y obtendrá el lat largo en consecuencia .

ejemplo usando jquery-ajax:

$(document).ready(function(){ 

    var zipcode = 695564; 

    $.ajax({ 
     url : "http://maps.googleapis.com/maps/api/geocode/json?address=santa+cruz&components=postal_code:"+zipcode+"&sensor=false", 
     method: "POST", 
     success:function(data){ 
      latitude = data.results[0].geometry.location.lat; 
      longitude= data.results[0].geometry.location.lng; 
      alert("Lat = "+latitude+"- Long = "+longitude); 
     } 

    }); 
}); 

Muestra resultados JSON de Google api:

{ 
    "results" : [ 
     { 
     "address_components" : [ 
      { 
       "long_name" : "695564", 
       "short_name" : "695564", 
       "types" : [ "postal_code" ] 
      }, 
      { 
       "long_name" : "Thiruvananthapuram", 
       "short_name" : "TVM", 
       "types" : [ "administrative_area_level_2", "political" ] 
      }, 
      { 
       "long_name" : "Kerala", 
       "short_name" : "KL", 
       "types" : [ "administrative_area_level_1", "political" ] 
      }, 
      { 
       "long_name" : "India", 
       "short_name" : "IN", 
       "types" : [ "country", "political" ] 
      } 
     ], 
     "formatted_address" : "Kerala 695564, India", 
     "geometry" : { 
      "bounds" : { 
       "northeast" : { 
        "lat" : 8.5894172, 
        "lng" : 77.0210912 
       }, 
       "southwest" : { 
        "lat" : 8.5616185, 
        "lng" : 76.96664299999999 
       } 
      }, 
      "location" : { 
       "lat" : 8.5753702, 
       "lng" : 76.99310740000001 
      }, 
      "location_type" : "APPROXIMATE", 
      "viewport" : { 
       "northeast" : { 
        "lat" : 8.5894172, 
        "lng" : 77.0210912 
       }, 
       "southwest" : { 
        "lat" : 8.5616185, 
        "lng" : 76.96664299999999 
       } 
      } 
     }, 
     "partial_match" : true, 
     "types" : [ "postal_code" ] 
     } 
    ], 
    "status" : "OK" 
} 

Saludos ..

+1

probé http://maps.googleapis.com/maps/api/geocode/json?components=postal_code:530016&sensor=false su rejilla de trabajo –

Cuestiones relacionadas