RUS  ENG 

Aly (Все сообщения пользователя)

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

Страницы: 1 2 3 4 След.
Использование функции GetClosestElementByXY, определении ближайшего объекта и расстояния до него
 
Distance method (ZGeometry) Находит расстояние между двумя точками по элементарной формуле - значит нужно проверить что вы получаете в качестве X и Y

Геометрически что представляют собой ближайшие объекты, они в одном слое? Если это кривые, то что будет их центрами, и какой ближайший объект в результате будет найден?
Обычно, если длины и расстояния кривые, или количество объектов попадают в область поиска радиусом... больше или меньше чем нужно,  значит в проге не указана проекция карты и слоя, в которой все это нужно искать и мерить. Проекцию нужно обязательно задавать одинаковую для слоев и карты чтобы нормально считалось.
Изменено: Aly - 20.09.2023 17:05:24
Длины и площади объектов, Длины и площади объектов
 
  1. МСК-34 Волгоградская область ГОСТ 51794-2008
"МСК-34 зона 1", 8, 9999, 3, 23.57, -140.95, -79.8, 0, -0.35, -0.79, -0.22, 0, 7, 43.05, 0, 1, 1300000, -4914743.504
Пример квадрат 250 на 250 м отображение в редакторе свойств:
X Y Длина

490000 1410000 0
490000 1410250 249,49
489750 1410250 250,22
489750 1410000 249,49
490000 1410000 250,22

при измерении линейкой 250 м.
Изменено: Aly - 19.10.2022 16:50:19
Длины и площади объектов, Длины и площади объектов
 
Версия 8.
Столкнулась с таким фактом, что слои имеющие проекцию имеют 2 длины - просто длина, в м (по всей видимости геометрии) и длина на сфероиде (то же самое с площадями).

При измерении линейкой берется геометрическая длина.
В свойствах объекта указываются обе длины (площади).
При редактировании узлов объекта (Свойства Редактор) - в таблице указывается длина сегмента на сфероиде.

При построении участка в опции На расстоянии... - указывается геометрическая длина

При составлении SQL запроса в качестве длинны участка берется первая - геометрическая длина.

В гидравлическом расчете длины участков с карты- берется длина на сфероиде. (как заданная проекция слоя).

У нас разница длины на сфероиде и декартова (в плане) составляет 22 см. на 250м (на сфероиде меньше).
Считаем, что именно длина в плане более точная, поскольку исходная городская топооснова сделана в план-схеме (хотя и имеет координаты МСК34 зона1) и1 лист 500 масштаба составляет 250 на 250 метров.

Если длина в слое была получена при гидравлическом расчете. Из- за разницы длин на большие участки трубопроводов (или сумма длин одного диаметра в районе ) набегает значительное число. Длины участков закладываются при проектировании принятии на баланс и прочее, от этого зависит стоимость объекта. И эта разница может иметь существенное денежное выражение.

Можно как то приводить карту - слой к одному варианту вычислений?
Изменено: Aly - 19.10.2022 11:36:25 (так надо)
Базы данных. Формы., Новый подход к базе данных. Персонализированные БД.
 

Добрый день!

Хочу предложить вариант расширения возможностей ГИС в части персонализация слоев на сервере (это не расчеты это про ГИС).

Итак, Дано:

Вектор – информация о местоположении объекта его длине, площади, типе в виде слоя лежащего на сервере.

Куча информации имеющая разную смысловую нагрузку, но относящаяся к 1 объекту . Информация может быть размещена в разных БД.

ZULU позволяет к вектору присоединить БД. При этом к 1 типу может быть только 1 база содержащая 1 источник данных.

А также можно создать надписи и тематические раскраски основанные на данных БД, дабы выделить интересующие данные.

Проблема: разные пользователи с разными потребностями в информации видят одни и те же надписи, темы и БД.

А хотят видеть каждый свое, свои темы, свои надписи, свою форму данных.

Существующие решения :

-Создание разных форм. Форму трудно найти. Надписи все равно в общей куче и не каждый может их изменить.

-Свое рукописное приложение – решает проблему, но кто его будет писать, особенно в малом населенном пункте? А если что то быстро поменять нужно?

-Копирование слоя с сервера и создание своего персонального слоя – возникает проблема синхронизации геометрии вектора между слоями – содержащими по сути один и тот же вектор, но разную смысловую нагрузку.

Поэтому новое Решение:

Поскольку слой в ZULU это набор файлов, а сервер использует ссылку на файл b.00.

То что мешает, сделать ссылки на файлы с БД, ссылки на надписи или тематические раскраски?

