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

Вопрос про матрицу высот mtw

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: 1
RSS
Вопрос про матрицу высот mtw
 
Здравствуйте. Подскажите пожалуйста новичку, с gis toolkit только начинаю работать, планирую  написать простенькую программу на C# или C++ в среде VS2013 в рамках курсового проекта. Уже неделю бьюсь над следующей задачей, связанной с матрицами высот mtw.
Исходные данные: карты в формате SXF
Требуется получить абсолютную высоту поверхности (или рельефа) в конкретных точках,
чтобы построить по этим точкам профиль местности для расчета радиорелейной линии.
Научился с помощью уроков от Дарьи Лунченко преобразовывать sit в mtw.
Каким образом, используя библиотеку mapapi в методе OnMapMouseMove, имея координаты x,y, получить высоту?
Может у вас есть пример кода, в котором из mtw "выдергивается" значение высоты для конкретной точки?
Буду премного благодарен за помощь. Спасибо.
 
Воспользуйтесь АПИ функцией

 // Выбор значения абсолютной высоты в заданной точке из матрицы
 // с номером number в цепочке.                      
 // hMap   - идентификатор открытой основной векторной карты
 // number - номер матрицы в цепочке.
 // Координаты точки (x;y) задаются в метрах в системе координат
 // векторной карты. Возвращает значение высоты в метрах.
 // В случае ошибки при выборе высоты и в случае необеспеченности
 // заданной точки матричными данными возвращает ERRORHEIGHT.

function mapGetHeightValueOfMtr(Map : HMap; number : integer; x,y : double) : double  ;
 
Лучше использовать следующую функцию, особенно если у Вас с картой может быть открыто одновременно несколько матриц высот, - mapGetPrecisionHeightValue:

Цитата
 // Выбор значения абсолютной высоты в заданной точке из
 // матрицы с наименьшим размером элемента (более точной)
 // hMap   - идентификатор открытой основной векторной карты
 // Координаты точки (x,y) задаются в метрах в системе координат
 // векторной карты. Возвращает значение высоты в метрах.
 // В случае ошибки при выборе высоты и в случае необеспеченности
 // заданной точки матричными данными возвращает ERRORHEIGHT

 _MAPIMP double _MAPAPI mapGetPrecisionHeightValue(HMAP hMap,double x, double y);
 
Простите  за ламерский вопрос.
Но ... Как использовать эти функции?
У меня в примерах только RstAPI , MultiSpecAPI...
Как вообще в c# использовать  функции библиотеки mapapi? И где можно почитать про это?
 
Mapapi.pdf у меня есть, но как библиотеку подключить к vs2013?
 
Ни один из скачанных примеров для c++ так и не заработал.
Например, mapviewer2005.
Понятное дело, пример под старые версии VS...
Выдает ошибку линковщика.
ЧЯДНТ?
 
Параллельно работаю с OpenCV,
все работает замечательно...
Подключаешь каталоги включения, каталоги библиотек... Всё работает. А тут...
Исходые примеры не хотят компилироваться даже.
 
А вы какой продукт Панорама используете?
 
В ГИС Оператор 11.9.7 по программе обучения нам показали, как получать из sxf mtw и производить по ним расчет профиля.
Поэтому я решил использовать gis toolkit или mapapi.
Изменено: Евгений Зуев - 09.09.2019 16:46:44
 
gis toolkit полностью (ГИС-ядро-mapapi и визуальные компоненты) можно использовать только в среде Embarcadero (язык С++ или Паскаль).
Для Visual Studio, если нужны визуальные компоненты, то используется GIS ToolKIt Active. ГИС-ядро  с вызовами функций напрямую (mapapi интерфейс)
может использоваться в разных средах и языках, которые поддерживают вызов функций из dll.

Например, в проекте mapviewer2005 некоторые функции для работы с mapapi объявлены так:
      // Импорт функций доступа к карте - MTRAPI.H
       // -------------------------------------------

      [DllImport(GisLibrary, CharSet = CharSet.Ansi)]
      public static extern int  mapOpenMtrForMap(int hMap, string mtrname, int mode);

      [DllImport(GisLibrary, CharSet = CharSet.Ansi)]
      public static extern int  mapOpenRstForMap(int hMap, string rstname, int mode);

      [DllImport(GisLibrary, CharSet = CharSet.Ansi)]
      public static extern int mapGetMtrCount(int hMap);

Вам нужно требуемые функции вызывать по аналогии.
Страницы: 1
Читают тему (гостей: 1)



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

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