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

Система координат

Поиск  Пользователи  Правила  Войти
Форум » Linux » Средства разработки ГИС-приложений для Linux
Страницы: 1
RSS
Система координат
 
Добрый день! Где задаётся проекция для функции GetPlaceOut при выборе  PP_PLANE?
 
PP_PLANE - это текущая система координат (и проекция) документа

Для управления текущей системой координат документа есть функции MAPAPI:
Код
 // Установить общие параметры проекции документа для отображения,
 // печати и расчета координат
 // hmap  - идентификатор открытых данных (документа)
 // Структуры MAPREGISTER, DATUMPARAM и ELLIPSOIDPARAM описаны в mapcreat.h
 // type  - тип локального преобразования координат (см. TRANSFORMTYPE в mapcreat.h) или 0
 // parm - параметры локального преобразования координат (см. mapcreat.h)
 // Устанавливать общие параметры проекции можно для документа
 // поддерживающего пересчет геодезических координат (mapIsGeoSupported() != 0)
 // После установки общих параметров проекции изображение карты формируется
 // в заданной проекции. Векторные карты, матрицы и растры, имеющие другие параметры
 // трансформируются в процессе отображения.
 // Все операции с координатами (mapPlaneToGeo, mapGeoToPlane,
 // mapPlaneToGeoWGS84, mapAppendPointPlane, mapInsertPointPlane,
 // mapUpdatePointPlane, mapAppendPointGeo и другие) выполняются
 // в системе координат документа, определяемой общими параметрами проекции
 // При чтении\записи координат в конкретной карте выполняется пересчет
 // из системы координат документа
 // Например, при записи координат из WGS84 на карту в СК-42 можно
 // установить общие параметры документа, как "Широта/Долгота на WGS84"
 // и выполнить запись координат функцией mapAppendPointGeo, не заботясь
 // о дополнительном пересчете координат, или считать координаты функцией
 // mapGetGeoPoint (или функцией mapGetGeoPointWGS84, игнорирующей параметры
 // документа).
 // Чтобы установить текущие параметры проекции и системы координат, как у первой
 // карты в документе можно передать в качестве параметров (кроме hMap) нули,
 // или вызвать mapClearDocProjection.
 // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapSetDocProjectionPro(HMAP hMap,
                                                MAPREGISTEREX * mapreg,
                                                DATUMPARAM * datum,
                                                ELLIPSOIDPARAM * ellparm,
                                                long int ttype,
                                                LOCALTRANSFORM * tparm);

_MAPIMP long int _MAPAPI mapSetDocProjection(HMAP hMap,
                                             MAPREGISTEREX * map,
                                             DATUMPARAM * datum,
                                             ELLIPSOIDPARAM * ellparm);

_MAPIMP long int _MAPAPI mapClearDocProjection(HMAP hMap);

 // Запросить общие параметры проекции документа для отображения,
 // печати и расчета координат
 // hmap  - идентификатор открытых данных (документа)
 // Структуры MAPREGISTER, DATUMPARAM и ELLIPSOIDPARAM описаны в mapcreat.h
 // type  - тип локального преобразования координат (см. TRANSFORMTYPE в mapcreat.h) или 0
 // parm - параметры локального преобразования координат (см. mapcreat.h)
 // Если параметры не устанавливались функцией mapSetMapInfoEx,
 // то они соответсвуют параметрам карты, открытой в документе первой
 // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapGetDocProjectionPro(HMAP hMap,
                                                MAPREGISTEREX * map,
                                                DATUMPARAM * datum,
                                                ELLIPSOIDPARAM * ellparm,
                                                long int * ttype,
                                                LOCALTRANSFORM * tparm);

  // Запросить параметры проекции и системы координат по коду EPSG
  // Если код EPSG задает геодезическую систему координат,
  // то устанавливается проекция Широта\Долгота и соответствующие
  // параметры эллипсоида и датум
  // Если код EPSG задает плоскую прямоугольную систему координат,
  // то все параметры устанавливаются из базы EPSG
  // epsgcode  - код EPSG, для СК-42 зоны 2-32 : 28402-28432, для СК-95 зоны 4-32: 20004-20032
  // mapreg    - параметры системы координат и проекции
  // datum     - параметры пересчета с эллипсоида рабочей системы координат
  //             к WGS84
  // ellipsoid - параметры пользовательского эллипсоида для рабочей
  //             системы координат
  // Для геодезических систем координат возвращает 2,
  // для плоских прямоугольных возвращает 1.
  // При ошибке возвращает ноль

_MAPIMP long int _MAPAPI mapGetParametersForEPSG(long int epsgcode,
                                                 MAPREGISTEREX  *mapreg,
                                                 DATUMPARAM     *datum,
                                                 ELLIPSOIDPARAM *ellipsoid);
 
И ещё вопрос - а можно ли где-то посмотреть сами формулы для пересчёта между геодезическими и плоскими координатами?
Я так понимаю, что это функция _MAPIMP long int _MAPAPI mapGeoToPlane(HMAP hmap, double *Bx, double *Ly)
 
Цитата
bidjiz написал:
И ещё вопрос - а можно ли где-то посмотреть сами формулы для пересчёта между геодезическими и плоскими координатами?
Я так понимаю, что это функция _MAPIMP long int _MAPAPI mapGeoToPlane(HMAP hmap, double *Bx, double *Ly)
Можно в различных справочниках по картографии и геодезии. Таких формул десятки для различных систем координат и их параметров -
Морозов В.П. Курс сфероидической геодезии, ГОСТ 32453—2017 и т.д.
Страницы: 1
Читают тему (гостей: 1)



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

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