Автозаполнение мест для устройств Android

Мне нужна функция автозаполнения как для уличных анемий, так и для бизнеса. геокодер из пакета местоположения не дает мне того, что мне нужно. Я проверил Google Labs Places JSON API, но ответы на этот запрос дают вам только имена и идентификаторы мест, а не долготу, для этого вам нужен дополнительный ответ, который может замедлить отображение автоматически заполненного местоположения на карте.

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


person codeScriber    schedule 22.10.2011    source источник


Ответы (1)


Это то, что я нашел в результате долгих поисков:

По сути, JSON API для API мест от Google имеет две функции: одну для поиска местоположений и одну для автозаполнения, обе скрытые в коде LABS в PLACES API. Чтобы это стоило того:

  1. реализовать какой-то пул соединений или пул запросов\ответов, чтобы иметь несколько доступных для вас запросов, если вы хотите отменить его в середине или полностью убить, у вас должна быть такая очередь. LWUIT IO может стать хорошей отправной точкой.
  2. когда пользователь вводит текст в EditText, используйте TextWatcher для отправки запросов автозаполнения, уничтожайте предыдущий запрос, если он еще не поступил, и отображайте результаты в ListView, чтобы пользователь мог выбрать вариант.
  3. в вашем макете также должна быть кнопка поиска. если пользователь выбрал элемент автозаполнения из списка, только что вставленный в EditText (не забудьте отключить textWatcher, пока вы это делаете, включите его снова после этого!), если пользователь нажимает на поиск, выполняет поисковый запрос JSON и показывает результат в другом ListView.

Это в значительной степени то, что API Javasciript предоставляет вам более удобным способом. Вы всегда можете использовать WebView с java-скриптом API карт и картой и передавать обратные вызовы в WebView JS с помощью Android JavaScriptInterfaces.

person codeScriber    schedule 08.11.2011