У меня есть куча "местоположений" - некоторые точные (габороне, ботсвана), некоторые являются геокодами (40.75, -73.997), а некоторые совершенно бесполезны (#siliconcape). Мне нужно найти способ просмотреть список и определить город и страну каждой строки и геокода, а также вернуть нули для недопустимых местоположений.
Есть ли какая-то библиотека/служба/api/метод, который можно использовать для определения того, представляет ли данная строка допустимое географическое положение? При учете опечаток, ошибок в заказе и т.д.?
Ответ 1 · рейтинг 9 · mopoke
Вероятно, самым простым способом будет использование чего-то вроде 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"
Ответ 2 · Wogan
Я думаю, что нашел решение - просто поделился им здесь, если оно кому-то еще понадобится:
Используйте геокодирование Google Maps API - скармливайте ему адреса и получайте обратно координаты. Подробная информация о том, как сделать это через PHP: http://www.phpriot.com/articles/google-maps-geocoding/