В этом случае мы можем создать несколько вариантов БД к одному вектору, несколько вариантов надписей и тем к 1 БД в зависимости от потребности. Сложить эти варианты в разные папки на сервере и добавить в них ссылку на основной вектор. Таким образом, для ПТО будет один набор данных, для проектировщиков другой, для имущества третий, сбыт, капстрой и т.д. Права соответственно на папки назначаются.

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

И у отдельных товарищей конечно будет полный набор данных с вектором. Они могут редактировать вектор

Остается проблема – основные характеристики, хранимые в основной БД (диаметр, материал, год эксплуатации инв. номер – которые нужны всем или большинству.   Если вся информация лежит в 1 БД – источнике то проблем нет, а если нет? Поэтому ZULU должна все таки уметь использовать таблицы из разных источников данных в 1 БД т.е. уметь использовать несколько строк соединения в зависимости от таблицы.

Тогда инвариантность создания ГИС повышается в разы.

Правила на быстрый поиск, Добавить правила на поиск с полем Дата
 
Добавить в быстрый поиск не только по строковым полям но и по текстовым, дата-время.

В запросе при связи таблиц 1 ко многим, сделать выбор отображения - первой показывать последнюю запись из многих. (а не первую как сейчас)
BLOB, Добавление элементов в галерею, удаление элементов, пересохранение ссылок
 
Это уже сделано gallery. Links стоит. Но файлы забрасываемые из бинарного файла - размещаются целиком.
Это связано с SaveContent 0,...
Судя по описаю эта функция предназначена больше для выгрузки данных из БД - т.е. формируется файл (бинарный) в котором содержится непосредственно фотография а не ссылка. возможно это зарезервированный параметр 0


Мне нужно чтобы програмно добавить ссылки на файлы из указанной папки. Из-за того что при ручном добавлении - файл копируется в корень папки документов, то в папке начинается хаос из файлов. Хаос это очень плохо - ничего понять невозможно. и из папки получить данные напрямую к ней обратившись (без Зулы) не возможно.

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

Но посокльку zipi - в zip уже не откроет, нужен Blob - галерея с ссылками. А вот загрузить ссылки не выходит. Функции не подходят.
Пробовала через поток делать но не понятно как грузить опять же ссылки.

Если сделать ярлыки и их уже грузить в контент? Но ZULU игнорирует ярлыки в качестве добавляемых файлов. Задачка сложная получается.
BLOB, Добавление элементов в галерею, удаление элементов, пересохранение ссылок
 
Добавились файлы в галерею но не ссылки. вероятно нужный параметр другой,?
BLOB, Добавление элементов в галерею, удаление элементов, пересохранение ссылок
 
Спасибо за оперативность. Буду пробовать.
BLOB, Добавление элементов в галерею, удаление элементов, пересохранение ссылок
 
Не совсем понятно как программно добавить еще файлов из папки в существующий объект Blob.(в нем должны храниться только ссылки на файлы из папки)
пробовала сначала Получить DataSet по SYS объекта ds


потом получить значение поля BLOB  GetFieldValueBlob() не описана в справке. tb
вроде получил и даже показал количество файлов в галерее
Далее с помощью

tb.Items.Add  путь, 1,  путь - вроде что то добавил в галерею
далее это tb

записать это tb в ds    SetFieldValue
но ничего не записалось

как и значение tb через
UpdateBaseRecordEx
UpdateBaseRecord

ругается на список полей, то на неверные параметры, то просто вылетает...
Видимо неправильно выгружаю из ds.
Если не через DataSet - то как ???
Изменено: Aly - 28.09.2021 16:54:05
[ Закрыто] Пожелания на версию 8
 
Добрый день!
Запрос к форме содержащий связь 1- ко многим (1 -я таблица 1 - 2-я таблица-многие). в Запрос к полям из первой таблицы добавлены поля из2 таблицы. При таком типе связи в браузер из таблицы 2 подгружается(отображается) первая строка, и далее нужно перелистывать записи в браузере чтобы дойти до последней.

Но иногда требуется чтобы первой отображалась последняя строка. Пример, хочу сделать таблицу для хранения ретроспективы аварий по данному объекту, при этом хочу чтобы при открытии таблички по объекту отображалась последняя авария (строка) - что логично. И еще хочу видеть количество записей всего по данному объекту, например [B]3 из 3.[/B]
Можно это сделать?
Изменено: Aly - 08.07.2021 08:48:45
Генерализация карты, Из схемы крупного масштаба н/р 1:500 получить схему 1: 2000, 1:50 000
 
Иногда для работы нет необходимости видеть подробную схему сетей, достаточно видеть обобщенную схему с основными элементами - задвижками и основными камерами, НС. Такие схемы имеют отличный масштаб от существующей подробной схемы.

Пример: на масштабе 1:500 задвижка располагается на расстоянии 1-1,5 м от точки колодца и хорошо видны, при переходе на масштабе 1: 5000- задвижки находятся слишком близко друг к другу и колодцу  и карта не читается.
Хотелось бы иметь инструмент который позволит генерировать из карты крупного масштаба 1:500 - карту мелкого масштаба 1:2 000 - 1:5 000, На которой все элементы располагались в читаемом виде.
[ Закрыто] Пожелания на версию 8
 
Добрый день!

Имеется задача: Организация хранения и быстрого доступа к технической документам относящихся к объектам предприятия (здания-сооружения, НС, сети колодцы ) с помощью ГИС  ZULU - Щелкнул на объект - выбрал в браузере таблицы поле документы -и получил все необходимые документы по объекту.
Технические документы - проекты, акты, ТУ, Договора, схемы зданий, паспорта колодцев и сетей, Приказы, ваыписки ЕГРН и прочее.

Что имеется в ZULU - можно сделать папку для хранения изображений и документов и поле в котором будут содержаться ссылка на документ(ы) или сами документы (BLOB, строковое поле 255 знаков). установить  теги в запросах- и можно пользоваться

Минусы: 1. Папка для хранения документов- может быть только одна на всю базу. А если один и тот же документ используют разные базы, то и папка у них одна, т.о.  папка для документов превращается в папку для слоя, а если несколько слоев используют одни и те же документы , то эта папка превращается в папку для всей ZULU т.е это неупорядоченная мусорка,
2. Поле BLOB. Проблемы поля: 1) если хранить сами документы то база раздуется, слой трудно копировать и передавать. - не используем.
2) Если хранить ссылки - если положение файла или его наименование изменилось - в таблице просто не поправить ссылку, как например если ссылка содержалась бы в текстовом поле.

