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

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

Объявление

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

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

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


Вы здесь » ФОРУМ ТЕХПОДДЕРЖКИ ГИС TOPOL-L » КАРТОГРАФИЯ, ВЕКТОРНАЯ И РАСТРОВАЯ » Не отображает окрашивание по плану лесонасаждений


Не отображает окрашивание по плану лесонасаждений

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

1

Добрый день. Обновили программу до версии 719, затем обновили до накопительной версии 723. При работе в программе отсутствует окрашивание по плану лесонасаждений, "лес-вода-болото", и остальные, кроме окрашивания по классам пожарной опасности. Площади таксационного описания и карты не увязывали, поскольку была необходимость задать их вручную. Вручную были созданы линейные выделы (лесная дорога и ЛЭП малая). Помимо отсутствия отображения по окрашиванию программа не выдает подписи "Таксационное описание". При этом "номера выделов" отображаются. С этой проблемой сталкивались и на более ранних версиях программы.
В чем может быть источник проблемы? И как выйти из сложившейся ситуации?

2

OlyaEco
у меня наблюдалась подобная проблема (не работали метки выделов, не работали легенды, не работали выражения ToPas) связано было с тем, что программа и базы установлены не на диске С:\, а на D:\
кажется, проблема была решена, как не помню, тему с этим обсуждением я не cмог найти на форуме.

3

Да, у нас база находится на сервере. Попробуем открыть непосредственно через диск С.

4

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

связано было с тем, что программа и базы установлены не на диске С:\, а на D:\

Сейчас точно вряд ли. Я все время ставлю на D:

OlyaEco написал(а):

В чем может быть источник проблемы? И как выйти из сложившейся ситуации?

Всегда начинайте изучение проблемы с деморегиона. Если там работает - проблема в базе. Если там не работает - проблема с программой. В последнем случае чаще из-за некорректного восстановления каталога LesIS из архива. Если с базой то проверьте - рассчитаны ли производные показатели? Все окраски и "формулы" обращаются к ним. Если производные на месте - пишите как создавали БД? Штатно или что то руками или сторонними прогами делали? Чем они могут отличаться от демо? Где находится папка с проектами, штатно?

5

OlyaEco написал(а):

Да, у нас база находится на сервере.

Если сетевой диск имеет файловую идентификацию (D:, F:, E:....), то все должно быть нормально. Проверяйте только "доступы" и "права", если закрываете от пользователей служебные папки. Если путь "сетевой" (\\имясервера... или с IP адресом...) то работать нормально ничего не будет.

6

Грешнов
Спасибо, все заработало после открытия базы с диска С.

7

OlyaEco написал(а):

Спасибо, все заработало после открытия базы с диска С.

И тем не менее, проблема не в диске C:. У меня все работает и на D: и в облаке. Какой путь у Вас был к сетевой базе? Тип сервера? Политика доступа? Либо у Вас путь имел некорректное имя (сетевое, например), либо сетевой диск имел ограничения в доступе, либо у Вас изначально система была установлена на диск C:, а по новому пути Вы его разместили каким то нештатным способом. И если те, у кого это проявляется не дадут нам больше информации о реальной ситуации и о том, что они делали, мы эту ситуацию обработать не сможем.

8

Изначально база создавалась на диске С: без доступа к серверу (грубо говоря базу создавали дома). Далее база была скопирована на сервер (копировали папка "2011" на рабочий компьютер, являющийся сервером), путь был указан Z\\Monoblok_1\\общий диск\\LesIS. Про ограничения к доступу - не были указаны.

9

OlyaEco написал(а):

Z\\Monoblok_1\\общий диск\\LesIS

Мне не знаком такой формат идентификации пути...  o.O Если Вы имели в виду Z:\Monoblok_1\общий диск\LesIS то я скорее буду грешить на "общий диск". Однозначно может не сработать.

OlyaEco написал(а):

Изначально база создавалась на диске С:

