RUS  ENG 

Сергей Попов (Автор тем)

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

Страницы: 1
Иконка для кнопки команды плагина
 
Пишу plugin на c#, плагин добавляет набор кнопок на стандартную панель "Навигация"

Подскажите, пожалуйста, как сделать сделать:
1. Кнопки иконками, а не надписями
2. Сделать кнопку с состоянием нажата/отжата по аналогии с кнопкой "Информация"

P.S. В справке нашёл описание
toolbarbutton bitmapresource="идентификатор_ресурса"
но не понял как это реализовать в случае plugin на с#

Спасибо!
Использование ZuluTools MapPack/Unpack, LayerPack/Unpack, LayerCopyEx
 

Добрый день!


Появилась задача создания копии карты с одного ZuluServer на другом. Карта на основном сервере может изменяться, в том числе и менять набор используемых слоёв. Взаимодействие между серверами хотелось бы оставить только через протокол ZuluServer (без создания сетевых папок на первом или втором серверах)  Задача должна выполняться ежедневно.
Схема взаимодействия: ПК1 (основной ZuluServer) -- ПК2 (сервис для копирования карт) -- ПК3 (целевой ZuluServer)
Для себя увидел 3 варианта решения задачи c использованием ZuluTools (все подключения между сервисом и серверами Zulu через строку формата zulu://$login$uid:pwd@server:6473/...):
1. MapPack/Unpack - ПК2 используя метод MapPack сохраняет в свою локальную папку упакованную исходную карту с ПК1 и далее используя метод MapUnpack распаковывает её на ПК3. Не получилось, карта упаковывается и сохраняется на ПК2, но при распаковке на ПК3 отображается окно авторизации на сервере (в мониторинге самого сервер подключение anonymous), после ввода данных, аналогичных указанным в строке подключения, карта успешно распаковывается.
2. LayerPackUnpack - ПК2 открывает исходную карту с ПК1, считывает список слоёв, далее используя метод LayerPack сохраняет в свою локальную папку упакованные слои с ПК1, затем используя метод LayerUnpack распаковывает их на ПК3. Тоже не получилось, метод LayerUnpack возвращает false.
3. LayerCopyEx – ПК2 открывает исходную карту с ПК1, считывает список слоёв и копирует каждый из них используя метод LayerCopyEx на ПК3 в целевой слой. Все работает, но, с одной оговоркой, целевой слой должен существовать, те при создании нового слоя в исходной карте он не будет скопирован. Хотелось бы иметь возможность скопировать и новый слой, просто место его расположения на ZuluServer.

Хотелось бы увидеть комментарии по всем трём пунктам, тк данная информация, на мой взгляд, будет крайне полезной при различных кейсах использования данных методов.

Спасибо!

P.S. Версия ZuluGIS 10.0.0.8937u.x64

Настройка кнопок MapToolBarCtrl из кода
 
Добрый день!

Возможно ли настроить кнопки (добавить необходимые кнопки) элемента MapToolBarCtrl из кода программы?

Поясню в чём дело, при переходе с NET Framework на NET Core в VS2022 в редакторе Windows Form не открывается редактор кнопок для данного элемента, при попытке открыть VS зависает. К слову, так происходит со всеми внешними редакторами свойств для элементов из ZuluXTools, по крайней мере у меня.
Понимаю, что решение вопроса с VS, скорее всего, дело не быстрое, да и из не решаемых вопросов пока только кнопки на панели инструментов.

Спасибо!
Поиск объекта слоя по координатам
 
Задача: на слое А есть символьный объект ОБЪЕКТ, необходимо на слое Б создавать символьные объекты МЕТКИ в непосредственной близости от него в идеале было бы в точке с координатами центра объекта ОБЪЕКТ, но Zulu не даёт создать несколько МЕТОК с одинаковыми координатами на одном слое. Для решения этой задачи был придуман простой алгоритм, перед рисованием МЕТКИ в точке с координатами X,Y проверяется наличие другой МЕТКИ в этой точке методом Layer.ElemIDByXY, если МЕТКА есть, то точка смещается на заданную величину и снова осуществляется проверка наличия метки, если в новой точке метка не обнаружена, то создаём новую метку.
Но данный алгоритм не работает, тк при смене координат метод Layer.ElemIDByXY продолжает возвращать ID МЕТКИ находящейся в центре и только по достижению достаточно большой дельты (30 метров от центральной точки) возвращает -1.
Подскажите, в чём может быть проблема?

Лог смещения точки:

X:-56100 Y:9210 radius:10 angle:0 element ID:13
X:-56105.4402111089 Y:9191.60928470924 radius:10 angle:10 element ID:13
X:-56090.8705474927 Y:9204.08082061813 radius:10 angle:20 element ID:13
X:-56109.8803162409 Y:9201.54251449888 radius:10 angle:30 element ID:13
...
X:-53619.4630982338 Y:10887.2867803002 radius:3000 angle:290 element ID:-1
Использование MS SQL Server в качестве источника данных (аутентификация пользователя)
 
При использовании MS SQL Server в качестве источника данных возникла проблема с подключением. В конфигурации ZuluServer настроена строка подключения с использованием SQL Server Native client 11, для аутентификации на SQL server используется учетная запись SQL Server,
логин и пароль прописаны в строке соединения и поставлена галка "Разрешить сохранение пароля". В поля пользователь и пароль формы настройки соединения введены эти же данные. Галочка "Использовать учетные сведения ZuluServer" снята. Однако при обращении к данным из Zulu используются имя пользователя и пароль, под которыми открыта карта (учетные сведения ZuluServer).
Подскажите, что я делаю не так?

ZuluServer 8.0.0.7290
Удаление элемента не используя визуальные компоненты
 
Задача: удалить с заданного слоя элемент с определенным Id не используя визуальные компоненты.

Использую следующую функцию:

var map = new MapDoc();
map.Open(MapSettings.MapPath);
var layer = map.Layers[layerId];
var result = layer.DeleteElement(elementId);

result = 0, но элемент не удаляется.

Подскажите, пожалуйста, что я делаю не так?

Карта опубликована на сервере, версия 8.0.0.7221u
Страницы: 1