Notes |
|
|
Когда-нибудь. Вряд ли скоро. Замена связи "Один ко многим" на "Многие ко многим" очень непростое удовольствие. |
|
|
(0000261)
|
Tikh
|
06-10-2010 06:06
|
|
А что если добавить независимые от категорий теги к точкам?
Т. е. чтобы точки как были в одной категории, так и остались, но в их коде, который в файле .sml добавился бы атрибут, к примеру: "tags=банкомат, альфа-банк, деньги, банк".
И чтобы в программе можно было выбирать: отображать теги такие-то и такие-то. Поле для текстового ввода, которое работает как фильтр. Что в него вручную ввели, какие теги через запятую, такие отображает. Какие не ввели - не отображает. |
|
|
(0000264)
|
gpsMax
|
06-10-2010 17:59
(edited on: 06-10-2010 18:05) |
|
Я вчера тоже думал про теги.
Вот только не надо текстового ввода при поиске. Например, в системах управления контентом каждому тегу присваивается идентификатор и каждой записи (здесь точке/линии/полигону) сопоставляется некоторое количество этих самых идентификаторов. Далее выводится список тегов, вот и всё. Их, тегов, ведь немного будет, не более нескольких десятков.
В SAS можно реализовать это так - сделать отдельный файл tags.sml по образу и подобию categorymarks.sml, и в файле точек marks.sml привязывать идентификаторы тегов, как это сделано с категориями. Правда, есть существенная разница - тегов-то может быть несколько, что возвращает всё к первому комменту про замену связи.
|
|
|
|
Любое изменение в структуре файлов *.sml приведет к полной несовместимости старых файлов с новыми. Так что учитывайте это при высказывании пожеланий. От себя скажу, что такие изменения буду вносить в последнюю очередь, когда все остальное уже будет работать так как мне хочется. Смотрим на Target Version этого бага :) |
|
|
(0000277)
|
gpsMax
|
07-10-2010 06:45
|
|
Остальное - это плагины? Очень хочется увидеть их до начала следующей эпохи майя. :-) |
|
|
|
Буду делать для меток возможность указания произвольного перечня атрибутов и их значений (в т.ч. выбор их из справочников). Только для меток в SQLite. |
|
|
|
Здесь же будет новый тип "метки" - Ссылка. Чтобы можно было метку привязать к ещё одной категории (не дублируя её, хотя возможно получится сделат собственное имя и описание для ссылки). Что касается атрибутов меток, то для ссылок атрибуты будут как для меток, но можно будет по умолчанию взять атрибут из родительской метки, если у ссылки его не будет. Подсчёт числа ссылок не планируется: при удалении ссылки удаляется только ссылка, при удалении метки удаляется сама метка и все её ссылки. |
|
|
|
Приаттаченный файлик 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. |
|
|
|
По пункту 4 в разделе б) - допилил импорт полигонов из росреестра, чтобы он нюхал доступные для полигонов атрибуты меток и либо вообще не добавлял параметр никуда, либо в описание, либо в атрибуты меток, либо в оба места.
После возможной настройки справочника атрибутов в описании остаётся только нужное, например вот это:
Кадастровый номер земельного участка:59:39:0020201:14
Вид разрешенного использования (код):Для объектов общественно-делового значения
Категория земель (код):Земли поселений (земли населенных пунктов)
Дата актуальности:4/23/2013
OBJECT_ADDRESS:Пермский край
:р-н Чердынский
:пгт Ныроб
:ул Лесная
:15
А всё остальное либо херится, либо залетает в атрибуты конкретной метки, либо в оба места (см. приаттаченный скриншот). |
|
|
(0012340)
|
JIeT4uK
|
12-08-2013 15:15
(edited on: 12-08-2013 15:47) |
|
обновился, теперь при добавлении метки создается только категория (если ее не было), сама метка не сохраняется.
Что я делаю не так?
Ничего не менялось и не настраивалось
С панели кнопок ничего не происходит, а вот если вызвать окно "Управление метками" и там создать , то метка создается
|
|
|
(0012341)
|
vasketsov
|
12-08-2013 15:22
(edited on: 12-08-2013 15:33) |
|
Возьмите приаттаченный EXE, если неохота ждать "ночнушку" до завтра
|
|
|
|
При обычном импорте kml (а также kmz) и gpx (а также gpx.gz) атрибуты также будут подхватываться. Заодно сделал импорт оформления, но не всё что есть. Например, не импортируется сама иконка (касается как kml, так и gpx с тэгом sym для wpt). |
|
|
|
А вот так будем экспортировать и импортировать атрибуты (со значениями, для меток):
https://developers.google.com/kml/documentation/kmlreference#data
<ExtendedData>
<Data name="string">
<displayName>...</displayName> <!-- string --> <value>...</value> <!-- string -->
</Data>
</ExtendedData> |
|