Все правильно. Из Вашего lesis_support_COMPLD.cab видно, что путь к базе был C:\LesIS. И если бы Вам подключили сетевой диск корректно с точки зрения OGIS, например, Z:\LesIS или Z:\Dropbox\LesIS и при этом путь был бы зафиксирован в реестре штатными методами (при установке или выбором параметра при загрузке при наличии исходного установочного каталога) то уверяю Вас, что никаких проблем с не C: диском у Вас не было бы. Я уже не помню когда ставил прогу на C:. Лет пять может назад...
Так что, если,  например, Вы ставили на C:\Lesis, а потом поступили не штатно - полностью удалили этот каталог в проводнике и сделали z:\LesIS то  Вы должны понимать, что программа об этом ничего не знает. Нужно переустановить ее и (или) добавить каталог интерфейсно.
А если не хотите заморачиваться с переустановками - откройте свой рабочий проект и реестр (regedit, а там - HKEY_CURRENT_USER\SOFTWARE\LesIS\TopoL_L2) замените там все некорректные пути c:\LesIS на нужный Вам z:\LesIS. В реестре это всего два параметра, а в проекте - массовой заменой в текстовом редакторе.  Результат будет тот же.

10

Спасибо за развернутый ответ, будем пробовать.

11

Если на сетевом диске "D" с папкой LesIS, то и запрос должен начинаться с буквы диска "D":
CalcValue('D:\LesIS\_Les\ToPas\PlanL2.tps').

При первой установке тополя с нуля лучше всего сразу указать путь до сетевой папки. А дальше в своём запросе CalcValue поправить путь. У меня нет стандартных запросов от ЛесИС - они все в пользовательских либо модернизированы, либо как с топасом по плану лесонасаждений - перенесены с изменением пути.

Путь с рабочего компа на сервер, подключение как сетевой диск:
http://s9.uploads.ru/ORBSg.jpg

Реестр:
http://s2.uploads.ru/1LcvP.jpg

Нужно настроить сетевой диск, прописать все разрешения по максимуму (настройки безопасности). Возможно, потребуется дополнительная помощь сисадмина (или кто шарит в сетевых настройках).

Через сервер можно работать по VPN или внутренней локальной сети. С облаками по опыту могу сказать - у меня не пошло.

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

Отредактировано Александр Архипов (02.08.2017 04:48:13)

12

В итоге вот так это всё выглядит:
http://s3.uploads.ru/qrsFk.jpg

13

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

Через сервер можно работать по VPN или внутренней локальной сети.

А объясните мне что значит работать? Открыть и покрасить план это одно а вот работать??? Десятки пользователей обращаются к сети и это поверьте не фонтан как работает. С растрами вообще тяжело. А с блоком только один человек может работать. И вообще смысл этого? Как хранилище?

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

Использовать единые настройки для тополя на разных компах в сети можно

Вот это у меня была первая мысль. И всем закрыть доступ к этим настройкам. Чтобы не могли их править.

14

.

Извиняюсь за текст под хайдом. Лички нет, а ответ больше персональный. Спасибо.

Отредактировано Александр Архипов (03.08.2017 01:23:05)

15

Добрый день. Возник вопрос, в готовой таксационной карте присутствует преобладающая порода - ильм. Но при окрашивании по плану лесонасаждений выделы с этой преобладающей породой не окрашиваются. В окне карты нажимаем "инструменты" - "преобразовать символы" - "план лесонасаждений". В данной таблице отсутствует нужный нам ильм. Каким образом необходимо вносить изменения в данную таблицу, и на правильном ли мы пути?

16

OlyaEco написал(а):

Каким образом необходимо вносить изменения в данную таблицу, и на правильном ли мы пути?

Сперва добавить в библиотеку. Затем в "План лесонасаждений". И ещё в PlanL.tps.

OlyaEco написал(а):

и на правильном ли мы пути?

Да.
Вроде бы и всё.

17

