iOS найти местоположение (широта, долгота) из почтового индекса - PullRequest
6 голосов
/ 10 января 2011

Что может быть лучшим способом получить местоположение для данного почтового индекса. Будет ли это работать для стран за пределами США / Канады. Спасибо

Ответы [ 3 ]

6 голосов
/ 10 января 2011

Используйте API геолокации Google (попробуйте его на google.com/maps):

Ввод швейцарского почтового индекса, например: CH-9014

или французский: FR-34000

или немецкий: де-12101

или США: нам-90210

или Канада: ca-J5Z 1A1

или Китай: сп-100000

для пример :

выходы

{
  "status": "OK",
  "results": [ {
    "types": [ "postal_code" ],
    "formatted_address": "9014 St Gallen, Switzerland",
    "address_components": [ {
      "long_name": "9014",
      "short_name": "9014",
      "types": [ "postal_code" ]
    }, {
      "long_name": "St Gallen",
      "short_name": "St Gallen",
      "types": [ "locality", "political" ]
    }, {
      "long_name": "Sankt Gallen",
      "short_name": "SG",
      "types": [ "administrative_area_level_1", "political" ]
    }, {
      "long_name": "Switzerland",
      "short_name": "CH",
      "types": [ "country", "political" ]
    } ],
    "geometry": {
      "location": {
        "lat": 47.4082855,
        "lng": 9.3323890
      },
      "location_type": "APPROXIMATE",
      "viewport": {
        "southwest": {
          "lat": 47.3991076,
          "lng": 9.3180504
        },
        "northeast": {
          "lat": 47.4199564,
          "lng": 9.3543340
        }
      },
      "bounds": {
        "southwest": {
          "lat": 47.3991076,
          "lng": 9.3180504
        },
        "northeast": {
          "lat": 47.4199564,
          "lng": 9.3543340
        }
      }
    }
  } ]
}

Таким образом, швейцарский почтовый индекс 9014 соответствует ок. по этому адресу:

"lat": 47.4082855,
"lng": 9.3323890

Смотрите мой ответ по API геолокации здесь:
Как заранее получить объект GLatLng из адресной строки в Google Maps?

1 голос
/ 10 января 2011

API Google имеет некоторые довольно неприятные ограничения. Лучше использовать открытые источники, такие как GeoNames по предложению @Claus Broch.

Я добавляю этот ответ, чтобы также отметить, что MapQuest недавно установил API для данных OpenStreetMap. Он не выполняет (насколько я могу судить) поиск по почтовому индексу, но названия мест, направления, высота и т. Д. Свободно запрашиваются. Недавно я обнаружил, что планирую заменить мои звонки в API карт Google на него, как только смогу.

http://developer.mapquest.com/web/products/open

1 голос
/ 10 января 2011

GeoNames предлагает ряд различных услуг геокодирования почтового индекса, включая поиск местоположения данного почтового индекса. Они поддерживают ряд разных стран.

Вероятно, вас больше всего заинтересует Поиск названия для службы почтовых индексов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...