Геокодер getFromLocationName не находит адрес

Геокодер getFromLocationName ничего не возвращает, если я ищу бизнес-места. Вот мой вывод:

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

Я тестировал это на устройствах 1.6, 2.1 и 2.2 с Google Maps.

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

Количество деталей в описании местоположения с обратным геокодированием может варьироваться, например, одно может содержать полный адрес ближайшего здания, а другое может содержать только название города и почтовый индекс. Классу Geocoder требуется серверная служба, которая не включена в базовую структуру Android. Методы запроса геокодера вернут пустой список, если на платформе нет серверной службы (http://developer.android.com/reference/android/location/Geocoder.html)

[update] Итак, после нескольких ночей исследования я не могу заставить его работать - Google просто не даст мне результат. Некоторые обсуждения разработчиков Android указывают на тот факт, что getFromBusinessName был опущен при выходе Google Navigation. Итак, я начинаю предполагать, что Google отказывается от некоторых из своих служб геокодирования.

Я всегда могу создать веб-страницу, использующую Google Geocoder API, но она ограничена вызовом API 2500 - и я не думаю, что это будет законно (смеется). Итак, какие у меня здесь альтернативы?


person LawrenceGS    schedule 20.07.2010    source источник
comment
Вы нашли ответ? Или как-то обойти эту проблему? Я пытался найти веб-сервис или что-то в этом роде, но найти что-то бесплатное для бизнес-поиска не так-то просто. Более того, SOAP - настоящее дерьмо для использования на Android, даже с Ksaop. Посмотрите, что я нашел в своем logCat: при поиске по бизнесу у меня есть такая ошибка: LocationMasfClient forwardGeocode (): нет функции в GLocation. Но для точного поиска, когда я прошу свой адрес, эта ошибка нет!   -  person    schedule 23.07.2010
comment
Да, школы, общественные некоммерческие / некоммерческие здания, как правило, есть. Однако он возвращает только широту / долготу, а не адрес. Поэтому, если я буду искать свой адрес, он вернет координату. Если я реверсирую геокодирование этой координаты - я получу другой адрес. Это так неправильно ... Альтернативы пока нет, но я начинаю искать simplegeo.com. Сообщите мне вашу находку!   -  person LawrenceGS    schedule 23.07.2010
comment
У меня та же проблема, хотя я ищу НЕ служебный адрес, а общий конкретный почтовый адрес.   -  person Yar    schedule 16.02.2015


Ответы (3)


Я столкнулся с той же проблемой. Я обнаружил, что API геокодирования часто не возвращает результатов, если я включаю название компании / места проведения, но если его не указать, широта и долгота могут быть гораздо менее точными.

Я реализовал прагматичное решение: 1. Вызов API со строкой, включающей название компании / места проведения. 2. Если это не удается, вызовите его во второй раз без названия компании / места проведения, только с адресом.

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

person Ollie C    schedule 11.11.2010
comment
Вы вызываете это с помощью getFromLocationName? - person LawrenceGS; 03.12.2010

Мне не удалось найти кнопку, чтобы ответить, но, как и все вы, я столкнулся с той же проблемой. Я еще не пробовал, но звучит довольно солидно. Возможный обходной путь находится здесь:

Использование API Карт Google для получения адреса компании

Удачного кодирования :)

Изменить: забудьте об этой ссылке и проверьте эту: http://code.google.com/apis/maps/documentation/places/

person tricknology    schedule 09.02.2012

Попробуйте такой подход:

1) Используйте геокодер для преобразования широты и долготы в адрес
2) Выполните вызов API для Whitepages (или аналогичной службы), в частности, метода reverse_address, который даст вам название компании для указанного адреса.

person rb512    schedule 25.07.2011