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);
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);
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);
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);