SASGIS - SAS.Планета
View Issue Details
0002613SAS.Планета[All Projects] Хотелкаpublic29-01-2015 13:1214-06-2016 08:32
Arech 
zed 
noneminoralways
resolvedfixed 
141212 
160606160606 
0002613: Организация произвольных карт+слоёв в наборы для быстрого переключения между ними
Уважаемые друзья. "Во первых строках" письма спешу от всей души поблагодарить вас за превосходную SAS.Планету! Это просто праздник какой-то! :)

К делу:
Заметил, что в работе с программой постоянно возникает один и тот же паттерн излишних действий, связанных с переключением отображаемых карт и слоёв. Например, изучаем местность вокруг реки на предмет выехать туда порыбачить. Нужны как минимум 2 разных набора карт, которые в принципе невозможно совместить:
1) спутниковая съёмка + гидрография OSM + гидрография с Навиониксов (ааа!! огромнейшее вам спасибо, что подключили их!!!) ==> для поиска интересных мест на самом водоёме.
2) карта + слои рельефа + слои автодорог и пешеходки и другие ==> для определения состояния берега и способов добраться до воды.

И вот при переключении с одного на другое (что в процессе исследования приходится делать сотни раз) приходится каждый раз подключать и отключать нужные и ненужные слои, что является очень утомительным...

Было бы очень здорово и удобно, если бы существовала возможность создавать пресеты из карты+набора слоёв, которые можно было бы вешать на хоткеи и использовать при необходимости.

Workaround:
1. Возможно можно запускать одновременно несколько копий программы и каждой копии настраивать нужное отображение. Но не сойдёт ли с ума тайловый кеш или какие другие части программы от параллельного изменения/использования?
2. Если как-то можно "задать" такой набор другим способом, например, аналогично тому, как описываются дополнительные карты и слои (если этот механизм позволяет объединять и карты и слои в один пункт меню) - прошу послать меня по адресу, где это описывается :)

Огромное спасибо за великолепный, просто душеспасительный! софт ещё раз)) и удачи!)
VIP, избранное
has duplicate 0000951closed zed Создать меню Избранное для карт и слоёв 
related to 0002926resolved zed Расширить функционал избранных карт, добавив избранные места 
? SASPlanet.Debug.elf (75,617) 09-12-2015 20:50
https://bugtracker.sasgis.org/file_download.php?file_id=1985&type=bug
jpg fav.jpg (121,855) 12-12-2015 18:57
https://bugtracker.sasgis.org/file_download.php?file_id=1993&type=bug
jpg
Issue History
29-01-2015 13:12ArechNew Issue
29-01-2015 19:14GarlNote Added: 0015173
30-01-2015 08:15vdemidovPrioritynormal => none
30-01-2015 08:15vdemidovStatusnew => confirmed
30-01-2015 08:15vdemidovProduct Version => 141212
30-01-2015 08:15vdemidovTarget Version => 40xxxx
30-01-2015 08:16vdemidovNote Added: 0015180
31-01-2015 11:51zedNote Added: 0015188
31-01-2015 12:26vdemidovNote Added: 0015190
31-01-2015 14:24ArechNote Added: 0015191
31-01-2015 14:31ArechNote Added: 0015192
31-01-2015 14:57ArechNote Added: 0015193
31-01-2015 20:40vdemidovNote Added: 0015208
31-01-2015 20:41vdemidovNote Edited: 0015208bug_revision_view_page.php?bugnote_id=15208#r6396
05-12-2015 20:43zedAssigned To => zed
05-12-2015 20:43zedStatusconfirmed => assigned
05-12-2015 20:43zedTag Attached: VIP
05-12-2015 20:43zedTarget Version40xxxx => 160606
09-12-2015 19:14zedNote Added: 0016880
09-12-2015 20:44GarlNote Added: 0016881
09-12-2015 20:44GarlNote Edited: 0016881bug_revision_view_page.php?bugnote_id=16881#r6814
09-12-2015 20:45zedNote Added: 0016882
09-12-2015 20:46GarlNote Edited: 0016881bug_revision_view_page.php?bugnote_id=16881#r6815
09-12-2015 20:50GarlFile Added: SASPlanet.Debug.elf
09-12-2015 20:51GarlNote Added: 0016883
09-12-2015 20:57zedNote Added: 0016884
09-12-2015 21:01GarlNote Added: 0016885
10-12-2015 19:19zedNote Added: 0016895
11-12-2015 08:33TolikNote Added: 0016896
11-12-2015 08:50zedNote Added: 0016897
12-12-2015 13:24zedRelationship addedrelated to 0002926
12-12-2015 13:46TolikNote Added: 0016910
12-12-2015 18:57GarlNote Added: 0016920
12-12-2015 18:57GarlFile Added: fav.jpg
13-12-2015 17:41zedNote Added: 0016929
14-12-2015 06:52TolikNote Added: 0016937
14-12-2015 07:51zedNote Added: 0016938
14-12-2015 11:40vdemidovNote Added: 0016941
14-12-2015 11:42vdemidovNote Edited: 0016941bug_revision_view_page.php?bugnote_id=16941#r6834
14-12-2015 11:48TolikNote Added: 0016942
14-12-2015 18:26zedStatusassigned => resolved
14-12-2015 18:26zedFixed in Version => 160606
14-12-2015 18:26zedResolutionopen => fixed
01-06-2016 20:28zedRelationship addedrelated to 0000951
02-06-2016 11:07zedRelationship replacedhas duplicate 0000951
14-06-2016 08:32vdemidovTag Attached: избранное

