2017-01-25 14 views
0

Я довольно новичок в геолокации api Google ...Получить Лон. Широта для данного почтового индекса в данной стране

Я использую следующий URL-адрес для получения информации о геолокации для заданного адреса.

http://maps.googleapis.com/maps/api/geocode/json?address=address_value 

Адресный параметр может содержать несколько информации. Мои исследования по правильному форматированию значений для адресного параметра всегда приводили меня к использованию формата postcode, country, но это, похоже, не всегда работает по желанию.

Мой вопрос: Как я могу всегда получать информацию только для данной страны (скажем, в Германии)?

Пример:

Диапазон Берлин почтовый индекс составляет 10115-14199

Когда я пытаюсь следующий http://maps.googleapis.com/maps/api/geocode/json?address=10115,%20Germany

мне получить правильную информацию (место в Германии):

{ 
    "results" : [ 
     { 
     "address_components" : [ 
      { 
       "long_name" : "10115", 
       "short_name" : "10115", 
       "types" : [ "postal_code" ] 
      }, 
      { 
       "long_name" : "Mitte", 
       "short_name" : "Mitte", 
       "types" : [ "political", "sublocality", "sublocality_level_1" ] 
      }, 
      { 
       "long_name" : "Berlin", 
       "short_name" : "Berlin", 
       "types" : [ "locality", "political" ] 
      }, 
      { 
       "long_name" : "Berlin", 
       "short_name" : "Berlin", 
       "types" : [ "administrative_area_level_1", "political" ] 
      }, 
      { 
       "long_name" : "Deutschland", 
       "short_name" : "DE", 
       "types" : [ "country", "political" ] 
      } 
     ], 
     "formatted_address" : "10115 Berlin, Deutschland", 
... 

Когда я тогда попробую это http://maps.googleapis.com/maps/api/geocode/json?address=10696,%20Germany (что существующий почтовый индекс в Берлине, Германия, а) я получить адрес в США (где почтовый индекс был интерпретирован как номер улицы)

{ 
    "results" : [ 
     { 
     "address_components" : [ 
      { 
       "long_name" : "10696", 
       "short_name" : "10696", 
       "types" : [ "street_number" ] 
      }, 
      { 
       "long_name" : "Berlin Road", 
       "short_name" : "Berlin Rd", 
       "types" : [ "route" ] 
      }, 
      { 
       "long_name" : "Berlin Heights", 
       "short_name" : "Berlin Heights", 
       "types" : [ "locality", "political" ] 
      }, 
      { 
       "long_name" : "Berlin Township", 
       "short_name" : "Berlin Township", 
       "types" : [ "administrative_area_level_3", "political" ] 
      }, 
      { 
       "long_name" : "Erie County", 
       "short_name" : "Erie County", 
       "types" : [ "administrative_area_level_2", "political" ] 
      }, 
      { 
       "long_name" : "Ohio", 
       "short_name" : "OH", 
       "types" : [ "administrative_area_level_1", "political" ] 
      }, 
      { 
       "long_name" : "USA", 
       "short_name" : "US", 
       "types" : [ "country", "political" ] 
      }, 
      { 
       "long_name" : "44814", 
       "short_name" : "44814", 
       "types" : [ "postal_code" ] 
      } 
     ], 
     "formatted_address" : "10696 Berlin Rd, Berlin Heights, OH 44814, USA", 

... 

ответ

1

Вы должны использовать компоненты, такие как

http://maps.googleapis.com/maps/api/geocode/json?address=10696&components=country:DE 
+0

Спасибо, что это точно решило – Benjamin