ООО "ЛесИС" - ГИС TOPOL-L для лесного хозяйства, лесоустройства и арендаторов лесного фонда
ООО "ЛесИС" - ГИС TOPOL-L для лесного хозяйства, лесоустройства и арендаторов лесного фонда
lesis@ya.ru
+7(916)615-42-77

ФОРУМ ТЕХПОДДЕРЖКИ ГИС TOPOL-L

Объявление

Для участия в работе закрытой, технической части форума нужно быть пользователем ГИС TopoL-L2 (10.0) и Зарегистрироваться!

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » ФОРУМ ТЕХПОДДЕРЖКИ ГИС TOPOL-L » ОФОРМЛЕНИЕ И ПЕЧАТЬ КАРТ » Редактирование аннотационных текстов


Редактирование аннотационных текстов

Сообщений 1 страница 42 из 42

1

Саша ты пишешь: Я хочу поправить например формулу - просто убрать площадь.
А почему ты полез в базу текстов? Особенно в служебные. Аннотационные тексты только для полей блока!  Если ты хочешь какой порог по площади то задавай своё выражение.

2

Да, я потому и притянул аннотации за уши в ту тему из-за порога площади. Не хотел в отдельную тему уходить, а скопом задать вопросы так или иначе связанные с площадями: в аннотациях в общем, формулах, а также использование на практике формул (потому и переспросил про "таксационную формулу" и "формулу для плана" вдогонку).

Суть такова: хотел вернуть на планшеты старую добрую таксационную формулу что и сейчас на квадратные планшеты лепят ДВ филиалы. Смотрю, а формулы то отличаются от тех что в тополе. Думал, если что подкорректировать - а в выражениях не силён, да и аннотации не подлежат корректировке. Нет у нас планов, лишь ТЛК. Инструкции то инструкциями, "каждому региону своё" (как сказал когда-то Олег). Вот в чём вопрос был.

Да, ещё вот что хотел: можно ли задать порог площади (и где и как?), чтобы в аннотациях формула "выдел-площадь" на дороги (а дороги в полигонах!!!) ставился без площади? Хочу номер выдела дорог в кружке с отстающей линией, но без площади.

3

Кстати, если порог площади изменить, то в уже созданных аннотациях останется прежний порог ))) Обновлял таблицы баз данных, перезагружал программу - не помогает. Придётся создавать заново таблицу аннотаций.

4

Вопрос Дмитрию Александровичу: пасхалка или где живут львы?

http://sg.uploads.ru/CfXp8.jpg

5

Имена полей БД
        VYDPLS - площадь выдела
        POLPLS - площадь полигона
        VYDNOM - номер выдела
        1.KatZem - категория земель
        1.Bonitet  - бонитет (текст)
        1.VozKls - класс возраста
        1!4.Maket
        1!4.1.Parametr
        1!4.1.ParamId
        ParamId = 301 - год вырубки
        ParamId = 302 - тип вырубки
        ParamId = 1202 - год повреждения    }

Видишь откуда у тебя связь идёт в числителе? Из базы данных а не из блока. Аннотации только с полем блока работают.

6

Вот к примеру чем я пользуюсь пока.

Valuemacro  T_PLANSH;
{  Формирует формулу для планшета,
   
Вер. 1.0   © Козин А.В.,  2017 год }

    const

porog1 = 1.0 ;        { порог подписи площади выдела }
porog2 = 0.3;        { порог подписи части выдела }

var
ResultValue : string ;

begin

if ((@AREA <= porog2) and (@VYDPLS=0)) then
      ResultValue := ''
      
else if (@VYDPLS <= porog1) then
          ResultValue := @VYDNOM:C

     else
      ResultValue := @VYDNOM:C + CHR(10)+ (@VYDPLS:C:3:1)

     end.

Вот для планшета. Д.А. сказал выложит скоро.
Площадь пишется с 1 га. porog1 = 1.0 можно править самому какой надо.
porog2 = 0.3 а это порог для номера выдела в частях выдела с нулевым Vydpls.

7

Александр Архипов написал(а):

чтобы в аннотациях формула "выдел-площадь" на дороги (а дороги в полигонах!!!) ставился без площади? Хочу номер выдела дорог в кружке с отстающей линией, но без площади.

