Вопрос

Я использую http://maps.google.com/maps/geo?веб-сервис для геокодирования некоторых адресов.

Проблема, с которой я сталкиваюсь, заключается в том, что более полный адрес не обязательно дает более точный геокод.

например, передача в Ллантсисилио, Денбишир, Великобритания, намного точнее, чем в Ллантсисилио, Лланголлен, Денбишир, Великобритания

Атрибут Accuracy в XML кажется не очень полезным при принятии решения о том, какой адрес выбрать.

Как другие люди справлялись с этой проблемой?Есть ли хороший способ выбрать лучший геокод, который работает большую часть времени?

*редактировать Немного дополнительной информации - когда я ввожу более полный адрес, первая строка адреса игнорируется, и геокодер переходит к другому, но точному адресу, который является центральной улицей, расположенной в дополнительной строке, добавленной к адресу.В этом примере он выбирает Касл-стрит в центре лланголлена, по-видимому, игнорируя Ллантисилио.

Правка kdgregory:вот два запроса API, которые я использовал (отсутствие ключа API, похоже, не является проблемой):

http://maps.google.com/maps/geo?q=Llantysilio,+Denbighshire,+UK&sensor=false&output=xml

http://maps.google.com/maps/geo?q=Llantysilio,Llangollen,++Denbighshire,+UK&sensor=false&output=xml
Это было полезно?

Решение 5

В конце концов я пришел к выводу, что слишком много странных ошибок в согласовании адресов с веб-сервисом геокодирования Google в Великобритании, но в конце концов мне удалось найти способ использовать почтовые индексы вместо этого, что гораздо точнее: как это делается

Другие советы

Вы должны интерпретировать точность, мой друг.Обычно точность состоит из двух частей, во-первых, из адреса macthing.Вторая часть - самая важная.Вы можете геокодировать что-либо с точностью до Соединенных Штатов или уровня города, центроида почтового индекса, уровня интерполяции улиц или фактического уровня точности участка.В первом примере число равно 4, а во втором - 9.Для этого сервиса чем выше, тем лучше.

Описание значения точности 0 Неизвестная точность.1 Точность на уровне страны.2 Точность уровня региона (штата, провинции, префектуры и т.д.).Точность на уровне 3 субрегионов (округов, муниципалитетов и т.д.).Точность на уровне 4 населенных пунктов.5 Точность на уровне почтового индекса (zip code).6 Точность на уровне улицы.7 Точность уровня пересечения.8 Точность на уровне адреса.9 Точность уровня помещения (название здания, объекта недвижимости, торгового центра и т.д.).

Вероятно, полезно отметить, что Google не соответствует спецификациям XAL, но скорее реализует их в подмножестве.

Таким образом, это означает, что вы не обязательно сможете сделать:

place.AddressDetails.Country.AdministrativeArea.Locality.LocalityName
place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName
place.AddressDetails.Country.CountryName

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

Возвращаемые данные идентифицируются с помощью индикатора точности, который дает вам относительное представление о том, чего вы можете ожидать от данных.Таким образом, вы можете хранить объекты и отрезать части полного адреса, используя эту переменную, и пытаться геокодировать таким образом - хотя это и не рекомендуется.

Как правило, полный адрес (без указания магистрали) является хорошим способом определения общего местоположения.Вы можете использовать некоторую логику взвешенных предпочтений, предоставляемую Google, для уточнения адреса.

Например.Используйте setViewport или setCountryCode, чтобы повысить точность поиска.

Помните, Геокодирование это не наука.Вы не можете ожидать стабильных результатов.

Ответ на геокодирование.Метка [0] через gmap вы можете проверить, что у вас получилось, и пройти уровень или попробовать еще раз.Я выбрал значение по умолчанию в заказе

place.AddressDetails.Country.AdministrativeArea.Locality.LocalityName
place.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName
place.AddressDetails.Country.CountryName

Его можно было бы назвать более логично, как показано выше.gmaps 3 работает несколько несовместимо с версией v2.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top