Notes
(0015173)
Garl   
29-01-2015 19:14   
в дополнении к хотелке:
для слоёв сделать возможность использовать нескольких слоёв и карту на один хоткей, в теории получится реализация хотелки. ИМХО
(0015180)
vdemidov   
30-01-2015 08:16   
Не совсем, если просто позволять одинаковые хоткеи, то слой может входить только в одну группу, а если сделать наборы карта+слои, то слой может входить в произвольное число групп.
(0015188)
zed   
31-01-2015 11:51   
Опишите, как вы это видите в программе, с точки зрения пользовательского интерфейса?
(0015190)
vdemidov   
31-01-2015 12:26   
Ну лично я представляю это как отдельную закладку в настройках где можно добавить группу, с хоткеем, главной картой (необязательн) и набором слоев. Первое нажатие на хоткей меняет активирует все слои и переключает карту если есть, второе нажатие отключает все слои (карту не трогает)
(0015191)
Arech   
31-01-2015 14:24   
С точки зрения интерфейса, я бы предложил следующее исходя из решения двух потребностей: 1) управления наборами и 2) активации.
Активация, предложенная vdemidov выше (#c15190) мне кажется излишне сложной и я не вижу use-case для неё. Достаточно повесить просто одну глобальную кнопку на функцию "отключить все слои" и её будет достаточно для всего. Заодно не придётся усложнять обработку активаций наборов, она будет простейшей и не требующей хранения или инспектирования состояния: сначала отключает все слои, затем включает слои (и опционально карту - опциональность карты для набора поддерживаю!), входящие в набор.


1 Управление наборами слоёв
Осуществляется посредством диалогового окна, которое выводит список определённых наборов и их характеристик, и позволяет создать новый, удалить старый, клонировать и отредактировать существующий набор.
(поскольку предполагается, что наборы не будут уж очень большими и сложными, - ну сколько можно добавить слоёв на одну карту, чтобы не было мешанины? 4-5? Ну 10 максимум, - то, возможно, имеет смысл для первой реализации на редактирование и клонирование в целях экономии сил забить. Юзер не слишком сильно утомится удаляя/создавая с нуля новые наборы. Потом когда-нить можно будет приделать и редактирование)

1.1 доступ к диалогу управления наборами
а) В тулбар следом за dropdown-контролами карт и слоёв добавляется аналогичный dropdown для наборов. При нажатии на него выпадает меню, в котором первым пунктом стоит элемент "управлять наборами", затем separator, затем перечисляются названия определённых наборов (если наборов нет, можно сделать что-то типа пункта "<-наборы не заданы->", клик на который будет аналогичен клику по "управлять наборами").
Если у набора определён хот-кей, его следует подписать в названии пунктов.
б) В главное меню программы следом за "карты" и "слои" добавить пункт "наборы" с поведением, аналогичным тулбарному drop-down

Результат: пользователь получает доступ к диалогу управления наборами, а так же видит и может активировать определённые ранее наборы.
В идеале, было бы хорошо, если бы сейчас активированный набор (при условии точного совпадения карты+выбранных слоёв) подсвечивался, но вообще, особенно в первой реализации это не существенно.

1.2 Диалог управления наборами
Должен состоять из списка существующих наборов и кнопок "создать", "удалить" ("клонировать" и "редактировать") под списком.

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

1.2.2 кнопка создать
открывается диалог с полями:
- название набора (ограниченной макс.длины, подходящей для меню drop-down контролов)
- контролы для опционального выбора карты и отмены выбора карты
- контролы для добавления в набор слоёв, например так: каждый слой описывается дропом со списком слоёв для выбора и кнопками + и -, позволяющими добавить контролы для создания нового слоя под текущим слоем или удалить текущий слой. Набранные слои таким образом описываются столбцом контролов. Самый верхний слой в списке будет самым нижним слоем в z-index наложения на карту (если делать его самым верхним, то добавление нового слоя по нажатию "+" должно создавать контролы его описания над текущими контролами, а не под - это наверное немного геморнее в исполнении, поэтому проще добавлять контролы под текущим слоем и считать z-index отображения снизу вверх).
- контрол для задания хоткея для набора и отмены заданного.
- кнопки сохранить/отмена

При открытии диалог предзаполняется на основе текущей карты и текущих слоёв. При редактировании - значениями из набора.

