SASGIS

Веб-картография и навигация


View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0000055SACS.Планета[All Projects] Хотелкаpublic19-08-2010 10:4427-04-2016 06:33
ReporterLex-Chaos 
Assigned Tovasketsov 
PrioritynormalSeveritymajorReproducibilityN/A
StatusassignedResolutionopen 
PlatformWindowsOSVistaOS VersionHome Premium
Product Version 
Target VersionFixed in Version 
Summary0000055: Присвоение точкам нескольких категорий, атрибуты меток и категорий
DescriptionХотелось бы присваивать точкам несколько категорий.
TagsSQLite, категории, метки
Attached Filesrar file icon Marks.SLT.1.2.rar [^] (974 bytes) 09-08-2013 12:18
png file icon new_attrib_1.png [^] (16,230 bytes) 09-08-2013 22:36


png file icon new_attrib_hint.png [^] (13,480 bytes) 09-08-2013 22:39

- Relationships
related to 0000137closedvdemidov SAS.Планета Вложенные категории 
related to 0002451closedvdemidov SAS.Планета Работа с метками. Три режима просмотра содержимого Категории меток (два - "со" вложенными категориями и один - "без") 
related to 0003020confirmed SAS.Планета Добавить в базе меток понятие "ссылка на метку" 
child of 0002563assignedvasketsov SACS.Планета Хранение меток в СУБД 

-  Notes
(0000102)
vdemidov (manager)
19-08-2010 10:46

Когда-нибудь. Вряд ли скоро. Замена связи "Один ко многим" на "Многие ко многим" очень непростое удовольствие.
(0000261)
Tikh (reporter)
06-10-2010 06:06

А что если добавить независимые от категорий теги к точкам?

Т. е. чтобы точки как были в одной категории, так и остались, но в их коде, который в файле .sml добавился бы атрибут, к примеру: "tags=банкомат, альфа-банк, деньги, банк".

И чтобы в программе можно было выбирать: отображать теги такие-то и такие-то. Поле для текстового ввода, которое работает как фильтр. Что в него вручную ввели, какие теги через запятую, такие отображает. Какие не ввели - не отображает.
(0000264)
gpsMax (reporter)
06-10-2010 17:59
edited on: 06-10-2010 18:05

Я вчера тоже думал про теги.

Вот только не надо текстового ввода при поиске. Например, в системах управления контентом каждому тегу присваивается идентификатор и каждой записи (здесь точке/линии/полигону) сопоставляется некоторое количество этих самых идентификаторов. Далее выводится список тегов, вот и всё. Их, тегов, ведь немного будет, не более нескольких десятков.

В SAS можно реализовать это так - сделать отдельный файл tags.sml по образу и подобию categorymarks.sml, и в файле точек marks.sml привязывать идентификаторы тегов, как это сделано с категориями. Правда, есть существенная разница - тегов-то может быть несколько, что возвращает всё к первому комменту про замену связи.

(0000270)
vdemidov (manager)
07-10-2010 05:18

Любое изменение в структуре файлов *.sml приведет к полной несовместимости старых файлов с новыми. Так что учитывайте это при высказывании пожеланий. От себя скажу, что такие изменения буду вносить в последнюю очередь, когда все остальное уже будет работать так как мне хочется. Смотрим на Target Version этого бага :)
(0000277)
gpsMax (reporter)
07-10-2010 06:45

Остальное - это плагины? Очень хочется увидеть их до начала следующей эпохи майя. :-)
(0012222)
vasketsov (manager)
26-07-2013 16:28

Буду делать для меток возможность указания произвольного перечня атрибутов и их значений (в т.ч. выбор их из справочников). Только для меток в SQLite.
(0012265)
vasketsov (manager)
31-07-2013 13:56

