SASGIS - SAS.Планета
View Issue Details
0000407SAS.Планета[All Projects] Хотелкаpublic13-02-2011 15:1710-10-2012 11:51
Fetser 
vdemidov 
normalminorhave not tried
closedfixed 
WindowsXPSP3
101206 
120808120808 
0000407: Создание "легенды" для карты
В SAS можно подключить карты, которые содержат информацию в цвете участков. (Например карта плотности населения или карта напряжённости электромагнитного поля) Где каждому цвету соответствует определённое цифровое значение и приходится в любом графическом редакторе открывать шкалу (картинку) чтобы сравнивать цвета. И было бы очень удобно, если бы в настройках можно было подключать такие графические файлы по аналогии с шкалой в меню вид.
интерфейс
related to 0000771closed vdemidov Отображение во встроенном браузере картинок из памяти 
gif Scale.gif (3,418) 13-02-2011 15:17
http://bugtracker.sasgis.org/file_download.php?file_id=147&type=bug
gif
Issue History
13-02-2011 15:17FetserNew Issue
13-02-2011 15:17FetserFile Added: Scale.gif
15-02-2011 07:23feyaNote Added: 0001000
15-02-2011 07:51FetserNote Added: 0001001
15-02-2011 08:35vdemidovNote Added: 0001002
15-02-2011 08:36vdemidovSummaryСоздание произвольной шкалы => Создание "легенды" для карты
16-02-2011 18:13feyaNote Added: 0001011
20-02-2011 08:51ParasiteNote Added: 0001029
20-02-2011 10:23FetserNote Added: 0001030
20-02-2011 16:06gpsMaxNote Added: 0001032
23-02-2011 14:08vasketsovNote Added: 0001068
23-02-2011 14:13vdemidovNote Added: 0001070
23-02-2011 15:15FetserNote Added: 0001071
23-02-2011 19:06vasketsovNote Added: 0001072
12-03-2011 12:03FetserNote Added: 0001185
12-03-2011 12:07vdemidovNote Added: 0001186
14-03-2011 11:53gpsMaxTag Attached: интерфейс
06-04-2011 06:41TolikNote Added: 0001506
06-04-2011 10:46gpsMaxNote Added: 0001517
06-04-2011 10:48gpsMaxNote Added: 0001518
06-04-2011 10:49gpsMaxNote Edited: 0001517bug_revision_view_page.php?bugnote_id=1517#r412
06-04-2011 11:05TolikNote Added: 0001519
06-04-2011 13:01vdemidovNote Added: 0001528
06-04-2011 13:04TolikNote Added: 0001530
06-04-2011 13:06vdemidovNote Added: 0001532
06-04-2011 13:07TolikNote Added: 0001533
06-04-2011 13:10vdemidovNote Added: 0001535
06-04-2011 13:37TolikNote Added: 0001536
06-04-2011 13:38vdemidovNote Added: 0001537
06-04-2011 13:41TolikNote Added: 0001538
06-04-2011 15:58TolikNote Added: 0001544
06-04-2011 18:38gpsMaxNote Added: 0001553
06-04-2011 18:55TolikNote Added: 0001556
06-04-2011 19:33vdemidovNote Added: 0001563
13-04-2011 09:12TolikStatusnew => acknowledged
30-05-2011 19:53vdemidovRelationship addedchild of 0000771
30-05-2011 19:54vdemidovStatusacknowledged => confirmed
30-05-2011 19:55vdemidovTarget Version => 29xxxx
13-07-2011 07:33vdemidovRelationship replacedrelated to 0000771
14-07-2011 05:00TolikNote Added: 0003153
14-07-2011 05:00TolikStatusconfirmed => resolved
14-07-2011 05:00TolikFixed in Version => 120808
14-07-2011 05:00TolikResolutionopen => fixed
14-07-2011 05:00TolikAssigned To => vdemidov
14-07-2011 05:10TolikTarget Version29xxxx => 120808
10-10-2012 11:51TolikStatusresolved => closed