3. Строковое поле может содержать ссылку только на 1 файл при теге Document.
4. Zulu не воспринимает ссылку на папку, и ссылку на ссылку.
5. Если документ находится в сетевой папке, то ZULU его копирует в Папку для хранения документов и делает ссылку на него - т.е. создает мусорку и неупорядоченное хранение. а не Проекты в проектах, Акты в актах, паспорта в папке Паспорта- расположенные например на хранилище или другом и даже этом сервере .

Чего хотелось бы:
1. Оперативное изменение изменившейся ссылки в поле BLOB как для одного документа так и для многих путем запросов. Добавление одной и той же ссылки в поле BLOB для выделенной группы объектов. Получение информации об испорченных - недействующих ссылках в полях BLOB в базе.

2. В строковом поле - добавить возможность открывать по ссылке не только 1 файл, но и папку которая будет содержать набор документов и ссылок на документы.

Это очень удобно - закидывать файлы прямо в нужные папки.  Это позволяет не делать кучу полей в таблицах с ссылками на документ1, документ 5, документ N, фото1, фото2, фото N и т.д. а иметь одно поле с ссылкой на 1 папку с документами или ссылками на документы относящиеся к данному объекту  (объектам)- Пример - проект сети в проекте имеется куча файлов и храня ссылку на папку можно открывать и видеть все документы проекта, пример 2- фотографии объекта за разные периоды - фотографии просто закидываются в папку объекта, их не нужно по одному добавлять в BLOB.
[I]Пробовали делать зипованную папку и давать на нее ссылку в текстовом поле - удобно было. Срабатывало нормально. Но после обновления ZULU папка распаковывается в Загрузки и файлы не показываются кроме как в области просмотра окна . А жаль.[/I]
[I]
[/I]Для нового типа хранения для строкового поля этого придумать новый тег, например direct.

В БД указывать не только папку для документов, но и [I][B]папку для папок объектов слоя [/B][/I]Что такое [B][I]папка объекта слоя-[/I][/B] это папка содержащая документы или ссылки на документы относящиеся к данному объекту. Она должна создаваться автоматически в указанной папке в БД с номером SYS объекта или может быть переименована в процессе создания пользователем на его усмотрение (у всех свои регламенты по наименованию и кодировке).

3. К пункту 2 - если он реализован Предусмотреть групповое добавление / изменение ссылок на файл через запрос  в папки объектов слоя для выбранных объектов[B]. [/B]Перестать копировать файлы из сетевых и прочих папок в корень папки для изображений и документов, а сохранять ссылки на них и открывать документы по ссылкам (и ссылка на ссылку).[B]
[/B]
[B]Изменение - заменить (что , на что)[/B]
Изменено: Aly - 20.05.2021 08:50:26
Расстояния между элементами, нахождение ближайших элементов, Расстояния между элементами, нахождение ближайших элементов, элементы попадающие в зону
 
Есть такой метод CalcDistance method (Element) - нахождение расстояний между элементами между точечными все понятно, а каким образом он определяет расстояние между двумя линейными объектами?  Что это за расстояние ?

