RUS  ENG 

Сергей Мечев (Автор тем)

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

Страницы: 1 2 След.
программа не отвечает
 
Добрый день.

В одном из офисов Zulu работает постоянно с подвисанием (не отвечает), пару секунд работает нормально, потом (особенно при выборе элемента в режиме редактирования) происходит или подвисание на пару секунд или программа не отвечает и так висит пока пользователь не крашнет программу.

Опытным путем выяснили, что это из-за интернета (было очевидно, но нужны были доказательства). Взяли ноут в одном офисе, где все летает, привезли в этот и проблема повторилась.
Интернет в этом офисе вроде как нормальный, от 60 мбит в сек, и если смотреть стабильность, то тоже все норм. Видео с интернета, сайты грузятся нормально, никто не жаловался (версии программ все новые)

Сам вопрос в следующем:
что потенциально может провоцировать такие задержки и подвисание программы в плане интернета? кратковременный высокий пинг или пропажа интернета на долю секунды? Есть ли какие-то способы проверить скорость/стабильность соединение клиента с сервером?
Справочник с зависимостью
 
Добрый день.


какая есть проблема:

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

Что хочется:

создать дополнительное поле: тип светильника, в нем будет простой справочник с типами. При выборе типа, поле марка будет выдавать только те марки, которые подпадают под нужный тип.

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


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

В документации есть строчка: при желании установить опцию Не увеличивать больше указанного размера, она не позволяет увеличивать символ, когда масштаб карты становится меньше указанного в строке размер;

Сам принцип понятен, но непонятна связь масштаба и указанного размера. Вне зависимости от заданного размера, символ перестает масштабироваться после z17 в z16 и далее размер уменьшается. Почему именно между z17 и z16 это происходит? Формулировка не очень понятная.
Помимо не увеличивать, есть еще и не уменьшать, собственно тот же вопрос

И как я понял, они исключают друг друга?

и еще вопрос: Можно ли как-то эти две функции совместить, например:
при приближении больше z20 символ не менял размеров от масштаба, то есть в z21 стал больше (Не уменьшать указанного размера)
при уменьшении z19 и ниже до z17 имел функцию "Не увеличивать больше указанного размера"
установка мишени
 
Добрый день
Подскажите:

Есть ли иной способ программно поставить мишень на объект, помимо метода CopyFromSelection? Например, группа уже сформирована и требуется поставить мишень на один объект, при этом группу не затрагивая.
Изменено: Сергей Мечев - 31.05.2023 17:04:08
Торможение макросов
 
Добрый день.
Версия 10.0.0.8512u.x64 - но эта проблема была еще в Zulu 8.

Суть: есть некий макрос (пример ниже), при его запуске он отрабатывает примерно за секунд 20-30 ( в зависимости от размера сети), где элементов в сети примерно 400. Если запускать макрос много раз (больше 10-15) то с каждым разом он будет выполнятся все дольше. Вполь до того, что сеть из 10 элементов обработает за минут 10!

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

Вопрос: в чем проблема?


[CODE]Sub Num_Opora
Const eIncidentAll = 3
Const eNetworkAll = 3
' ActiveX enumeration values definitions end
   
Set L = Zulu.ActiveMapDoc.Layers.Active

L.NetworkTools.ClearResults
L.NetworkTools.ClearOverloadedStates
L.NetworkTools.ClearFlags
       
tp = L.CurrentID

L.NetworkTools.AddFlag tp

Zulu.ActiveMapDoc.Refresh 1
L.NetworkTools.FindConnected

 
L.Selection.ModifyByKeys 1, L.NetworkTools.Results  



L.ExecSQL("upd ate set [tp_sys] = " + cstr(tp) + " where geometry.selected() = 1")

Se t keys = L.Selection
set keys2 = keys.ElementKeys
set all_sys_uch = keys2.SelectByType(4, 0)
For i = 1 to all_sys_uch.Count
   sys_uch = all_sys_uch.Item(i)
