Аналитика
https://www.geosystema.net/forum/

Нужна помощь
https://www.geosystema.net/forum/viewtopic.php?f=1&t=2933
Страница 47 из 50

Автор:  -Ivan- [ 04 окт 2021 15:54 ]
Заголовок сообщения:  Re: Нужна помощь

Ось так працює:
$ResrtCount=@Map.Layers.ObjectCount ID70008
@if $ResrtCount=0 then @Map.Layers.SetState ID121212125 3 else @Map.Layers.SetState ID121212126 3
>0 щось не пішло
Дякую хто відгукнувся)

Автор:  Артем Сорокін [ 05 ноя 2021 13:33 ]
Заголовок сообщения:  Re: Нужна помощь

Как присвоить сюда другую клавишу?
Вложение:
.png
.png [ 9.38 Кб | Просмотров: 5683 ]

Автор:  Dmitry_Zolotar [ 05 ноя 2021 17:42 ]
Заголовок сообщения:  Re: Нужна помощь

Скриптовая команда @SelectTab TabIndex позволяет переключаться между закладками правой боковой панели. Создайте панель инструментов, добавьте необходимое кол-во кнопок, этим кнопкам можно назначить горячие клавиши.

;переключение на закладку "Сбор"
@SelectTab 0

;переключение на закладку "Правка"
@SelectTab 1

;переключение на закладку "Инфо"
@SelectTab 2

;переключение на закладку "Список"
@SelectTab 3

Автор:  Артем Сорокін [ 06 ноя 2021 21:07 ]
Заголовок сообщения:  Re: Нужна помощь

Спасибо, нашёл другие клавиши:
Ctrl+1/Ctrl+2/Ctrl+3/Ctrl+4

Автор:  ТОВ Аспект [ 18 ноя 2021 16:59 ]
Заголовок сообщения:  Re: Нужна помощь

Не розумію у чому причина, при збережені xml зберігає пусті теги (</Block>та</AdditionalInfo>), в додатковій інформації дві пусті строки.
Раніше користувався цим скриптом проблем не було, може щось не так в скрипті?
Скрипт в карті XMLNormal.
%Events.OnFileSave
@Map.SelectLayer ID70005
$Parcel=@Map.SelectedObject
@if $Parcel=0 then @Break
$Address=@Map.Object[$Parcel].Parameter[ID7000500]
$Region=@XML.XPath Region $Address
$Settlement=@XML.XPath Settlement $Address
$District=@XML.XPath District $Address
@if $Settlement=с. Новоукраїнка then $District=Василівський район
$Rural=@XML.NodeCount ParcelLocation Rural $Address
@if $Rural=0 then $Rural=<ParcelLocation><Urban/></ParcelLocation>
@if $Rural=1 then @Break
$StreetType=@XML.XPath ParcelAddress/StreetType $Address
$StreetName=@XML.XPath ParcelAddress/StreetName $Address
@Text[1].Load C:\Digitals\Lists\Street_new\$Settlement.txt
$F=@Text[1].KeyValue $StreetName
@if $F= then @Map.DeselectAll
@if $F= then $F=$StreetName
$Building=@XML.XPath ParcelAddress/Building $Address
$Block=@XML.XPath ParcelAddress/Block $Address
$AdInfo=@XML.XPath AdditionalInfoBlock/AdditionalInfo $Address
$Res1=<ParcelLocationInfo><Region>$Region</Region><Settlement>$Settlement</Settlement>
$Res2=$Res1<District>$District</District>$Rural<ParcelAddress><StreetType>$StreetType</StreetType><StreetName>$F</StreetName><Building>$Building</Building>
$Res3=$Res2<Block>$Block</Block></ParcelAddress>
$Res4=$Res3<AdditionalInfoBlock><AdditionalInfo>$AdInfo</AdditionalInfo></AdditionalInfoBlock></ParcelLocationInfo>
@Map.Object[$Parcel].Parameter[ID7000500] $Res4
@Map.DeselectAll

Автор:  Denidz [ 18 ноя 2021 19:05 ]
Заголовок сообщения:  Re: Нужна помощь

Доброго времени суток! подскажите есть в digitals скриптовые функции для работы с любыми xml файлами (нужо распарсить xml отличный от ГЗК)

Автор:  Руслан Пархуць [ 18 ноя 2021 23:02 ]
Заголовок сообщения:  Re: Нужна помощь

Denidz писал(а):
Доброго времени суток! подскажите есть в digitals скриптовые функции для работы с любыми xml файлами (нужо распарсить xml отличный от ГЗК)

Добрий :)
Функції мови скриптів для отримання окремих елементів XML рядків

P.S. Погано працює (тобто не працює) iз так званими "неймспейсами" :
Код:
<KVOKS xmlns="urn://x-artefacts-rosreestr-ru/outgoing/kvoks/3.0.1"
xmlns:adrs="urn://x-artefacts-rosreestr-ru/commons/complex-types/address-output/4.0.1">
<adrs:OKATO>40265558000</adrs:OKATO>
, потрiбно перед парсингом привести формат файлу до "звичайного"

Автор:  Dmitry_Zolotar [ 18 ноя 2021 23:28 ]
Заголовок сообщения:  Re: Нужна помощь

В тих файлах де використовуються простори імен "xmlns:....." запити XPath робити дещо складніше:
замість @XML.XPath /root/node
потрібно писати @XML.XPath /*[local-name()="root"]/*[local-name()="node"]
доступ до атрибутів:
@XML.XPath /root/node/@name

функція @XML.Valid перевіряє валідність xml-строки

типовим початком скрипта може бути:
Код:
$Response=@HTTP.Get http://schemas.opengis.net/wms/1.3.0/capabilities_1_3_0.xml
$IsValidXML=@XML.Valid $Response
@if $IsValidXML=0 then @Break Щось не те з файлом
@XML.XPath ....


Код:
@Text[1].Load x:\test.xml
$XML=@Text[1].Text
$IsValidXML=@XML.Valid $XML
@if $IsValidXML=0 then @Break Щось не те з файлом
@XML.XPath ....

Автор:  Denidz [ 19 ноя 2021 21:08 ]
Заголовок сообщения:  Re: Нужна помощь

Те що треба! :D

Автор:  Denidz [ 20 ноя 2021 20:30 ]
Заголовок сообщения:  Re: Нужна помощь

все вроде работает, но распарсинг происходит неприлично долго! может кто подскажет как можно оптимизировать и ускорить?

$File=@Dialog.OpenFile *.xml
@Text[1].Load $File
$XML=@Text[1].Text
$IsValidXML=@XML.Valid $XML
@if $IsValidXML=0 then @Break XML файл не прошел проверку
;ParcelsLayer
$LandLayer=45000
;Parcels
$LandRecordsCount=@XML.NodeCount /land_records land_record $XML
@Progress.Start $LandRecordsCount Загрузка участков
$I=0
%LoopLandRecords
$I=$I+1
$LandObj=@Map.NewObject ID$LandLayer
;Points
$LandContours=land_record[$I]/contours_location/contours/contour/entity_spatial/spatials_elements/spatial_element/ordinates
$LandPointsCount=@XML.NodeCount $LandContours ordinate $XML
@if $LandPointsCount=0 then @Goto %LoopLandRecords
$C=0
%LoopPointRecords
$C=$C+1
$PointX=@XML.XPath $LandContours/ordinate[$C]/x $XML
$PointY=@XML.XPath $LandContours/ordinate[$C]/y $XML
@if $C=1 then @Map.Object[$LandObj].Point[1] $PointX $PointY
@if $C>1 then @Map.Object[$LandObj].AddPoint $PointX $PointY
@if $C<$LandPointsCount then @Goto %LoopPointRecords
@Map.RefreshObject $LandObj
@Progress.StepBy
@if $I<$LandRecordsCount then @Goto %LoopLandRecords
@Progress.Stop
@break
___________________________

П.С. еще почему-то не работает @Text[N].IndexOf

$Line23=@Text[1].Line[23]
$Stroka=@Text[1].IndexOf $Line23
$Stroka возвращает 0

Вложения:
t.txt [1.95 Мб]
Скачиваний: 168

Автор:  Dmitry_Zolotar [ 26 ноя 2021 12:09 ]
Заголовок сообщения:  Re: Нужна помощь

Denidz писал(а):
П.С. еще почему-то не работает @Text[N].IndexOf

$Line23=@Text[1].Line[23]
$Stroka=@Text[1].IndexOf $Line23
$Stroka возвращает 0


Проверьте пробелы(_) в конце строки $Stroka=@Text[1].IndexOf $Line23_
Возможно в этом причина

Автор:  Denidz [ 01 дек 2021 08:43 ]
Заголовок сообщения:  Re: Нужна помощь

Доброго дня. Не могу настроить sql соединение. Система WIn10. поставил postgreSQL 10 (x86) - все установилось. создал БД- все ок, настроил файл pg_hba.conf (скачал файлик по настройке с форума, тк. не нашел pgadmin4 где его можно редактировать). установил и настроил драйвер odbc (%SystemRoot%\syswow64\odbcad32.exe.), тест на соединение проходит. Делаю SaveToSQL - сохраняет все норм (сначала просит отсортировать по ID), проверяю в pgadmin - таблички создаются (но может не все какие нужны). Делаю SQLсоединение (пароля не спрашивает) и загружается карта без объектов, но со всеми слоями и условными знаками. Не могу понять что не так. Help me pls!
Вложение:
.jpg [224.83 Кб]
Скачиваний: 0



Проблема решена откатом на старую версию. Но новая версия программы ничего сохранять и читать из базы не хочет!

Автор:  Denidz [ 02 дек 2021 20:40 ]
Заголовок сообщения:  Re: Нужна помощь

Так в чем же может быть причина? Версии за 16, 17, 18 и 19 года работают нормально с СУБД. Новая не хочет.

Автор:  Denidz [ 03 дек 2021 19:06 ]
Заголовок сообщения:  Re: Нужна помощь

1. Почему-то не загружаются объекты в БД у которых стоит область видимости отличная от дефолтной. Причем даже если поменять ее уже после того как провели SQLсоединение.
2. Не работает событие %Events.OnChangeZoom.

Автор:  Denidz [ 03 дек 2021 22:06 ]
Заголовок сообщения:  Re: Нужна помощь

С областями видимости разобрался :D

Страница 47 из 50 Часовой пояс: UTC + 2 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/