МЕНЮ
Вы, регистрируясь и/или вводя свои данные в форму даете своё согласие на получение рассылки материалов рекламного и/или информационного характера от общества с ограниченной ответственностью "ОМСК-ДжиПС.РУ",
Войти на сайт
- Форум
- СитиГид
- Главный раздел
- Навигационные программы
- Навигационная программа "СитиГИД"
- API для вызова СитиГИД, GeoNET, bGEO для Android
API для вызова СитиГИД, GeoNET, bGEO для Android
- Admin
- Автор темы
- Не в сети
- Поддержка
-
Super Users
25 апр 2017 09:47 - 25 апр 2017 09:50 #1
от Admin
Admin создал тему: API для вызова СитиГИД, GeoNET, bGEO для Android
Вызов навигационной программы из стороннего приложения производится следующим образом (исх. код на Java с использованием Android API):
try {
Intent intent=new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("vnd.android.cursor.item/vnd.net.probki.cityguide.cmd");
intent.setPackage("cityguide.probki.net"); // здесь указывается имя пакета программы
intent.putExtra(Intent.EXTRA_TEXT,"cgcmd ..."); // здесь вместо ... пишутся команды
startActivity(intent);
}
catch(Exception ex) {
}
Имена пакетов для setPackage следующие:
- "cityguide.probki.net" для программы CityGuide (как указано в примере выше)
- "net.probki.geonet" для программы GeoNet
- "net.probki.bgeo" для программы bGeo
Внимание! Параметр
setType("vnd.android.cursor.item/vnd.net.probki.cityguide.cmd")
для всех программ остается неизменным.
Вызов Intent приводит к тому что навигационная программа запускается (если не была до этого запущена) и выходит на передний план.
Команды задаются строкой как EXTRA_TEXT для Intent. Если строку не задавать, то навигационная программа просто выводится на передний план.
Командная строка должна начинаться с ключевого слова cgcmd. Если это не так, то вся строка полностью игнорируется.
Каждая команда состоит из ключевого слова, за которым могут следовать несколько параметров, разделенных пробелами.
Поддерживаются следующие команды:
delroute
Удалить текущий маршрут. Дополнительных параметров нет.
setroute <N> <lat1> <lon1> <lat2> <lon2> ...
Задать маршрут. Параметры:
<N> - количество точек маршрута. Последняя точка является финишем, остальные - промежуточными точками маршрута.
Далее следуют <N> пар "широта долгота", заданные в градусах. Например: setroute 1 60.367 30.5
view <lat> <lon> <orient> <incline> <scale>
Задать отображение карты. Параметры:
<lat> <lon> - широта и долгота точки отображения в градусах. Можно указать 0 0, тогда точка не меняется.
<orient> - поворот карты. Целочисленное значение в градусах в пределах от -360 до +360. При других значениях поворот карты не меняется.
<incline> - наклон перспективы. Целочисленное значение в градусах от 0 до 80. При отрицательном значении наклон не меняется.
<scale> - масштаб отображения. Целочисленное значение знаменателя. При значении 0 масштаб не меняется.
hide
Убрать навигационную программу с экрана в фоновый режим. Дополнительных параметров нет. Команда имеет смысл если программа находится на переднем плане.
Несколько команд можно указывать друг за другом в одной строке. Пример общей командной строки:
"cgcmd delroute setroute 1 60.367 30.5 view 60.367 30.5 361 -1 100000"
Это означает:
- Удалить имеющийся маршрут.
- Задать новый маршрут единственной точкой финиша в координатах <60.367N 30.5E>.
- Отобразить заданные координаты на экране в масштабе 1:100000, не меняя поворота карты и угла наклона.
try {
Intent intent=new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.setType("vnd.android.cursor.item/vnd.net.probki.cityguide.cmd");
intent.setPackage("cityguide.probki.net"); // здесь указывается имя пакета программы
intent.putExtra(Intent.EXTRA_TEXT,"cgcmd ..."); // здесь вместо ... пишутся команды
startActivity(intent);
}
catch(Exception ex) {
}
Имена пакетов для setPackage следующие:
- "cityguide.probki.net" для программы CityGuide (как указано в примере выше)
- "net.probki.geonet" для программы GeoNet
- "net.probki.bgeo" для программы bGeo
Внимание! Параметр
setType("vnd.android.cursor.item/vnd.net.probki.cityguide.cmd")
для всех программ остается неизменным.
Вызов Intent приводит к тому что навигационная программа запускается (если не была до этого запущена) и выходит на передний план.
Команды задаются строкой как EXTRA_TEXT для Intent. Если строку не задавать, то навигационная программа просто выводится на передний план.
Командная строка должна начинаться с ключевого слова cgcmd. Если это не так, то вся строка полностью игнорируется.
Каждая команда состоит из ключевого слова, за которым могут следовать несколько параметров, разделенных пробелами.
Поддерживаются следующие команды:
delroute
Удалить текущий маршрут. Дополнительных параметров нет.
setroute <N> <lat1> <lon1> <lat2> <lon2> ...
Задать маршрут. Параметры:
<N> - количество точек маршрута. Последняя точка является финишем, остальные - промежуточными точками маршрута.
Далее следуют <N> пар "широта долгота", заданные в градусах. Например: setroute 1 60.367 30.5
view <lat> <lon> <orient> <incline> <scale>
Задать отображение карты. Параметры:
<lat> <lon> - широта и долгота точки отображения в градусах. Можно указать 0 0, тогда точка не меняется.
<orient> - поворот карты. Целочисленное значение в градусах в пределах от -360 до +360. При других значениях поворот карты не меняется.
<incline> - наклон перспективы. Целочисленное значение в градусах от 0 до 80. При отрицательном значении наклон не меняется.
<scale> - масштаб отображения. Целочисленное значение знаменателя. При значении 0 масштаб не меняется.
hide
Убрать навигационную программу с экрана в фоновый режим. Дополнительных параметров нет. Команда имеет смысл если программа находится на переднем плане.
Несколько команд можно указывать друг за другом в одной строке. Пример общей командной строки:
"cgcmd delroute setroute 1 60.367 30.5 view 60.367 30.5 361 -1 100000"
Это означает:
- Удалить имеющийся маршрут.
- Задать новый маршрут единственной точкой финиша в координатах <60.367N 30.5E>.
- Отобразить заданные координаты на экране в масштабе 1:100000, не меняя поворота карты и угла наклона.
Последнее редактирование: 25 апр 2017 09:50 пользователем Admin.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Форум
- СитиГид
- Главный раздел
- Навигационные программы
- Навигационная программа "СитиГИД"
- API для вызова СитиГИД, GeoNET, bGEO для Android
Время создания страницы: 0.123 секунд