1. Если в дорогах есть какое то поле то наверно можно задать выражение чтобы площадь там не ставилась.
2. Номер в кружках с линией. Это ты хочешь чтобы программа понимала куда ей удалить номер выдела?
Да бред это всё.

8

http://sg.uploads.ru/tC61J.jpg

Вот так, вручную. Только порог взят высокий - 10 га (есть дороги, но до 10 га). Зелёные линий - полигон дорог в них.

9

Сергей Городничев написал(а):

Аннотации только с полем блока работают.

http://s9.uploads.ru/Fy2XN.jpg

Не понял. Аннотационный текст с простым выражением ("формула плана") CalcValue('H:\LesIS\_Les\ToPas\PL_Chisl_L2.tps')+ CHR(10)+CalcValue('H:\LesIS\_Les\ToPas\PL_Znam_L2.tps')

10

Код:
Valuemacro  Pl_Znam;
{  Работает в составе выражения 'План - знаменатель формулы',
   позволяет построить выражение в знаменателе таксационной
   формулы для плана лесонасаждений

    Версия 5.1, ©  Старостенко Д.А., 1999-2013 год  }


const
   {  При площади < порога возвращает пустую строку  }
    Porog1Pls = 0.1;
    Porog2Pls = 10;
    Porog3Pls = 10;

   {  Имена полей БД 
        VYDPLS - площадь выдела 
        POLPLS - площадь полигона 
        VYDNOM - номер выдела
        1.KatZem - категория земель
        1.Bonitet  - бонитет (текст)
        1.VozKls - класс возраста
        1!4.Maket
        1!4.1.Parametr
        1!4.1.ParamId
        ParamId = 301 - год вырубки
        ParamId = 302 - тип вырубки    }

var
    ResultValue : string;
    add_str : string;
    bon, i, t : longint;
    DopIDs : list of longint; 
    DopParams : list of string;
    Tipes : list of string;

begin
  ResultValue := ''; 
  Tipes[1] := 'ЛШ';
  Tipes[2] := 'ВР';
  Tipes[3] := 'В';
  Tipes[4] := 'Л';
  Tipes[5] := 'К';
  Tipes[6] := 'Т';
  Tipes[7] := 'Д';
  Tipes[8] := 'Ш';

  if @VYDPLS >= Porog2Pls then
    begin
    ResultValue := @VYDPLS:C:4:1;  
    if @VYDPLS >= Porog3Pls then
      if ((@1!KatZem >= 1100) and (@1!KatZem < 1200)) or
         ((@1!KatZem >= 1400) and (@1!KatZem < 1500))  then
        begin
            {  Для покрытых лесом земель и редин:  
               Площадь выдела - Бонитет    }
        bon := @1!Bonitet;
        if (bon >= 100) and (bon <= 500) then
          add_str := Trunc(bon/100):C:1 
        else if bon = 99 then
          add_str := '1А'
        else if bon = 98 then
          add_str := '1Б'
        else if bon = 501 then
          add_str := '5А'
        else if bon = 502 then
          add_str := '5Б';
        ResultValue := ResultValue + '-' + add_str;
        end
      else if @1!KatZem = 1509 then 
            {  Для вырубок:
               Площадь - Тип вырубки	}
        begin
        if NUM(@1!4.Maket) > 0 then
          begin
          DopIDs := @1!4.1.ParamId;
          DopParams := @1!4.1.Parametr;
          for i := 1 to Num( DopIDs ) do
            if DopIDs[i] = 302 then
              begin
              add_str := DopParams[i];
              t := Ord(add_str, 1) - 48; 
              ResultValue := ResultValue + '-' + Tipes[t];
              end
          end
        end
    end 
end.

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

Отредактировано Александр Архипов (24.07.2018 16:50:32)

11

Саш, тебя сейчас убедят, что у тебя всё бред и неправильно. :canthearyou:

12

Алексей Курагин написал(а):

Саш, тебя сейчас убедят, что у тебя всё бред и неправильно.

Алексей, не торопи коней. Сейчас разберёмся. Это ведь не "синтез синхрофразотрона" ))

13

Александр Архипов написал(а):

Не понял. Аннотационный текст с простым выражением ("формула плана") CalcValue('H:\LesIS\_Les\ToPas\PL_Chisl_L2.tps')+ CHR(10)+CalcValue('H:\LesIS\_Les\ToPas\PL_Znam_L2.tps')

