Аналитика http://www.geosystema.net/forum/ |
|
Универсальный скрипт контроля карт (поиска ошибок) http://www.geosystema.net/forum/viewtopic.php?f=1&t=2352 |
Страница 2 из 2 |
Автор: | kol_s [ 16 мар 2013 19:55 ] |
Заголовок сообщения: | Re: Универсальный скрипт контроля карт (поиска ошибок) |
Дякую! |
Автор: | paul [ 18 мар 2013 09:18 ] |
Заголовок сообщения: | Re: Универсальный скрипт контроля карт (поиска ошибок) |
Очень полезный скрипт. Спасибо большое за проделанную работу. |
Автор: | voha [ 26 сен 2013 20:53 ] |
Заголовок сообщения: | Re: Универсальный скрипт контроля карт (поиска ошибок) |
Прохання до розробників, допомогти у вирішенні наступних питань. 1. Не можу підібрати функцію сценарію контролю, що повертала-б помилку при частковому накладанні лінійного об'єкта на межу полігона (треба виловити лінійні об'єкти, дві або більше точки підряд якого, співпадають з двома або більше точками підряд полігонального об'єкта). Якби функція [Share 2] (выдаст ошибку только в случае двух или более совпадающих точек) контролювала співпадання двох і більше точок підряд, а не двох і більше точок загалом по об'єкту 2. Не вистачає можливості контролювати наявність не примикання об'єктів. Наприклад, той самий струмок, одна з кінцевих точок якого має співпадати з будь-якою точкою іншого об'єкта (струмок, річка, озеро і т.д.). Але ж друга кінцева точка (фактичний початок струмка) може й не примикати до будь-яких інших об'єктів. Якби мати функцію, подібну [Not Join], яку можна було-б роз'яснити так: помилка виникає тоді, коли жодна з кінцевих точок об'єкта не співпадає з будь-якою точкою іншого об'єкта. Я дочитувався до кожного слова роз'язнення функцій у файлі Control.doc, але за три дні розбору смислу роз'яснень, так і не знайшов для себе відповіді як вирішити поставлені задачі. Погано, коли немає однозначності у забезпеченні контролю, але до однозначності треба прагнути шляхом розробки функцій, яких не вистачає для контролю. Може краще писати скрипт такого контролю? Але тоді не вистачає скриптової функції @Map.Object[L].Point[Ln].NodePoints, яка б повертала список: номер об'єкта A точка якого An співпадає з точкою Ln об'єкта L, і номер точки An об'єкта A. |
Автор: | voha [ 10 май 2016 07:36 ] |
Заголовок сообщения: | Re: Универсальный скрипт контроля карт (поиска ошибок) |
Підкажіть будь-ласка. Чи можливо у сценарії контролю виловити точки полігонів у шарі-1, які не лежать у вузлі з точкою шарів-2,3,...,n? Простіше так: знайти точки межі ділянки, в яких немає точки суміжника. |
Автор: | 13vp [ 10 май 2016 13:34 ] |
Заголовок сообщения: | Re: Универсальный скрипт контроля карт (поиска ошибок) |
voha писал(а): Підкажіть будь-ласка. Чи можливо у сценарії контролю виловити точки полігонів у шарі-1, які не лежать у вузлі з точкою шарів-2,3,...,n? Простіше так: знайти точки межі ділянки, в яких немає точки суміжника. Можна зробити так: Вирізати точки з шарів і перевірити на парність точок. Де кількість точок буде не парна - там і помилка. Тільки треба заданий шар почерзі перевіряти з шарами 2,3,...,n |
Автор: | Dmitry_Zolotar [ 10 май 2016 14:05 ] |
Заголовок сообщения: | Re: Универсальный скрипт контроля карт (поиска ошибок) |
voha писал(а): Підкажіть будь-ласка. Чи можливо у сценарії контролю виловити точки полігонів у шарі-1, які не лежать у вузлі з точкою шарів-2,3,...,n? Простіше так: знайти точки межі ділянки, в яких немає точки суміжника. Функція @Map.Object[N].Node PointNumber [Layer] повертає номер об'єкта-пікета, на якому розташована точка PointNumber об'єкта N. Необов'язковий параметр Layer задає шар пікетів для пошуку, якщо не задан, то функція шукає в усіх шарах, тип яких пікет або одиночний символ. На прикладі Ін4-шарів ID20000 - ділянка ID50000 - суміжник ID51000 - тимчасові пікети Код: $AM=@ActivateMap
@if $AM=0 then @Break @Text[1].Clear @Map.DeselectAll @Map.Layers.Add 51000 4 Тестові пікети @Map.Parameters.Add 51001 5 Назва пікета @Map.Layers.SetValidParameters ID51000 ID51001 @Map.SelectLayer ID50000 @Map.AddNodes ID51000 1 @Map.DeselectAll @Map.SelectLayer ID20000 $SC=@Map.SelCount $MC=@Map.Count $I=0 %LoopObject $I=$I+1 $Sel=@Map.Object[$I].Selected @if $Sel=0 then @Goto %NextObject $PC=@Map.Object[$I].Count $J=0 %LoopPoint $J=$J+1 $XYZ=@Map.Object[$I].Point[$J] $XYZS=%Library.ReplaceComma $XYZ $XYZS=@DequoteText $XYZS @if $XYZS=-2684354.56 -2684354.56 0 then @Goto %NextPoint $NodeObj=@Map.Object[$I].Node $J ID51000 @if $NodeObj<>0 then @Goto %NextPoint @Text[1].Add Об'єкт $I: точка $J не суміщена з суміжником %NextPoint @if $J<$PC then @Goto %LoopPoint %NextObject @if $I<$MC then @Goto %LoopObject $TC=@Text[1].Count ;@if $TC=0 then @Break $S=@Text[1].Text @Dialog.Message $S |
Автор: | voha [ 10 май 2016 15:47 ] |
Заголовок сообщения: | Re: Универсальный скрипт контроля карт (поиска ошибок) |
Dmitry_Zolotar писал(а): ...Функція @Map.Object[N].Node PointNumber [Layer] повертає номер об'єкта-пікета, на якому розташована точка PointNumber об'єкта N... 13vp писал(а): ...Вирізати точки з шарів і перевірити на парність точок. Де кількість точок буде не парна - там і помилка. Дякую.Тільки треба заданий шар почерзі перевіряти з шарами 2,3,...,n Два вирішення: - перебирати в циклі кожну точку кожної межі ділянки, при чому для кожної точки: 1) задавати пошук рядка в текстовому блоці (@Text[N].IndexOf FindStr), який містить координати всіх точок всіх об'єктів суміжників; або 2) знаходити тимчасовий точковий об'єкт (@Map.Object[N].Node PointNumber [Layer]). Треба пробувати, що працюватиме швидше. Ділянок може бути зо 200-300. Точок ділянок 2-4 тис. Хотілось, правда, щоб була функція подібна [Not Share] - Ошибки отсутствия общей границы "Ошибка возникает в том случае, если объект не имеет совпадающих точек ни с одним объектом из заданного слоя (слоев)", яка звучала б як "Ошибка возникает в том случае, если объект имеет точки несовпадающие ни с одним объектом из заданного слоя (слоев)". |
Автор: | voha [ 22 ноя 2018 15:13 ] |
Заголовок сообщения: | Re: Универсальный скрипт контроля карт (поиска ошибок) |
Доброго дня. Пробував застосовувати функції сценарію контролю, розроблені 22.10.18: [Overlay] Ошибки наложения полигонов A,70008:N ; Наложение полигонов %L1 и %L2 (площадь %V кв.м.) [Gap] Ошибки зазора между полигонами A,70008:N ; Зазор между полигонами %L1 и %L2 (площадь %V кв.м.) В функции Gap через пробел можно задать максимальную площадь зазора в кв.м, который считается ошибкой, а в Overlay - минимальную площадь перекрытия, например [Overlay 0.01]. Відтепер легко знайти в карті перекриття полігонів вказаних шарів, а застосувавши функцію [Overlay] без вказування мінімальної площі - знайти усі перекриття . Однак, щоб знайти всі зазори між полігонами вказаних шарів, виявляється мало застосувати функцію [Gap], обов'язково вказавши максимальну площу, менше якої зазор буде вважатись помилкою Нижче наведені випадки, коли Gap знаходить: - "зазор" між двома позначеними полігональними об'єктами, які мають декілька фрагментів спільної межі по лінії (мал.1), хоча є полігон 13 (жовтим кольором); - "зазор" у межах внутрішнього полігона складного (комплексного) полігонального об'єкта (мал.2), хоча є полігон 13 (жовтим кольором); - "зазор" між двома позначеними полігональними об'єктами, які мають спільну межу лише в одній-єдиній точці. Вложение: Gap.PNG [ 374.21 Кб | Просмотров: 16645 ] 1) запустити функцію [Gap] сценарію контроля; 2) створити точкові об'єкти за координатами з текстового лог-файла; 3) запустити функцію [Not Inside] іншого сценарію контроля, яка запише в лог-файл координати точкових об'єктів, що не знаходяться всередині контура полігональних об'єктів; 4) видалити точкові об'єкти. В текстовому лог-файлі отримаємо координати центроїдів справжніх зазорів. В мене питання до розробників: чи не можна в алгоритм роботи функції [Gap] включити таку перевірку (Not Inside) Тоді Gap буде знаходити справжні зазори. |
Автор: | Sergey Oleynik [ 22 ноя 2018 15:17 ] |
Заголовок сообщения: | Re: Универсальный скрипт контроля карт (поиска ошибок) |
voha писал(а): В мене питання до розробників: чи не можна в алгоритм роботи функції [Gap] включити таку перевірку (Not Inside) Тоді Gap буде знаходити справжні зазори. Скиньте нам dmf з проблемними полігонами на help@vingeo.com |
Автор: | voha [ 22 ноя 2018 16:27 ] |
Заголовок сообщения: | Re: Универсальный скрипт контроля карт (поиска ошибок) |
Sergey Oleynik писал(а): voha писал(а): В мене питання до розробників: чи не можна в алгоритм роботи функції [Gap] включити таку перевірку (Not Inside) Тоді Gap буде знаходити справжні зазори. Скиньте нам dmf з проблемними полігонами на help@vingeo.com |
Автор: | voha [ 14 мар 2019 13:27 ] |
Заголовок сообщения: | Re: Универсальный скрипт контроля карт (поиска ошибок) |
Доброго дня, шановні Розробники. Можна питання? В збиранні Digitals за 12.02.19 сценарій контролю записує в log-файл рядок: 12 17:7 458 5554087,89 3268896,72 Накладка полігонів В збиранні Digitals за 14.03.19 той самий сценарій контролю записує в log-файл рядок: 12:0A06ED40 17:7 458:0DD21120 5554087,89 3268896,72 Накладка полігонів Скрипт запускає сценарій контролю @RunControlScript Filename [/HIDE] і вичитує по рядкам номери об'єктів з log-файла. Розумію, що 0A06ED4 в десятковому вигляді 10514132, ця інформація може бути корисною? Тепер парсити рядок log-файла треба ще по символу ":"? Наперед дякую за відповідь. |
Автор: | Sergey Oleynik [ 15 мар 2019 09:39 ] |
Заголовок сообщения: | Re: Универсальный скрипт контроля карт (поиска ошибок) |
Ці дані потрібні для форми логу, але в файлі вони дійсно зайві. Прибрали. |
Автор: | mihel0488 [ 08 дек 2020 00:01 ] |
Заголовок сообщения: | Re: Универсальный скрипт контроля карт (поиска ошибок) |
Возможно ли в сценарии проводить поиск ошибок параметров. Например необходимо найти объекты в которых не заполнены определенные параметры (т.е. пустые поля) из списка или справочника. Имеется виду параметр "Стан", который в соответствии с классификатором имеет 17 определенных значений. Возможен ли поиск ошибок если у объекта значение этого параметра не заполнено или отличается от предусмотренного списком/справочником. Второй вопрос при формировании лог-файла с ошибками, если возможность чтобы в строке с ошибкой указывался IDномер объекта? |
Автор: | Dmitry_Zolotar [ 09 дек 2020 17:14 ] | ||
Заголовок сообщения: | Re: Универсальный скрипт контроля карт (поиска ошибок) | ||
mihel0488 писал(а): Возможно ли в сценарии проводить поиск ошибок параметров. Например необходимо найти объекты в которых не заполнены определенные параметры (т.е. пустые поля) из списка или справочника. Имеется виду параметр "Стан", который в соответствии с классификатором имеет 17 определенных значений. Возможен ли поиск ошибок если у объекта значение этого параметра не заполнено или отличается от предусмотренного списком/справочником. Второй вопрос при формировании лог-файла с ошибками, если возможность чтобы в строке с ошибкой указывался IDномер объекта? Во вложении архив со скриптом контроля, списком значений и примером.
|
Страница 2 из 2 | Часовой пояс: UTC + 2 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |