Запуск приложения Google Maps с предоставленным местоположением и маркером
Из моего приложения я хотел бы запустить приложение Google Maps с предоставленным местоположением и маркером. Маркер должен указывать, что в этом месте есть что-то.
На данный момент у меня есть следующий код, который начинается с намерения приложения Google Maps с предоставленным местоположением (51.49234, 7.43045).
startActivity(
new Intent(
android.content.Intent.ACTION_VIEW,
Uri.parse("geo:51.49234,7.43045")));
Когда приложение Google Maps запускается, оно выглядит следующим образом:
![enter image description here]()
Не отображается маркер. Я хотел бы, чтобы приложение Google Maps отображало маркер в этой позиции, который предоставляется через Intent. Есть ли какой-либо "скрытый" URI Intent, который я могу использовать для показа маркера в приложении Google Maps?
Спасибо заранее.
Решение
@Rajiv M. указал мне на идею опроса окружения с данным местоположением.
Итак, решение таково: запросите окружение вашего данного местоположения с заданным вами местоположением в качестве параметра. URI выглядит так:
geo:51.49234,7.43045?q=51.49234,7.43045
Google Maps покажет результат запроса как название улицы:
![enter image description here]()
Вид взлома, но, похоже, он работает хорошо.
Почему вы не должны использовать 0,0 в качестве местоположения карты
geo:0,0?q=51.49234,7.43045
Когда вы запустите приложение "Карты Google" с предоставленной точкой местоположения карты 0,0, приложение Google Maps начнет поиск вашей текущей позиции устройства. И это требует времени. В некоторых случаях, когда сигнал GPS не предоставляется, слишком много. До этого приложение Google Maps начнет поиск вашего запроса 51.49234,7.43045.
Ответы
Ответ 1
Попробуйте запустить Google Maps с использованием того же намерения, но с URI формата:
geo:34.067214,-118.349332?q=410+Hauser+Boulevard,+Los+Angeles,+CA
то есть. гео: 0,0 кв = улица + адрес
Затем приложение должно фактически показать точку на этом адресе. Если у вас нет адреса, вам может понадобиться использовать услугу, чтобы перевести ее на адрес для этого.
-
Другой вариант - встроить MapView в ваше приложение и добавить в него маркер. Учебник по использованию MapViews/Markers с-в вашем приложении можно найти в http://mobiforge.com/developing/story/using-google-maps-android.
Ответ 2
Возможно, вы можете попробовать установить ur uri, как показано ниже:
Uri uri = Uri.parse( " http://maps.google.com/maps?q=" + _lat + "," + _ lon);
По крайней мере, приведенный выше код работает для меня. Это помогает мне добавить булавку в верхней части местоположения, которое я ищу. кроме того, точка булавки будет иметь небольшое диалоговое окно для нажатия, оно предоставляет мне функцию поиска направления в этом месте.: D