Это что вопрос?
Да не работает. У тебя на картинке  как сделано?

14

Так и сделано:
Вначале темы - создание таблицы аннотационного текста с запросом CalcValue('H:\LesIS\_Les\ToPas\PL_Chisl_L2.tps')+ CHR(10)+CalcValue('H:\LesIS\_Les\ToPas\PL_Znam_L2.tps')

Результат - последний скрин. Всё работает. Порог - 10 га (из-за дорог) отражён в коде знаменателя выше

Код:
const
   {  При площади < порога возвращает пустую строку  }
    Porog1Pls = 0.1;
    Porog2Pls = 10;
    Porog3Pls = 10;

15

Сергей Петрович, Дмитрий Александрович!!! У нас всех интересует надпись про "львов" (по латыни) в первом скрине темы. Ответьте пожалуйста, что это значит?

16

Александр Архипов написал(а):

Всё работает. Порог - 10 га (из-за дорог) отражён в коде знаменателя выше

Да всё вижу. И формулу и порог. И как ни странно долго висела но сработала. Значит когда то поправили. Говорю я поэтому с ними отложил работу. Да и такое честно скажу первый раз вижу. И правильно Алексей говорит не надо это ))))). А просеки, реки, почему не полигоном? Естественно полигон дорог это Выдел? Я не таксатор поэтому спрошу, где то в базе есть указание что это дорога? Если в каком то макете есть это, то думаю можно вытянуть а вот чтобы программа относила правильно номер выдела да ещё в круге это вопрос. Тут вариант два стиля текста.
А этим меня уже не напугать.
http://sg.uploads.ru/t/L1wkW.jpg

Отредактировано Сергей Городничев (24.07.2018 17:45:17)

17

Да, дорога - отдельный выдел в базе и ТО и каждый кусочек со своим номером и площадью.

Отредактировано Александр Архипов (24.07.2018 17:47:35)

18

Александр Архипов написал(а):

Да, дорога - отдельный выдел в базе и ТО и каждый кусочек со своим номером и площадью.

Так там же категория земель стоит. Вот по ней и фильтровать.

19

Просеки у нас не рублены со времён Царя Гороха (ныне условно рубленные так скажем, чисто на карте рисованные и по навигатору находимые); реки полигоном, но их нет на скрине (то ручьи - они не учитываются в базе давно у нас)... Да не, кружки-линии вручную можно - это уже вопрос эстетики.

20

Меня больше дерево твоё заинтересовало. Как я понял к блоку несколько тематических карт прикреплено. Сколько максимум? И не мешает в работе?
А задачу, ты сам себе создал, сам и порешил. На верхнем скрине дорога зеленая. Даже если просто там будет стоят номер всё будет читаться. Спасибо что "добил" меня а то я так бы и считал что аннотации работают только с полем блока . )))

21

Мы на планшетах так дороги полигональные не показываем.
http://sh.uploads.ru/t/rTGlf.jpg
Это по любому сплошная линия.
В данном случае 2305-автомобильная грунтовая.
Так что в выражение можно добавить, если  KatZem =2305 то ставить только номер выдела. Я полагаю это реально.

22

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

23

Оффтопа немного.

24

Отредактировано Александр Архипов (25.07.2018 04:37:40)

25

Сергей Городничев написал(а):

Valuemacro  T_PLANSH;
{  Формирует формулу для планшета,
   
Вер. 1.0   © Козин А.В.,  2017 год }

    const

porog1 = 1.0 ;        { порог подписи площади выдела }
porog2 = 0.3;        { порог подписи части выдела }

var
ResultValue : string ;

begin

if ((@AREA <= porog2) and (@VYDPLS=0)) then
      ResultValue := ''
      
else if (@VYDPLS <= porog1) then
          ResultValue := @VYDNOM:C

     else
      ResultValue := @VYDNOM:C + CHR(10)+ (@VYDPLS:C:3:1)

     end

Это топас, а выражение для таблицы аннотаций какое будет?

26

CalcValue('h:\LesIS\_Les\ToPas\T_PLANSH.tps') выдаёт синтаксическую ошибку.

27