Здесь же будет новый тип "метки" - Ссылка. Чтобы можно было метку привязать к ещё одной категории (не дублируя её, хотя возможно получится сделат собственное имя и описание для ссылки). Что касается атрибутов меток, то для ссылок атрибуты будут как для меток, но можно будет по умолчанию взять атрибут из родительской метки, если у ссылки его не будет. Подсчёт числа ссылок не планируется: при удалении ссылки удаляется только ссылка, при удалении метки удаляется сама метка и все её ссылки.
(0012324)
vasketsov (manager)
09-08-2013 13:13

Приаттаченный файлик Marks.SLT.1.2.sql надо будет разархивировать и положить рядом с Marks.SLT.0.1.sql (рядом с базой меток в SQLite). Это потребуется для обновления структуры БД меток в SQLite - без этого метки в SQLite в новых версиях SACS работать не будут (ввиду отсутствия необходимых таблиц).

Обновление версии БД меток с 1 на 2 является обязательным. Последняя версия SACS, которая работает по 1-й версии БД меток - это последняя ночнушка SACS.Planet.Nightly.130803.671.7z. Теоретически, если старые версии SACS (ревизия <= 671) запускать по 2-й версии БД меток (созданных или обновлённых программой с ревизией > 671), то проблем быть не должно.

При обновлении никаких операций над данными не производится, обновлением только создаются новые таблицы, так что риска потерять данные нет. Тем не менее, для целей самоуспокоения рекомендую сделать бэкап: скопировать базу меток в отдельный архивчик с инфой для восстановления.

В версии 2 (что касается именно БД) добавлено (или ещё будет чуть позже добавлено, но уже без внесения изменений в структуру БД, то есть, только в EXE):
а) создание меток типа "Ссылка" (Link);
б) атрибуты для меток и категорий;
в) плагины отображения меток для категорий.

Пункт а) - Ссылки.

Возможность работать со ссылки включается в форме управления метками на 2-й закладке. Под работой со ссылками подразумевается создание ссылок и отображение их в форме управления метками (там к именам после типа объекта добавляется звёздочка) и в основном окне программы.
Ссылка - это дополнительная связка между меткой и другой категорией. На эту связку навешивается признак видимости, так что оригинальная метка может быть невидимой, а ссылка - видимой. Единственный способ создания ссылок - перетаскивание меток на другие категории. Чтобы отличать это режим от переноса меток между категориями, в контекстном меню предусмотрена галочка для переключения режима drag'n'drop.

Ссылки на ссылки не создаются. При удалении ссылки удаляется только эта самая ссылка. При удалении метки удаляются также все её ссылки.

Ссылки не экспортируются ни в каком виде (при экспорте ссылки в kml будет экспортирована исходная метка). Даже при экспорте в базу SQLite. И соответственно при импорте базы SQLite ссылки оттуда также не прилетят. Так что полный бэкап базы меток экспортом всех категорий и ссылок в SQLite сделать не получится.

NB:
Если кто придумает более прозрачный способ создания ссылок - обсудим. Например, можно было бы создавать дерево в контекстном меню для метки (Создать ссылку -> Категория 1 -> ...) и по выбору конкретного пункта подменю создавать ссылку в выбранной категории. Но пока что при большом числе категорий этот способ представляется неудобным.

Пункт б) - Атрибуты.

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

Для объектов в контекстное меню (на карте и в управлении метками) добавлен пункт Attributes. По нажатию на него открывается форма с атрибутами объекта. Форма не модальная, так что их можно наоткрывать много. Атрибут или подставляется из справочника (по кнопочке), либо указывается вводом по коду, если надо быстро и если код атрибута известен хотя бы примерно (если нет кода с точно таким же значением - будет подставлен минимальный код, начинающийся на введённое значение). Значение атрибута для объекта указывается вручную (пока что только так).

