Есть ли API для навигации по Google Maps в Android? - PullRequest
18 голосов
/ 04 марта 2011

Я занимаюсь разработкой приложения для Android, в котором я использую Карты Google.Это работает хорошо и хорошо.Но

После загрузки карты, когда пользователь нажал «Get Directions», Google Maps предлагает линию направления, однако нет возможности получить поворот поочередно с написанными указаниями.Если вы просто откроете Карты Google и получите маршруты, вы можете переключаться между картой и списком направлений.

Существует ли какой-либо API-интерфейс, позволяющий получить все функции, указанные на карте Google по умолчанию для устройства Android?

Ответы [ 5 ]

40 голосов
/ 13 марта 2012

Лучший способ узнать направление и маршруты вы можете использовать веб-сервис Google Maps. Это предоставит вам все. Я использовал это в своем приложении.

Вот пример, где saddr = адрес источника & daddr = адрес назначения (т.е. широта и долгота). Вы также можете передать строку как адрес вместо lat / lng.

final Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("http://maps.google.com/maps?" + "saddr="+ latitude + "," + longitude + "&daddr=" + latitude + "," + longitude));
    intent.setClassName("com.google.android.apps.maps","com.google.android.maps.MapsActivity");
                        startActivity(intent);

Надеюсь, это поможет вам.

8 голосов
/ 04 января 2014

Добавляя код Scorpion (который работает отлично), вы можете захотеть получить ваше текущее местоположение

    Location currentLocation = googleMap.getMyLocation();
    double latitudeCurr = currentLocation.getLatitude();
    double longitudeCurr = currentLocation.getLongitude();

saddr начальный адрес

daddr адрес получателя

    final Intent intent = new Intent(Intent.ACTION_VIEW,
    Uri.parse("+http://maps.google.com/maps?"  "saddr="
    + latitudeCurr + "," + longitudeCurr + "&daddr="
    + latitude + "," + longitude));
    intent.setClassName("com.google.android.apps.maps",
    "com.google.android.maps.MapsActivity");
    startActivity(intent);

Это то, что я использую в своем приложении

4 голосов
/ 04 марта 2011

Это должно помочь Маршруты / маршруты проезда на Android от mobile.synyx.de

читай -> Получение гео-точек из карт Google

0 голосов
/ 12 августа 2018

С 2018 года Google анонсировала SDK Google Maps Navigation.Вы можете увидеть следующую презентацию Google Maps Platform на I / O'18, где менеджеры по продуктам Google Maps упомянули SDK:

https://youtu.be/XVjyIA3f_Ic?t=20m31s

К сожалению, этот SDK в настоящее время недоступен публично,Вам необходимо связаться с отделом продаж, чтобы приобрести лицензию для этого SDK.Как я вижу, в настоящее время этот SDK есть только в таких крупных компаниях, предоставляющих услуги обмена данными, как Uber или Lyft.

В качестве альтернативы вы можете открыть приложение Google Maps в режиме навигации, используя URL-адреса Google Maps .URL-адреса Карт Google создают универсальный межплатформенный URL-адрес для запуска Карт Google, поэтому вы можете использовать их со своими намерениями.

Например

String url = "https://www.google.com/maps/dir/?api=1&destination=Madrid,Spain&origin=Barcelona,Spain&travelmode=driving&dir_action=navigate";           
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
0 голосов
/ 10 августа 2018

Вот решение.

Приведенное ниже намерение будет запрашивать пошаговую навигацию к зоопарку Таронга в Сиднее, Австралия, с вашего текущего местоположения GPS.

Uri gmmIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Вы можете указать широту и долготу вместо названия местоположения.

Uri gmmIntentUri = Uri.parse("google.navigation:q=-33.846346,151.239518");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

Проверьте здесь для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...