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

Превью знаков с эллипсами / Example()

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
Превью знаков с эллипсами / Example()
 
Отпишусь в этот форум, поскольку влияет на работу функции axMapObj->Example()
(предположительно - баг с вычислением расстояния до эллипса)

Запускаем ГИС Панорама Мини

1. Рисуем такой значок (img_1)
2. Смотрим на превьюшку (img_2) - вылезает за края
3. Проводим линию там где эллипс (img_3)
4. Так превьюшка не вылезает (img_4)
img_1.jpg (1.55 КБ)
img_3.jpg (24.94 КБ)
img_2.jpg (1.44 КБ)
img_4.jpg (1.39 КБ)
 
Скорей всего проблема в определении габаритов. Попробуйте использовать функцию отображения образца объекта с масштабированием.
Код
  // Отобразить образец вида объекта по номеру записи
  // в классификаторе объектов (incode)
  // hdc   - идентификатор контекста устройства вывода,
  // rect  - координаты фрагмента карты (Draw)
  // в изображении (Picture).
  // hSite - идентификатор открытой пользовательской карты
  // factor - коэффициент масштабируемости изображения 50, 100, 200...
  // Используется в диалогах выбора вида объекта
  // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapPaintExampleSiteObjectEx(HMAP hMap, HSITE hSite,
                                                     HDC hdc, RECT *rect,
                                                     long int incode,
                                                     long int factor);
 
Да, тоже считаю что с определением габаритов что-то не то. Временно на каждом эллипсе приделал прямую чтоб размеры определялись правильно.

Разработчикам (фичареквест): Хотелось эту функцию вынести в activeX компонент..
Изменено: Ник Павлов - 16.08.2016 12:13:40
 
В activeX данная функция доступна.
 
Такая же проблема. Используется Gis ToolKit Active v 11.3.

Цитата
В activeX данная функция доступна.

Кроме функции axMapObj->Example() больше функции отображения знака из классификатора не нашел.
Как можно средствами ActiveX добиться корректного отображения знака?
 
Цитата
kalakom написал:
Такая же проблема. Используется Gis ToolKit Active v 11.3.

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

В составе компонент Gis ToolKit Active для отображения примера условного знака есть только один метод - это axMapObj->Example().
Этот метод на своем базовом уровне использует MAPAPI-вызов mapPaintExampleSiteObject, то есть без масштабного коэффициента.
Описанную выше MAPAPI-функцию mapPaintExampleSiteObjectEx Вы можете вызвать самостоятельно при необходимости, минуя методы компонентов Gis ToolKit Active.
 
Знак отображается не полностью с помощью получения его изображения axMapObj->Example().
В данный метод передан HDC размером 162х162 (границы HDC показаны черной рамкой).

Нет возможности использовать MAPAPI-функцию mapPaintExampleSiteObjectEx напрямую. Разработка идет на Visual Studio. Библиотеки lib из коробки не совместимы с форматом lib Visual Studio. Поэтому используются ActiveX-компоненты.
ыва.png (2 КБ)
 
Цитата
kalakom написал:
Знак отображается не полностью с помощью получения его изображения axMapObj->Example().В данный метод передан HDC размером 162х162 (границы HDC показаны черной рамкой).
Вопрос передан специалисту. Разбираемся, спасибо.
Страницы: 1
Читают тему (гостей: 1)



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

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