axioma.cs.CoordSystem¶Данный класс позволяет производить работу с координатными проекциями
EARTH_SPHERE_RADIUS¶Радиус сферы
DEGREES_TO_RADIANS¶Коэффициент пересчета градусов в радианы
DEGREES_TO_METERS¶Градусы в метры для сферы
METERS_TO_DEGREES¶Метры в градусы для сферы
LAT_LON_EPSG¶EPSG для координатной системы Широта/Долгота
RADIANS_TO_DEGREES¶Коэффициент пересчета радиан в градусы
Тип исходных данных при формировании объекта координатной системы SourceType:¶Наименование величины Значение Описание St_Unknown 0 Не определен St_Prj 1 Строка MapBasic St_Proj4 2 Строка Proj4 St_Epsg 3 Значение EPSG St_Wkt 4 Строка Wkt
forward(p_in, p_out)¶Получение картезианских координат из градусов точки
Параметры: Результат: успешность операции. True выполнено успешно. False преобразование не произведено
Тип результата:
forward(r_in, r_out)Получение картезианских координат из градусов rect
Параметры: Результат: успешность операции. True выполнено успешно. False преобразование не произведено
Тип результата:
forward(list_in, list_out)Получение картезианских координат из градусов массива точек
Параметры: Результат: успешность операции. True выполнено успешно. False преобразование не произведено
Тип результата:
inverse(p_in, p_out)¶Получение географических координат (градусов) из картезианских координат для точки
Параметры: Результат: успешность операции. True выполнено успешно. False преобразование не произведено
Тип результата:
inverse(r_in, r_out)Получение географических координат (градусов) из картезианских координат для rect
Параметры: Результат: успешность операции. True выполнено успешно. False преобразование не произведено
Тип результата:
inverse(list_in, list_out)Получение географических координат (градусов) из картезианских координат для массива точек
Параметры: Результат: Успешность операции. True выполнено успешно. False преобразование не произведено
Тип результата:
clone()¶Клонирует текущую КС
Результат: Копию координатной системы Тип результата: CoordSystem
unit()¶Единицы измерения в текущей КС
Результат: Единица измерения Тип результата: LinearUnit
isEqual(coordSystem)¶Сравнение с другой координатной системой
Параметры: coordSystem ( CoordSystem) – КС для сравненияРезультат: Результат сравнения. True, если эквивалентны Тип результата: bool
proj4Str()¶Формирует строку формата proj4
Результат: Строка proj4 или пустая строка если аналога не найдено Тип результата: str
PRJStr()¶Формирует строку формата MapBasic
Результат: Строка prj или пустая строка если аналога не найдено Тип результата: str
epsg()¶Пробует найти номер EPSG. Сначала ищем в описании проекции PRJ файла, затем пробуем использовать алгоритмы OGR, и наконец, ищем соответствие в файле epsg.xml
Результат: Соответствующее проекции значение EPSG. -1 если соответствующей не найдено Тип результата: int
exportToWKT()¶Экспорт в формат WKT
Результат: Строка WKT или пустая строка если аналога не найдено Тип результата: str
setDescription(description)¶Задание описания координатной системы
Параметры: description ( str) – Описание координатной системы
description()¶Описание координатной системы
Результат: Описание координатной системы Тип результата: str
cartesianDistance(point_1, point_2)¶Расчет расстояния между двумя точками в текущей проекции
Параметры: Результат: расстояние между точками
Тип результата:
sphericalDistance(point_1, point_2)¶Расчет расстояния между двумя точками на сфере
Параметры: Результат: расстояние между точками, успешность операции
Тип результата:
rectNumericCoordSys()¶Возвращает MBR для КС
Результат: Прямоугольник для данной КС в случае успешного выполнения или пустой QRectF Тип результата: QRectF
setRectCoordSystem(rect)¶Установка нового ограничивающего прямоугольника для проекции
Параметры: rect ( QRectF) – Новое значение прямоугольника
- static
testEqual(cs1, cs2)¶Сравнение двух координатных систем
Параметры:
- cs1 (
CoordSystem) – Первая КС для сравнения- cs2 (
CoordSystem) – Вторая КС для сравненияРезультат: Результат сравнения. True, если эквивалентны
Тип результата:
affineTransform()¶Возвращает матрицу афинного преобразования, если таковая имеется
Результат: Матрица афинного преобразования Тип результата: QTransform
setAffineTransform(value)¶Установка нового значения матрицы преобразования для проекции
Параметры: value ( QTransform) – Матрица
getInvFlattening()¶Коэффициент сжатия эллипсоида
Результат: Значение коэффициента Тип результата: float
getTOWGS84Params()¶Коэффициенты преобразования датума к WGS84
Результат: Коэффициенты. Если получить невозможно, возникает ошибка. Тип результата: list[str]
axioma.cs.sourceData()¶Данные, которые использовались при создании данной координатной системы
Тип результата: SourceData
Пример использования:
from axioma.cs import * from PyQt5.QtCore import * cs_latlon = CoordSysFactory.defaultCoordSysFactory().createFromEPSG(4326) cs_merc = CoordSysFactory.defaultCoordSysFactory().createFromPRJ("Earth Projection 12, 62, \"m\", 0") # forward / inverse if cs_latlon is not None: p_out = QPointF() p_in = QPointF(45.0, 45.0) res = cs_latlon.forward(p_in, p_out) if res: print ("Forward (%f, %f) res=%r" % (p_out.x(), p_out.y(), res)) p_out1= QPointF() res = cs_latlon.inverse(p_out, p_out1) if res: print ("Inverse (%f, %f) res=%r" % (p_out1.x(), p_out1.y(), res)) #rect rect = cs_merc.rectNumericCoordSys(); print ("Rect of CoordSystem: (%.1f %.1f) (%.1f %.1f)" % (rect.left(), rect.top(), rect.right(), rect.bottom())) #distance print( "Cartesian distance %f" % cs_latlon.cartesianDistance(QPointF(0.0, 0.0), QPointF(45.0, 45.0))) sd = cs_latlon.sphericalDistance(QPointF(0.0, 0.0), QPointF(45.0, 45.0)) print( "Spherical distance %f (success=%r)" % (sd[0], sd[1])) #compare print ("Compare CoordSystems: %r %r" % ( cs_latlon.isEqual(cs_merc), cs_latlon.isEqual(cs_latlon))) # export print( cs_latlon.PRJStr()) print( cs_latlon.proj4Str()) print( cs_latlon.exportToWKT())