Сергей, то есть сперва надо открыть файл библиотеки LesIs_2 (хранится по адресу С:\LesIs\_Sis\_LesIs_2.sli). Сразу же вопрос. Чем можно открыть этот тип файла? Далее в преобразовании символов в плане лесонасаждений необходимо добавить необходимые добавленные символы из библиотеки LesIs_2. Далее насчет файла PlanL.tps. Вопрос - чем открыть этот тип файла, чтобы внести изменения? Попробовали открыть его DatabaseDocs, в результате увидели 3 столбца, в среднем столбце непонятные числа, каким образом надо добавить сюда необходимую породу?

18

OlyaEco написал(а):

Чем можно открыть этот тип файла?

LesIs_2.sli открывается он Редакторе знаков который ставится с программой.

OlyaEco написал(а):

Далее насчет файла PlanL.tps

PlanL2.tps открывается любым редактором. Нажмите F4.
Посмотрев на этот файл поймете что и как добавить.

19

OlyaEco написал(а):

Сразу же вопрос. LesIs_2.sli Чем можно открыть этот тип файла?

Для редактирования библиотек условных знаков есть специальный редактор, он устанавливается вместе с программой - Symbol library editor.

OlyaEco написал(а):

PlanL.tps. Вопрос - чем открыть этот тип файла

Это обычный текстовый файл, Notepad или что-то подобное подойдет.
Редактируете по принципу аналогии, это программный текст, похожий на Pascal, поэтому четко соблюдайте синтаксис языка, иначе все перестанет работать.

20

Сергей, я понимаю, что задам глупый вопрос - как вызвать редактор знаков.

21

Пуск-Все программы-ЛесИС-Редактор знаков

22

Огромно спасибо, будем пробовать.

23

Таким образом, создали для ильма в редакторе условных знаков собственно условные знаки. В преобразовании символов были добавлены условные знаки для ильма ( от 32408 до 32414). Вот здесь первый вопрос - задавали с 32501 и до 32507, но программа все равно их переименовывает по порядку. Открываем PlanL2.tps и добавляем строку для ильма после вяза (вот здесь не уверены после вяза ли, или в самом конце преобладающих пород).
else if Trunc(@1.PorodaPrb/100) = 20255 then
    ResultValue := '3240' { ильм }
И в результате ничего не окрашивает. Еще возник вопрос - нужно ли вносить туже самую строку в PlanLss.tps?

Отредактировано OlyaEco (19.09.2017 15:52:26)

24

OlyaEco написал(а):

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

Справа в редакторе. ID номер задаете нужный и сохраняете. Главное чтобы он не был занят. И потом не очень понятно где программа его переименовывает? В редакторе?

25

Сергей, не так написали предыдущее сообщение. Значит в редакторе условных знаков были созданы условные обозначения для ильма под номерами от 23501 до 23507. Далее в ЛесИс "Инструменты" - "Преобразовать символы" - "План лесонасаждений" были добавлены под теми же номерами условные обозначения. Все сохранили, все хорошо. Закрыли программу. Далее открыли PlanL2.tps и здесь после вяза добавили строчку
else if Trunc(@1.PorodaPrb/100) = 20255 then
    ResultValue := '2350' { ильм }
Сохранили. Закрыли. Теперь опять открыли ЛесИс, окрашивания не произошло.

26

else if Trunc(@1.PorodaPrb) = 202550 then
Попробуйте так.
А у вас Вяз есть?

27

Тоже самое, не окрашивает. Да, вяз присутствует, и окрашивается. А ильм не хочет. Вообще очень странно конечно, может забыли что-то. Либо неправильно прописали. Нужно ли прописывать в PlanLss.tps тоже ильм?

28

Попробовали сейчас задать в PlanL2.tps только молодняк, то есть задали
else if Trunc(@1.PorodaPrb) = 202550 then
    ResultValue := '23501' { ильм }
Программа окрасила. И если менять по отдельности с 23501 до 23507, программа окрашивает. Тогда каким образом надо задавать условные обозначения, чтобы он окрашивал в зависимости от возраста?

