// Установить общие параметры проекции документа для отображения,
// печати и расчета координат
// 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); |