http://s3.uploads.ru/t/Q48ZI.png
http://s7.uploads.ru/t/kdwDQ.png
Щас tps на почту кину.

28

if ((@AREA <= porog2) and (@VYDPLS=0)) then
Я бы даже заменил AREA на POLPLS. Судите сами.
Саш отправил.

29

Принял. Заменил. Всё работает. Спасибо!

30

Остаётся один вопрос: как разбить показ площади по категориям земель. Точнее установить порог показа площади по категориям земель.

Отредактировано Александр Архипов (25.07.2018 08:47:28)

31

Александр Архипов написал(а):

Сергей Петрович, Дмитрий Александрович!!! У нас всех интересует надпись про "львов" (по латыни) в первом скрине темы. Ответьте пожалуйста, что это значит?

Не могу сейчас открыть этот диалог, но судя по всему это образец шрифта для данного стиля. Аналог майкрософтовского "Съешь этих мягких французских булочек". Обычно в такие тексты подбирают фразы с наименьшей повторяемостью букв, чтобы представить наибольшее разнообразие. Чехи лаконичнее англосаксов.

Александр Архипов написал(а):

Остаётся один вопрос: как разбить показ площади по категориям земель. Точнее установить порог показа площади по категориям земель.

Коллеги, пишите в пожелания и конкретнее, без лишних рассуждений. У Д.А. нет времени на анализ длинных дискуссий. Вот тут обсудили, утрясли, какие то изменения уже сделали - откройте другую тему в пожеланиях и киньте туда согласованное предложение и файлы, которые Вами были изменены.

32

Грешнов написал(а):

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

Александр Архипов написал(а):

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

Пишу пока сюда. А я так полагаю что и тут порог нужен. Я буду их показывать на планшете. Ты выставляешь порог скажем 10 000 га. а я 10 га. Так бы было оптимально.

33

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

Сергей Городничев написал(а):

И формулу и порог. И как ни странно долго висела но сработала. Значит когда то поправили.

Там всё так и было, проблема здесь, Сереж, думаю, в отсутствии модели для доступа из блока к базе данных. Если открыть просто блок в каком-то проекте, модели не будет и TopoL таксацию не увидит. Наша программа при открытии база+блок строит в проекте модель для доступа к таксации из блока, она довольно сложная, чтобы её строить вручную. Сохранить модель в проекте можно, если не закрывать карты на выходе. Но, если перемещать блоки или БД в другие каталоги (например, кроить планшеты), модель, скорее всего перестанет работать. Это надо учитывать и искать технологические пути, если существующую схему хочется как-то изменить.

По поводу линейных выделов - они сейчас у нас в программе могут использоваться, хотя это не обязательные элементы. Вообще предусмотрено три типа выделов: площадные - это понятно, полигон; протяженные - тоже узкий полигон, но имеющий описание линейника, причем можно выбирать приоритеты - считать площадь полигона или брать описание линейника; линейные - только линия.
Увязка площадей умеет пересчитать линии в повыдельном блоке, рассортировать их по категориям земель, защитности, ширине и по этим параметрам собрать "кадастровые" выделы в карте, и записать линейные выделы в таксацию. Тогда же появляется база блока для линий. Если для нескольких линий, например, дорога, задать другую ширину, то создастся отдельный выдел. Длины линейников программа считает сама по карте.

Отредактировано Дмитрий Александрович (25.07.2018 13:19:08)

34

По линейникам есть одно НО. У нас технологическая модель линейников - площадная, полигон. Других нет и не предвидится. Потому и в увязке площадей мы работаем с линейниками как и с другими площадными выделами, только сами рассчитываем длину исходя из реальной площади и фиксированной ширины (но ширина не всегда бывает фиксированной, особенно если работаешь с кадастром) или наоборот - площади и промеренной длинне при нефиксированной ширине (особенно с реками).

Сергей Николаевич, согласен. Пусть будет два настраиваемых порога. Я в пожеланиях отписался ранее.

35

Александр Архипов написал(а):

У нас технологическая модель линейников - площадная, полигон.

Поясните, пожалуйста - и просеки? И ручьи? А что делаете если объект 2-3 м шириной? И тогда вот это:

Александр Архипов написал(а):

По дорогам. Двойная линия у нас не пойдёт, масштаб планшета 1:25к при ширине лесных дорог 6-8 м.

