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

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

Поиск  Пользователи  Правила  Войти
Форум » Пользователи » Артем
Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Загрузка карт с WMS/WMTS сервера и отрисовка на собственном контексте
 
Добрый день!

Имеется ГИС Конструктор 12.5.2.055. Astra 1.6

Задача: Загрузка карт с Панорамовского веб-сервера и отрисовка на   drawBackground()   QGraphicsScene.

Использовал пример mapview и mapportal для исследования данного вопроса.

Через ваш компонент   QDMapView в примере mapportal пробовал, в частности, работать с   WMTS#Type=UTMS&IP=[URL=http://mts1.google.com]http://mts1.google.com[/URL].... - все вроде нормально отрисовывает.
Через PaintEvent примера mapview - все плохо - кривые шрифты + искажения карты - сжимается\разжимается при скролле и другие артефакты.
Например, так - [URL=https://disk.yandex.ru/i/stRvoEPa0Ivawg]скриншот[/URL]

Я понимаю, что надо отрисовку в буфер выводить в доп. поток, но мне кажется, что проблема не только в этом.

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

У нас сейчас решается вопрос выбора ГИС движка для отображения карт. Есть ГИС Конструктор и хотелось бы использовать его, но для этого необходимо разобраться  с этой проблемой.
Изменено: Артем - 21.04.2023 15:44:10
Проблемы с отрисовкой карты в принтерном растровом виде
 
[QUOTE]Александр Савелов написал:
Здравствуйте!В ГИС Конструктор версии 11.6.0 еще не был реализован принтерно-растровой тип отображения карты.При необходимости мы можем выполнить обновление ГИС Конструктор в рамках технической поддержки.[/QUOTE]
Добрый день!
Что для этого необходимо сделать с нашей стороны?
Проблемы с отрисовкой карты в принтерном растровом виде
 
[QUOTE]Константин Ганюшин написал:
Здравствуйте, Сергей!В файле qdmwina.cpp, из состава исходных текстов библиотеки компонентов, в конструкторе QDMapViewWindow, происходит установка необходимых функций.Спасибо.[/QUOTE]
Добрый день!
У меня похожая проблема. Версия ГИС конструктора = 11.6.0.
Мне также посоветовали найти реализации ф-ий отрисовки (DrawSolidLine ... и т.д .) в последней версии ГИС Конструктора (12) и подключить в свой проект в виде исходников, с использованием ф-ий обратного вызова.
По вашему совету в конструкторе QDMapViewWindow нашел следующее:

[CODE] mapDrawSolidLine(DrawSolidLine); // Сплошная линия
   mapDrawDashLine(DrawDashLine);                  // Штриховая линия
   mapDrawPolygon(DrawPolygon);                    // Площадной объект
   mapDrawText(DrawText);                          // Подпись
   mapDrawTextWidth(DrawTextWidth);                // Ширина подписи
   mapDrawEllipse(DrawEllipse);                    // Эллипс
   mapDrawArc(DrawArc);                            // Дуга
   mapDrawPie(DrawPie);                            // Сектор
   mapDrawFontMetrics(DrawFontMetrics);            // Метрика шрифта
   mapDrawPicture(DrawPicture);                    // Картинка
[/CODE]

Определения этих функций нашел в visfuncs.h, но в моей версии Конструктора нет данного хэдэра.

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

Не собирается проект под linux, Не могу собрать проект написанный под Windows в ОС Linux (Kubuntu 19)
 
Спасибо за ответы!

[QUOTE]Vladimir Letov написал:
Предполагаю, что на тех версиях Вам будет проще сделать две реализации процесса отображения, а на новых версиях перейти на функции ToXImage.[/QUOTE]
Да уж... В этом случае может подскажите, какие версии Панорамы необходимы для реализации кроссплатформенного кода, при работе с QT5?
Не собирается проект под linux, Не могу собрать проект написанный под Windows в ОС Linux (Kubuntu 19)
 
[QUOTE]Сергей написал:
В моей версии MAPAPI для Windows эта функция также доступна.[/QUOTE]
Эти функции  в mapapi.h присутствуют, но обернуты дефайнами под конкретную платформу.
Не собирается проект под linux, Не могу собрать проект написанный под Windows в ОС Linux (Kubuntu 19)
 
[QUOTE]Александр Савелов написал:
Уточните, пожалуйста, при сборке в Astra Linux используются заголовочные файлы из состава ГИС Конструктор?[/QUOTE]
да.

Насколько я понял универсальный код написать не выйдет!

mapPaintToDib(...) - для Windows
mapPaintToXImage (...) -для Linux

и т.д.

Подскажите если не так!
Не собирается проект под linux, Не могу собрать проект написанный под Windows в ОС Linux (Kubuntu 19)
 
[QUOTE]Сергей написал:
Добрый день. Я бы сказал, что у вас не установлен Qt 5 XML module, но могу ошибаться.[/QUOTE]
Установлен. Есть проекты с использованием xml - все работает!
Не собирается проект под linux, Не могу собрать проект написанный под Windows в ОС Linux (Kubuntu 19)
 
[QUOTE]Сергей написал:
Здравствуйте.Пока не ответили представители Панорамы, могу предположить, что для решения этой проблемы подойдет определение дефайна HIDEFUNCWCS в pro-файле для linux.[/QUOTE]
Добрый день!
Добавил дефайн, пропали  ошибки:

gis/include/mapsyst.h:682:6: error: ambiguating new declaration of ‘int wcslen(const WCHAR*)’

 int wcslen(const WCHAR *s);

     ^~~~~~  

Зато теперь валятся другие (насчет XML) типа:

 

/usr/bin/ld: gis/lib/libqdwmsacces.so: undefined reference to `QDomNode::removeChild(QDomNode const&)'

/usr/bin/ld: gis/lib/libqdwmsacces.so: undefined reference to `QDomNode::nodeName() const'

/usr/bin/ld: gis/lib/libqdwmsacces.so: undefined reference to `QDomNode::appendChild(QDomNode const&)'

/usr/bin/ld: gis/lib/libqdwmsacces.so: undefined reference to `QDomNode::~QDomNode()'

Не собирается проект под linux, Не могу собрать проект написанный под Windows в ОС Linux (Kubuntu 19)
 
Добрый день!
У нас есть два ваших дистрибутива с ключами (Windows-ToolKit 11.9.0  и Astra 1.3 Конструктор 11.6.0 free)
Написан простой пробный проект на ОС Windows с маленькими картами (Подольск) - все работает.
Пытаюсь его же собрать под Linux.
При сборке выдает ошибки типа:
 

In file included from gis/include/mapmacro.h:22,

                from gis/include/maptype.h:26,

                from gis/include/mapgdi.h:21,

                from gis/include/mapapi.h:100,

                from src/apiinteractor.h:7,

                from src/apiinteractor.cpp:1:

gis/include/mapsyst.h:682:6: error: ambiguating new declaration of ‘int wcslen(const WCHAR*)’

 int wcslen(const WCHAR *s);

     ^~~~~~  

In file included from /usr/include/c++/8/cwchar:44,

                from /usr/include/c++/8/bits/postypes.h:40,

                from /usr/include/c++/8/bits/char_traits.h:40,

                from /usr/include/c++/8/string:40,

                from /usr/share/Qt5.12.2/5.12.2/gcc_64/include/QtCore/qbytearray.h:52,

                from /usr/share/Qt5.12.2/5.12.2/gcc_64/include/QtCore/qstring.h:49,

                from /usr/share/Qt5.12.2/5.12.2/gcc_64/include/QtCore/qobject.h:47,

                from /usr/share/Qt5.12.2/5.12.2/gcc_64/include/QtCore/QObject:1,

                from src/apiinteractor.h:4,

                from src/apiinteractor.cpp:1:

/usr/include/wchar.h:222:15: note: old declaration ‘size_t wcslen(const wchar_t*)’

extern size_t wcslen (const wchar_t *__s) __THROW __attribute_pure__;

              ^~~~~~

Если ставлю на Linux скачанную с вашего сайта версию:

[URL=http://www.gisinfo.ru/products/lin_gk_qt.htm]ГИС Конструктор для Qt Designer x64 (версия 12.5.1, Qt 4, Qt 5, платформа x64, ОС Ubuntu 18.04)[/URL]

то ругается - undefined reference to :

mapOpenMtrForMap(hMap,name,0);

mapPictureToPlane(hMap,x,y);

mapPlaneToGeo(hMap,x,y);

mapGeoToPlane(map,x,y);

и т.д.

Подскажите, могу ли я собирать под Linux свои проекты, написанные на Windows?

Страницы: 1



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

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