Notes
(0001000)
feya   
15-02-2011 07:23   
Больно специализированная задача, помоему
(0001001)
Fetser   
15-02-2011 07:51   
Если это возможно сделать, то было бы очень хорошо. А назначение может быть разное. Не только выведение шкалы, но и любой поясняющей или справочной информации. Условные обозначения применяемые на карте и т. д.
(0001002)
vdemidov   
15-02-2011 08:35   
По сути это возможность приципить "легенду" к карте. Можно подмуать, как это удобно и универсально реализовать.
(0001011)
feya   
16-02-2011 18:13   
А что, если информацию о карте показывать во встроенном браузере а не в текстовом меседже (как я давно хотел сделать), тогда можно будет легенду там отображать.
(0001029)
Parasite   
20-02-2011 08:51   
А как\откуда планируется брать легенду, если она не идет в составе конкретной карты на том же листе? Вот например гугль\ландшафт - тоже "кодирован условными цветами", а как легенду к нему сделать?
(0001030)
Fetser   
20-02-2011 10:23   
При создании собственных карт (из графического файла) обычно легенда есть внизу под картой. И совсем не трудно легенду вырезать в графическом редакторе. И на многих интернет ресурсах есть также легенда в виде отдельного графического файла, и скопировать один раз совсем не трудно. Главное чтобы была возможность прицепить в программе к конкретной карте или слою эту легенду.
(0001032)
gpsMax   
20-02-2011 16:06   
Можно добавить к легенде, кроме графического файла, еще и текст - свой, произвольный, изменяемый локально.
(0001068)
vasketsov   
23-02-2011 14:08   
>прицепить в программе к конкретной карте или слою эту легенду
Для генштаба для разных участков разная легенда (например, магнитное склонение, да и просто заголовок карты).
(0001070)
vdemidov   
23-02-2011 14:13   
>Для генштаба для разных участков разная легенда
Увы нельзя объять необъятное.
(0001071)
Fetser   
23-02-2011 15:15   
>Для генштаба для разных участков разная легенда (например, магнитное склонение, да и просто заголовок карты).
Если у разных участков разные названия и разная легенда, то логично эти участки поместить на разные слои. При выборе нужных слоёв вид у карты будет неразрывный. И если к каждому слою будет возможно прицепить легенду, то будет возможность посмотреть легенду любого участка.
(0001072)
vasketsov   
23-02-2011 19:06   
>логично эти участки поместить на разные слои
шутите? попробуйте оценить количество требуемых слоёв, скажем, для России.
(0001185)
Fetser   
12-03-2011 12:03   
Большое спасибо очень скромным авторам программы. Выполнили хотелку о возможности создания легенды для карты или слоя и ни слова об это не упомянули. Теперь возможно поместить графический файл в информацию о карте или слое. Не очень пока удобно это делать. Но тем не менее это стало возможно. В файле info.txt если написать примерно следующее
"<img src="c:\Program Files\SASPlanet\Maps\sas.maps\Population_density.zmp\Scale.png"/>"
то графический файл появляется при нажатии на информацию о слое. Ура!
(0001186)
vdemidov   
12-03-2011 12:07   
Если zmp будет запакован, то ничего не выйдет. Поэтому пока и не закрыта эта хотелка. Да и вообще абсолютный путь это моветон.
(0001506)
Tolik   
06-04-2011 06:41   
Пока не работают относительные пути, пока делаю ссылки на картинку с легендой на внешнем сайте. Например, Генплан Москвы:
<img src="http://genplan.yabloko.ru/map_tiles/446-530/legend.gif"/img>

Пытался добавить переменную окружения, типа <img src="%SAS%\Maps... - не работает. MSIE эту переменную %SAS% не заменяет на его значение.
Какие ещё есть идеи?
(0001517)
gpsMax   
06-04-2011 10:46   
(edited on: 06-04-2011 10:49)
Есть идея не привязываться к интернет-адресам, иначе при автономном использовании будет нюанс.