Set nwo = L.NetworkObjects (eNetworkAll)
nwo1 = nwo.GetIndexByKey (sys_uch)
key_end = nwo.KeyEnd(nwo1)
   key_begin = nwo.KeyBegin(nwo1)
   L.ExecSQL("upd ate set [start_sys] = " + cstr(key_begin) + " where typeid = 4 and sys = " + cstr(sys_uch))
   L.ExecSQL("upd ate se t [end_sys] = " + cstr(key_end) + " where typeid = 4 and sys = " + cstr(sys_uch))
   L.ExecSQL("upd ate se t [opora_sys] = " + cstr(key_begin) + " where typeid = 3 and sys = " + cstr(key_end))
Next

Se t keys2 = L.NetworkTools.Results.SelectByType (2 , 0)

cnt = keys2.Count

Set opora_k = L.ExecSQL("upd ate set [RootLevel_1] = null where geometry.selected() = 1 ")
For j = 1 To cnt
   sys_opora = keys2.Item(j)

kol_svet = "SELECT count([sys]) WHERE opora_sys = " + cstr(sys_opora) + " and typeid = 3"
Se t Result = L.ExecSQL(kol_svet)
   
kol_u = "SELECT count([sys]) WHERE start_sys = " + cstr(sys_opora) + " and typeid = 4"
Set Result_u = L.ExecSQL(kol_u)

   
   If (Result_u.DataSet.FieldValue(0) - Result.DataSet.FieldValue(0)) >0 Then
       Set opora_p = L.ExecSQL("upd ate set [RootLevel_1] = 0 where sys = " + cstr(sys_opora))
End if
   
   
   Se t opora_k = L.ExecSQL("upd ate set [RootLevel_1] = 1 where [RootLevel_1] is null and geometry.selected() = 1 ")

Next

