RUS  ENG 

Сергей Мечев (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 2 3 4 5 След.
Поворот элемента
 
Добрый день

Как я понимаю, минимальный поворот объекта - 7 градусов. Если значение меньше, то объект не будет поворачиваться.
Так и должно быть, или я что-то не так сделал?

P.S заметил что малые градусы работают, но только когда текущий градус не равен 90, 180, 270, 360.

Sub rot
Set L = Zulu.ActiveMapDoc.Layers.Active
ell =L.CurrentID
set el = L.Elements.GetElement(ell)

x1 = el.GetCenter.X
y1 = el.GetCenter.Y
el.Rotate x1, y1, 1, 0
End Sub
Изменено: Сергей Мечев - 11.01.2023 16:11:34
Размеры символов в зависимости от проекции
 
Добрый день

Версия 10.0.0.8392u
Дата сборки 22.12.2022

Столкнулись со следующей проблемой:
Символьные объекты отображаются по разному в настольной версии и в браузере при условии, что проекция карты будет не Меркатор, а например UTM.
Браузер:

Настольная:


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

Возможно я что-то упустил и в программе есть какая-то настройка, чтоб и при Меркаторе можно было адекватно длину выставлять при редактировании?
Странная длина линии
 
Добрый день
Версия 10.0.0.8391u
Дата сборки 21.12.2022

При создании линии, снизу справа пишет странную длину при операциях: Параллельно, перпендикулярно и на расстоянии.
Пробовал проекции UTM и Пулково.
Так и должно быть или я что-то не так сделал?
Как создать объект ZGeometry Delphi?, Подскажите, пожалуйста, как создать объект ZGeometry
 
[QUOTE] написал:
[QUOTE] написал:
Добрый день, возник похожий вопрос, только для JS

Как я понял так работать не будет:
Db = Object("zb.database")
[/QUOTE]
 [CODE] function DbTest()
{
  var L = new ActiveXObject('Zululib.Layer');

  L.Open('D:\\Hydro\\Sample1\\water supply.b00');    
   
  var DB = new ActiveXObject('Zb.ZbDatabase');

  DB.Open(L.bases.Item(0).Name);
   
  var Out = Zulu.OpenOutputChannel('');
       
   Out.Put(DB.UserName)    
}  
[/CODE] [/QUOTE]
Спасибо!
Как создать объект ZGeometry Delphi?, Подскажите, пожалуйста, как создать объект ZGeometry
 
Добрый день, возник похожий вопрос, только для JS

Как я понял так работать не будет:
Db = Object("zb.database")
или
Db = Object.create(zb.database)

Где можно посмотреть как правильно создать объекты?
ZuluLib.ZGeometry
zb.database
ZuluLib.ZPoint
и прочие
Изменено: Сергей Мечев - 17.11.2022 17:21:07
Подзапросы в sql
 
[QUOTE]
[/QUOTE]
Обновился, работает.
Спасибо!
Изменено: Сергей Мечев - 11.11.2022 18:06:41
Подзапросы в sql
 
Добрый день.

Скажите что я делаю не так:

sel ect sum(musor) fr om
(
sel ect [ТКО + КГО в сутки] as musor fr om [ТБО]
uni on all
sel ect [ТКО + КГО в год] from [ТБО]
) as s

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

**** запрос для примера
Не показываются данные об объекте ZuluOnline, Не показываются данные об объекте ZuluOnline
 
[QUOTE] написал:
Здравствуйте!

Создал запросы на карте в приложении Zulu и настроил для них формы, теперь при нажатии на дом, показывается нужная информация в приложении. Тоже самое хотелось бы видеть на сайте ВЕБ. Карту опубликовал, настроил слои. Активный слой выбрал верно и при нажатии на здание открывается просто чистый белый лист..... Хотя в настройках слоя, он видит мои формы.[/QUOTE]
Один из вариантов почему так может быть: если вы используете внешнюю БД, например mssql, и забыли или не верно создали логин/пароль для пользователя.
То есть в администраторе такой логин есть, а на стороне БД такого нет.
Интеграция с 1С Предприятие 8.3, Интеграции с решениями на базе 1С Предприятие 8.3
 
Добрый день.
Вот результат связки 1С и Zulu: [URL=https://www.youtube.com/watch?v=v8pBJBgTsvE&t=5s]https://www.youtube.com/watch?v=v8pBJBgTsvE&t=5s[/URL]
Но как всегда есть пару но!
В этом посте расписал как работает в моем случае: [URL=https://www.politerm.com/forums/?PAGE_NAME=message&FID=1&TID=4697&TITLE_SEO=4697-otobrazhenie-dannykh-na-sloe&MID=15697&sphrase_id=10178#message15697]https://www.politerm.com/forums/?PAGE_NAME=message&FID=1&TID=4697&TITLE_SEO=...[/URL]

Соглашусь что не самый лучший способ, ибо появляется задержка при выполнении запросов, и сама интеграция только в одну сторону.
Личный канал про ZuluGIS https://www.youtube.com/channel/UCQTMjjVKb75Cq7yFlRMnFVw
Описание полей
 
Добрый день.

Имеется пожелание по использованию Описания:

1. Добавить некий символ вопросительного знака в поле, где присутствует описание.

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

2. Добавить возможность отображать описание в браузерной версии (и тоже хотелось бы, чтоб и там тоже был некий значок).
Расширенная семантика в мобильном Зулу
 
[QUOTE] написал:
[QUOTE] написал:
 [QUOTE] написал:
  [URL=https://youtu.be/8e7EkhLG51U]https://youtu.be/8e7EkhLG51U[/URL]

challenge completed

Надеюсь это имели ввиду.[/QUOTE]
 решил пойти еще дальше:   [URL=https://youtube.com/shorts/XsEWdNajxrg]https://youtube.com/shorts/XsEWdNajxrg[/URL] [/QUOTE]
Сергей, подскажите, через какой механизм Вы это делаете?[/QUOTE]
Все делал через MSSQL  и справочники Zulu.
НО!!!

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

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

По второму видео:  Функция не жизнеспособна. Точнее ее можно реализовать, но проблемы, которые описал выше, остаются. + к ним добавляется проблема создания некого триггера на Select - в MSSQL нет такого триггера, по этому пришлось выкручиваться иными способами.

Итого: данная реализация, по моему мнению, не стоит этого.

P.S. Вообще можно просто открыть МКД и пролистать всех потребителей - чем это не удобно?
SQL запрос из макроса по двум слоям
 
Добрый день.
Стоит задача по вызову sql запроса из макроса, при этом в запросе участвуют несколько слоев.

Что хочу:

upd ate [СНО]
se t L1.[Улица:] = L2.[Участок:],
L1.[Район:] = L2.[Район:] ,
L1.[Населённый пункт:] = L2.[Населённый пункт:]
fr om [СНО] as L1, [Улицы] as L2
wh ere L1.typeid = 2 and L1.geometry.stwithin(L2.geometry)

Запустить такой запрос из макроса и именно с помощью ExecSQL, без использования zb.database и ZuluLib.ZGeometry

sub test
L = Zulu.ActiveMapDoc.Layers.Active
L.ExecSQL("Вставить сюда")
end sub*

Возможно ли это в принципе?

*это пример
Перенос данных из другого слоя
 
[QUOTE] написал:
В том и проблема. В слое "Карта" нет ещё таких полей. Нужно взять некоторые поля из слоя Трасса по признаку typeid=3 и создать новую запись в слое Карта.[/QUOTE]
Вы путаете понятия.
У слоя нет полей, они есть у типов, при условии, что у них есть база данных.
Чтобы перенести данные из полей объектов одного слоя в объекты другого слоя, то вторым сначала надо создать нужные поля.
Как выше заметили, вам надо задать условия соответствия, например: перенеси адрес из объекта слоя 1 в объект слоя 2 ГДЕ  поле test объекта слоя 1 равен полю test2 объекта слоя 2. Или же можно задать географическую привязку, например: где объект слоя 1 находиться в радиусе 20 см объекта в слое 2.

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

У одного Горсвета есть желание производить съемку своих сетей через камеру 360. Встал вопрос как эти фото поместить в Zulu.
Руководство хочет чтоб фото хранились у них самих (на сервере), ссылка на сторонний ресурс не вариант.

Хочется узнать есть ли на форуме люди, которые могут написать плагин для этих целей (за ₽) или подсказать в каком направлении копать?

Также возможно ли сделать просмотрщик таких фото через веб версию с кастумизацией (через обработку событий) [URL=https://www.politerm.com/zulugisonline/webhelp/customize_css.html#css_pdf]https://www.politerm.com/zulugisonline/webhelp/customize_css.html#css_pdf[/URL]
Изменено: Сергей Мечев - 09.08.2022 12:37:01
geojson
 
[QUOTE] написал:
[QUOTE] написал:
Добрый день.
Хотелось бы иметь возможность экспорта слоев в формате geosjon

Не раз сталкиваюсь с проектами, где надо из Zulu передать данные заказчику именно в geojson[/QUOTE]
Добавили Файл/Экспорт/GeoJSON[/QUOTE]
Здравствуйте, большое спасибо!
Источник и структура БД, Соответствие БД в Источник и SQL
 
SQL внутри зулу воспринимает ВСЕ базы слоя как одну единую. (по крайней мере я так это понимаю)*
Чтобы их разделять между собой, можно использовать where typeid = ...  (номер ТИПа)
Такая особенность может казаться странной, но поверьте, если ей правильно пользоваться, то это очень удобно., например:
я создаю макрос, в котором с помощью sql команды, всем выделенным объектам будет присваиваться какое-то значение (в моем случае это будет Sys источника) в поле с названием ist_sys. Так вот, sql команда присвоит нужное значение ВСЕМ объектам, где есть поле ist_sys, вне зависимости от Типа и базы.

*если я не прав, то поправьте пожалуйста.
Изменено: Сергей Мечев - 28.07.2022 17:16:29
Перезапись надписей
 
[QUOTE] написал:
[QUOTE] написал:
   Теперь понятно, не совсем очевидно было. Тогда это делается этим методом:   [URL=https://www.politerm.com/zuludoc/zuluax/index.html#LabelLayers_SetLabelLayer.html]https://www.politerm.com/zuludoc/zuluax/index.html#LabelLayers_SetLabelLayer.html[/URL]

Может кому понадобиться:

Sub update_label

Set L = Zulu.ActiveMapDoc.Layers.Active
set lbl = L.LabelLayers.Item(0)
L.LabelLayers.SetLabelLayer  0, lbl ,true, false ,0, 45,30

End Sub[/QUOTE]
Только осторожней с перезаписыванием. Некоторые месяцами надписи в редакторе расставляют. Одним таким вызовом можно все перечеркнуть.
Перед началом экспериментов сохраняйте копии[/QUOTE]
О, был у меня такой случай, пол года надписи расставляли....
А конкретно в этом проекте макрос будет отрабатывать каждую ночь. Редактирование пользователями надписей не предусмотрено, им это надо только когда объект перемещают.
Спасибо за предупреждение!
Перезапись надписей
 
[QUOTE] написал:
[QUOTE] написал:
 [QUOTE] написал:
  [QUOTE] написал:
Добрый день
Подскажите пожалуйста как сделать так, чтобы макрос переписывал существующие надписи?
Например объект подвинул, но надпись осталась на прежнем месте.

Попробовал это:     [URL=https://www.politerm.com/zuludoc/zuluax/index.html#LabelLayer_Update.html]https://www.politerm.com/zuludoc/zuluax/index.html#LabelLayer_Update.html[/URL] но видимо это не то.[/QUOTE]
  Добрый день. Сдвинуть бирку метод есть:    [URL=https://www.politerm.com/zuludoc/zuluax/index.html#ZLabels_MoveLabel.html]https://www.politerm.com/zuludoc/zuluax/index.html#ZLabels_MoveLabel.html[/URL] [/QUOTE]
 Правильно ли я понял, что этот метод работает почти также как и функция ниже на картинке, только для указанных объектов?[/QUOTE]
Переписать - это пересоздание всех бирок. А метод двигает конкретную бирку конкретного варианта надписей.[/QUOTE]
Теперь понятно, не совсем очевидно было. Тогда это делается этим методом: [URL=https://www.politerm.com/zuludoc/zuluax/index.html#LabelLayers_SetLabelLayer.html]https://www.politerm.com/zuludoc/zuluax/index.html#LabelLayers_SetLabelLayer.html[/URL]

Может кому понадобиться:

Sub update_label

Set L = Zulu.ActiveMapDoc.Layers.Active
set lbl = L.LabelLayers.Item(0)
L.LabelLayers.SetLabelLayer  0, lbl ,true, false ,0, 45,30

End Sub
Перезапись надписей
 
[QUOTE] написал:
[QUOTE] написал:
Добрый день
Подскажите пожалуйста как сделать так, чтобы макрос переписывал существующие надписи?
Например объект подвинул, но надпись осталась на прежнем месте.

Попробовал это:   [URL=https://www.politerm.com/zuludoc/zuluax/index.html#LabelLayer_Update.html]https://www.politerm.com/zuludoc/zuluax/index.html#LabelLayer_Update.html[/URL] но видимо это не то.[/QUOTE]
Добрый день. Сдвинуть бирку метод есть:  [URL=https://www.politerm.com/zuludoc/zuluax/index.html#ZLabels_MoveLabel.html]https://www.politerm.com/zuludoc/zuluax/index.html#ZLabels_MoveLabel.html[/URL] [/QUOTE]
Правильно ли я понял, что этот метод работает почти также как и функция ниже на картинке, только для указанных объектов?
Перезапись надписей
 
Добрый день
Подскажите пожалуйста как сделать так, чтобы макрос переписывал существующие надписи?
Например объект подвинул, но надпись осталась на прежнем месте.

Попробовал это: [URL=https://www.politerm.com/zuludoc/zuluax/index.html#LabelLayer_Update.html]https://www.politerm.com/zuludoc/zuluax/index.html#LabelLayer_Update.html[/URL] но видимо это не то.
Обновление тематической раскраски
 
Цитата
написал:
При запуске скрипта вне ZuluGis у меня выходит ошибка, хотя если выполнить его в ZuluGis то всё работает. Похоже ещё долго с бубном танцевать придется для решения казалось бы элементарной задачи.
по опыту на что обратить внимание:
1. разделители системы (смотреть в форматах даты, время и т.д.)
2. кодировка бат файла и vbs (ANSI, UTF)
3. Думаю у разработчиков тоже можно спросить.
Есть одна компания, на их сервере тоже есть ошибка с запуском через бат файл, но устранить не получилось. Все перепробовали, хотя ровно такие же файлы у меня работают.
Обновление тематической раскраски
 
Цитата
написал:
Сергей Мечев , спасибо за интересное решение, по тексту макроса всё понятно, не совсем понятно как он запускается. Насколько я знаю файл макроса имеет расширение .vbs, у вас он запускается файлом update_theme.bat., как это работает?
Триггер на стороне mssql запускает бат файл. Сам бат файл написал ниже:

rem For 32-bit OS
Set "SystemPath=%SystemRoot%\System32"

rem If 64-bit OS
if exist %SystemRoot%\SysWOW64 set "SystemPath=%SystemRoot%\SysWow64"

%SystemPath%\cscript.exe D:\Zulu\SQL_VBS_BAT\update_theme_tbo.vbs

Сам бат файл скопировал отсюда:
https://www.politerm.com/articles/dev/object_model_in_bat/?sphrase_id=66934
Протокол ZWS
 
[QUOTE] написал:
Вообще-то это просто имена слоёв в карте, создаваемые по умолчанию. Вы можете отредактировать их руками в файле карты как вам удобно. В будущих версиях будет добавлено редактирование названия из GUI.[/QUOTE]
Спасибо, все оказалось просто.
Для других пользователей: В папке Data\WebMaps есть файлы описатели веб карт. Там можно просто удалить ненужную часть в строке name
Чтобы увидеть изменения - надо очистить кеш.

И еще вопрос: можно ли сделать также по отношению к поиску?
Изменено: Сергей Мечев - 30.06.2022 20:44:49
Протокол ZWS
 
Добрый день.
Есть ли возможность в веб версии убрать протокол ZWS ( те которые в  [  ]) из списка слоев?

Некоторых пользователей это напрягает и появляются ненужные вопросы.
Изменено: Сергей Мечев - 27.06.2022 15:35:36
Обновление тематической раскраски
 
Цитата
написал:
Цитата
написал:
Цитата
написал:
Цитата
написал:
Цитата
написал:
Цитата
написал:
Добрый день, при внесении данных в базу слоя через стороннее приложение тематическая раскраска не реагирует на изменение данных, может быть у кого-нибудь есть готовое решение данного вопроса, которым готовы поделиться.
Добрый день! Готового решения нет. база к системе прямого отношения не имеет. Поэтому, если данные менять со стороны, система об этом знать не может. Нужно подать ей сигнал. Некоторые для этого используют триггеры в СУБД.
На триггер в СУБД к сожалению фильтр не реагирует, может быть есть ещё варианты?
Расскажу свой опыт использования триггеров на обновление тематических раскрасок:
Видео для примера: https://youtu.be/80YzEfD3pMY
После выбора пункта проверка в слое граница, запускался триггер на стороне СУБД, который вызывал макрос, который связывал объекты и делалась проверка. Также обновлялась раскраска. Заметьте, что вызов самого триггера происходит в другом слое, в другой таблице - это важно!

НО!!!

от идеи вызова макроса через триггер СУБД пришлось отказаться:

1. Надо правильно организовать сам триггер, чтобы не получилось замкнутого круга: пользователь что-то сделал, вызывается триггер. Он что-то делает с данными (к примеру) и вызывает сам себя. В этом случае Ваша БД просто зависнет и придется делать рестарт службы.

2. Пока макрос от триггера не отработает, таблицей нельзя будет пользоваться: получать и править информацию не получится. Не один раз было у меня такое, что по разным причинам макрос застревал или что-то еще не получалось, как итог пришлось делать рестарт СУБД.

3. Как и с автообновлением могут возникнуть проблемы с производительностью. Так например, если в слое больше 3-5 тыс объектов, то приходиться отключать автообновление, а то при каждом новом событии, весь слой подвисает на секунду и больше. Если с этим слоем работают несколько человек, при этом что-то внося, то работать становиться невозможно. Тоже самое и с триггером, который запускает обновление темы, при частых срабатываниях (раз в пару секунд) и большом количестве объектов работать станет невыносимо.

Вообще автообновление может тормозить слой на секунд 30, даже если в самом слое пару объектов. Может баг, но очень много проблем в один день принесло, остановило работу на пол дня, а я в отъезде был))

В итоге что делаю: с помощью планировщика задач, делаю задачу на запуск макроса каждую ночью. В большинстве проектов этого достаточно
Если же требуется обновлять часто, особенно это касается проектов по инвентаризации, то ставим задачу с интервалом в 5-10 минут. В этом случае ничего не виснет, а темы обновляются с приемлемым интервалом.

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

Буду очень рад, если кто-то напишет, как лучше вызывать макросы триггером, при этом безопасно.
Может быть Вам не трудно будет поделиться текстом триггера и макроса на этом форуме?
Макрос:


Sub update_theme
Set L = CreateObject("ZuluLib.Layer")
L.open "zulu://login:password@localhost:6477/2022/Серпухов/Слои/Здания.zl"
L.Themes.UpdateTheme(1)
End Sub

Думаю по макросу все понятно, если что гляньте документацию.

Триггер:

create trigger [dbo].[update_theme]
on [dbo].[stats_border]
for update
as
IF (UPD ATE(update_theme) and (sel ect top(1) update_theme fr om inserted) = 'Обновить' )
begin
update [stats_border]
se t update_theme = null
exec master..xp_cmdshell 'D:\Zulu\SQL_VBS_BAT\update_theme.bat'
end
При вставке триггера, форум добавил пробелы кое-где, их убрать не удается))
Страницы: Пред. 1 2 3 4 5 След.