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

Построение матрицы видимости

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
Построение матрицы видимости
 

Здравствуйте!

Вопрос по функции mtrBuildVisibleMtq.

Какие объекты должны быть добавлены в HSIT для построения матрицы видимости?

Какие требования к объектам (их метрикам)?

Буду признателен за небольшой пример кода позволяющий получить любую самую простую матрицу.

Спасибо!

 
Функция создает бинарную матрицу качеств (т.е. значение элемента может быть равно 1 или 0).
1 будет, если расстояние от центра элемента до первой точки какого-то объекта из hselect меньше parm->Radius и существует прямая видимость на местности между этими двумя точками.
Для определения видимости перед вызовом  функции необходимо добавить матрицу высот на данную территорию.
 
Цитата
Дмитрий Т написал:
Какие объекты должны быть добавлены в HSIT для построения матрицы видимости?
Какие требования к объектам (их метрикам)?

Параметр HSITE был оставлен для совместимости, он устаревший.
Параметр HSITE надо задать равным HMAP.

Объекты карты не используются при построении матрицы видимости.

Как Вам написали выше, для определения видимости используется матрица высот.
Она должна быть открыта в составе района работ (в HMAP).


Если надо выполнять построение зон видимости с учетом объектов векторной карты (их габаритов и высот), то они должны быть учтены в исходной матрице высот.
К сожалению, пока только так.
Функции, которая строила бы зоны видимости по рельефу и одновременно с учетом относительных высот объектов векторной карты, в настоящее время нет.
 

Благодарю за ответы!

Мне необходимо построить матрицу видимости из нескольких пунктов наблюдения.

Насколько я понял, порядок действий должен быть таким:

  1. Открыть матрицу высот на нужный район.

  2. Добавить на карту (map) объекты – пункты наблюдения.

  3. Сформировать содержащий их hselect.

  4. Вызвать mtrBuildVisibleMtq(map, map, L"d:/name.mtq",hselect, &param, NULL);

  5. Удалить с карты объекты из п2.

Насколько это правильно?

 
Может быть такой вариант. Пункты наблюдения создать на отдельной пользовательской карте *.sit.
Добавить эту пользовательскую карту к основной (map) , запросить HSITE добавленного sit-а по номеру = 1
и подать HSITE вторым параметром mtrBuildVisibleMtq (чтобы не удалять пункты с основной карты, а просто закрыть HSITE).
Изменено: Александр Горбунов - 30.05.2019 11:15:18
 
Есть вот такой код:
Скрытый текст

Результат построения матрицы на картинке.
Расстояние между двумя точками info1 info2 5000(5 км). Предельный радиус видимости 100000(100 км).
Высота info1 3000(3 км). Высота по матрице в точке построения ~250 м.
Как могла получиться такая маленькая зона видимости? Или что я делаю не так?

Заранее спасибо!
1.png (148.55 КБ)
 
Пусть не учитываются относительные высоты объектов, берутся только координаты из метрик объектов. Даже с вершины горы не видно ничего! На изображении построенная матрица BUILDVISIBLE: Radius = 100000, ElemSize = 50;

Полагаю, mtrBuildVisibleMtq работает не правильно.
rock.png (72.63 КБ)
Страницы: 1
Читают тему (гостей: 1)



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

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