2013-08-08 4 views
17

Я пытаюсь открыть карты Google из своего приложения, установив маршрут от текущей позиции телефона до фиксированной позиции. Я использую этот код:Открытые приложения для Google Maps для Google Maps, получающие инструкции, начиная с текущей позиции

String uri = "https://maps.google.com/maps?saddr=&daddr=example";   
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(uri)); 
startActivity(i); 

Проблема заключается в том, что я не знаю, что положить в saddr = ссылаться на мою текущую позицию. Я нашел много других подобных вопросов, но ответ не работал (например, оставить saddr = empty или saddr = Current, они не работают).

Я не хочу использовать собственный локатор Android, я просто хочу знать, есть ли способ спросить карты Google «начать с моей текущей позиции».

+0

Если вы нажмете на маркер карты, он должен перейти на навигацию Google? или вы хотите нарисовать маршруты из текущего местоположения? – Shadow

+0

Я хочу, чтобы мое приложение напрямую настраивалось с помощью намерения, называя карту, чтобы отобразить маршрут из текущего местоположения в фиксированное местоположение, так что пользователю не нужно самостоятельно настраивать навигацию –

ответ

19

Вы можете явно открыть его в режиме направления с параметром f=d. С этим набором и без начального адреса он должен использовать текущее местоположение устройства. Так больше похоже на это:

"https://maps.google.com/maps?f=d&daddr=berlin"

Примечание: Это не работает в браузере; он открывает страницу с пустым полем для запуска. Используется в намерении, отправленном в приложение родных карт, он работает правильно (по крайней мере, на моем 4.2.2 gNex).

+0

Это очень полезно.Если вы хотите использовать начальный адрес, отличный от вашего собственного местоположения, измените URL-адрес как «http://maps.google.com/maps?saddr=hamburg&daddr=berlin» '. Также работает в браузере (по крайней мере, в Chrome). – mass

4

в посте выше

https://maps.google.com/maps?f=d&daddr=berlin

Он спросит у Вас адрес источника не будет автоматически передать свой адрес источника вы должны выбрать его на карте пластырем,

Вы можете использовать GPS для эта цель ... после получения координат LatLng вы можете передать их url ... но она должна быть в f = a не f = d.

https://maps.google.com/[email protected]=LatLng&daddr=badlapur

+0

Я искал дни для этой строки запроса, спасибо !!! – samosaris

+0

Он по-прежнему берет ваше местоположение в качестве исходного адреса. Любая идея, как заставить это работать или конкретный шаг? –

2

Я просто использовал это и оно открылось прямо к картам google в режиме навигации от моего текущего местоположения до адреса, указанного в текстовой переменной. Текст должен быть в том же формате, как вы могли бы ввести его в строке поиска вашей собственной личности

Intent intent = new Intent(android.content.Intent.ACTION_VIEW,Uri.parse("google.navigation:q="+text)); 
startActivity(intent); 
0

Попробуйте это:

"https://www.google.com/maps/dir//41.3951982,-72.855568/41.279386,-72.825098" 

Вы можете иметь несколько мест, но начиная местоположение будет текущее местоположение.