Intereting Posts
Ограничения Android, REST и HATEOAS Как нажать кнопку Android, затем перейдите в Google Play приложения Android lint SharedPreferences.Editor.apply () предупреждение Firebase storage FirebaseApiNotAvailableException многократно в журнале, когда он отключен Как выполнить файл dex в android с помощью команды? Странная ошибка с использованием onCreateView в PreferenceFragment при вызове addPreferencesFromResource из onCreate В настройках выберите мой звук так же, как с помощью RingtonePreference Загрузка ресурса в изменяемое растровое изображение Как сохранить данные из edittext в базу данных android sqlite? Использовать Календарь в эмуляторе Android 4.0 + Каков правильный способ обработки подписки в RxJava / RxAndroid для жизненного цикла активности? Ошибки при записи звука в Android Обнаружение, если был получен ответ на исходящий вызов Добавить проект ZXing android в качестве библиотеки в андроид-студии Показ неопределенного прогресса в Школе Action Bar

Предназначение Google Navigation для маршрута с несколькими путевыми точками

Я хочу знать, если можно добавить несколько «контрольных точек» в «Навигация Google» (Навигация на Google Картах) С запросом, следующим за следующим синтаксисом: "google.navigation:q=44.871709,-0.505704...."

Если возможно, что такое синтаксис для отдельных двух точек?

Для одной точки это работает, например: "google.navigation:q=44.871709,-0.505704"

Но я бы поставил несколько контрольных точек, например:

  LatLng point1 = new LatLng(44.871709,-0.505704); LatLng point2 = new LatLng(43.572665,3.871447); Intent(android.content.Intent.ACTION_VIEW,Uri.parse("google.navigation:q="+ point1.latitude+","+point1.longitude+";"+ point2.latitude+","+point2.longitude)); 

Я читаю другие вопросы, они говорят, что используют этот синтаксис:

 "http://maps.google.com/maps?saddr="+"44.871709,-0.505704"+"&daddr="+"43.572665,3.871447" 

С помощью вышеуказанного решения «Навигация Google» не запускается автоматически, мы должны выбрать одно приложение «Карты Google», а затем нажать «Маршрут» (вверху экрана), чтобы начать «Навигация Google». Я хотел бы избежать этого, если это возможно.

    Вот способ подавить диалог и перейти к картам напрямую.

     String uri = "http://maps.google.com/maps?saddr="+"44.871709,-0.505704"+"&daddr="+"43.572665,3.871447"; Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri)); intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); startActivity(intent); 

    Дайте мне знать, если у вас все еще есть проблемы.

    ОБНОВИТЬ

    По состоянию на май 2017 года существует лучший подход, API URL-адресов Google Maps

    https://developers.google.com/maps/documentation/urls/guide

    Используя этот API, вы можете создать URL-адрес с указанием источника, адресата и путевых точек и передать его намерению

     String uri = "https://www.google.com/maps/dir/?api=1&origin=Madrid,Spain&destination=Barcelona,Spain&waypoints=Zaragoza,Spain%7CHuesca,Spain&travelmode=driving&dir_action=navigate"; Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri)); intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); startActivity(intent); 

    Проверьте эти 2 метода, оба они работают правильно для меня.

    МЕТОД 1:

      String packageName = "com.google.android.apps.maps"; String query = "google.navigation:q=49.4839509,8.4903999"; Intent intent = this.getPackageManager().getLaunchIntentForPackage(packageName); intent.setAction(Intent.ACTION_VIEW); intent.setData(Uri.parse(query)); startActivity(intent); 

    СПОСОБ 2:

      String packageName = "com.google.android.apps.maps"; String query = "google.navigation:q=49.4839509,8.4903999"; Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(query)); intent.setPackage(packageName); startActivity(intent); 

    Поскольку point1.longitude Double, вы должны использовать это

     String.valueOf(point1.latitude); Intent(android.content.Intent.ACTION_VIEW,Uri.parse("google.navigation:q="+String.valueOf(point1.latitude)+","+String.valueOf(point1.longitude)+";"+String.valueOf( point2.latitude)+","+String.valueOf(point2.longitude))); 

    Или вы можете использовать это, но все равно.

     point1.toString().replace("lat/lng: (", "").replace(")", "") 

    Point1.toString () результат: «lat / lng: (44.871709, -0.505704)», удалите «lat / lng: (« и »)». То вы можете получить результат, который вы хотите.

     Intent(android.content.Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?saddr="+point1.toString().replace("lat/lng: (", "").replace(")", "")+"&daddr="+point2.toString().replace("lat/lng: (", "").replace(")", ""))); 

    Или вы можете попробовать это

     Uri uri = Uri.parse("http://maps.google.com/mapssaddr="+point1.toString().replace("lat/lng: (", "").replace(")", "")+"&daddr="+point2.toString().replace("lat/lng: (", "").replace(")", "")); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); 

    Я надеюсь это тебе поможет.

    Вам нужно просто передать место назначения. Карта Google автоматически берет ваше текущее местоположение для навигации.

    Intent intent = new Intent (android.content.Intent.ACTION_VIEW, Uri.parse ("google.navigation: q =" + String.valueOf (широта назначения) + "," + String.valueOf (долгота назначения)));

    startActivity (намерение);