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

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

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

Страницы: Пред. 1 ... 10 11 12 13 14 15 16 17 18 19 20 ... 53 След.
Выделение объектов карты компоненты Гис Конструктор
 
Здравствуйте!

Хорошо, спасибо - в ближайшие несколько дней посмотрим подготовленные Вами исходные тексты и уточним причину проблемы и сроки ее решения.
не работает построение маршрута через компоненту DMapNet
 
Здравствуйте!

Поскольку данный вопрос относится к программному изделию GIS Toolkit для Windows, то данный вопрос перенесли в другой раздел форума: [URL=http://gisweb.ru/forum/forum2/10129-ne-rabotaet-funktsiya-getshotwayandcreateobject]http://gisweb.ru/forum/forum2/10129-ne-rabotaet-funktsiya-getshotwayandcreateobject[/URL]
Проецирование растра
 
Здравствуйте!

Сегодня-завтра выпустим обновленную версию ГИС Конструктор. Спасибо за ожидание!
Аварийное завершение программы при отрисовке образцов iml-значков
 
Здравствуйте!

Символ _Z9strmyncpyPcPKc реализован в библиотеке mapacces. Поэтому, если мы производим предварительную подгрузку этой библиотеки с помощью LD_PRELOAD, линковщик находит данный символ (в выводе команды ldd отсутствует строка undefined symbol с данным символом).

Поскольку при работе программы возникает сообщение об отсутствии этого символа, вероятно некорректно линкуется библиотека mapacces (хотя присланный Вами фрагмент памяти программы говорит о том, что она подгружена).

Для того, чтобы воспроизвести одинаковое поведение, мы немного модифицировали предыдущий фрагмент кода.
Теперь он выводит образцы всех объектов из классификатора для карт Ногинска и Shape из состава ГИС Оператор SE (классификаторы обеих карт ссылаются на библиотеку shape.iml64):
[CODE]#include <assert.h>
#include <iostream>

#include <QImage>

#include "mapapi.h"

void PaintObject(HMAP mapHandle, HRSC rscHandle, HOBJ objectHandle, int rscObjectNumber)
{
 // Получить номер функции отображения и параметры из классификатора
 long rscObjectFunctionNumber = mapGetRscObjectFunction(rscHandle, rscObjectNumber);
 assert(rscObjectFunctionNumber);
 std::cout << "rsc object function number: " << rscObjectFunctionNumber << std::endl;

 char* rscObjectParameters = (char*)mapGetRscObjectParameters(rscHandle, rscObjectNumber);
 assert(rscObjectParameters);

 // Запросить параметры палитры карты (для отображения объекта)
 COLORREF palette[256];
 long colorCount = mapGetSiteColorsCount(mapHandle, mapHandle);
 mapGetSitePalette(mapHandle, mapHandle, palette, colorCount);

 // Выделить память для отрисовки объекта
 const int ICON_SIZE = 32;
 XIMAGEDESC ximageDesc;
 ximageDesc.Width = ICON_SIZE;
 ximageDesc.Height = ICON_SIZE;
 ximageDesc.Depth = 32;
 ximageDesc.CellSize = ximageDesc.Depth / 8;
 ximageDesc.RowSize = ximageDesc.Width * ximageDesc.CellSize;

 char *paintMemory = new char[ximageDesc.Width * ximageDesc.Height * ximageDesc.CellSize];
 ximageDesc.Point = paintMemory;
 assert(paintMemory);

 // Отрисовать образец объекта
 RECT rectDraw;
 rectDraw.left = 0;
 rectDraw.top = 0;
 rectDraw.right = ICON_SIZE;
 rectDraw.bottom = ICON_SIZE;

 char *objectText = NULL;
 long objectLocal = mapObjectLocal(objectHandle);
 long isPainted = mapPaintExampleObjectByFuncToXImage(mapHandle, &ximageDesc, &rectDraw, rscObjectFunctionNumber,
                                                      rscObjectParameters, colorCount, palette, objectText, objectLocal);
 assert(isPainted);

 // Вывести картинку в файл
 QImage image((uchar*)(ximageDesc.Point), ximageDesc.Width, ximageDesc.Height, QImage::Format_RGB32);
 image.save("/tmp/out.png");
}

int main()
{
 // Открыть карту
 HMAP mapHandle = mapOpenData("/usr/Operator11/Data/Shape/shape.sitx");
 //  HMAP mapHandle = mapOpenData("/usr/Operator11/Data/Noginsk/Noginsk.sit");
 assert(mapHandle);

 // Получить классификатор
 HRSC rscHandle = mapGetRscIdent(mapHandle, mapHandle);
 assert(rscHandle);

 // Создать объект в памяти
 HOBJ objectHandle = mapCreateObject(mapHandle);
 assert(objectHandle);

 // Отрисовать объекты из классификатора
 for (int rscObjectNumber = 1; rscObjectNumber <= mapGetRscObjectCount(rscHandle); rscObjectNumber++)
 {
   std::cout << "current object number: " << rscObjectNumber << std::endl;
   PaintObject(mapHandle, rscHandle, objectHandle, rscObjectNumber);
 }

 mapFreeObject(objectHandle);
 mapCloseData(mapHandle);
 mapCloseMapAccess();

 return 0;
}[/CODE]Библиотека libqdmapacces.so из состава ГИС Конструктор при этом линкуется статически:
[CODE]INCLUDEPATH += /usr/share/qt4/include
LIBS += -lqdmapacces

SOURCES += \
 main.cpp[/CODE]Мы протестировали корректное выполнение этого кода для отрисовки значков объектов данных карт на сертифицированной версии ГИС Конструктор.
Пожалуйста, попробуйте запустить данное приложение. Спасибо!
Перемещение карты вслед за перемещением мыши в QDMapView
 
Здравствуйте!

На текущий момент мы не поддерживаем изделие ГИС Конструктор для Windows. Для использования реализованного в нем функционала рекомендуем использовать версию для ОС Linux ([URL=https://gisinfo.ru/download/download_linux.htm#5]https://gisinfo.ru/download/download_linux.htm#5[/URL]).

В компоненте QDMapView для решения вопроса мерцания карты при ее перемещении используется механизм двойной буферизации.
Реализации буферов используются из состава MAPAPI (более детально можно посмотреть в разделе 3.6.8 "Отображение подвижных объектов" Руководства программиста - [URL=http://gistoolkit.ru/download/doc/gisdesigner_prog.pdf]http://gistoolkit.ru/download/doc/gisdesigner_prog.pdf[/URL]).

Примеры работы с данными буферами можно посмотреть в следующих методах компонента QDMapView: UpdateScreenImageBuffer(), DoViewSelect().
mapCreateSiteUn не работает
 
Здравствуйте!

Проблему с созданием пользовательских карт с Unicode-именами исправили - изменения войдут в следующую версию ГИС Конструктор.
Спасибо!
Аварийное завершение программы при отрисовке образцов iml-значков
 
Здравствуйте!

Спасибо за предоставляемую информацию! Не могли бы Вы, пожалуйста, прислать вывод еще одной команды:[CODE]LD_PRELOAD=/usr/lib/libqdmapacces.so ldd -r /usr/lib/shape.iml64[/CODE]
mapEditWms
 
Здравствуйте!

В целом все заполнено корректно за исключением поля parm.Handle: туда необходимо просто передать тип MessageHandler (без получения адреса):[CODE]parm.Handle = MessageHandler;[/CODE]Исправление, внесенное нами, не связано с обработкой параметра parm.Handle - войдет в следующую версию ГИС Конструктор. Сейчас предлагаем использовать ручное формирование строки подключения (описано в сообщении выше). Спасибо!
Аварийное завершение программы при отрисовке образцов iml-значков
 
Здравствуйте!

Такого рода ошибки могут быть вызваны тем, что в приложении прилинкована не та версия библиотеки mapacces (в ней содержатся реализации необходимых функций для линковки iml-библиотек).
Можно проверить это, произведя поиск по карте памяти Вашего приложения. Для этого выполните, пожалуйста, следующие действия:
- запустите Ваше приложение, чтобы оно находилось в памяти;
- найдите идентификатор процесса Вашего приложения. Например, с помощью команды:   [CODE]pgrep <имя_приложения>[/CODE]- выполните поиск пути к подгруженной библиотеке mapacces в карте памяти процесса. Например, с помощью команды: [CODE]cat /proc/<идентификатор_процесса>/maps | grep -i mapacces[/CODE]При корректной линковке должна быть обнаружена строка с записью /usr/lib/libqdmapacces.so.
LoadMapToPictureFileUn, LoadMapToPictureFileUn вопрос по WCHAR
 
Здравствуйте!

Тип WCHAR введен нами в качестве кроссплатформенной реализации широкого символа:
- занимает два байта;
- содержит в себе код символа в кодировке UTF16.

Для поддержки работы с ним используются объявленные в mapsyst.h функции:
- с большой "W" (WcsCopy, Wtof);
- конвертирования из однобайтовых строк (семейство функций StringToUnicode).

Небольшой пример использования (для взаимодействия с типами wchar_t и QString):
[CODE]#include <QDebug>
#include <QString>

#include "mapapi.h"

int main(int argc, char *argv[])
{
 WCHAR wideString[MAX_PATH_LONG];  wideString[0] = 0;

 // Из однобайтовой строки
 StringToUnicode("one-byte string", wideString, sizeof(wideString));
 qDebug() << QString::fromUtf16(wideString);

 // Из широкой константы
 WcsCopy(wideString, L"wide string", sizeof(wideString));
 WcsCat(wideString, L" (added)", sizeof(wideString));
 qDebug() << QString::fromUtf16(wideString);

 return 0;
}[/CODE]
Страницы: Пред. 1 ... 10 11 12 13 14 15 16 17 18 19 20 ... 53 След.



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

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