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

Определение видимости между двумя точками.

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
Определение видимости между двумя точками.
 
Здравствуйте. Имеется две точки, каждая из которых имеет высоту выше, чем высота рельефа.
Как определить наличие видимости между двумя точками?
Функция mapVisibilityFromPoint(hmap, &p1, &p2, deltaheight) предполагает высоту наблюдения (d) только в одной точке.  
 
Добавим еще одну функцию с двумя приращениями высот.
 
Код
 // Определение видимости из точки point1 (координаты в метрах на местности) точку point2
 // deltaheight1  - высота наблюдения (в метрах), добавляется к высоте в точке point1
 // deltaheight2  - высота наблюдения (в метрах), добавляется к высоте в точке point2
 // Вычисление производится при наличии открытой матрицы высот
 // Возвращает: 0 - point2 не видна из point1
 //             1 - point2 видна из point1

_MAPIMP long int _MAPAPI mapVisibilityFromPointEx(HMAP hmap, DOUBLEPOINT* point1, DOUBLEPOINT* point2,
                                                  double deltaheight1, double deltaheight2);
Инструментарий разработчика ГИС-приложений GIS ToolKit (версия 15.0.5.1, для платформ "x32" и "x64")

https://gisinfo.ru/download/?id=311
 
Использую функцию mapVisibilityFromPointEx для определения видимости целевой точки из исходной.
При выполнении функции на консоль выводится сообщение "Первая точка вне матрицы". Сама функция возвращает 0 (0 - point2 не видна из point1).

1. Хотелось бы знать, как программно отлавливать ошибки выполнения этой функции, так как при возвращении 0 не понятно или это точка не видна или функция выполнилась с ошибкой.
2. Что означает ошибка "Первая точка вне матрицы" и как ее исправить?
3. Можно ли посмотреть полный пример использования данной функции, начиная с загрузки карт. Так как Гугль только выдает единственную строчку на данную ветку форума и больше ничего.
 
Цитата
Yuri Romanenko написал:
Использую функцию mapVisibilityFromPointEx для определения видимости целевой точки из исходной. При выполнении функции на консоль выводится сообщение "Первая точка вне матрицы". Сама функция возвращает 0 (0 - point2 не видна из point1).
Добрый день!
Для выполнения функции необходимо, чтобы на соответствующий участок местности была предварительно открыта матрица (матрицы) высот.
Матрицы высот имеются в разделе Скачать\Цифровые карты (https://gisinfo.ru/price/price_map.htm) и в Банке данных ЦК и ДЗЗ (https://spatialdb.net/?fullmap)

 
В новой версии уточнили описание функции и возвращаемое значение:
Код
// Определение видимости точки point2 из точки point1 (координаты в метрах на местности)
 // deltaheight1  - высота наблюдения (в метрах), добавляется к высоте в точке point1
 // deltaheight2  - высота наблюдения (в метрах), добавляется к высоте в точке point2
 // Вычисление производится при наличии открытой матрицы высот
 // Возвращает: 0 - point2 не видна из point1, 1 - point2 видна из point1
 // При ошибке в параметрах или отсутствии матрицы возвращает "-1"

_MAPIMP long int _MAPAPI mapVisibilityFromPointEx(HMAP hmap, const DOUBLEPOINT* point1, const DOUBLEPOINT* point2, double deltaheight1, double deltaheight2);

Посмотреть объявление функций можно, например, здесь (sdk15.zip/include)

https://gisinfo.ru/download/?id=310
Страницы: 1
Читают тему (гостей: 1)



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

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