Определить, является ли строка допустимым географическим местоположением

У меня есть куча "местоположений" - некоторые точные (габороне, ботсвана), некоторые являются геокодами (40.75, -73.997), а некоторые совершенно бесполезны (#siliconcape). Мне нужно найти способ просмотреть список и определить город и страну каждой строки и геокода, а также вернуть нули для недопустимых местоположений.

Есть ли какая-то библиотека/служба/api/метод, который можно использовать для определения того, представляет ли данная строка допустимое географическое положение? При учете опечаток, ошибок в заказе и т.д.?


person Wogan    schedule 02.02.2010    source источник


Ответы (2)


Вероятно, самым простым способом будет использование чего-то вроде API геокодирования Google. Он возьмет строку и попытается проанализировать ее в нужном месте. Вы можете получить вывод в формате XML, JSON, CSV.

Вот пример вывода CSV:

input : gaborone, botswana
output: 200,4,-24.6541100,25.9087390

input : #siliconcape
output: 602,0,0,0

input : 40.75,-73.997
output: 200,8,"324 W 30th St, New York, NY 10001, USA"
person mopoke    schedule 02.02.2010
comment
Ха-ха, удачное время, лол - сам только что нашел, плюс пример кода :) - person Wogan; 02.02.2010
comment
Обратите внимание, что в зависимости от размера вашей пользовательской базы Google Geocoding API может быть не лучшим вариантом из-за ограничения количества запросов в день. API MapQuest, хотя и хуже, чем у Google, не имеет никаких ограничений. - person Andrew Moore; 02.02.2010
comment
15 000 запросов геокодирования за 24 часа ‹-- Учитывая, что у меня есть только 10 500 элементов для геокодирования, Google будет работать отлично :) - person Wogan; 02.02.2010

Я думаю, что нашел решение - просто поделился им здесь, если оно кому-то еще понадобится:

Используйте геокодирование Google Maps API — скармливайте ему адреса и получайте обратно координаты. Подробная информация о том, как сделать это через PHP: http://www.phpriot.com/articles/google-maps-geocoding/

person Wogan    schedule 02.02.2010