Есть ли общедоступная система геолокации, в которой я могу запрашивать названия местных городов?

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

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

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


person BenAlabaster    schedule 03.03.2010    source источник
comment
USPS (Почтовая служба США) имеет API почтового индекса, который включает географическое местоположение. Но я не знаю, включает ли он международный.   -  person Todd Moses    schedule 03.03.2010


Ответы (1)


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

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

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

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

person Chad Birch    schedule 03.03.2010