Вот как-то так в первом приближении. Вроде бы ничего сложного?
(0015192)
Arech   
31-01-2015 14:31   
Дополнение: забиваться на какое-то максимально возможное число слоёв в наборе я считаю нежелательным. Ибо в том же OSM есть масса замечательных узкоспецифичных слоёв, многие из которых могут потребоваться в одном наборе. И сколько всего их может потребоваться - хрен его знает, если только сейчас их несколько десятков.
Особенно не понятно, сколько их может стать в будущем и будет довольно неприятно, если программа сможет без проблем показывать хоть 100 слоёв, а набор будет ограничен десятком - это просто полностью девальвирует смысл заморачивания наборами.
Поэтому лучше просто число слоёв в наборе не ограничивать.
(0015193)
Arech   
31-01-2015 14:57   
И, кстати!!!

При наличии функционала наборов естественным образом решается проблема по крайней мере с интерфейсом для http://sasgis.org/mantis/view.php?id=494
Там просто делаем возможность выбирать наборы с заполненной картой для контрола карт и наборы без карты (только со слоями) для контрола выбора слоёв. И всё, этим можно элементарно и удобно задать любое сочетание карты+необходимых слоёв для склейки (а так же остальных задач - скачивания, очистки кеша и т.д.)

Возможно, стоит перелинковать ту задачу и эту.
(0015208)
vdemidov   
31-01-2015 20:40   
(edited on: 31-01-2015 20:41)
Насчет активации согласен - достаточно по хоткею просто активировать все слои и включать нужную карту, если задана.

Насчет управления ноборами - гуй пусть рисует тот кому нужно, в рамках этой хотелки будет реализация максимум чтения этих настроек из ini файла.

К склейке с наложением нескольких слоев эта хотелка вообще никак не относится. Ничего общего в плане реализации.

(0016880)
zed   
09-12-2015 19:14   
Завтра в ночнушке появится что-то, что уже можно пробовать трогать. Ещё планируется добавить окошко Менеджера, чтобы можно было удалять/редактировать/сортировать существующие наборы. Сейчас есть только диалог добавления в избранное, но там уже вроде бы всё работает.

Тестируйте, кому интересно.
(0016881)
Garl   
09-12-2015 20:44   
(edited on: 09-12-2015 20:46)
еврики у мну нет. Но при нажатии на кнопку панельки вылетает в access violation

upd:
а если оставить всего одну карту, то заработало

(0016882)
zed   
09-12-2015 20:45   
Скачай ночнушку, она уже собралась.
(0016883)
Garl   
09-12-2015 20:51   
без слоёв работает, как только есть слой - вылетает
(0016884)
zed   
09-12-2015 20:57   
Пофиксил.
(0016885)
Garl   
09-12-2015 21:01   
полёт нормальный
(0016895)
zed   
10-12-2015 19:19   
Доделал менеджера, изменения уже в ночнушке.
(0016896)
Tolik   
11-12-2015 08:33   
А можно повысить приоритет хоткея favorites?
Сейчас, если есть такой же хоткей у карты, работает он, что нелогично: юзер о нём не знает, хочет использовать, но приходится лезть в настройки карт и отключать его там.
(0016897)
zed   
11-12-2015 08:50   
По-моему, нельзя. Про горячие клавиши у нас по-моему была хотелка, там надо порядок наводить отдельно, т.к. бардак полный.
(0016910)
Tolik   
12-12-2015 13:46   
Бага про приоритет хоткеев не нашёл, открыть?
Очевидно, у избранных должен быть макс. приоритет.
(0016920)
Garl   
12-12-2015 18:57   
мелкий недочёт:
при изменении фаворитов в диалоге изменения слои почему-то становятся выключенными, хотя в наборе они присутствуют

видать запоминается предыдущее состояние галки...
(0016929)
zed   
13-12-2015 17:41   
>Бага про приоритет хоткеев не нашёл, открыть?
Вопрос не столько в приоритете, сколько в дубликатах. Нашёл вот такой тикет: 0001067

>мелкий недочёт
Пофиксил.
(0016937)
Tolik   
14-12-2015 06:52   
Дубликаты проверять не надо. Например, хочу назначить на избранное кнопку 2, а она есть в zmp "Genshtab 2 km".
Я не хочу никаких сообщений об ошибке, что кнопка занята, хочу чтобы она просто работала (а hothey в zmp игнорировался).

Можно, конечно, в maps.ini прописать HotKey=0 для этой карты (или нескольких)... Но лучше бы расставить приоритеты.
(0016938)
zed   
14-12-2015 07:51   
>Я не хочу никаких сообщений об ошибке
А кто-нибудь захочет - всё индивидуально. В любом случае, у горячих клавиш нету такого понятия, как приоритет. Они работают по принципу "кто первый, того и тапки". Поэтому для нормального управления горячими клавишами, нужна глобальная система, которая будет отслеживать кто какую клавишу использует и при конфликтах либо молча переназначать клавиши (и записывать в ini HotKey=0), либо сообщать об ошибках.
(0016941)
vdemidov   
14-12-2015 11:40   
(edited on: 14-12-2015 11:42)
По поводу хоткеев. Назначать хоткеями цифры или буквы в любом случае плохая идея. Назначьте 1 своему пресету в избранном, а потом попробуйте ввести единичку в окне операций с выделенной областью, например в имени файла для склейки.

(0016942)
Tolik   
14-12-2015 11:48   
Да, косячок. Вместо ввода цифры включается набор карт. А с цифрами и буквами в хоткеях zmp такого не происходит.