Отредактировано OlyaEco (19.09.2017 17:29:30)

29

else if Trunc(@1.PorodaPrb) = 202550 then
    ResultValue := '2350' { ильм }
У меня всё работает.

30

На цвета не смотрите.
http://sh.uploads.ru/t/6OS07.png
Это в редакторе.
http://s0.uploads.ru/t/4UqWp.png
Это в плане лесонасаждений

else if Trunc(@1.PorodaPrb) = 202550 then
    ResultValue := '2350' { ильм }

31

На удивление, все тоже самое. Похоже, что где-то все-таки совершили ошибку. Выражение идентичны.
http://s3.uploads.ru/t/cPkjB.jpg
http://s4.uploads.ru/t/sweqG.jpg
http://s7.uploads.ru/t/60AiB.jpg

32

Выставьте текст по выражению
@1.PORODAPRB
http://s4.uploads.ru/t/mrt7Z.png

Смотрите базу. Класс возраста, порода.

33

Я бы Вам даже посоветовал вывести в виде текстовой метки не просто код породы, и те коды, которые возвращает Ваш макрос  PlanL2.tps, тогда Вы узнаете, какие коды получились. Легенда плана в проекте TopoL задает соответствие между этим кодом и кодом условного знака.

34

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

35

с телефона неудобно объяснять, но попросите программистов посмотреть что такое Trunc и зачем код породы делить на 100 )

Дмитрий Александрович, давно хочу спросит, а есть ли способ в ТоПасе не городить сто условий if-else, а использовать другой оператор наподобие Case?

36

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

у вас перебор просто не доходит до ильма

Нет тут никакого перебора. У меня красится. Ошибка тут должна быть.
1.KatZem - категория земель
1.PorodaPrb - преобладающая порода
1.VozGrpVyd - группа возраста 

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

зачем код породы делить на 100

Согласен.  Пример: Дуб низ. не красился.
else if Trunc(@1.PRBPOR/100) = 2020 then
    ResultValue := '220' { дуб }
else if Trunc(@1.PRBPOR) = 202065 then
    ResultValue := '220' { дуб низ }

37

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

Нет тут никакого перебора.

Сергей,
... else if then ...
... else if then ...
это - перебор. Перебор вариантов. Значений преобладающей породы.

OlyaEco написал(а):

здесь после вяза добавили строчку
else if Trunc(@1.PorodaPrb/100) = 20255 then
    ResultValue := '2350' { ильм }

в этом выражении ошибка арифметическая, поэтому не работало. Порода у вас 202550, если это число разделить на 100 и отбросить после запятой (TRUNC), то получится всего 2025, а это никак не равно 20255.

Далее вы приводите скриншот, где сначала стоит условие для "вяза", затем для "ильма". Что получается: если порода "ильм"=202550, то на проверке равенства даже для "вяза" оно уже сработает!

else if Trunc(@1.PorodaPrb/100) = 2025 then
    ResultValue := '2250' { вяз }

TRUNC(202550/100) = 2025
ResultValue получает значение '2250'
проверка дальше не идет!

Сергей приводит свой пример то же самое для "Дуб низ".

Решение - поставьте более узкое условие выше, чем более общее. То есть "Ильм" раньше "вяза", "Дуб низ" раньше "дуба".

p.s. Вообще конечно, гадать по кусочкам скриншотов, то еще занятие. Почему бы сразу не выкладывать файлы, которые не работают, и образец базы? Вчера бы уже всё решили :)

38

OlyaEco написал(а):

Попробовали сейчас задать в PlanL2.tps только молодняк, то есть задали
else if Trunc(@1.PorodaPrb) = 202550 then
    ResultValue := '23501' { ильм }
Программа окрасила. И если менять по отдельности с 23501 до 23507, программа окрашивает. Тогда каким образом надо задавать условные обозначения, чтобы он окрашивал в зависимости от возраста?

