Перейти к содержанию
GPS навигатор СитиГИД

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

Ссылка на сообщение
Поделиться на другие сайты
  • Joss закрепил тема

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

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

Изменено пользователем Fanat_SPB
Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

[p.png

 

Изменено пользователем Fanat_SPB
Ссылка на сообщение
Поделиться на другие сайты
Скрытый текст

 

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

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

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

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

 

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

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

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

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

 

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

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

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

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

 

(с)

 

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


 

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



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

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

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

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

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

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

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

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


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

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


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

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

.

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

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

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


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

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

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

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

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

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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...