NB:
1. Есть ряд недоделок. Например закладка Items в справочнике атрибутов задумана для формирования исчерпывающего перечня (справочника) значения атрибутов для объектов. Соответственно её доделка позволит значение выбирать из справочника, а не указывать руками. Но в целом недоделки совсем не критичны, и пользоваться атрибутами уже можно.
2. Вопрос импорта и экспорта атрибутов будет решаться отдельно. Пока что атрибута не экспортируются и не импортируются. То есть по прежнему для полного бэкапа надо архивировать файл всей базы меток, а не экспортировать всё.
3. Не хватает иконки типа как для формы управления метками, только не с бумажкой, а с буквой А (или какой-нибудь другой понятной). Как только она появится - можно будет понадобавлять её и пункта для вызова атрибутов меток и категорий во многих местах. К сожалению, место произрастания моих рук слабо коррелирует с умением рисовать правильные иконки.
4. Планируется доработка импорта меток, чтобы некоторые атрибуты (по совпадению описания атрибута и импортируемого параметра, если разрешено опцией атрибута) залетали не в описание метки, а в отдельные поля (значения соответствующего атрибута). Например, можно будет настроить так импорт полигонов из росреестра, чтобы в хинт попадало только нужное. Возможно, чтобы некоторые параметры (опять же опцией у атрибутов) вообще не импортировались.

По пункту в) пока без особенных комментариев: в базе всё нужное есть, но в EXE пока что ничего не вытащено, идея - настройка отображения меток (и ссылок) на основании значений их атрибутов, а также на основании DLL, привязанной к категории.

Дополнительно вытащил некоторые внутренние настройки БД меток в форму управления метками (не надо ходить ковырять ini-шку).

Также дополнительно переделал внутреннее хранение данных отображения (appearance) меток. По моим данным, стало чуть быстрее и компактнее в памяти (по счётчикам производительности). Если у кого счётчики "просядут" и например включение меток будет выполняться заметно дольше чем прежде - пишите.

Сегодня постараюсь уже опубликовать сделанное. Напоминаю, это только для меток в SQLite.
(0012334)
vasketsov (manager)
09-08-2013 22:36

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

После возможной настройки справочника атрибутов в описании остаётся только нужное, например вот это:

Кадастровый номер земельного участка:59:39:0020201:14
Вид разрешенного использования (код):Для объектов общественно-делового значения
Категория земель (код):Земли поселений (земли населенных пунктов)
Дата актуальности:4/23/2013
OBJECT_ADDRESS:Пермский край
:р-н Чердынский
:пгт Ныроб
:ул Лесная
:15

А всё остальное либо херится, либо залетает в атрибуты конкретной метки, либо в оба места (см. приаттаченный скриншот).
(0012340)
JIeT4uK (reporter)
12-08-2013 15:15
edited on: 12-08-2013 15:47

обновился, теперь при добавлении метки создается только категория (если ее не было), сама метка не сохраняется.

Что я делаю не так?

Ничего не менялось и не настраивалось

С панели кнопок ничего не происходит, а вот если вызвать окно "Управление метками" и там создать , то метка создается

(0012341)
vasketsov (manager)
12-08-2013 15:22
edited on: 12-08-2013 15:33

Возьмите приаттаченный EXE, если неохота ждать "ночнушку" до завтра

(0012397)
vasketsov (manager)
14-08-2013 11:27

При обычном импорте kml (а также kmz) и gpx (а также gpx.gz) атрибуты также будут подхватываться. Заодно сделал импорт оформления, но не всё что есть. Например, не импортируется сама иконка (касается как kml, так и gpx с тэгом sym для wpt).
(0012419)
vasketsov (manager)
14-08-2013 20:28

А вот так будем экспортировать и импортировать атрибуты (со значениями, для меток):
https://developers.google.com/kml/documentation/kmlreference#data

<ExtendedData>
<Data name="string">
<displayName>...</displayName> <!-- string --> <value>...</value> <!-- string -->
</Data>
</ExtendedData>

- Users who viewed this issue
User List Anonymous (3399x), vdemidov (1x), AlxVasilchenko (1x), Oldest_Yeti (1x), tiburon (2x), natzgul (1x), Garl (1x), zed (2x), iceon (1x), ZDN (1x), vasketsov (1x)
Total Views 3411
Last View 27-04-2024 19:32

