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

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

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

Страницы: 1 2 След.
Работа с картами в формате S57 в ГИС Конструкторе (Astra Linux Смоленск)
 
Спасибо, проблема решена.

С уважением, Ловлин Андрей
Работа с картами в формате S57 в ГИС Конструкторе (Astra Linux Смоленск)
 
Добрый день,

Конфииги были отредактированы согласно инструкции ещё до установки дистрибутива.
Ошибка осталась.

С уважением, Ловлин Андрей
Работа с картами в формате S57 в ГИС Конструкторе (Astra Linux Смоленск)
 
Добрый день,

Free-версия

С уважением, Ловлин Андрей
Работа с картами в формате S57 в ГИС Конструкторе (Astra Linux Смоленск)
 
Добрый день,

Была приобретена версия GIS-дизайнера для Astra Linux Смоленск.

В комплекте был CD и USB-ключ.

Установка прошла успешно.
Пример s57example конвертирует и показывает карты.

Но при открытии карты .map примером mapview выдается ошибка "Нелегальная копия модуля - libqdmapaccess.so"
В чем может быть проблема?

(в инструкции в readme.txt про использование ключа и установку чего-либо для него ничего не написано. просто вставлен в USB-порт)


С уважением, Ловлин Андрей
Изменено: Андрей Ловлин - 30.07.2020 14:06:35
Работа с картами в формате S57 в ГИС Конструкторе (Astra Linux Смоленск)
 
До края карты достаточно места:

[IMG WIDTH=1280 HEIGHT=1280]http://ipic.su/img/img7/fs/image.1591858462.png[/IMG]

С уважением, Ловлин Андрей
Работа с картами в формате S57 в ГИС Конструкторе (Astra Linux Смоленск)
 
Добрый день,[QUOTE]Елена Кузнецова написал:
[QUOTE][URL=/forum/user/16484/]Андрей Ловлин[/URL] написал:
Как видно, центр изображения находится не на маяке, как хотелось бы. В чём может быть ошибка? Какие поправки, возможно, необходимо внести в пересчёт координат?[/QUOTE]
Для начала нужно использовать реальные значения, а не приблизительные.[/QUOTE]
Что значит "реальные"? Данные были взяты из примера mapview. Если имеются ввиду неокруглённые, а точные, до последнего знака после запятой из примера, то результат тот же.
Более того, пробовал использовать сразу же декартовы из примера, исключив тем самым преобразование из географических в декартовы. И результат опять же был идентичным.
Какие ещё варианты можно попробовать?

С уважением, Ловлин Андрей
Работа с картами в формате S57 в ГИС Конструкторе (Astra Linux Смоленск)
 
Добрый день,

Воспользовался примером из директории examples - mapview, чтобы получить координаты какого-либо объекта (а именно маяка на береговом изгибе) с тестовой карты.
Получились следующие координаты:
Широта: 51.47720568
Долгота: -112.79003379

[IMG WIDTH=186 HEIGHT=159]http://ipic.su/img/img7/fs/mapview.1591795699.png[/IMG]

Далее попытался спозиционировать уже в своем тестовом приложении эту же карту относительно этих координат и получить изображение с центром в этой точке:
[CODE]MAPREGISTEREX mapreg;
DATUMPARAM datum;
ELLIPSOIDPARAM ellparam;

mapGetDocProjection(hMap, &mapreg, &datum, &ellparam);

double x = -112.79 * M_PI / 180.0;
double y = 51.4772 * M_PI / 180.0;

mapGeoToPlane(hMap, &x, &y);

mapPlaneToPicture(hMap, &x, &y);

long width = 1280;
long height = 1280;

draw(hMap, x - width / 2, y - height / 2, width, height);
[/CODE], где draw - это:
[CODE]void MainWindow::draw(HMAP hMap, int cx, int cy, int cw, int ch)
{
RECT rect;
rect.left = cx;
rect.top = cy;
rect.right = cx + cw;
rect.bottom = cy + ch;

char* bits = new char[32 * cw * ch];

XIMAGEDESC desc;
desc.Point = bits;
desc.Width = cw;
desc.Height = ch;
desc.Depth = 32;
desc.CellSize = 4;
desc.RowSize = cw * desc.CellSize;

mapPlaintToXImage(hMap, &desc, 0, 0, &rect);

QImage image((uchar *)bits, cw, ch, QImage::Format_RGB32);

...
}
[/CODE]