было о чем? Я тогда не понял.

36

По поводу изменения порогов, которое сразу-же не отражается в метках и аннотационных текстах. Пороги программа встраивает в виде текста в выражения ToPas: в каталоге макросов есть шаблоны для макросов, где предусмотрены пороги, из них программа делает макросы, которые уже использует TopoL. Поэтому, если пороги изменили, надо просто заново из меню вызвать метки - программа сделает новые макросы для TopoL-я.

С аннотациями аналогично - их придётся отредактировать (пороги в них), если макросы внутри, либо поправить файлы макросов, если это отдельные файлы. Я думаю над тем, как сделать создание аннотационных текстов через меню, но там и удаление предусматривать придется, и обрабатывать ситуацию, чтобы не было визуализации сразу двух разных формул. Вам это нужно в принципе?

37

Преобразование линейников в протяженные площадные выделы сильно "утяжеляет" блоки и будет замедлять работу. Сейчас при создании в линейниках базы она имеет поля: Номер квартала/выдела, Категория земель (по таксации) и Ширина, предусмотрено также Имя в виде текста, но программа туда сама ничего не пишет. Это имя можно использовать для создания аннотационных подписей названий рек и т.п. Через меню можно высветить и метки номера выдела для линий, но номер будет на каждом отрезке. Площадей у линейников, естественно, нет, так как по существующему кадастровому подходу все квартальные просеки квартала могут входить в один выдел (при одинаковой ширине).

38

Грешнов написал(а):

Поясните, пожалуйста - и просеки? И ручьи? А что делаете если объект 2-3 м шириной? И тогда вот это:

Просеки (видимо речь идёт о квартальных) на ДВ не учитываются никак, то же и с ручьями. Перейдя на арковскую модель Дальлеспроект похоронил все остальные типы выделов ещё году эдак в 2002-м примерно, кроме площадных (полигонов).

Грешнов написал(а):

было о чем? Я тогда не понял.

Было о том, если убрать символ дороги (сплошная + пунктир) и заменить на:
либо на две сплошные линии в качестве отдельного символа;
либо показать как есть в основном блоке, то есть буфером как у меня зелёным цветом, только двумя тонкими линиями чёрного цвета (но я на практике отключаю эту линию в блоке, оставляя символ дороги (сплошная + пунктир) - по традиции Дальлеспроекта.

39

Дмитрий Александрович написал(а):

по существующему кадастровому подходу

А вот взгляните, с чем приходится работать, когда отходишь от косяковых и кривых планшетов и их нелепых условных обозначений:

А это существующая дорога (синим) и проектируемая в лесфонде (красным) - будущий лесной участок. Это пример попроще. Есть и посложнее и протяжённость поболе.

Отредактировано Александр Архипов (25.07.2018 14:39:15)

40

Александр Архипов написал(а):

оставляя символ дороги (сплошная + пунктир) - по традиции Дальлеспроекта.

Это не традиция а инструкция. А на планшете она показывается если линейная. А полигональная должна быть Границей выдела инструментальная. Но суть не в этом. Выражение надо сперва доработать и попробовать. Потому что это не важно, для текста она и для аннотационного текста. Кому надо уберут площадь в этих категориях а кому не надо оставят. А вставлять в программу или нет порешим позже.

41

Грешнов написал(а):

это образец шрифта для данного стиля

Отнюдь. Стили разные - надпись неизменна. Может недоработка?

42

Александр Архипов написал(а):

Стили разные - надпись неизменна. Может недоработка?

Видимо так.


Вы здесь » ФОРУМ ТЕХПОДДЕРЖКИ ГИС TOPOL-L » ОФОРМЛЕНИЕ И ПЕЧАТЬ КАРТ » Редактирование аннотационных текстов



Почтовый адрес для ЗАКАЗНЫХ писем:
С.П.Грешнов, +7(916)615-42-77, 108832, А/Я №1
НЕ ИСПОЛЬЗОВАТЬ курьерскую доставку!!!
E-Mail: lesis@ya.ru
Вопросы общего характера:
+7(916)615-42-77
РОССИЙСКАЯ ФЕДЕРАЦИЯ
Общество с ограниченной ответственностью "ЛЕСИС"
ОГРН: 1035007204902, ИНН: 5036046400, КПП: 503601001