API Навител Навигатор

Навигатор поддерживает обработку следующих интентов из внешних приложений:

  • показать карту по заданной точке
  • построить маршрут к заданной точке по координатам
  • построить маршрут к заданной точке по ее имени

1. Показ точки

Интент Intent.ACTION_VIEW
с URI-схемой geo (rfc5870).
Формат схемы geo можно посмотреть например по адресу: https://en.wikipedia.org/wiki/Geo_URI_scheme

Параметры:


in:Uri:string - строка Uri вида geo:lat,long,alt, в которой
lat - float, от -90 до 90, широта
long - float, от -180 до 180, долгота
alt - float, высота

Пример использования:


Uri intentUri = Uri.parse("geo:37.7749,-122.4194,128");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, intentUri);
mapIntent.setPackage("com.navitel");
if (mapIntent.resolveActivity(getPackageManager()) == null) {
        // Navitel не установлен, откроем страницу в маркете
        mapIntent = new Intent(Intent.ACTION_VIEW);
        mapIntent.setData(Uri.parse("market://details?id=com.navitel"));
}
startActivity(mapIntent);

2. Построение маршрута к точке по координатам

Интент Intent.ACTION_VIEW
со схемой google.navigation
Параметры:
in:Uri:string - строка Uri вида google.navigation:ll=lat,long, в которой
lat - float, от -90 до 90, широта
long - float, от -180 до 180, долгота

Пример использования:


Uri intentUri = Uri.parse("google.navigation:ll=37.786971,-122.399677");
Intent routeIntent = new Intent(Intent.ACTION_VIEW, intentUri);
routeIntent.setPackage("com.navitel");
if (routeIntent.resolveActivity(getPackageManager()) != null) {
        // Navitel не установлен, откроем страницу в маркете
        routeIntent = new Intent(Intent.ACTION_VIEW);
        routeIntent.setData(Uri.parse("market://details?id=com.navitel"));
}
startActivity(routeIntent);

3. Построение маршрута к точке по имени точки

Интент Intent.ACTION_VIEW
со схемой navitelApi:navigate/to/waypoint
Параметры:
in:Uri:string - строка Uri вида navitelApi:navigate/to/waypoint/name, в которой
name:string - строка с именем точки

Пример использования, проложить маршрут в точку Home:


Uri intentUri = Uri.parse("navitelApi:navigate/to/waypoint/Home");
Intent routeIntent = new Intent(Intent.ACTION_VIEW, intentUri);
routeIntent.setPackage("com.navitel");
if (routeIntent.resolveActivity(getPackageManager()) == null) {
        // Navitel не установлен, откроем страницу в маркете
        routeIntent = new Intent(Intent.ACTION_VIEW);
        routeIntent.setData(Uri.parse("market://details?id=com.navitel"));
}
startActivity(routeIntent);