На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Python для экспорта знаков классификатора в SVG

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » Классификаторы и условные знаки
Страницы: 1
RSS
Python для экспорта знаков классификатора в SVG
 
Всем привет!
Есть ли какие-то решения для экспорта условных знаков из RSC в векторные файлы SVG?
Меня интересует функционал, который, получая на входе ключ знака, возвращает сам знак в формате SVG. Или любом другом графическом формате.
Я видел подобный функционал, написанный на C++. Но есть ли аналоги на Python?

Я рассмотрел пакет GIS ToolKit. Там была библиотека готовых файлов на Python. И, в частности, там были rscapi.py и rsctools.py, но я не нашёл там функций, которые именно возвращали бы графику знака по его коду.
В общем, в какую сторону копать?
 
Цитата
Алексей Аминодов-Борисов написал:
Всем привет!
Есть ли какие-то решения для экспорта условных знаков из RSC в векторные файлы SVG?
Меня интересует функционал, который, получая на входе ключ знака, возвращает сам знак в формате SVG. Или любом другом графическом формате.
Я видел подобный функционал, написанный на C++. Но есть ли аналоги на Python?

Я рассмотрел пакет GIS ToolKit. Там была библиотека готовых файлов на Python. И, в частности, там были rscapi.py и rsctools.py, но я не нашёл там функций, которые именно возвращали бы графику знака по его коду.
В общем, в какую сторону копать?

Добрый день!
Код
// Экспорт изображения карты в формат SVG
// Изображение формируется в базовом масштабе карты с заданным разрешением
// handle  - идентификатор диалога, которому посылаются сообщения WM_PROGRESSBARUN
// hmap    - идентификатор открытых данных
// hsite   - идентификатор открытой пользовательской карты
// hselect  - фильтр загружаемых объектов и слоев, если необходима выборочная обработка данных
// svgname - имя создаваемого файла SVG
// precision - число точек на метр изображения
// error - поле для записи кода ошибки (см. maperr.rh)
// При ошибке во входных данных возвращает ноль

_VECIMP long int _VECAPI SaveMapToSVG(HMESSAGE handle, HMAP hmap, HSITE hsite, HSELECT hselect,
                                      const WCHAR* svgname, double precision, long int* error);
В vecexapi.h описана функция для сохранения объектов в SVG. Это могут быть примеры знаков или реальная карта.
С уважением, Демиденко Р.А.
 
Роман Демиденко,спасибо за ответ.
В комментарии написано, что функция сохраняет изображение карты. Правильно ли я понимаю, что она и один знак по запросу извлечёт из классификатора?
И аналогичная функция есть на Питоне? Просто вами процитирован код на плюсах.
 
Цитата
Алексей Аминодов-Борисов написал:
В комментарии написано, что функция сохраняет изображение карты. Правильно ли я понимаю, что она и один знак по запросу извлечёт из классификатора?
И аналогичная функция есть на Питоне? Просто вами процитирован код на плюсах.
Добрый день!

Для вызова на Python необходимо сделать объявление прототипа этой функции наподобие аналогичных функций в vecexapi.py.
Если на карте будет нанесен один объект, то будет сохранено только его изображение в SVG. Если знак - полигон, то его параметры - это цвет. Нечего сохранять в SVG. Если на карте нарисован полигон, то в SVG будет контур и цвет.

В ГИС Панорама в меню Задачи/Запуск приложений/Обработка классификатора и перекодировка есть задача Формирование карты условных знаков.
Она создает карту с образцами всех объектов классификатора.
Если ее сохранить в SVG, то будут образцы всех знаков.
С уважением, Демиденко Р.А.
 
Роман Демиденко, спасибо!
Правда, речь идёт о классификаторе operator.rsc, поэтому карта знаков тут вряд ли поможет. А вот функцию буду стараться приручить.
Изменено: Алексей Аминодов-Борисов - 26.01.2024 11:32:28
 
Я попробовал вызвать эту функцию в питоновском коде. Аргументы были следующие:
Код
vecexapi.SaveMapToSVG(0, temp_map, temp_map, 0, svg_file_name, 1000000, 0)

То есть, аргументы такие:

temp_map — это ID временной карты, которая была создана методом

Код
mapapi.mapCreateTempSitePro

handle = 0, потому что мне нужно просто-напросто экспортировать временную карту в SVG и никакие диалоги не нужны.

hselect = 0, потому что мне нужно экспортировать всю карту.

error = 0, потому что мне не нужно хранить информацию об ошибках.

Однако, на выходе я получаю пустую карту без каких-либо объектов.
Почему так может быть?

 
Цитата
Алексей Аминодов-Борисов написал:
Однако, на выходе я получаю пустую карту без каких-либо объектов.Почему так может быть?
Добрый день!
Для полного анализа проблемы просьба предоставить весь код.
На данный момент не понятно, какие объекты создаете на векторной карте и как именно.

Спасибо!
Страницы: 1
Читают тему (гостей: 1)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности