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

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

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

Страницы: Пред. 1 ... 5 6 7 8 9 10 11 12 13 14 15 ... 53 След.
Установка Imagery Service на Astra Linux 1.6, Ошибка установки?
 
Здравствуйте!

Ошибку, связанную с некорректной установкой веб-части Imagery Service в ОС Astra Linux 1.6, исправили и обновили версию на сайте ([URL=http://gisinfo.ru/download_linux?id=51]http://gisinfo.ru/download_linux?id=51[/URL]).
Если у Вас нет возможности произвести обновление, то в качестве обходного пути можно выполнить следующую команду:
[CODE]sudo cp -pr /var/www/ImageryService /var/www/html[/CODE]Прошу прощения за доставленные неудобства. Спасибо!
ГИС Конструктор Free для Astra Linux SE версия 1.6
 
Здравствуйте!
[LIST=1]
[*]ГИС Конструктор версии 11 может функционировать в ОС Astra Linux SE версий 1.4, 1.5 и 1.6.
[*]В ГИС Конструктор версии 11 использование графических компонентов возможно только с библиотеками Qt версии 4. На функции интерфейса MAPAPI данное ограничение не распространяется, поскольку они не зависят от библиотек Qt.
[/LIST]
Работа с WMTS, который находится на web-сервере c аутентификацией через ALD (Astra Linux Directory)
 
Здравствуйте!

На данный момент вопрос еще находится в обработке. В ближайшее время мы сообщим Вам о результатах.
Спасибо за ожидание!
Установка Panorama SpatialDB Service на Astra Linux 1.6, Ошибка установки
 
Исходя из сообщения об ошибке, установка SpatialDB Service производится на компьютер с уже установленным SpatialDB Service.
Не известные функции в mapsyst.h
 
Здравствуйте!

Данная функция реализована в библиотеке libqdmapacces.so - это базовая библиотека для работы с пространственными данными, поэтому ее необходимо прилинковать.
Габариты пользовательской карты
 
Здравствуйте!

[QUOTE]Сергей написал:
Спасибо. Я хочу, чтобы размеры картинки карты в пикселях на каждом базовом масштабе были постоянными на всем протяжении работы программы.[/QUOTE]
Возможно, Вам поможет ответ, данный в этой ветке форума: [URL=http://gisweb.ru/forum/forum7/10284-zum-dlya-vidimosti-vybrannogo-spiska-obektov]http://gisweb.ru/forum/forum7/10284-zum-dlya-vidimosti-vybrannogo-spiska-obektov[/URL]
Зум для видимости выбранного списка объектов
 
Здравствуйте!

Для того, чтобы отобразить определенный фрагмент в окне с заданным размером в пикселах, можно адаптировать код функции QDMapViewWindow::SetScaleAllMapInWindow() из проекта графических компонентов ГИС Конструктор mapcomponents. Эта функция подбирает масштаб карты, чтобы она полностью отобразилась в текущем окне:

[CODE]//------------------------------------------------------------------
// Установить масштаб для отображения всей карты в окне
//------------------------------------------------------------------
int QDMapViewWindow::SetScaleAllMapInWindow()
{
 if (GetMapHandle())
 {
   // Запросить размеры карты
   long int mapWidth = 0;
   long int mapHeight = 0;
   mapGetPictureSize(GetMapHandle(), &mapWidth, &mapHeight);


   // Вычислить отношение размеров карты к размерам экрана
   double heightRatio = (double)mapHeight/(double)MapViewPort->height();
   double widthRatio = (double)mapWidth/(double)MapViewPort->width();


   // Выбрать наибольший коэффициент
   double scaleMultiplier = widthRatio;
   if (heightRatio > widthRatio)
     scaleMultiplier = heightRatio;


   // Установить новое значение масштаба
   int isScaleSet = SetViewScale(GetViewScale()*scaleMultiplier);


   if (VarMapVisible && VarRendering)
     Repaint();


   return isScaleSet;
 }


 return 0;
}[/CODE]
Исходные коды проекта mapcomponents также доступны в инсталляции ГИС Конструктор 12, доступной на нашем сайте ([URL=https://gisinfo.ru/download/download_linux.htm#5]https://gisinfo.ru/download/download_linux.htm#5[/URL]).

Отображение определенного набора объектов по определенному условию можно реализовать с помощью установки контекста отображения. Подробнее о работе с контекстами отображения можно посмотреть в разделе 3.6.11 "Управление составом отображения объектов электронной карты" Руководства программиста, доступного на нашем сайте ([URL=http://gistoolkit.ru/download/doc/gisdesigner_prog.pdf]http://gistoolkit.ru/download/doc/gisdesigner_prog.pdf[/URL]).
Направление цифрования через MAPAPI.
 
Здравствуйте!

Для изменения направления цифрования объекта можно использовать функцию mapChangeObjectDirect (mapapi.h):
[CODE] // Изменить направление цифрования объекта
// info  - идентификатор объекта карты в памяти
// При ошибке возвращает ноль, иначе - новое значение
// (OD_RIGHT,OD_LEFT,... - см. Maptype.h)

_MAPIMP long int _MAPAPI mapChangeObjectDirect(HOBJ info);[/CODE]
получение изображения объекта из классификатора
 
Здравствуйте!

Для отрисовки образца объекта из классификатора можно использовать следующий пример:
[CODE]#include <assert.h>
#include <iostream>

#include <QImage>

#include "mapapi.h"

int main()
{
 // Открыть карту
 HMAP mapHandle = mapOpenData("/usr/Operator12/Data/RedExample/battalion\ red/BattalionRed.sitx");
 assert(mapHandle);

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

 // Прочитать объект с карты
 int listNumber = 1;
 int objectNumber = 101; // разграничительная линия между батальонами
 HOBJ readObject = mapReadObjectByKey(mapHandle, mapHandle, objectHandle, listNumber, objectNumber);
 assert(readObject);

 // Получить номер объекта в классификаторе
 long rscObjectNumber = mapObjectCode(objectHandle);
 assert(rscObjectNumber);
 std::cerr << "rsc object number: " << rscObjectNumber << std::endl;

 // Получить внешний код объекта в классификаторе
 long objectCode = mapObjectExcode(objectHandle);
 assert(objectCode);
 std::cerr << "object code: " << objectCode << std::endl;

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

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

 const char* rscObjectParameters = 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;

 const 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_ARGB32);
 image.save("/tmp/out.png");

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

 return 0;
}[/CODE]
Таблица программными средствами, Создание таблиц через MAPAPI
 
Здравствуйте!

Прошу прощения за задержку с ответом.

[QUOTE]Сергей написал:
Не понимаю, как в указанные варианты включить данные таблицы, которые у меня есть в программе[/QUOTE]
В данном случае, если я все правильно понимаю, Вы используете вот этот предложенный подход:
[QUOTE]Александр Савелов написал:
1. Реализовать создание и отображение таблицы с помощью Qt и отрисовывать ее поверх карты. При этом MAPAPI будет ответственно только за отрисовку карты.[/QUOTE]
В данном случае, поскольку за отображение таблицы с помощью Qt ответственен код клиентского ГИС-приложения (без участия MAPAPI), то также в нем можно реализовать подгрузку таблицы с диска.
Таким образом, можно вместе с картой передавать таблицу в формате html, а потом в коде клиентского приложения считывать ее и отображать поверх карты.
Страницы: Пред. 1 ... 5 6 7 8 9 10 11 12 13 14 15 ... 53 След.



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

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