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

Получить размер значка классификатора

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » Классификаторы и условные знаки
Страницы: 1
RSS
Получить размер значка классификатора
 
Добрый день!

Использую карту на основе OpenStreetMap в формате .mptz, поверх неё создаю пользовательскую карту с помощью mapCreateAndAppendTempSitePro. Есть собственный классификатор .rsc, открывается вместе с картой. В этом классификаторе есть 4 одинаковых по форме и размерам круглых значка (создавались копированием), отличаются только цветом. Для них в редакторе классификатора установлен параметр "Не сжимать" и размер 2 мм.

Мне нужно получить размеры значка средствами mapapi для более точного поиска объектов на  карте по клику (чтобы на разных масштабах рамка поиска в mapWhatObjectBySelect соответствовала текущему размеру значка относительно карты). Я использовала функцию
mapGetRscImageSize, получаемые параметры IMAGESIZE Base, DeltaH, DeltaV, HorizontalSize, VerticalSize для всех четырёх значков разные. Как такое может быть, если сами значки одинаковые по размерам? Какие-то ещё есть способы получить размер значка (ширину или длину) из классификатора?

Работаю на AstraLinux, ГИС Конструктор для Qt Designer x64 (версия 15.1.0.7).
 
Цитата
Анна написал:
Использую карту на основе OpenStreetMap в формате .mptz, поверх неё создаю пользовательскую карту с помощью mapCreateAndAppendTempSitePro. Есть собственный классификатор .rsc, открывается вместе с картой. В этом классификаторе есть 4 одинаковых по форме и размерам круглых значка (создавались копированием), отличаются только цветом. Для них в редакторе классификатора установлен параметр "Не сжимать" и размер 2 мм.
Добрый день!
Если параметры полностью совпадают, то и размеры знака будут возвращаться одинаковые. Цвет не влияет на размер. Для выбора знака на карте размер самого знака не должен влиять. Обычно используют некоторое фиксированное значение, удобное для интерфейса конкретной задачи. В ГИС Панорама знак выбирается в области +/- 2 пиксела от точки (5 x 5 пикселов).
 
Как здесь приложить файл? У меня внизу нет кнопки для отправки файла, через кнопку с изображением не прикрепляется.
 
Цитата
Анна написал:
Как здесь приложить файл? У меня внизу нет кнопки для отправки файла, через кнопку с изображением не прикрепляется.

Можете прислать на почту технической поддержки КБ Панорама <panorama@gisinfo.ru>
 
Добрый день! Приложила скриншоты. Значки одинаковые, а их размеры, получаемые через mapGetRscImageSize - разные.

Второй параметр в long int _MAPAPI mapGetRscImageSize(HRSC hRsc, long int incode, IMAGESIZE * imagesize, long int length = 0,char * string = 0); - это код объекта классификатора?
Если нет, как по коду объекта классификатора получить размер значка в пикселях в текущем масштабе?
Изменено: Oleg Belenkov - 08.12.2025 11:15:57
 
1) Не самый удачный сайт для размещения картинок - снес картинки
2) Конечно же, размеры заданы разные

Круг одинаковый, а измерения по вертикали и по горизонтали на разных позициях, что дает разные размеры.
Поясню на примере. Если нарисовать 2 одинаковых окружности у двух знаков и у первой окружности указать размер по горизонтали от левого края
до центра в 5 мм, то общий размер по горизонтали на карте в базовом масштабе будет 10 мм, а у второй указать отметки по горизонтали от левого
края до правого края в 5 мм, общий размер на карте - 5 мм. А окружности в Редакторе классификатора выглядят одинаково.
 
В классификаторе объекты не только выглядят одинаково, они и есть одинаковые по размерам - были созданы копированием.

Ответьте, пожалуйста, на вопросы:

1) Второй параметр в mapGetRscImageSize(HRSC hRsc, long  int incode, IMAGESIZE * imagesize, long int length = 0,char * string =  0); - это код (порядковый номер) объекта классификатора?
2) Как по коду объекта классификатора получить размер значка в пикселях, не создавая такого объекта на карте?
Изменено: Анна - 08.12.2025 11:35:51 (уточнение)
 
Цитата
Анна написал:
Ответьте, пожалуйста, на вопросы:
Добрый день!
Отвечаем на вопросы:
-  // Запросить размеры в микронах и свойства экранного вида объекта
 // hRsc - идентификатор классификатора карты
 // incode - порядковый номер объекта (с 1)
 // IMAGESIZE -  структура входных данных  (см. maptype.h)
 // Строка string длиной length задается для
 // определения горизонтального размера подписи
 // При ошибке возвращает ноль
_MAPIMP long int _MAPAPI mapGetRscImageSize(HRSC hRsc, long int incode, IMAGESIZE * imagesize,
                                           long int length = 0,char * string = 0);

- Функция mapGetRscImageSize - возвращает размеры без создания на карте.
 
Цитата
Анна написал:
В классификаторе объекты не только выглядят одинаково, они и есть одинаковые по размерам - были созданы копированием.

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



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

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