Результат получился следующим:

[IMG WIDTH=221 HEIGHT=219]http://ipic.su/img/img7/fs/result.1591795740.png[/IMG]

Как видно, центр изображения находится не на маяке, как хотелось бы. В чём может быть ошибка? Какие поправки, возможно, необходимо внести в пересчёт координат?

С уважением, Ловлин Андрей

Работа с картами в формате S57 в ГИС Конструкторе (Astra Linux Смоленск)
 
Добрый день,

Попробовал заблокировать масштабирование объектов, как Вы советовали через настройки классификатора. Воспользовался функцией mapSetRscObjectScale.
Но установка флага в классификаторе и сохранение классификатора в новый файл возвращает 0.

Может ли это быть связано с тем, что у меня демо-версия ГИС Конструктора. Или у меня в принципе не верный код?

[CODE]const char *rscPath = "/home/user1/shared/Seamap/s57navy.rsc";
HRSC rscHandle = mapOpenRsc(rscPath);
long int total = mapGetRscObjectCount(rscHandle);
qDebug() << "Total object count: " << total;
for(int i = 0; i < total; i++)
{    
  long int res = mapSetRscObjectScale(rscHandle, i, 0);    
  qDebug() << "Scale locked: " << res;
}
QString classificator = "/home/user1/shared/Seamap/s57navy_converted.rsc";
long int res = mapSaveRscAs(rscHandle, classificator.utf16());
qDebug() << "Saved: " << res;[/CODE]С уважением, Андрей
Изменено: Андрей Ловлин - 19.03.2020 12:33:49
Работа с картами в формате S57 в ГИС Конструкторе (Astra Linux Смоленск)
 
В тестовых картах присутствует только одна карта S57. Учитывая, что для проверки данных моментов требуется несколько карт, можете ли Вы предоставить хотя бы 2-3 карты одного района разного масштаба, чтобы попробовать предложенное Вами решение?

[QUOTE]Масштабирование символов в других масштабах может быть отключено или ограничено настройками в классификаторе.
[/QUOTE]
[QUOTE]После открытия карты можно сразу работать с геодезическими координатами.[/QUOTE]
А так же не мог ли бы Вы предоставить примеры кода для данных решений или указать разделы мануала, где это можно посмотреть?

С уважением, Андрей
Работа с картами в формате S57 в ГИС Конструкторе (Astra Linux Смоленск)
 
Добрый день,

Спасибо, за предоставленные ответы.

Предложенный Вами вариант однократно подготовить карты и потом отображать их в нужном масштабе и с нужным смещением наталкивает на мысль, что данная система заточена под неподвижные источники накладываемой на карту информации.
В моём случае это не так, мне требуется встроить картографию на подвижное судно. Через это, процесс выбора карт для отображения и их подготовки должен осуществляться перманентно.
Здесь же хочется уточнить, я правильно понимаю, что для того чтобы получить изображение в какой-то области, в каком-то масштабе, для начала требуется указать общий географический центр и общий масштаб всех карт, которые имеются в наличии?
После чего уже можно будет переходить по координатам и масштабам этих карт?

По поводу пункта 2, был бы очень признателен, если бы Вы указали пример или метод, которым можно настроить классификатор.

P.S. Признаться, задавая эти вопросы, я искренне надеялся, что окажется примерно так:  для решения моих задач потребуется указать ядру ГИС Конструктора путь к папке, в которой хранятся карты некоторого района.
После чего через координаты центра, масштаб, размеры окна отображения, физический размер пикселя и прочие необходимые параметры (возможно, указание на буфер памяти, куда сохранить карту) можно будет получить изображения, с которым я и буду работать.

С уважением, Андрей
Изменено: Андрей Ловлин - 16.03.2020 11:05:03
Страницы: 1 2 След.



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

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