Существует ли общедоступная система геолокации, в которой я могу запрашивать названия городов - PullRequest
2 голосов
/ 03 марта 2010

Я пытаюсь упростить ввод адреса в систему, в которой текстовое поле города имеет автозаполнение, изначально заполненное геолокацией пользователя. В прошлом казалось, что автоматическое определение названия города непозволительно дорого без предварительного знания провинции / штата / страны, но не имеет смысла требовать от пользователя ввода адреса в обратном направлении, поскольку мы не думаем об адресной информации таким образом. , С другой стороны, отсутствие самовнушения названия города означает, что мы в конечном итоге получим всевозможные странные и замечательные записи для неправильно написанных городов со всего мира.

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

Например, если я нахожусь в Канаде [как есть] и ввожу «Mi», мне будут представлены все города Канады, начиная с «Mi», пока не будет установлено, что информация, которую я вводил, не была ». Канадский, в этот момент, он будет использовать следующую наиболее вероятную настроенную страну на основе нашей модели использования - то есть, он проверит следующие США, затем Мексику и другие менее вероятные пункты назначения. Я мог бы написать все это сам, если бы у меня была база данных, но я не знаю, где ее можно найти, и я подозреваю, что она будет менее масштабируемой, чем запрос к уже существующей службе в Интернете.

1 Ответ

1 голос
/ 03 марта 2010

Похоже, что MaxMind предлагает бесплатную базу данных , которую можно загрузить в формате CSV:

Есть онлайн-демонстрация, чтобы немного его протестировать, если хотите, но нет способа запросить ее через веб-сервис.

IPInfoDB также имеет свою базу данных, доступную для загрузки - у них есть XML API , но он поддерживает поиск города / страны только для определенного IP. Вы пытаетесь сделать что-то немного более широкое, ища каждый город в конкретной стране, причем страна выбирается на основе IP. Я не ожидал, что для этого есть веб-сервис, это довольно специфическое требование.

Отредактировано для добавления: Вы можете использовать API IPInfoDB для поиска страны, а затем генерировать предложения автозаполнения из локальной базы данных страны / города. Таким образом, вся IP-геолокация не должна выполняться локально. Существуют различные места, где вы можете получить список городов в конкретной стране. Например, вот несколько полных списков , поддерживаемых Национальным агентством геопространственной разведки

...