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

Задание поворота mtw матрице

Поиск  Пользователи  Правила  Войти
Форум » Настольные приложения » GIS ToolKit, GIS ToolKit Active, ГИС Конструктор для Windows
Страницы: Пред. 1 2 3 След.
RSS
Задание поворота mtw матрице
 
У меня другая проблема. Я знаю координаты в градусах, но у структуры BUILDMTW, есть только поля, значения которых интерпретируются в метрах, например:
Код
 
 double   BeginX;         // Прямоугольные координаты начала
  double   BeginY;         // (юго-западного угла) матрицы в метрах

  double   Width;          // Ширина матрицы в метрах
  double   Height;         // Высота матрицы в метрах

  double   ElemSizeMeters; // Размер стороны элементарного участка
                           // в метрах на местности по горизонтали (Y)



Какими значениями их надо заполнять?

Подскажите поточнее, какие методы переводят из метров в градусы и обратно?

Спасибо.
 
Цитата
Olgas написал:
Какими значениями их надо заполнять?
У матрицы должна быть такая же система координат, как у исходных данных, по которым заполняется матрица.
 
Так система координат, тип карты и проекция вот такие
Код
  mtrprojectiondata.MapType = MAPSPHERE;
  mtrprojectiondata.ProjectionType = LATITUDELONGITUDE ;
  mtrprojectiondata.EllipsoideKind = SGS_85_2011;


Соответственно и исходные данные у меня в градусах

А Панорама эти значения интерпретирует как метры.

Соответсвенно для координат 50град., 15 град. Панорма выводит 50м и 15 м соответственно
Вот пример того, что у меня получилось: temp.mtw (81.34 КБ)
Изменено: Olgas - 18.12.2020 16:13:07
 
Если необходимо выполнить импорт SRTM из geotiff, то можно применить функцию
Код
// Загрузка матриц из формата SRTM (GeoTIFF)
// hmap     -  идентификатор открытых данных
// handle   - диалог визуального сопровождения процесса обработки.
// tiffname - имя исходного файла формата SRTM (GeoTIFF)
// mtwname  - имя файла формируемой матрицы
// scale    - масштаб формируемой матрицы
// flagCompress - параметр не используется, равен 0
// При ошибке возвращает ноль

_PICIMP long int _PICAPI LoadGeoTiffToMtrUn(HMAP map, HMESSAGE handle, const WCHAR* tiffname, const WCHAR* mtwname,
                                            double scale = 100000, long int flagCompress = 0);
Пересчитать градусы в метры можно через функции
Код
 // Установить текущие параметры пользовательской системы координат
 // parm      - параметры рабочей системы координат (см. MAPCREAT.H)
 // datum     - параметры пересчета с эллипсоида рабочей системы координат
 //             к WGS84 (datum может быть 0)
 // ellipsoid - параметры пользовательского эллипсоида для рабочей
 //             системы координат, только когда поле EllipsoideKind в
 //             MAPREGISTEREX равно USERELLIPSOID (ellipsoid может быть 0)
 // ttype     - тип локального преобразования координат (см. TRANSFORMTYPE в mapcreat.h) или 0
 // tparm     - параметры локального преобразования координат (см. mapcreat.h)
 // code      - код EPSG (для Широта\Долгота на WGS84: 4326),
 //             для СК-42 зоны 1-60: 28401-28460, для СК-95 зоны 1-60: 20001-20060
 //             для UTM на WGS84 зоны 1-60: 32601-32660
 //             для Гаусса-Крюгера на ПЗ-90.11 зоны 1-60: 80011001-80011060
 // Возвращает идентификатор пользовательской системы координат
 // По завершении использования необходимо вызвать mapDeleteUserSystemParameters
 // При ошибке возвращает ноль

_MAPIMP HANDLE _MAPAPI mapCreateUserSystemParametersPro(MAPREGISTEREX * parm, DATUMPARAM * datum,
                                                        ELLIPSOIDPARAM * ellipsoid, long int ttype, LOCALTRANSFORM * tparm);
_MAPIMP HANDLE _MAPAPI mapCreateUserSystemParametersByEpsg(long int code);

 // Преобразование из геодезических координат (радианы) в метры в пользовательской проекции
 // huser - идентификатор пользовательской системы координат
 // Bx,Ly - преобразуемые координаты, на входе радианы, на выходе - метры
 // H     - геодезическая высота в точке (метры), пересчитывается в НОРМАЛЬНУЮ (если задан hegm)
 // hegm  - идентификатор модели геоида, открытой mapOpenEgmPro, необходим
 //         для пересчета геодезической высоты в нормальную (геоид MSL)
 // Балтийская система высот (квазигеоид) отличается от нормальной в среднем в пределах 1-2 метра
 // Высота пересчитывается сначала из геодезической в геодезическую WGS84 и затем в нормальную
 // При ошибке возвращает 0

_MAPIMP long int _MAPAPI mapUserGeoToUserPlanePro(HANDLE huser, double *Bx, double *Ly, double *H, HANDLE hegm);
_MAPIMP long int _MAPAPI mapUserGeoToUserPlane(HANDLE huser, double *Bx, double *Ly);
_MAPIMP long int _MAPAPI mapUserGeoToPlane(HANDLE huser, double *Bx, double *Ly);
Высот на этом эллипсоиде у Вас быть не может - SGS_85_2011
 
Я создаю файл из собственного хранилища данных(своего формата). Соответственно вижу возможность только создавать с нуля с помощью mapCreateMtw и в дальнейшем заполнения через mapPutMtrFrame.
Если есть другой способ  - подскажите, пожалуйста.

какие эллипсоиды могут быть вместе с этой комбинацией параметров?  
mtrprojectiondata.MapType = MAPSPHERE;
mtrprojectiondata.ProjectionType = LATITUDELONGITUDE ;

GCK_2011_EE может быть?
 
Математически могут быть любые эллипсоиды.
 
Добрый день.

Еще один вопрос созрел. Как пересчитать геодезические координаты из одного эддипсоида к другому (в том числе высоту).

Пробовала для начала вот этот метод
Код
 
// Преобразование координат из геодезической системы координат в радианах
 // (общеземной эллипсоид WGS84) в геодезическую систему координат карты
 // (поддерживается не для всех карт !)
 // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapGeoWGS84ToGeo3D(HMAP hMap, double *Bx, double *Ly,
                                            double *H);


В качастве карты задавала карту только что созанного mtw файла, но координаты не меняются...
 
А какая высота в Вашей матрице?

Немного о высотах можно посмотреть здесь -

https://gisinfo.ru/price/price_map.htm

внизу страницы под описанием Модель геоида EGM2008.

Например, если у Вас высота в Балтийской системе высот или в системе MSL, то она не может быть пересчитана при смене системы координат или эллипсоида.
Она сначала должна быть переведена в геодезическую высоту. И т.д.
 
У меня с ситемами высот небольшой пробел. Грубо говоря у нас стоит задача из любой системы высот в любую. Тогда 2 вопроса:

1. Как из геодезической в одном эддипсоиде пересчитать в геодезическую в другом эллипсоиде?
2. Как из геодезической получить в Балтийской системе высот и обратно?
 
Цитата
Olgas написал:
У меня с ситемами высот небольшой пробел. Грубо говоря у нас стоит задача из любой системы высот в любую. Тогда 2 вопроса:

1. Как из геодезической в одном эддипсоиде пересчитать в геодезическую в другом эллипсоиде?
2. Как из геодезической получить в Балтийской системе высот и обратно?
Здравствуйте! Попробуйте прояснить эти вопросы в учебниках по высшей геодезии.
https://www.geokniga.org/bookfiles/geokniga-morozov-vpkurs-sferoidicheskoy-geodeziimnedra1979.pdf
https://www.studmed.ru/zakatov-ps-kurs-vysshey-geodezii_878dc1d0919.html  
Страницы: Пред. 1 2 3 След.
Читают тему (гостей: 1)



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

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