2013-08-29 1 views
3

На нашем сайте мы намерены использовать Google Maps Geocoding API. Мы хотим использовать Google Places Autocomplete API и преобразовать адрес в координаты (X, Y) с помощью Geocoder API.Дифференцируйте ответы API между деревнями и улицей без номера

Тем не менее, во Франции некоторые почтовые адреса отформатированы с помощью деревушка или небольшая деревня и город (и это правильные адреса) вместо классического «номера, улицы и города».

ответ геокодирования для данного вида адресов:

  • partial_match = empty
  • типа расположения = GEOMETRIC_CENTER или RANGE_INTERPOLATED
  • типа = route

Но это же ответ как название улицы без номера улицы.

Есть ли какой-либо способ: дифференцировать ответы API между «деревушками» и «улицей без номера»?
Спасибо за понимание.


[EDIT] Вот пример моего вопроса:

Оба возвращает е же location_type:

  • "location_type" : "GEOMETRIC_CENTER"
+0

У вас есть адрес, где это случается? – putvande

+0

@putvande: спасибо за ваш интерес. Я обновил свой вопрос на примере - дайте мне знать, если вам нужна какая-либо другая информация. – JMax

ответ

1

Короткий ответ - ваш пример Гамлет на самом деле решение Улица: Map Link

Чтобы ответить на ваш вопрос общего характера (например, угадывая вы это происходит в других местах, где это не на улице), а именно, как определить, как API-интерфейс геокодирования определил частичное совпадение. Если вы получаете маршрут, это означает, что вы вернули улицу (с номером или без номера). Гамлет должен отображаться как sublocality или neighborhood, если не его собственной местности (здесь, в Канаде, это то, что я видел):

  1. neighborhood
  2. sublocality

* Заметим, однако, что эти NOT действительные почтовые адреса в Канаде, что делает мои примеры немного отличающимися от указанных вами критериев.

Чтобы узнать, является ли маршрут точное совпадение или догадка, где коды состояния бывают:

От API Doc's:

"ROOFTOP" indicates that the returned result is a precise geocode for which we have location information accurate down to street address precision. 
"RANGE_INTERPOLATED" indicates that the returned result reflects an approximation (usually on a road) interpolated between two precise points (such as intersections). Interpolated results are generally returned when rooftop geocodes are unavailable for a street address. 
"GEOMETRIC_CENTER" indicates that the returned result is the geometric center of a result such as a polyline (for example, a street) or polygon (region). 
"APPROXIMATE" indicates that the returned result is approximate. 

Я бы ожидать, что вы увидите GEOMETRIC_CENTER чаще всего для neighborhood и sublocality и RANGE_INTERPOLATED чаще для дорог - но это догадка, и я думаю, что это зависит больше от того, сколько данных они имеют на месте и как алгоритм заканчивает вычисление точки.

Когда у вас есть Гамлет, возвращающийся как route Я не верю, что есть какой-либо способ сказать только из возвращаемых данных API геокодирования, что это то, что произошло. Единственное решение, о котором я мог думать, - это обработать эти случаи в коде в вашем приложении на основе списка известных проблем, но я вижу, что это очень проблематично и трудоемко.

Возможно, это связано с концепцией деревни как почтово-административной, которая не переводит на отображение данных вообще? Я попытался найти здесь La Croix и не повезло: http://www.laposte.com/find_a_post_code/find

Еще одно примечание. Если API геокодирования разрешил Гамлет, а также улицу, у вас должно было быть много результатов, например, Yarmouth Обратите внимание на список типов в конце говорит вам тип возвращаемых результатов, а если у вас есть несколько результатов: "types" : [ "locality", "political" ]

Update

мне нужно было еще несколько примеров для меня, и решил посмотреть на тех, которые были бы также приносит пользу вашему вопросу. Я нашел этот список French Hamlets. Попытка несколько я получил следующие результаты:

  1. Blessey: sublocality
  2. Бретиньи: sublocality
  3. Hautacam: Либо не может быть найден в целом или парк, и показывает, как locality
  4. La Mongie: sublocality
  5. Ветчина/духовенство: locality Похоже, что могут быть некоторые, которые появляются как населенные пункты - возможно, порог размера - многие из подреберностей невероятно малы.

Я думаю, что можно с уверенностью предположить, что если что-то оценивает как маршрут ваш результат на улице, а не Амо < - (и думать, что я сделал плохо во французском Погружение здесь, в Канаде). Также, если вы получаете маршрут и подболоченность в результатах, это безопасная ставка, которая есть.

И, наконец, если вы знаете, что у вас есть какая-либо подслона и НЕ улица, и вы хотите указать это по адресу, я не верю, что API Google позволяет это. Есть и другие services that do, like ESRI. Я их не использовал и не знаю, как работает лицензирование, но у него, как и у Google, есть как бесплатная, так и подписная услуга.

И только для полноты - Я думаю, что я нашел La Croix с помощью сайта ESRI в "address": "La Croix, L'Île-d'Yeu" записи из этого списка - Недостатком является то, что он не признает Fay-де-Бретань и дать однозначный ответ.

+0

Спасибо за ваш ответ. Я посмотрю с образцом тестов. – JMax

+0

Не проблема - я искал что-то подобное, когда я нашел ваш вопрос, в конечном итоге тоже решил мою проблему. Если у вас есть примеры деревень, которые идентифицируются как маршруты, когда они не оцениваются на дороге, это действительно поможет мне. – Matthew

+0

Мы не нашли никакого результата 'окрестности' во Франции ... Тем не менее, спасибо за ваш ответ и за вашу помощь и удачу для вашего проекта – JMax