Извините за вопрос, а группы возраста для Ильма у вас посчитаны?

39

Алексей, Вы как раз угадали. Для выделов с преобладающей породой "Ильм" отсутствовали группы возраста, все как обычно. Ошибка была самой элементарной. Как только рассчитали группы возраста, программа окрасила. Спасибо всем за помощь!

40

Странно, по моим рассуждениям, окрашивать она всё равно не должна  :confused:

41

OlyaEco
скиньте пожалуйста ваш файлик C:\LesIS\_Les\ToPas\PlanL2.tps весь целиком
хочу просто посмотреть :)

42

И всё таки какое выражение для ильма вы оставили?

43

Алексей, держите!  8-)

Valuemacro  Plan;
{  Формирует код символа 'Раскраска плана лесонасаждений',
   что позволяет сформировать параметры раскраски для БД блока
   
Вер. 4.0   © Старостенко Д.А., 1999-2013 год }

   {  Имена полей БД 
1.KatZem - категория земель
1.PorodaPrb - преобладающая порода
1.VozGrpVyd - группа возраста         }

var
ResultValue : string;

begin
      {  Преобладающая порода  }
  if Trunc(@1.PorodaPrb/100) = 1001 then
    ResultValue := '1010' { сосна }
  else if Trunc(@1.PorodaPrb/100) = 1002 then
    ResultValue := '1020' { ель }
  else if Trunc(@1.PorodaPrb/100) = 1003 then
    ResultValue := '1030' { пихта }
  else if Trunc(@1.PorodaPrb/100) = 1004 then
    ResultValue := '1040' { лиственница }
  else if Trunc(@1.PorodaPrb/100) = 1005 then
    ResultValue := '1050' { кедр }
   
  else if Trunc(@1.PorodaPrb/100) = 2020 then
    ResultValue := '2200' { дуб }
  else if Trunc(@1.PorodaPrb/100) = 2023 then
    ResultValue := '2230' { ясень }
  else if Trunc(@1.PorodaPrb/100) = 2024 then
    ResultValue := '2240' { клен }
    else if Trunc(@1.PorodaPrb/100) = 2025 then
    ResultValue := '2250' { вяз }
  else if Trunc(@1.PorodaPrb) = 202550 then
    ResultValue := '2350' { ильм }
       
  else if Trunc(@1.PorodaPrb/100) = 3026 then
    ResultValue := '3020' { береза }
  else if Trunc(@1.PorodaPrb) = 304000 then
    ResultValue := '3040' { осина }
  else if Trunc(@1.PorodaPrb) = 304105 then
    ResultValue := '3100' { ольха с }
  else if Trunc(@1.PorodaPrb) = 304110 then
    ResultValue := '3110' { ольха ч }
  else if Trunc(@1.PorodaPrb/100) = 3042 then
    ResultValue := '3240' { липа }
  else if Trunc(@1.PorodaPrb/100) = 3043 then
    ResultValue := '3040' { тополь }
  else if Trunc(@1.PorodaPrb/100) = 3044 then
    ResultValue := '3140' { ива }
     
  else if Trunc(@1.PorodaPrb) = 511800 then
    ResultValue := '518' { рябина }
  else if Trunc(@1.PorodaPrb) = 512800 then
    ResultValue := '528' { черемуха }
  else if Trunc(@1.PorodaPrb/100) = 5134 then
    ResultValue := '534' { яблоня }
  else
    ResultValue := '';
   
    {  Категория земель  }
  if (@1.KatZem >= 1100) and (@1.KatZem < 1108) then
    begin    { покр. лесом }
      if (@1.VozGrpVyd = 1) or (@1.VozGrpVyd = 2) then
        ResultValue := ResultValue + '1'
      else if (@1.VozGrpVyd = 3) or (@1.VozGrpVyd = 4) then
        ResultValue := ResultValue + '2'
      else if @1.VozGrpVyd = 5 then
        ResultValue := ResultValue + '3'
      else if @1.VozGrpVyd >= 6 then
        ResultValue := ResultValue + '4'
    end
  else if (@1.KatZem = 1200) or (@1.KatZem = 1201) then
      ResultValue := ResultValue + '5' { культуры несомкн. }
  else if (@1.KatZem = 1108) or (@1.KatZem = 1114) then
      ResultValue := ResultValue + '6' { культуры сомкн. }
  else if @1.KatZem = 1109 then
      ResultValue := ResultValue + '7' { культ. реконстр. }
  else if @1.KatZem = 1341 then
      ResultValue := '1341' { плантации }
  else if (@1.KatZem = 1503) or (@1.KatZem = 1504) then
      ResultValue := '1503' { гари, погибшие нас. }
  else if @1.KatZem = 1505 then
      ResultValue := '1505' { ветровалы }
  else if @1.KatZem = 1509 then
      ResultValue := '1509' { вырубки }
  else if @1.KatZem = 2101 then
      ResultValue := '2101' { пашни }
  else if @1.KatZem = 2102 then
      ResultValue := '2102' { сенокосы }
  else if @1.KatZem = 2103 then
      ResultValue := '2103' { пастбища }
  else if (@1.KatZem >= 2108) and (@1.KatZem <= 2116) then
      ResultValue := '2108' { воды }
  else if @1.KatZem = 2120 then
      ResultValue := '2120' { сады }
  else if @1.KatZem = 2425 then
      ResultValue := '2425' { кладбище }
  else if @1.KatZem = 2506 then
      ResultValue := '2506' { пески }
  else if @1.KatZem = 2507 then
      ResultValue := '2507' { болота }
  else
      ResultValue := '1000';    { прочие категории земель }