Se t NObjects = L.NetworkObjects (eNetworkAll)
'''
Set Tree = L.GetShortWayTree(tp)
Set keys = L.Selection
set keys2 = keys.ElementKeys
Set Keys = keys2.SelectByType (2, 0)
cnt = Keys.Count
For j = 1 To cnt
   Set Item = Tree.ItemById(Keys(j))
Set sql_1 = L.ExecSQL("upd ate set l_tp = " & Item.RootLength & "  where Sys = " + CStr(Item) + "")

 
Next

nn = 1
Se t ways= L.ExecSQL("SELECT sys, l_tp where typeid = 2  and RootLevel_1 = 1  ORDER BY l_tp ASC")

Set list= ways.DataSet
list.MoveFirst
       Do
If list.eof = true then exit do
Set Way = L.ShortWay (tp, ways.DataSet.FieldValue(0))
For i = 2 To Way.Count
ID = Way.Item(i)
If i Mod 2 = 0 Then
Else  
Set status = L.ExecSQL("SELECT [num_opora] where typeid = 2 and Sys = " + CStr(ID) + "")
If status.DataSet.FieldValue(0) = "" Then
L.ExecSQL("update set [num_opora] = " + CStr(nn) + " where typeid = 2 and Sys = " + CStr(ID) + "")
nn = nn +1
End if

End If  
Next  

list.MoveNext
Loop

L.NetworkTools.ClearResults
L.NetworkTools.ClearOverloadedStates
L.NetworkTools.ClearFlags
L.Themes.UpdateTheme 2
msgbox("Готово")

End Sub[/CODE]
ошибка при запуске vbs из bat
 
Добрый день.
Перешел с 32 битной версии в 64.
Версия 10.0.0.8512u.x64

Сразу после перехода скрипты на vbs, которые запускались батниками перестали работать.
Если кликать на файл vbs напрямую, то они отрабатывают.

Ошибка:

D:\Zulu\SQL_VBS_BAT>rem For 32-bit OS

D:\Zulu\SQL_VBS_BAT>Set "SystemPath=C:\Windows\System32"

D:\Zulu\SQL_VBS_BAT>rem If 64-bit OS

D:\Zulu\SQL_VBS_BAT>if exist C:\Windows\SysWOW64 set "SystemPath=C:\Windows\SysWow64"

D:\Zulu\SQL_VBS_BAT>C:\Windows\SysWow64\cscript.exe D:\Zulu\SQL_VBS_BAT\check.vbs
Microsoft ® Windows Script Host Version 5.812
Copyright © Microsoft Corporation. All rights reserved.

D:\Zulu\SQL_VBS_BAT\check.vbs(3, 1) Microsoft VBScript runtime error: ActiveX component can't create object: 'ZuluLib.Layer'


Помимо самой версии, поменялось и расположение папки Zulu.  Вместо C:\Program Files (x86)\Zulu8, теперь в C:\Program Files\ZuluGIS

Подскажите, в чем может быть проблема и куда смотреть?
Поиск и добавление записей
 
Добрый день

Пожелания:
1. если в шаблоне поиска заданы несколько полей, то пользователю нужно при поиск писать через запятую "поля". то есть поиск может выглядеть как-то так:
Симферополь,,лен,10 чтоб найти Симферополь, улица,ленина,10.
Такой поиск не интуитивен и человеку приходится по несколько раз объяснять, как правильно выполнять поиск, в итоге им никто не пользуется))
Хотелось бы как на картинке:
- есть отдельные строки для ввода по каждому полю
- в начале строки ввода есть пользовательское наименование поля, чтоб было сразу понятно, что надо вводить

и конечно же сохранить прекрасную функцию частичного ввода, то есть написав "симф" поиск выдасть все записи, где в этом поле есть эта часть


2. В настольной версии добавить запись к объекту нажав "+" не интуитивно и иногда опасно. Часто пользователь при "перетирании" полей вместо + нажмет галку и данные изначальной записи сотрутся. Хотелось бы чтоб кнопка + была всегда активна (если есть второй идентификатор), и при ее нажатии создавалась пустая запись, как например в веб версии.
Ошибка при запуске плагина
 
Добрый день. Версия 10.0.0.8449u, Дата сборки 17.02.2023
При запуске плагина на c# появляется такая ошибка. Однако если еще раз запустить плагин, то все работает хорошо.


Сервер 32 бита. Ошибку вызывает наличие графика в форме, а именно наличие элемента ChartAreas.
Изменено: Сергей Мечев - 18.02.2023 20:39:38
Подмена прав для использования метода
 
Добрый день.
Пишу плагин на c#, столкнулся с проблемой, где в одном методе пользователю требуются права на перечисление, например подвинуть группу светильников ровно к опорам.
Давать пользователю права на перечисление нельзя, чтоб он не смог слой как-то скопировать или упаковать.

Есть ли способ как то подменить в конкретном методе логин и пароль, который бы имел нужные права (то что пришло на ум), например жестко прописать в коде логин и пароль для этого метода?
Поворот элемента
 
Добрый день

Как я понимаю, минимальный поворот объекта - 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 и Пулково.
Так и должно быть или я что-то не так сделал?
Подзапросы в sql
 
Добрый день.

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

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

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

**** запрос для примера
Описание полей
 
Добрый день.

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

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

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

2. Добавить возможность отображать описание в браузерной версии (и тоже хотелось бы, чтоб и там тоже был некий значок).
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*

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

*это пример
Просмотр фото в 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
Перезапись надписей
 
Добрый день
Подскажите пожалуйста как сделать так, чтобы макрос переписывал существующие надписи?
Например объект подвинул, но надпись осталась на прежнем месте.

Попробовал это: [URL=https://www.politerm.com/zuludoc/zuluax/index.html#LabelLayer_Update.html]https://www.politerm.com/zuludoc/zuluax/index.html#LabelLayer_Update.html[/URL] но видимо это не то.
Протокол ZWS
 
Добрый день.
Есть ли возможность в веб версии убрать протокол ZWS ( те которые в  [  ]) из списка слоев?

Некоторых пользователей это напрягает и появляются ненужные вопросы.
Изменено: Сергей Мечев - 27.06.2022 15:35:36
Интервал обновления
 
Добрый день, в настройке веб служб, при публикации слоя можно задать интервал обновления:
[URL=https://www.politerm.com/zuludoc/web.html]https://www.politerm.com/zuludoc/web.html[/URL]

Также можно задать интервал обновления в самой веб версии ( в документации не нашел информации по этому)

Вопросы:
1. В настройке веб служб задал интервал обновления 2 секунды, а в веб версии 15 секунд, как я понимаю, веб версия будет обновляться каждый 15 секунд, верно?
2. Как часто будет в таком случае обновляться мобильная версия, каждый 2 секунды или каждые 15? и вообще от чего мобильная версия зависит в плане интервала?

Проведя тесты сам: вроде как обновление веб версии не зависит от настроек обновления в публикаторе, а зависит от настроек слоя в самой веб версии. Что касается мобильной версии, так и не понял какой интервал там.
Границы полигонов
 
Добрый день, хотелось бы иметь возможность задавать у полигональных типов способ отображение границы:
1. это как сейчас
2. Во внутреннюю сторону полигона.

Зачем: рисую два полигона с разными границами и возникает проблема, что одна граница перекрывает или накладывается на другую.

Рисунок 1: это как сейчас будет выглядеть два полигона с разными границами



Рисунок 2: это как хотелось


То есть при увеличении толщины границы, линия будет утолщаться внутрь полигона, не перекрывая соседний
Задать план расположения объектов
 
Добрый день.
Подскажите пожалуйста, как сделать так, чтоб один Тип объекта был всегда выше другого типа, если они оба полигоны?

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


Принудительно убрать поиск по ID
 
Добрый день,
подскажите, есть ли способ принудительно убрать поиск по ID в веб версии и OSM?
Зачастую он не нужен на некоторых картах, и пользователи путаются в похожих наименованиях, особенно когда слоев много.


Изменено: Сергей Мечев - 12.05.2022 08:51:19
geojson
 
Добрый день.
Хотелось бы иметь возможность экспорта слоев в формате geosjon

Не раз сталкиваюсь с проектами, где надо из Zulu передать данные заказчику именно в geojson
Поиск по представлениям и широкие строки
 
Версия 10.0.0.8096u
Дата сборки 01.03.2022

Добрый день.
Если поле, которое было сделано как представление на стороне mssql, имеет большую длину, то ширина строки увеличивается, чтоб вместить все символы (фото ниже). Такое поведение программы, как в настольной так и веб версиях, по моему мнению, прекрасное. Не надо наводить курсор, чтобы увидеть все написанное. Как добиться такого поведения от других полей?

И проблема которой вроде раньше не было, поиск не работает по полям, которые сделаны как представление на стороне mssql.

Поле t1 - это обычное строковое поле. Поле Список улиц - поле из представления

Изменено: Сергей Мечев - 02.03.2022 19:27:07
Редактирование значений в веб версии в запросе
 
Добрый день, в веб версии отсутствует возможность изменять значения в полях при выводе многих записей через запрос.

В настольной версии это делать можно.

Зачем это надо:

На карте отмечены сотни мест (дворы), которые не имеют освещения, далее требуется согласовать, какие дворы надо осветить в этом году, а какие оставить на потом. Чтоб не устанавливать лицу принимающее решение  настольную версию зулу (потому что разовая задача), было бы быстро и удобно дать ему ссылку на карту. С помощью запроса, который выведет все записи, он бы кликая на каждую запись, смотрел бы на этот двор и тут же в самой таблице ставил отметки (Да, Нет)
Страницы: 1 2 След.