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

Павел Матвеев (Все сообщения пользователя)

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

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 54 След.
Работа с WMTS, который находится на web-сервере c аутентификацией через ALD (Astra Linux Directory)
 
Приветствую!

Спасибо, вопрос закрыт.

Было бы неплохо, все же избавиться от указания url в wmslist в новых версиях, и использовать адрес указанный в строке подключения. На практике, пришлось указать url того же сервера, что используется и при открытии карты.

С уважением,
Матвеев П.В.
Изменено: Павел Матвеев - 11.03.2020 15:52:19
Работа с WMTS, который находится на web-сервере c аутентификацией через ALD (Astra Linux Directory)
 
Приветствую!

Немного поглубже разобрались в ситуации.
Итого:
1. Включили логи при помощи [B]mapOp[/B][B]enDiagnostics[/B]
2. Успешно получение данных осуществляется только начиная с версии 12.6.1 (т.е. на сертифицированной версии 12.5.2 результата получить не удается)
3. Зaпросы выполняются успешно, только в случае если в wmslist указан InternetConnect.. Url1..., в случае если url не указан, то идет запрос на [URL=https://gisinfo.ru]https://gisinfo.ru[/URL], который недоступен в закрытой сети.

Можно ли что-то еще сделать настройками для  сертифицированной версии 12.5.2 для решения данного вопроса или на ней работа в указанной конфигурации недопустима?

С уважением,
Матвеев П.В.
Работа с WMTS, который находится на web-сервере c аутентификацией через ALD (Astra Linux Directory)
 
Приветствую!

Указанные данные присутствуют в строке подключения (я указывал выше [URL=http://www.gisweb.ru/forum/messages/forum7/topic8116/message59362/8116#message59362]пример[/URL]).

Отдельно хотелось бы заметить, что функция открытия не возвращает ошибок, но по факту открытие не произошло и это видно в логах apache (/var/log/apache2/access.log), в котором видно, что на запрос был ответ 401.
О данной особенности при открытии карт я указывал [URL=http://www.gisweb.ru/forum/messages/forum7/topic9356/message70217/9356-otkrytie-kart-wmts_wms-uspeshno-dazhe-esli-net-ni-servisa-ni-karty#message70217]тут[/URL]

С уважением,
Матвеев П.В.
Работа с WMTS, который находится на web-сервере c аутентификацией через ALD (Astra Linux Directory)
 
Приветствую!

- Пример запроса не полный, но это и не важно. Даже если запрос неправильный, то был бы соответствующий ответ с сервера. Да, он работает при выполнении приведенной команды curl.
- Пароли - явки ожидаются не мной, а web-сервером. В случае выполнения curl в логах сервера я вижу, что запрос выполняется myuser,  а в случае [B]mapOpenAnyData[/B], я вижу что [I]GetTile[/I], [I]GetCapabilities[/I] и прочее выполняются без указания пользователя, и в результате сервер возвращает 401.

С уважением,
Матвеев П.В.
Работа с WMTS, который находится на web-сервере c аутентификацией через ALD (Astra Linux Directory)
 
Приветствую!

Возможно требуется какие-то параметры указать в wmslist или в url передаваемом при открытии карты? Потому что карта действительно не открывается.

Для проверки выполняю следующие действия:
[CODE]kinit myuser
curl -negotiate -u: --trace-ascii - "http://myserver/GISWebServiceSE/service.php?REQUEST=...."[/CODE]Запросы успешно выполняются.

При запуске тестового приложения, в рамках которого выполняется открытие карты при помощи [B]mapOpenAnyData[/B] ([URL=http://www.gisweb.ru/forum/messages/forum7/topic8116/message59362/8116#message59362]пример открытия[/URL]), wireshark показывает 401 - Unathorized. В access.log на сервере видно что запросы без паролей-явок.

С уважением,
Матвеев П.В.
Отрисовка точечных объектов при рисовании с прозрачностью
 
Приветствую!

ГИС Конструктор для Qt Designer x64 (версия 12.5.2, 13.0.0), ОС Astra Linux

В процессе переопределения функций отрисовки возникли вопросы и проблемы:
1. Возможно ли переопределение отрисовки точечных объектов?
2. "Стандартный" отрисовщик точечных объектов заполняет alpha не на всех масштабах.
3. С использованием ГИС Конструктор для Qt Designer x64 (версия13.0.0) тест  правильно рисует только на масштабе 1:200 000 (видимо какие-то проблемы  с габаритами карты, не разбирался)

Подробнее по второму вопросу-проблеме:
Для отрисовки использую функцию [B]mapPaintToXImageEx[/B] с erase = -2 (без заполнения XIMAGEDSC).
Сам XIMAGEDSC перед отрисовкой заполняю 0xFFFFFF00.
При отрисовке карты в режиме VT_PRINTRST получаю изображения карты с прозрачностью как с использованием отрисовщиков  на Qt (из состава ГИС Конструктор) так и с использованием переопределенных отрисовщиков на cairo.
Но при отрисовке точечных объектов прозрачность остается без изменения (0), в результате точечный объект не виден на изображении, хоть RGB и заполнено.
Интересно, что на некотором масштабе (на каком именно так и не понял закономерности), прозрачность при рисовании все же заполняется.

[B]mapPaintByFrameToXImage[/B] не использую, т.к. в ней где-то на преобразовании и округлении что-то идет не так и в результате два соседних фрагмента карты иногда на "стыке" имеют дефекты. Но при ее использовании точечные объекты рисуются нормально.

Пример:
[CODE]#include <QApplication>
#include <QString>
#include <QDebug>
#include "qdmcmp.h"
#include "mapapi.h"
#include "sitapi.h"
#include "mapcreat.h"
#include "maptype.h"

void paintMapByFrame(HMAP aHMAP, int aAlpha, QString aFileName) {
   DFRAME frame;
   mapGetTotalBorder(aHMAP, &frame, PP_PICTURE);
   int width = frame.X2 - frame.X1;
   int height = frame.Y2 - frame.Y1;

   if (width > 3000 || height > 3000) {
       qDebug() << "large image";
       return;
   }

   mapGetTotalBorder(aHMAP, &frame, PP_PLANE);
   XIMAGEDESC desc;
   memset((void*) &desc, 0, sizeof(desc));
   desc.Width = width;
   desc.Height = height;
   desc.Depth = mapGetMapScreenDepth();
   desc.CellSize = desc.Depth / 8;
   desc.RowSize = desc.Width * desc.CellSize;
   desc.Point = (char*) malloc(desc.Height * desc.RowSize);

   mapPaintByFrameToXImage(aHMAP, &desc, &frame, width, height, aAlpha);
   QImage im((const uchar*) desc.Point, desc.Width, desc.Height, desc.RowSize,
           QImage::Format_ARGB32);
   if (!im.save(aFileName, "PNG")) {
       qDebug() << "image save error";
   }
   free((void*) desc.Point);
}

void fillImage(XIMAGEDESC* aImage, int aColor) {
  char vals[4];
  for (int i = aImage->CellSize -1;i >=0; i--) {
      vals[i] = aColor & 0xFF;
      aColor >>= 8;
  }
  int length = aImage->RowSize * aImage->Height;
  for (int i =0; i<length;) {
      for (int j=0;j<aImage->CellSize;j++) {
          aImage->Point[i] = vals[j];
          i++;
      }
  }
}

void paintMap(HMAP aHMAP, int aErase, QString aFileName) {
   DFRAME frame;
   mapGetTotalBorder(aHMAP, &frame, PP_PICTURE);
   RECT rect;
   rect.left = frame.X1;
   rect.right = frame.X2;
   rect.top = frame.Y1;
   rect.bottom = frame.Y2;

   if (rect.right - rect.left > 3000 || rect.bottom - rect.top > 3000) {
       qDebug() << "large image";
       return;
   }
   XIMAGEDESC desc;
   memset((void*) &desc, 0, sizeof(desc));
   desc.Width = rect.right - rect.left;
   desc.Height = rect.bottom - rect.top;
   desc.Depth = mapGetMapScreenDepth();
   desc.CellSize = desc.Depth / 8;
   desc.RowSize = desc.Width * desc.CellSize;
   desc.Point = (char*) malloc(desc.Height * desc.RowSize);

   fillImage(&desc, 0xFFFFFF00);

   mapPaintToXImageEx(aHMAP, &desc, aErase, 0, 0, &rect);
   QImage im((const uchar*) desc.Point, desc.Width, desc.Height, desc.RowSize,
           QImage::Format_ARGB32);
   if (!im.save(aFileName, "PNG")) {
       qDebug() << "image save error";
   }
   free((void*) desc.Point);
}

// тест рисования точечных объектов в принтерно растровом виде
int main(int argc, char **argv) {
   if (!QApplication::instance()) {
       static int argc = 1;
       static char arg[] = "test";
       static char *argv[1] = { arg };
       QApplication::setGraphicsSystem("native");
       new QApplication(argc, argv);
   }
   QDMapView mv;
   mapMessageEnable(0);
   QString *siteName = new QString("test.sitx");
   QString *rscName = new QString("operator.rsc");
   CREATESITEUN cs;
   memset((void*) &cs, 0, sizeof(cs));
   cs.Length = sizeof(CREATESITEUN);
   cs.EllipsoideKind = 9;
   cs.MapType = 16;

   HMAP hmap = mapCreateSiteUn((const WCHAR*) siteName->constData(),
           (const WCHAR*) rscName->constData(), &cs);
   if (hmap != 0) {
       HOBJ hobj = mapCreateObject(hmap);
       if (hobj != 0) {
           if (mapDescribeObject(hobj, 3L) != 0) {
               mapAppendPointGeoWGS84(hobj, 1., 1., 0);
               mapCommitObject(hobj);
           }
           mapFreeObject(hobj);
       }

       hobj = mapCreateObject(hmap);
       if (hobj != 0) {
           if (mapRegisterObjectByKey(hobj, "009991001001") != 0) {
               mapAppendPointGeoWGS84(hobj, 1., 1., 0);
               mapCommitObject(hobj);
           }
           mapFreeObject(hobj);
       }

       mapSetViewType(hmap, VT_PRINTRST);

       mapSetRealShowScale(hmap, 100000);
       paintMap(hmap, 0, "/tmp/mapQt100.png");
       paintMap(hmap, -2, "/tmp/mapQt100WithAlpha.png");

       mapSetRealShowScale(hmap, 200000);
       paintMap(hmap, 0, "/tmp/mapQt200.png");
       paintMap(hmap, -2, "/tmp/mapQt200WithAlpha.png");

       mapCloseMap(hmap);
   }

}

[/CODE]Результат:
[URL=https://drive.google.com/open?id=1pk-Qi5Smt58IZMdtbOn8wvDv7jeT6iGf]без прозрачности[/URL]
[URL=https://drive.google.com/open?id=1yar4WE7taI08tFMPBQreeUYjtUTcpHyJ]с прозрачностью[/URL]
[URL=https://drive.google.com/open?id=1ezLMI_rQIEyfN_Le8eGuieFOq5eNvCUq]с прозрачностью PaintByFrame[/URL]

С уважением,
Матвеев П.В.
Странные надписи на "Флагах"
 
Приветствую!

Это все понятно, спасибо.

ЗЫ. Непонятно только как Вы сертифицировали версию в которой Пункты Управления рисуются с ошибками...))))
ЗЫ2. Может хоть за пару месяцев стоило выложить версию, которая планируется для сертификации чтобы пользователи ГИС Конструктор проверили как и что работает... А то ведь 12.5.2 даже на сайте не было... Была 12.5.0, она работала с некоторыми дефектами, но работала. Я понимаю, что я сейчас про свою боль пишу, у других пользователей АПИ, наверняка, свои проблемы были, но Пункты управления, которые рисуются с ошибками.. Мне кажется это многих касается пользователей!

С уважением,
Матвеев П.В.
Странные надписи на "Флагах"
 
Приветствую!

Предложенный вариант не работает:
1. Для отрисовки объектов классификатора
2. Для отрисовки объектов  "не флагов" или не из operator.rsc
3. Для объектов из operator.rsc у которых нет указанной семантики (например, База хранения воор. и техн. див)

С уважением,
Матвеев П.В.
Текст во "Флагах" рисуется не по центру
 
Приветствую!

Этот способ по умолчанию работает только с использованием компонентов qt?

Меня не устраивает, по причине многопоточной отрисовки и отрисовки без UI
В данный момент пробую переопределить функции отрисовки, но не все получается пока.

С уважением,
Матвеев П.В.
Странные надписи на "Флагах"
 
Приветствую!

Насколько мне известно, ближайшая сертифицированная будет не раньше 21го года) а надо как-то жить с той, которая сертифицирована на данный момент (12.5.2)

С уважением,
Матвеев П.В.
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 54 След.



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

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