Перейти к публикации
GPS навигатор СитиГИД
Joss

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, не меняя поворота карты и угла наклона.
 

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Це дiло!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а задать финиш (сымиторовать поиск) текстом можно?

вроде setroute /гагарина 2/ или search /гагарина 2/

Изменено пользователем Fanat_SPB

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Хм, а что делать, если такого адреса не существует? (в текущем наборе карт например)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, Vlad_SP сказал:

Хм, а что делать, если такого адреса не существует? (в текущем наборе карт например)

оставить забитым в поиске и все

[p.png

 

Изменено пользователем Fanat_SPB

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Скрытый текст

 

Исхитрись-ка мне добыть

То-Чаво-Не-Может-Быть!

Запиши себе названье,

Чтобы в спешке не забыть!

 

А не выполнишь к утру -

В порошок тебя сотру,

Потому как твой карахтер

Мне давно не по нутру!

 

Так что неча губы дуть,

А давай скорее в путь!

Государственное дело -

Ты ухватываешь суть?

 

(с)

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
55 минут назад, Fanat_SPB сказал:

оставить забитым в поиске и все

Толя, а кто искать-то должен? Запустить СГ и выполнить поиск? С какими параметрами (рядом, на карте, в регионе...)? А кто формировать-то запрос будет? А не проще этому формирователю обратиться к известным источникам информации и отдать в СГ уже координаты командами view или setroute?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Here Maps (we go) прекрасно справляется с адресом гуглоконтакта в текстовом виде.

и даже если адрес записан как "хз", то находит фирменный магазин Хз заря на проспекте Стачек

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Начнём с простого: что такое API, для чего оно существует и в какую сторону работает?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В API ситигида есть задать координаты. Почему бы не добавить задать текст поиску ситигида? Вот и весь мой вопрос.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Еще бы для завершения СГ команду

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Поиска по ситигидовской базе, повторяю я вопрос из выше? О каком поиске речь? О сквозном? С какими параметрами?

Только что, v_shutoff сказал:

Еще бы для завершения СГ команду

Во! Это действительно полезно!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
34 минуты назад, Fanat_SPB сказал:

Почему бы не добавить задать текст поиску ситигида? Вот и весь мой вопрос.

А Дима говорит - зачем доверять поиск Ситигиду (в котором поиска нет ©), если можно найти в том, где поиск есть, и заслать сразу координаты.

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Толя, намекаю ещё раз. API -- оно для обращения к СГ из внешней программы. Из которой сперва можно обратиться к нормальной поисковой системе, а потом вызвать СГ с координатами.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот это круто! А команды вызова голосового поиска нет? Список команд не планируете расширять?


 

Изменено пользователем 4e6yPaToP1981

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Вот это круто! А команды вызова голосового поиска нет? Список команд не планируете расширять?



Пока не планируем, кроме, возможно, завершения программы.

Отправлено с моего HTC One_M8 через Tapatalk

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если я не являюсь разработчиком собственных андроидных приложений, то мне данный API бесполезен ? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну в общем да...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

и из нужных мне программ нет не одной с открытым кодом то совершенно бесполезен......

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Толя, а кто искать-то должен? Запустить СГ и выполнить поиск? А не проще этому формирователю обратиться к известным источникам информации и отдать в СГ уже координаты командами view или setroute?

Ну, тут могу поспорить, т.к. на наших картах месторасположения адреса в СитиГИД и в "известных источниках информации" может значительно отличаться.
Так что я ЗА такую возможность!


Отправлено с моего Redmi Note 3 через Tapatalk

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, Udjine сказал:


... т.к. на наших картах месторасположения адреса в СитиГИД и в "известных источниках информации" может значительно отличаться...
 

А конкретные примеры можно? Я могу предположить, что разница может быть в том смысле, что один источник информации дает условную середину дома (или придомовой-междомовой территории) без учета общедоступных путей подъезда, а другой источник это учитывает, но это не имеет принципиального значения для думающего человека. Как и где удобнее запарковаться у нужного тебе объекта, всё равно приходится решать самому на месте - никакая навигационная программа (в обозримом будущем) не сможет помочь в этом смысле. Так что, алгоритм - нашел в поисковике, что нужно и передал в качестве финиша в СГ - считаю оптимальным на данном этапе.

.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ребята, ну вы прям сегодняшние. Примеров - масса. Во первых, гугл знает не всё, особенно в небольших городах, типа таких, как я живу. Во вторых, даже если он и знает, то часто место расположения адреса отличается на дом-два, а то и квартал, если говорить о частном секторе. ПОИ вообще зачастую может не быть, или они на фонарь выставляются, могут быть и за 500 метров от реального месторасположения, даже не по той улице, а где-то в дебрях.
Так тогда по вашему получается - чтоб нормально приехать куда-то, используя СитиГИД, мне что, надо параллельно поправлять карты гугл? Смысл тогда вообще в использовании СитиГида..
Ну и в третьих - если СитиГИД завел "не туда" - так это будет неточность карт СитиГида, о которых пользователь будет сообщать производителям карт, а не в гугл. А пока искать в "открытых источниках информации".
Если хочется КОНКРЕТНЫХ примеров, так я без труда набросаю полсотни только по моему Светловодску как по адресу, так и по ПОИ.

Отправлено с моего Redmi Note 3 через Tapatalk


  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

еще очень пригодились бы команды для изменения масштаба

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Изменения чем? Внешним приложением???

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да из внешнего приложения.

Это поможет при использовании клавиатуры или какого-либо другого внешнего устройства, пульта, джойстика и т.п.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×