- Issue History
Date Modified Username Field Change
19-08-2010 10:44 Lex-Chaos New Issue
19-08-2010 10:46 vdemidov Note Added: 0000102
19-08-2010 10:46 vdemidov Status new => acknowledged
19-08-2010 10:46 vdemidov Product Version => 100707
19-08-2010 10:46 vdemidov Target Version => 16xxxx
06-10-2010 06:06 Tikh Note Added: 0000261
06-10-2010 17:59 gpsMax Note Added: 0000264
06-10-2010 18:01 gpsMax Note Edited: 0000264 View Revisions
06-10-2010 18:03 gpsMax Note Edited: 0000264 View Revisions
06-10-2010 18:05 gpsMax Note Edited: 0000264 View Revisions
07-10-2010 05:18 vdemidov Note Added: 0000270
07-10-2010 06:45 gpsMax Note Added: 0000277
07-11-2010 19:40 gpsMax Tag Attached: категории
06-04-2011 15:28 gpsMax Relationship added related to 0000137
11-04-2011 07:11 vdemidov Status acknowledged => confirmed
06-06-2011 21:48 gpsMax Priority normal => none
26-07-2013 16:26 vasketsov Project SAS.Планета => SACS.Планета
26-07-2013 16:27 vasketsov Product Version 100707 =>
26-07-2013 16:27 vasketsov Target Version 16xxxx =>
26-07-2013 16:27 vasketsov Summary Присвоение точкам нескольких категорий => Присвоение точкам нескольких категорий, атрибуты меток (EAV)
26-07-2013 16:28 vasketsov Note Added: 0012222
26-07-2013 16:29 vasketsov Tag Attached: метки
26-07-2013 16:29 vasketsov Tag Attached: SQLite
26-07-2013 16:29 vasketsov Assigned To => vasketsov
26-07-2013 16:29 vasketsov Status confirmed => assigned
26-07-2013 16:30 vasketsov Priority none => normal
26-07-2013 16:30 vasketsov Severity minor => major
26-07-2013 16:30 vasketsov Reproducibility have not tried => N/A
31-07-2013 13:56 vasketsov Note Added: 0012265
31-07-2013 20:58 vasketsov Summary Присвоение точкам нескольких категорий, атрибуты меток (EAV) => Присвоение точкам нескольких категорий, атрибуты меток и категорий
09-08-2013 12:18 vasketsov File Added: Marks.SLT.1.2.rar
09-08-2013 13:13 vasketsov Note Added: 0012324
09-08-2013 22:36 vasketsov Note Added: 0012334
09-08-2013 22:36 vasketsov File Added: new_attrib_1.png
09-08-2013 22:39 vasketsov File Added: new_attrib_hint.png
12-08-2013 15:15 JIeT4uK Note Added: 0012340
12-08-2013 15:22 vasketsov Note Added: 0012341
12-08-2013 15:22 vasketsov Note Edited: 0012341 View Revisions
12-08-2013 15:33 vasketsov Note Edited: 0012341 View Revisions
12-08-2013 15:34 JIeT4uK Note Added: 0012342
12-08-2013 15:35 vasketsov File Added: SASPlanet.rar
12-08-2013 15:39 JIeT4uK File Added: marks_err.png
12-08-2013 15:46 vasketsov File Deleted: marks_err.png
12-08-2013 15:47 vasketsov Note Edited: 0012340 View Revisions
12-08-2013 15:47 vasketsov Note Deleted: 0012342
14-08-2013 11:27 vasketsov Note Added: 0012397
14-08-2013 20:28 vasketsov Note Added: 0012419
15-08-2013 07:57 vasketsov File Deleted: SASPlanet.rar
21-06-2014 14:59 zed Relationship added related to 0002451
22-12-2014 19:22 vasketsov Relationship added child of 0002563
27-04-2016 06:33 zed Relationship added related to 0003020



Copyright © 2007 - 2024 SAS.Planet Team