Перейти по заданным координатам извне

Форум для обсуждения деталей разработки программы SAS.Планета

Модераторы: vdemidov, Tolik

Перейти по заданным координатам извне

Сообщение ladvip » 08 июл 2015, 14:32

Как приказать SAS-у перейти по заданным координатам из другой программы, или из командной строки. Я пишу прогу на Delphi и хочу внедрить в неё сохранение координат, а SAS будет использоваться как просматровщик.
ladvip
Новичок
 
Сообщения: 1
Зарегистрирован: 08 июл 2015, 14:26
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

Re: перейти по заданным координатам из вне

Сообщение zed » 08 июл 2015, 14:55

ladvip писал(а):Как приказать SAS-у перейти по заданным координатам из другой программы

Послать сообщение WM_COPYDATA с соответствующим содержанием. Про фичу можно почитать в багтрекере http://www.sasgis.org/mantis/view.php?id=1869 и посмотреть на реализацию в сорцах SAS-а - тестовая утилитка лежит в папке /Test/TestWMCopyData/.
Хитрости GoogleEarth - то, чего вы не знаете о гугле

За это сообщение автора zed поблагодарил:
ladvip (08 июл 2015, 16:27)
Аватара пользователя
zed
Гуру
 
Сообщения: 2888
ICQ: 357167611
Зарегистрирован: 16 авг 2008, 20:21
Откуда: Беларусь, Могилёв
Благодарил (а): 89 раз.
Поблагодарили: 525 раз.

Re: перейти по заданным координатам из вне

Сообщение echo » 23 сен 2015, 11:57

В дополнение темы, может кому пригодится: можно использовать запуск приложения с параметром
"C:\SAS.Planet\SAS.Planet.Nightly.150920.9091\SASPlanet.exe --map={F6574B06-E632-4D5F-BC75-C8FA658B57DF} --zoom=19 --move=(37.574999,55.776213)",
Тут ключ --move указывавает координаты перемещения, но пожалуй через WM_COPYDATA было бы правильнее чтоли, тут уж смотря из какого приложения.
echo
Новичок
 
Сообщения: 4
Зарегистрирован: 22 сен 2015, 11:35
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: перейти по заданным координатам из вне

Сообщение GREEN » 25 сен 2015, 21:03

Под эту фичу только перехватчика ссылок недостает, чтобы при нажатии ссылки на GOOGLe в браузере или скажем скайпе, она ткрывалась в SASe.

За это сообщение автора GREEN поблагодарил:
karat440 (10 сен 2016, 14:21)
GREEN
Новичок
 
Сообщения: 34
Зарегистрирован: 14 янв 2009, 16:40
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.

Re: перейти по заданным координатам из вне

Сообщение Parasite » 26 сен 2015, 05:44

ladvip писал(а):из вне

Из кого?? :facepalm:
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5614
ICQ: 15819243
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 119 раз.
Поблагодарили: 439 раз.

Re: перейти по заданным координатам из вне

Сообщение Johnson » 20 окт 2015, 14:49

echo писал(а):В дополнение темы, может кому пригодится: можно использовать запуск приложения с параметром
"C:\SAS.Planet\SAS.Planet.Nightly.150920.9091\SASPlanet.exe --map={F6574B06-E632-4D5F-BC75-C8FA658B57DF} --zoom=19 --move=(37.574999,55.776213)",
Тут ключ --move указывавает координаты перемещения, но пожалуй через WM_COPYDATA было бы правильнее чтоли, тут уж смотря из какого приложения.

А может кто-нибудь подсказать где можно глянуть полный список параметров, с которыми можно запускать САС?
Johnson
Новичок
 
Сообщения: 8
Зарегистрирован: 23 сен 2015, 00:32
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

Re: перейти по заданным координатам из вне

Сообщение vdemidov » 20 окт 2015, 15:30

Johnson писал(а):А может кто-нибудь подсказать где можно глянуть полный список параметров, с которыми можно запускать САС?

Самое надежное место - исходники САС. u_CmdLineArgProcessor.pas
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.

За это сообщение автора vdemidov поблагодарил:
Johnson (20 окт 2015, 16:25)
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1685
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 135 раз.

Re: перейти по заданным координатам из вне

Сообщение Johnson » 20 окт 2015, 16:35

Ага, спасибо, почти разобрался, кроме одного: не могу отработать --insert-placemark. Может кто увидит сходу ошибку в коде? (в генетическом всё норм ;) ) Вот это пихаю в консоль
Код: Выделить всё
D:\SAS.Planet.Release.141212\SASPlanet.exe --show-placemarks=1 --insert-placemark="Test Name";(27.5,53.9);"Test Description"

И либо отображаются ранее добавленные метки(если есть), либо ничего.
Johnson
Новичок
 
Сообщения: 8
Зарегистрирован: 23 сен 2015, 00:32
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

Re: перейти по заданным координатам из вне

Сообщение vdemidov » 20 окт 2015, 17:39

Увы, все что работает с базой меток, через командную строку пока не работает и в ближайшем будущем не заработает (База меток инициализируется асинхронно и позже обработки командной строки ). Только через отправку сообщений запущенной программе.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.

За это сообщение автора vdemidov поблагодарил:
Johnson (20 окт 2015, 18:36)
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1685
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 135 раз.

Re: перейти по заданным координатам из вне

Сообщение Johnson » 20 окт 2015, 18:46

vdemidov писал(а):Увы, все что работает с базой меток, через командную строку пока не работает и в ближайшем будущем не заработает (База меток инициализируется асинхронно и позже обработки командной строки ). Только через отправку сообщений запущенной программе.

Спасибо за ответ, теперь хоть буду точно знать, что попытки добавить метки из консоли надо оставить. А по поводу отправки сообщений может тоже подскажете какой формат понятен САСу? Вот, например, пытаюсь я отправить сообщение:
Код: Выделить всё
SendMessage(SASHandle, WM_COPYDATA, 0, lParam)

А в каком виде должен быть lParam? Буду благодарен за любую разъяснительную информацию.
Johnson
Новичок
 
Сообщения: 8
Зарегистрирован: 23 сен 2015, 00:32
Благодарил (а): 4 раз.
Поблагодарили: 0 раз.

След.

Вернуться в Раздел для разработчиков программы SAS.Планета

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2