#android #google-maps-api-3 #geolocation
#Android #google-maps-api-3 #геолокация
Вопрос:
Мне нужна функция автозаполнения как для уличных объектов, так и для предприятий. геокодер из пакета location не дает мне того, что мне нужно. Я проверил google labs Places JSON API, но ответы на этот запрос дают вам только названия мест и идентификатор, а не lat long, для этого вам нужен дополнительный ответ, который может замедлить отображение автоматически заполненного местоположения на карте.
Существует ли какой-либо другой api, в котором ответ должен содержать Boh имена и last long (примите во внимание, что у меня не будет обязательно lat long для самого запроса, поскольку я могу искать места в очень отдаленном месте, которое не связано с моим текущим местоположением.
Ответ №1:
Это то, что я нашел в результате долгих поисков:
По сути, JSON API для places API от Google имеет две функции: одну для поиска местоположений и одну для автозаполнения, обе скрыты в коде LABS в разделе PLACES API. Чтобы это стоило того:
- внедрите какой-то пул соединений или пул запросов ответов, чтобы у вас было несколько запросов, доступных для вас, если вы хотите отменить его посередине или вообще уничтожить, у вас должна быть такая очередь. LWUIT IO может быть хорошей основой для начала.
- когда пользователь вводит текст в EditText, используйте TextWatcher для отправки запросов на автозаполнение, завершите предыдущий запрос, если он еще не поступил, и отобразите результаты в ListView, чтобы пользователь мог выбрать вариант.
- в вашем макете также должна быть кнопка поиска. если пользователь выбрал элемент автозаполнения из списка, просто введенного в EditText (не забудьте отключить TextWatcher, пока вы это делаете, включите его снова после этого!), Если пользователь нажмет на search, выполните поисковый запрос JSON и отобразите результат в другом ListView.
Это в значительной степени то, что API Javasciriptпредоставляет вам более удобным способом. Вы всегда можете использовать WebView с Java-скриптом maps api и картой и передавать обратные вызовы в WebView JS с помощью интерфейсов Android JavaScriptInterfaces.