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

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

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

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 409 След.
Высоты на Азовском море
 
Объект типа полигон (море) в файле настроек должен перебивать любые горизонтали, которые идут вокруг.
Возможно он был задан как линейный объект и были горизонтали, которые шли по краю и перебили нулевую границу.

Строго по высоте участок моря на матрице может восприниматься как суша, если на изображение не наложить изображение гидрографии.
Высоты на Азовском море
 
Построение матриц по картам масштаба 1: 1 000 000 имеет смысл только для отображения гипсометрической отмывки.
Для расчетов такие матрицы использовать нельзя.

На нашем сайте в Банке данных есть матрицы в формате MTW, которые можно скачать и использовать в работе.

[URL=https://spatialdb.net/?node=t_md_matrix]https://spatialdb.net/?node=t_md_matrix[/URL]
Высоты на Азовском море
 
Программе построения матрицы нужно подсказать, какой объект является морем.
Или на карте должна быть береговая линия с абсолютной высотой.
Для этого можно применить дополнительный текстовый файл параметров:

[URL=https://help14.gisserver.ru/russian/panorama/index.html?mtrcrea.html]https://help14.gisserver.ru/russian/panorama/index.html?mtrcrea.html[/URL]

Дополнительная информация здесь -

[URL=https://help14.gisserver.ru/russian/panorama/index.html?buildmtr.html]https://help14.gisserver.ru/russian/panorama/index.html?buildmtr.html[/URL]
Использование функции mapPaintByFrameToXImagePro() при повороте карты., Вопрос касается правильного использования структуры DFRAME, правильного получения исходных данных для отрисовки заданной области.
 
Комментарий про XWindow удалили. Давно это было.

Важно правильно задать координаты в пикселах.

Вариант:
После установки поворота и масштаба пересчитываем координаты центра отображаемой области из метров в пикселы.
Отнимаем и добавляем половину размеров изображения в пикселах - получаем общие габариты картинки в пикселах.
Делим на 4 части (в нашем случае - под 4 потока).
Рисуем.
Использование функции mapPaintByFrameToXImagePro() при повороте карты., Вопрос касается правильного использования структуры DFRAME, правильного получения исходных данных для отрисовки заданной области.
 
На исходной карте проведем линию под углом и будем перемещать курсор.
В нижней точке будут одни координаты по X и Y, в верхней изменятся обе координаты.
А мы задаем габаритную рамку двумя точками по диагонали - мин и макс.
Они и не должны совпадать для разных четвертей наклонного изображения. Должны перекрываться габаритами в метрах.

Для каждого потока есть свой HPAINT. В нем можно установить текущий масштаб отображения.
Для всех потоков, рисующих общее изображение, устанавливаем один масштаб.
[CODE] // Установить масштаб отображения (знаменатель масштаба)
 // hmap - идентификатор открытых данных
 // x, y - координаты предполагаемого "центра изображения"
 //        (любой точки привязки) в окне в текущем масштабе или нули
 // scale - реальный масштаб отображения, который желают получить
 // hpaint - идентификатор контекста отображения для многопоточного вызова
 // Возвращает: 0 - масштаб не изменился, 1 - масштаб изменился
 // x, y - координаты предполагаемого "центра изображения"
 //        в окне относительно всей картинки в новом масштабе отображения
 // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapSetRealScalePro(HMAP hmap, long int *x, long int *y, double scale, HPAINT hPaint);[/CODE]И далее работаем только с пикселами.
[CODE] // Вывести изображение карты в XImage (массив)
// Описание структуры XIMAGEDESC в maptype.h
// erase - признак стирания фона перед выводом,
//        (-2 - рисовать поверх текущего изображения в буфере)
// x,y - координаты левого верхнего угла внутри
// битовой области XImage для размещения изображения
// rect - выводимый фрагмент карты
// hpaint - идентификатор контекста отображения для многопоточного вызова
// При ошибке в параметрах возвращает ноль

_MAPIMP long int _MAPAPI mapPaintToXImagePro(HMAP hMap, XIMAGEDESC * imagedesc, long int erase, long int x, long int y, RECT * rect, HPAINT hpaint);[/CODE]
Вычисление периметра площадного объекта, Вычисление периметра площадного объекта
 
Функции MAPAPI считают длину/периметр объектов с учетом подобъектов.
Подсчет только внешних границ сделан только в диалоге Выбор объектов.
СК 42 Проекция Гаусса-Крюгера, Пересчет номера зоны
 
Да, для СК-42 / СК-95 / ГСК-2011 поле FalseEasting должно быть равно Номер_зоны * 1 000 000 + 500 000 (метров).
Массовы обработки объектов, Как массово, и по предустановленным условиям, удалить надписи - объекты к объектам
 
[QUOTE]Анатолий Рогатнев написал:
Добрый день !

Недоработка программы  или наше недопонимание как выполнить правильно настройку !
Ссылка на видио:

[URL=https://disk.yandex.ru/i/qVGFcbmlJ3JedQ]https://disk.yandex.ru/i/qVGFcbmlJ3Jed[/URL][/QUOTE]

Спасибо за сообщение!

При построении Легенды (дерева видов объектов в слое классификатора RSC) выделяются узлами/ветками слои, классы (дерево подслоев) и группы объектов, входящие в одну серию объектов.

Серия объектов имеет один классификационный код и локализацию, но условный знак зависит от атрибутов.
В Легенде первым отображается условный знак из серии с номером 1 в виде узла, а к нему отдельной веткой добавляются остальные объекты серии.
В Вашем случае - первым идет объект Здание из 2-ух этажей, далее идут здания с другой этажностью. При смене числа этажей в семантике - объект перейдет от одного вида к другому.
То есть, ветка группирует здания разной этажности, показывая, что это один тип объекта - Здания, но он может иметь разные свойства.

При включении/отключения отображения узла (первого объекта), остальные объекты в данном случае не меняют состояния,
поскольку они представлены на карте разными реальными объектами (в отличие от слоя).

Если узел дерева образован слоем или классом (подслоем), то его переключение меняет состояние всех объектов ветки.
Некоторые изображения, полученные из классификатора, являются полностью белыми
 
Все указанные знаки отображаются с помощью библиотеки iml.
Для корректного подключения библиотеки необходимо установить путь к библиотекам и служебным файлам -
[CODE]// Установить/Запросить путь к директории приложения, где
// располагаются вспомогательные файлы для функционирования
// ГИС-ядра (библиотеки ядра, библиотеки отрисовки программируемых знаков *.iml,
// файлы базы данных epsg.*, wmslist_xx.xml, xml-схемы и другие файлы)
// Рекомендуется устанавливать при запуске приложения

_MAPIMP void _MAPAPI mapSetPathShellUn(const WCHAR* path);[/CODE]
Изменение масштаба объекта "Ориентир - опора ЛЭП" в неадекватно широких пределах
 
В новой версии operator.rsc установлено ограничение на пределы увеличения знаков "Ориентиры" (не более чем в 1,5 раза) и уменьшения (не более чем в 1,5 раза).
Внесены изменения в алгоритм отображения (rscarmy.iml) знаков типа Ориентир для учета пределов изменения размеров.
Для правильного отображения необходимо обновить и классификатор и библиотеки, в частности, iml.

Знака "Ориентир - опора ЛЭП" в утвержденном КЭУЗ нет. Он добавлен по просьбе пользователей. У этого знака 3 вида изображения для
разных масштабов (уровней управления - тактического, оперативного, стратегического). Чтобы не забивать ориентирами мелкомасштабные карты изображение знака
меняется для разных уровней.

Размер знака на экране будет такой, как задано в классификаторе, когда масштаб отображения равен масштабу карты в паспорте.
Если в паспорте масштаб карты 1: 100 000, а работа ведется на тактическом уровне в масштабе 1: 5 000 - 1: 25 000, то знаки будут несколько крупнее, чем нужно.
Кроме того, должны быть правильно установлены параметры экрана - размер диагонали в мм, в пикселах, коэффициент изменения размеров в 100% - в этом случае все размеры в микронах будут выдерживаться правильно.
[CODE] // Установить расчетные размеры буфера изображения (влияет на расчет разрешения экрана)
 // Функция должна вызываться до открытия данных
 // Чтобы оставить ширину или высоту без изменения соответствующий параметр должен быть равен 0
 // Если экран компьютера, на котором выполняется программа, имеет большие размеры,
 // то установленные значения будут автоматически увеличены до размеров экрана,
 // если операционная система поддерживает функции запроса размеров экрана в пикселах
 // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapSetScreenImageSize(long int width, long int height);

 // Запросить/Установить размер диагонали видимого изображения экрана в миллиметрах (50 - 4000)
 // При установке возвращает старое значение
 // hdc - контекст главного окна для запроса текущих размеров
 // экрана в пикселах
 // При ошибке возвращает ноль

_MAPIMP double _MAPAPI mapSetScreenSizePro(double size);

 // Запросить/Установить коэффициент масштабирования изображения экрана в процентах (50 - 200)
 // При установке возвращает старое значение и пересчитывает точность текущего режима экрана
 // При ошибке возвращает ноль

_MAPIMP double _MAPAPI mapSetScreenScaleEx(double scale);
[/CODE]
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 409 След.



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

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