Joss Posted September 16, 2016 Share Posted September 16, 2016 Вызов навигационной программы из стороннего приложения производится следующим образом (исх. код на 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, не меняя поворота карты и угла наклона. 2 Quote Link to post Share on other sites
/DiOs Posted September 16, 2016 Share Posted September 16, 2016 Це дiло! Quote Link to post Share on other sites
Fanat_SPB Posted September 16, 2016 Share Posted September 16, 2016 (edited) а задать финиш (сымиторовать поиск) текстом можно? вроде setroute /гагарина 2/ или search /гагарина 2/ Edited September 16, 2016 by Fanat_SPB Quote Link to post Share on other sites
Vlad_SP Posted September 16, 2016 Share Posted September 16, 2016 Хм, а что делать, если такого адреса не существует? (в текущем наборе карт например) Quote Link to post Share on other sites
Fanat_SPB Posted September 16, 2016 Share Posted September 16, 2016 (edited) 3 минуты назад, Vlad_SP сказал: Хм, а что делать, если такого адреса не существует? (в текущем наборе карт например) оставить забитым в поиске и все Edited September 16, 2016 by Fanat_SPB Quote Link to post Share on other sites
Vlad_SP Posted September 16, 2016 Share Posted September 16, 2016 Скрытый текст Исхитрись-ка мне добыть То-Чаво-Не-Может-Быть! Запиши себе названье, Чтобы в спешке не забыть! А не выполнишь к утру - В порошок тебя сотру, Потому как твой карахтер Мне давно не по нутру! Так что неча губы дуть, А давай скорее в путь! Государственное дело - Ты ухватываешь суть? (с) Quote Link to post Share on other sites
/DiOs Posted September 16, 2016 Share Posted September 16, 2016 55 минут назад, Fanat_SPB сказал: оставить забитым в поиске и все Толя, а кто искать-то должен? Запустить СГ и выполнить поиск? С какими параметрами (рядом, на карте, в регионе...)? А кто формировать-то запрос будет? А не проще этому формирователю обратиться к известным источникам информации и отдать в СГ уже координаты командами view или setroute? Quote Link to post Share on other sites
Fanat_SPB Posted September 16, 2016 Share Posted September 16, 2016 Here Maps (we go) прекрасно справляется с адресом гуглоконтакта в текстовом виде. и даже если адрес записан как "хз", то находит фирменный магазин Хз заря на проспекте Стачек Quote Link to post Share on other sites
/DiOs Posted September 16, 2016 Share Posted September 16, 2016 Начнём с простого: что такое API, для чего оно существует и в какую сторону работает? Quote Link to post Share on other sites
Fanat_SPB Posted September 16, 2016 Share Posted September 16, 2016 В API ситигида есть задать координаты. Почему бы не добавить задать текст поиску ситигида? Вот и весь мой вопрос. Quote Link to post Share on other sites
v_shutoff Posted September 16, 2016 Share Posted September 16, 2016 Еще бы для завершения СГ команду 2 Quote Link to post Share on other sites
/DiOs Posted September 16, 2016 Share Posted September 16, 2016 Поиска по ситигидовской базе, повторяю я вопрос из выше? О каком поиске речь? О сквозном? С какими параметрами? Только что, v_shutoff сказал: Еще бы для завершения СГ команду Во! Это действительно полезно! Quote Link to post Share on other sites
IШIN Posted September 16, 2016 Share Posted September 16, 2016 34 минуты назад, Fanat_SPB сказал: Почему бы не добавить задать текст поиску ситигида? Вот и весь мой вопрос. А Дима говорит - зачем доверять поиск Ситигиду (в котором поиска нет ©), если можно найти в том, где поиск есть, и заслать сразу координаты. 2 Quote Link to post Share on other sites
/DiOs Posted September 16, 2016 Share Posted September 16, 2016 Толя, намекаю ещё раз. API -- оно для обращения к СГ из внешней программы. Из которой сперва можно обратиться к нормальной поисковой системе, а потом вызвать СГ с координатами. 1 Quote Link to post Share on other sites
4e6yPaToP1981 Posted September 18, 2016 Share Posted September 18, 2016 (edited) Вот это круто! А команды вызова голосового поиска нет? Список команд не планируете расширять? Edited September 18, 2016 by 4e6yPaToP1981 Quote Link to post Share on other sites
Joss Posted September 18, 2016 Author Share Posted September 18, 2016 Вот это круто! А команды вызова голосового поиска нет? Список команд не планируете расширять? Пока не планируем, кроме, возможно, завершения программы. Отправлено с моего HTC One_M8 через Tapatalk Quote Link to post Share on other sites
omsk-gps.ru Posted September 23, 2016 Share Posted September 23, 2016 Если я не являюсь разработчиком собственных андроидных приложений, то мне данный API бесполезен ? Quote Link to post Share on other sites
/DiOs Posted September 23, 2016 Share Posted September 23, 2016 Ну в общем да... Quote Link to post Share on other sites
omsk-gps.ru Posted September 23, 2016 Share Posted September 23, 2016 и из нужных мне программ нет не одной с открытым кодом то совершенно бесполезен...... Quote Link to post Share on other sites
Udjine Posted September 24, 2016 Share Posted September 24, 2016 Толя, а кто искать-то должен? Запустить СГ и выполнить поиск? А не проще этому формирователю обратиться к известным источникам информации и отдать в СГ уже координаты командами view или setroute? Ну, тут могу поспорить, т.к. на наших картах месторасположения адреса в СитиГИД и в "известных источниках информации" может значительно отличаться. Так что я ЗА такую возможность! Отправлено с моего Redmi Note 3 через Tapatalk 1 Quote Link to post Share on other sites
Globus Posted September 24, 2016 Share Posted September 24, 2016 2 часа назад, Udjine сказал: ... т.к. на наших картах месторасположения адреса в СитиГИД и в "известных источниках информации" может значительно отличаться... А конкретные примеры можно? Я могу предположить, что разница может быть в том смысле, что один источник информации дает условную середину дома (или придомовой-междомовой территории) без учета общедоступных путей подъезда, а другой источник это учитывает, но это не имеет принципиального значения для думающего человека. Как и где удобнее запарковаться у нужного тебе объекта, всё равно приходится решать самому на месте - никакая навигационная программа (в обозримом будущем) не сможет помочь в этом смысле. Так что, алгоритм - нашел в поисковике, что нужно и передал в качестве финиша в СГ - считаю оптимальным на данном этапе. . Quote Link to post Share on other sites
Udjine Posted September 25, 2016 Share Posted September 25, 2016 Ребята, ну вы прям сегодняшние. Примеров - масса. Во первых, гугл знает не всё, особенно в небольших городах, типа таких, как я живу. Во вторых, даже если он и знает, то часто место расположения адреса отличается на дом-два, а то и квартал, если говорить о частном секторе. ПОИ вообще зачастую может не быть, или они на фонарь выставляются, могут быть и за 500 метров от реального месторасположения, даже не по той улице, а где-то в дебрях. Так тогда по вашему получается - чтоб нормально приехать куда-то, используя СитиГИД, мне что, надо параллельно поправлять карты гугл? Смысл тогда вообще в использовании СитиГида.. Ну и в третьих - если СитиГИД завел "не туда" - так это будет неточность карт СитиГида, о которых пользователь будет сообщать производителям карт, а не в гугл. А пока искать в "открытых источниках информации". Если хочется КОНКРЕТНЫХ примеров, так я без труда набросаю полсотни только по моему Светловодску как по адресу, так и по ПОИ. Отправлено с моего Redmi Note 3 через Tapatalk 1 Quote Link to post Share on other sites
-Vic- Posted September 25, 2016 Share Posted September 25, 2016 еще очень пригодились бы команды для изменения масштаба Quote Link to post Share on other sites
/DiOs Posted September 25, 2016 Share Posted September 25, 2016 Изменения чем? Внешним приложением??? Quote Link to post Share on other sites
-Vic- Posted September 25, 2016 Share Posted September 25, 2016 Да из внешнего приложения. Это поможет при использовании клавиатуры или какого-либо другого внешнего устройства, пульта, джойстика и т.п. Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.