(0001518)
gpsMax   
06-04-2011 10:48   
> MSIE эту переменную %SAS% не заменяет на его значение.

Разумеется! Переменные окружения работают _только_ в командной строке и нигде более.
(0001519)
Tolik   
06-04-2011 11:05   
Я ж и говорю, "Пока" нет другого хорошего варианта.

А как запускается окно информации о карте?
Может быть, при запуске ему можно передавать параметр - путь к директории .zmp (или хотя бы к программе)?
(0001528)
vdemidov   
06-04-2011 13:01   
Каждый желающий может сам поэкспериментировать. Берете Делфи. Ставите компонент EmbeddedWB. Кидаете его на пустую форму. На ту же форму кидаете кнопку с таким кодом:
  EmbeddedWB1.HTMLCode.Text:='...';
Только вместо многоточия ваш html код.
И придумываете как заставить отображать рисунки, которые есть только в памяти, а не на диске (не забываем о зазипованных zmp)
(0001530)
Tolik   
06-04-2011 13:04   
Давайте сначала решим задачу-минимум: для незипованных zmp.
(0001532)
vdemidov   
06-04-2011 13:06   
Ну отказываться от зиповных zmp я не собираюсь, поэтому их поддержка обязательное условие.
(0001533)
Tolik   
06-04-2011 13:07   
Тогда придётся в SAS ещё встроить web-сервер, а ссылки делать на localhost :)
(0001535)
vdemidov   
06-04-2011 13:10   
Ну если никто не придумает ничего лучшего чем встроенный веб-сервер, то решение этой хотелки уедет на 2015 год.
(0001536)
Tolik   
06-04-2011 13:37   
добавить кнопку легенда и выводить legend.gif
(0001537)
vdemidov   
06-04-2011 13:38   
А почему gif, а не png?
(0001538)
Tolik   
06-04-2011 13:41   
any gr. file
(0001544)
Tolik   
06-04-2011 15:58   
Прошу прощения за излишнюю лаконичность, писал с телефона, сидя за рулём.
Теперь подробно.

В меню Вид добавляем пункт "Легенда", по умолчанию чекбокс включен.
Если включена "Легенда" и в zmp активной карты есть файл legend.(gif|png|bmp|jpg), то в углу экрана выводится этот файл (наподобие Карты обзора).
Если в zmp карты такого файла нет, проверяется zmp 1-го активного слоя. Если и в нём нет - 2-го и т.д.

То есть отображается только одна легенда, больше одной встретятся крайне редко, да и не надо.
(0001553)
gpsMax   
06-04-2011 18:38   
Если основная проблема только в том, чтобы отображать картинку из памяти, для зазипованных zmp, то почему бы не сделать так, что она будет читаться только с диска? То есть, если zmp сжатый, всё работает, как раньше, а если разжатый - появляется ещё и картинка.
(0001556)
Tolik   
06-04-2011 18:55   
vdemidov уже отказался от такого варианта. И правильно.

С диска читать тоже проблема: абсолютный путь не годится, как засунуть в info.txt относительный - не придумали. Так давайте забудем про info.txt и сделаем ещё лучше - специальное окно легенды.
(0001563)
vdemidov   
06-04-2011 19:33   
ИМХО все таки лучше, если бы придумали как скормить браузеру картинку из памяти. Компонент есть. Как он используется я описал. Если кто-то придумает сделаю. А городить огород с отдельной картинкой, еще и как-то ее рисовать на экране, мне раньше 2013 года вряд ли захочется.
(0003153)
Tolik   
14-07-2011 05:00   
Т.к. хотелка 771 решена, то и эту можно считать решённой.

Чтобы создать легенду, надо просто положить в zmp файл с картинкой и в info.txt прописать:
<img src="image.jpg">