Выбор наиболее точного геокода - PullRequest
7 голосов
/ 12 июля 2009

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

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

например, прохождение в Llantysilio, Denbighshire, UK, намного точнее, чем Llantysilio, Llangollen, Denbighshire, UK

Атрибут Accuracy в XML не очень помогает при выборе адреса для выбора.

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

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

Редактирование 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 ]

4 голосов
/ 17 августа 2009

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

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

1 голос
/ 16 августа 2009

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

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

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

Потому что можно указать страну и район, а административный район - нет.

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

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

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

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

0 голосов
/ 30 ноября 2009

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

0 голосов
/ 13 августа 2009

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

0 голосов
/ 11 августа 2009

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

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

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

...