end.

44

OlyaEco написал(а):

else if Trunc(@1.PorodaPrb/100) = 2025 then
    ResultValue := '2250' { вяз }
  else if Trunc(@1.PorodaPrb) = 202550 then
    ResultValue := '2350' { ильм }

Спасибо.
Судя по логике, должен красить Ильм, но в цвета Вяза.  8-)

45

На приложенном скриншоте 7 и 8 выдел - это ильм с группой возраста 2 в базе данных. Окрашивает по тем условным обозначениям, которые задали. Безусловно, не спорю, могут быть ошибки. Но тогда каким образом он окрасил.
http://s2.uploads.ru/t/drfs0.jpg

46

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

Судя по логике, должен красить Ильм, но в цвета Вяза.

Вяз, или ильм (лат. Úlmus) — род деревьев семейства Вязовые (Ulmaceae).

47

CalcValue('C:\LesIS\_Les\ToPas\PlanL2.tps')
Поставьте в текст выражение для окраски и увидите сразу и породу класс возраста.
http://s9.uploads.ru/t/CqhTX.png
То о чём Д.А. писал выше.

48

Сергей, Вы знаете, почему-то все-таки один выдел он не окрашивает (справа под породой 304400 , непонятно почему. Скорее всего в базе что-то не так. Скриншот прилагаю.
http://sh.uploads.ru/t/qygfN.jpg

49

Поставьте выражение о котором писал выше и сделайте скрин.
P.S. А реки надо так подписывать.
http://s4.uploads.ru/t/spHlt.jpg

50

Сергей, по-моему ничего не поменялось. Сделали в видимости для выдела полигона выражение @1.PORODAPRB, для окрашивания по плану лесонасаждений для символа сделали указанное Вами выражение CalcValue('C:\LesIS\_Les\ToPas\PlanL2.tps').

P.S. За реки спасибо.

http://sh.uploads.ru/t/NSTxD.jpg


Вы здесь » ФОРУМ ТЕХПОДДЕРЖКИ ГИС TOPOL-L » КАРТОГРАФИЯ, ВЕКТОРНАЯ И РАСТРОВАЯ » Не отображает окрашивание по плану лесонасаждений



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