Аналогично между другими объектами линией и полигоном, линией и точкой, точкой и полигоном и т.д.
Обращение к базе данных
 
Спасибо все получилось!
Обращение к базе данных
 
Есть набор ключей  ElementKeys по слою, например , элементы попадающие в зону  квартала и  определенного типа. Нужно  теперь из этого набора отсеять те, у которых в таблице значение  в поле  status = 0   или NULL. т.е. я могу получить IZbDataset по  SelectByExample но там  не учитывается (?) ElementKeys. Могу получить IZbDataset  с помощью SelectByKeySet, но здесь не учитывается условие по полю. А нужно и то и другое.
Обращение к базе данных
 
Спасибо! Не болейте!!!
Обращение к базе данных
 
Вопрос. Как выковырять название базовой таблицы к основному запросу по определенному типу слоя. т.е. к каждому типу есть своя БД, у нее есть несколько таблиц и несколько запросов. Один из запросов является основным . В этом запросе есть базовая таблица с полем связи с геометрическими объектами. Нужно ее имя.
Подсвечивание группы объектов другим цветом, Есть набор ключей объектов, нужно их временно раскрасить
 
например,
Set Map=Zulu.ActiveMapDoc  

Set tem = CreateObject("ZuluLib.Theme")

 tem.Parameter(123,eThemeLineColor)=255 ' присвоение линейному объекту с ИД 123 цвета линии красный


IDTem=Map.Layers.Active.Themes.AddTemporaryTheme(tem)



Тема добавляется, но не раскрашивает что не так в tem, ?
Подсвечивание группы объектов другим цветом, Есть набор ключей объектов, нужно их временно раскрасить
 
Есть набор ключей объектов, с которыми произвели какие-либо манипуляции (данные исправили, например, или выбрали по каким то признакам) нужно их временно раскрасить красным цветом и сделать крупнее - жирнее, и больше.
Временно, это до следующей обдуманной манипуляции пользователя (убедился, нажал на кнопку ок, или повтора операции при которой был получен набор ключей, или карту закрыл.).
Например, так же как это бывает при поиске пути- найденные объекты подсвечиваются красным.NetworkTools.Results - выдает набор ключей. А нужно обратно - подсунуть ему набор ключей, по которым он должен раскрасить.
Закладки, Расширение возможностей Закладок
 
Есть предложение расширить функции в ZULU 8 по использованию закладок.


1. "Поделись Закладкой с другом"
Как сейчас:

Например, при работе какое-то из мест (объектов) на карте заинтересовал, ошибка там или еще что-то, ты сделал себе закладку в этом месте, чтобы затем туда вернуться.

Тебе нужно посовещаться об этом объекте с кем то из сотрудников или провести совещание с использованием карт другого сотрудника.

Тебе придется заново искать это место, поскольку в другой карте нет таких закладок. Можно попробовать переслать свою карту, но твоя карта может ссылаться на другие слои к которым нет доступа с другого компьютера.

Как хотелось бы:

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


2. Примечание к закладке - добавить некий краткий текст о том, зачем ты сделал эту закладку:)
Изменено: Aly - 19.09.2018 10:48:44
Сист. требования, Сист. требования для ZuluServer
 
Подскажите, возможно ли использование ГИС ZULU 8 с Access 2016. Будут ли доступны базы созданные в нем из ГИС ZULU 8?
Перерисовка карты, Add method (Layers) vbs
 
Спасибо! Теперь все происходит быстрее и приятнее глазу. :)
Перерисовка карты, Add method (Layers) vbs
 
Хорошо, переписала программу, теперь сначала добавили все слои последовательно, и только после этого выполняем манипуляцию по перемещению слоев - на свои места
методом  Sub Move(Index, Order As eLayerOrder) в цикле, пока не слой не достигнет нужного места             . После перемещения каждого слоя происходит перерисовка экрана, т.е. переместила 4 слоя каждый на свое место- 4 раза мигнул экран. Слои растровые.
Изменено: Aly - 10.05.2018 16:12:47
Перерисовка карты, Add method (Layers) vbs
 
При использовании метода Add method (Layers)  происходит перерисовка карты.
Поскольку я добавляю последовательно несколько слоев и расставляю их в нужном порядке, настраиваю их отображение, то каждый раз карта перерисовывается, что тормозит процесс и экран каждый раз мигает.
Можно как то запретить перерисовку карты, пока все манипуляции не будут сделаны, как например в диалоге Слои. Все добавили, сделали что нужно, потом кнопка ок и уже идет перерисовка.
Перехват текущего логина версия 8 ZULU Server
 
Да пожалуйста, сделайте так.
Соединение закрывается когда закрыты все карты (слои) или само приложение тоже?
Страницы: 1 2 3 4 След.