Здравствуйте! Столкнулась с такой проблемой: Нужно покрасить сплошную рубку (Естественное лесовосстановление) одним цветом, а Постепенную рубку тоже (Естественное лесовосстановление) другим. Обычно прописывала цвета и задавала выражение, но там не встречалось повторения искусственного или естественного лесовосстановления для разных видов рубок. Как можно прописать выражение, чтобы была сцепка?
Покраска карт с 2 мероприятиями
Сообщений 1 страница 10 из 10
Поделиться218.11.2020 17:12:41
Так абстрактно я могу Вам только сказать, что, безусловно, всё возможно, надо определиться, какое сочетание параметров как будет отображаться, и после этого написать такое выражение ToPas, которое для каждого сочетания параметров будет назначать соответствующий символ.
Примеров подобных легенд у нас, думаю, найдётся несколько, попробуйте разобрать, как окрашивается план лесонасаждений. В сложных ситуациях приходится использовать текст ToPas в отдельном файле. Можно сделать свою копию и модифицировать наиболее подходящий.
Поделиться319.11.2020 11:58:40
Делаю так: Merkl1211KOD1+MERKL3211KOD50=.. хочу поставить цвет, но не знаю как обозначить значение цвета. Но это выражение для одного цвета, а там таких условий будет 6, т. к. искусственое, естественное и комбинированное окрашивается отдельно для сплошной и отдельно для постепенной рубки.
Хочу сделать выражение: "Если сплошная р. и иск. лесовост., то такой-то цвет, если спл р. и есчествен. лесовост., то другой.
Если получится прописать такое выражение, то встает вопрос нужно ли прописывать значение этих цветов в палитру. Может поможете в моих рассуждениях..
Где смотреть выражения для планов лесонасаждений,я не нашла и думаю, что тот принцип здесь скорее всего не подойдет.
Надеюсь вы поняли, что мне требуется.
Заранее благодарна!
Поделиться419.11.2020 20:45:58
Из того, что я понял, это можно реализовать так:
Нужно создать файл макроса ToPas с названием, например : RubLesovos.tps
Текст макроса ToPas :
Valuemacro RubLesovos;
{ Формирует код символа 'Рубки и лесовосстановление',
Вер. 1.0 © ЛесИС, Старостенко Д.А., 2020 год }
{ Имена полей БД
1.3.MERKL - мероприятие
1.3.MERNOM - номер мероприятия }
var
ResultValue : string;
Kod1M, Kod2M : list of longint;
Mer1, Mer2, Code : longint;
begin
Code := 0;
Kod1M := SELECT(@1.3.MERKL,@1.3.MERNOM = 1); { первое мероприятие }
Mer1 := Kod1M[1];
Kod2M := SELECT(@1.3.MERKL,@1.3.MERNOM = 2); { второе мероприятие }
Mer2 := Kod2M[1];
if (Mer1 = 1211) then { сплошная рубка }
Code := 100
else if (Mer1 >= 1222) and (Mer1 <= 1269) then { постепенная рубка }
Code := 200;
if Code > 0 then
begin
if (Mer2 >= 3211) and (Mer2 <= 3212) then { искусственное лесовосстановление }
Code := Code + 1
else if (Mer2 >= 3285) then { естественное лесовосстановление }
Code := Code + 2
else if (Mer2 >= 3276) then { комбинированное лесовосстановление }
Code := Code + 3;
end;
ResultValue := Code:C;
end.
Коды мероприятий задайте те, которые будут правильными для Вас, я не лесник, в этом мало понимаю. Здесь подразумевается ситуация, когда рубки - первое мероприятие, а лесовосстановление - второе. Макрос вернёт коды 101, 102, 103, 201, 202, 203. Коды 0 и пустой - нет рубок в выделе.
Макрос из файла RubLesovos.tps в каталоге макросов вызывается следующим выражением:
CalcValue('D:\LesIS\_Les\ToPas\RubLesovos.tps')
Легенда может управлять символом или цветом. Если управление символом, его проще выбрать из существующей библиотеки, используемой для планов насаждений. Если управление цветом (как окрашивается бонитен, классы пожарной опасности), то цвета можете настроить любые по своему усмотрению.
Поделиться523.11.2020 09:40:45
Спасибо большое!! Разбираюсь
Поделиться623.11.2020 12:01:18
Нужно создать файл макроса ToPas с названием, например : RubLesovos.tps
Текст макроса ToPas :
Valuemacro RubLesovos;
{ Формирует код символа 'Рубки и лесовосстановление',
Вер. 1.0 © ЛесИС, Старостенко Д.А., 2020 год }
Не понимаю как создать файл макроса. Я Захожу в ЛесИс, там нажимаю "создание", "макрос", появляется строка со стрелочкой, не пойму что выбирать.
Или сначала надо задать выражение? Но тогда после того как в легенде цветов я выбрала: создать выражение CALCVALUE(RubLesovos.tps) пишет ошибку "Ожидается строчка"
Застряла на этом пункте.
Я правильно поняла, что не нужно прописывать: Старостенко Д.А., 2020 год в ЛесИс в таблицу "кто"?
Помогите, пожалуйста, с кашей в голове!
Поделиться823.11.2020 13:15:26
Благодарю за отклик!
Поделиться924.11.2020 15:23:15
Макрос ToPas, который нужно создать, это простой текстовый файл (как в Блокнот) с расширением .tps, в который вы записываете текст макроса из моего поста, копируя через буфер обмена (не потеряйте важного, отсутствие точки в конце - и ничего не будет работать!). Полученный файл записываете в каталог макросов D:\LesIS\_Les\ToPas\, имя используете в принципе любое латиницей.
Чтобы посмотреть, как настраивается тематическая раскраска по цветам, включите через меню тематических раскрасок, например, раскраску по бонитетам, затем вызовите через "глаз" диалог настройки для полигонов и посмотрите, как там задано Выражение (для бонитетов оно совсем простое), как выглядит Преобразование цветов, там нажмите Изменить, но ничего не изменяйте. Таблица покажет Вам соответствие код - текстовый комментарий для легенды - цвет
А свою новую легенду вы создаёте через "глаз" - полигоны выделов - в диалоге для цвета "Новое выражение с помощником", задаёте Имя легенды, Преобразование ... по ToPas и далее под руководством помощника. Ваши коды будут 101-102-103-201-202-203.
Ваше выражение будет таким, как я привёл, с полным путём (и не теряйте апострофы, иначе ничего работать не будет, это программа, синтаксис строгий).
Поделиться1025.11.2020 14:03:41
Большое спасибо!