Point - Точечный объект¶
-
class
axipy.da.
Point
(x, y, cs=None)¶ Базовые классы:
axipy.da.Geometry
Геометрический объект типа точка.
- Параметры
cs = CoordSystem.from_prj("1, 104") p = Point(23, 45, cs) # Создадим точку. p.x = 55 # Изменим значение координаты X
Methods:
affine_transform
(trans)Трансформирует объект исходя из заданных параметров трансформации.
almost_equals
(other, tolerance)Производит примерное сравнения с другой геометрией в пределах заданной точности.
boundary
()Возвращает границы геометрии в виде полилинии.
buffer
(distance[, resolution, capStyle, …])Производит построение буфера.
centroid
()Возвращает центроид геометрии.
clone
()Создает копию объекта.
contains
(other)Возвращает True, если геометрия полностью содержит передаваемую в качестве параметра геометрию.
Возвращает минимальный окаймляющий полигон со всеми выпуклыми углами.
covers
(other)Возвращает True, если геометрия охватывает геометрию other.
crosses
(other)Возвращает True, если при пересечении геометрий объекты частично пересекаются.
difference
(other)Возвращает область первой геометрии, которая не пересечена второй геометрией.
disjoint
(other)Возвращает True, если геометрии не пересекаются и не соприкасаются.
distance_by_points
(start, end[, cs])Производит расчет расстояния между двумя точками и азимут от первой до второй точки.
envelope
()Возвращает полигон, описывающий заданную геометрию.
equals
(other)Производит сравнение с другой геометрией.
from_json
(json[, cs])Возвращает геометрию из ее „GeoJSON“ представления.
from_wkb
(wkb[, coordsystem])Создает геометрический объект из строки формата WKB.
from_wkt
(wkt[, coordsystem])Создает геометрический объект из строки формата WKT.
get_area
([u])Рассчитывает площадь, если объект площадной.
get_distance
(other[, u])Производит расчет расстояния до объекта other.
get_length
([u])Рассчитывает длину геометрии.
get_perimeter
([u])Рассчитывает периметр геометрии.
intersection
(other)Возвращает область пересечения с другой геометрией.
intersects
(other)Возвращает True, если геометрии пересекаются.
overlaps
(other)Возвращает True, если пересечение геометрий отличается от обеих геометрий.
point_by_azimuth
(point, azimuth, distance[, cs])Производит расчет координат точки относительно заданной, и находящейся на расстоянии distance по направлению azimuth.
relate
(other)Проверяет отношения между объектами.
reproject
(cs)Перепроецирует геометрию в другую систему координат.
rotate
(point, angle)Поворот геометрии относительно заданной точки.
scale
(kx, ky)Масштабирует объект по заданным коэффициентам масштабирования.
shift
(dx, dy)Смещает объект на заданную величину.
symmetric_difference
(other)Возвращает логический XOR областей геометрий (объединение разниц).
Преобразует геометрию в формат „GeoJSON“
Пробует геометрию преобразовать в линейный объект.
Пробует геометрию преобразовать в площадной объект.
touches
(other)Возвращает True, если геометрии соприкасаются.
union
(other)Возвращает результат объединения двух геометрий.
within
(other)Возвращает True, если геометрия находится полностью внутри геометрии other.
Attributes:
Возвращает минимальный ограничивающий прямоугольник.
Система Координат (СК) геометрии.
Проверяет геометрию на валидность.
Если геометрия неправильная, возвращает краткую аннотацию причины.
Возвращает наименование геометрического объекта.
Возвращает тип геометрического элемента.
Возвращает WKB строку для геометрии.
Возвращает WKT строку для геометрии.
X Координата.
Y Координата.
-
affine_transform
(trans)¶ Трансформирует объект исходя из заданных параметров трансформации.
См.также
Для простых операций типа сдвиг, масштабирование и поворот, рекомендуется использовать
shift()
,scale()
,rotate()
соответственно.- Параметры
trans (
QTransform
) – Матрица трансформации.- Тип результата
-
almost_equals
(other, tolerance)¶ Производит примерное сравнения с другой геометрией в пределах заданной точности.
-
buffer
(distance, resolution=16, capStyle=1, joinStyle=1, mitreLimit=5.0)¶ Производит построение буфера.
-
contains
(other)¶ Возвращает True, если геометрия полностью содержит передаваемую в качестве параметра геометрию.
- Тип результата
-
convex_hull
()¶ Возвращает минимальный окаймляющий полигон со всеми выпуклыми углами.
- Тип результата
-
property
coordsystem
¶ Система Координат (СК) геометрии.
- Тип результата
CoordSystem
-
crosses
(other)¶ Возвращает True, если при пересечении геометрий объекты частично пересекаются.
- Тип результата
-
difference
(other)¶ Возвращает область первой геометрии, которая не пересечена второй геометрией.
- Тип результата
-
disjoint
(other)¶ Возвращает True, если геометрии не пересекаются и не соприкасаются.
- Тип результата
-
static
distance_by_points
(start, end, cs=None)¶ Производит расчет расстояния между двумя точками и азимут от первой до второй точки.
См.также
Обратная функция
point_by_azimuth()
- Параметры
start (
Union
[Pnt
,Tuple
[float
,float
]]) – Начальная точка. Если задана СК, то координаты в ней.end (
Union
[Pnt
,Tuple
[float
,float
]]) – Конечная точка. Если задана СК, то координаты в ней.cs (
Optional
[CoordSystem
]) – СК, на базе эллипсоида которой производится расчет. Если не задана, то расчет производится на плоскости.
- Тип результата
- Результат
Возвращается пара значений (расстояние в метрах, азимут в градусах)
-
equals
(other)¶ Производит сравнение с другой геометрией.
-
static
from_json
(json, cs=None)¶ Возвращает геометрию из ее „GeoJSON“ представления.
-
static
from_wkb
(wkb, coordsystem=None)¶ Создает геометрический объект из строки формата WKB.
- Параметры
wkb = b'\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00$@\x00\x00\x00\x00\x00\x00$@' pnt = Geometry.from_wkb(wkb)
- Тип результата
-
static
from_wkt
(wkt, coordsystem=None)¶ Создает геометрический объект из строки формата WKT.
- Параметры
wkt (
str
) – Строка WKT. Допустимо задание строки в формате с указанием SRID (EWKT). В данном случае система координат для создаваемой геометрии будет установлено исходя их этого значения.coordsystem (
Optional
[CoordSystem
]) – Система координат, которая будет установлена для геометрии. Если строка задана в виде EWKT и указано значение SRID, игнорируется.
polygon = Geometry.from_wkt('POLYGON ((10 10, 100 100, 100 10, 10 10))') point = Geometry.from_wkt('SRID=4326;POINT (10 10)') crs = CoordSystem.from_epsg(4326) pline = Geometry.from_wkt('LINESTRING (30 10, 10 30, 40 40)', crs)
- Тип результата
-
get_area
(u=None)¶ Рассчитывает площадь, если объект площадной. В противном случае возвращает 0. В случае, если СК задана как Широта/Долгота, то расчет производится на сфере в квадратных метрах.
# В проекции Меркатора: csMercatorKm = CoordSystem. from_prj("10, 104, 1, 0") poly = Polygon([(0,0), (0,2), (2, 2), (2,0)], cs=csMercatorKm) print('Area Mercator km:', poly.get_area()) print('Area Mercator m:', poly.get_area(Unit.sq_m)) print('Perimeter Mercator km:', poly.get_perimeter()) print('Perimeter Mercator m:', poly.get_perimeter(Unit.m)) # В Широте/Долготе poly.coordsystem = CoordSystem.from_prj("1, 104") print('Area LL m:', poly.get_area()) print('Area LL km:', poly.get_area(Unit.sq_km)) print('Perimeter LL m:', poly.get_perimeter()) print('Perimeter LL km:', poly.get_perimeter(Unit.km)) ''' >>> Area Mercator km: 4.017946986632519 >>> Area Mercator m: 4017946.9866325194 >>> Perimeter Mercator km: 8.017972048421552 >>> Perimeter Mercator m: 8017.972048421552 >>> Area LL m: 49452172514.0342 >>> Area LL km: 49452.1725140342 >>> Perimeter LL m: 889423.5067063896 >>> Perimeter LL km: 889.4235067063896 '''
-
get_distance
(other, u=None)¶ Производит расчет расстояния до объекта other. Результат возвращает в СК текущего объекта.
- Параметры
other (
Geometry
) – Анализируемый объект.u (
Optional
[LinearUnit
]) – Единицы измерения, в которых требуется получить результат.
# Создадим геометрию без СК first = Point(0, 0) second = Point(10, 0) print('В плане:', first.get_distance(second)) #Установим разные СК для точек first.coordsystem = CoordSystem.from_prj("10, 104, 7, 0") second.coordsystem = CoordSystem.from_prj("1, 104") print('На сфере м:', first.get_distance(second)) print('На сфере км:', first.get_distance(second, Unit.km)) ''' >>> В плане: 10.0 >>> На сфере м: 1111948.7428468117 >>> На сфере км: 1111.9487428468117 '''
- Тип результата
-
get_length
(u=None)¶ Рассчитывает длину геометрии. Метод применим только для линейных объектов. В противном случае возвращает 0. В случае, если СК задана как Широта/Долгота, то расчет производится на сфере в метрах.
# В проекции Меркатора: csMercatorKm = CoordSystem. from_prj("10, 104, 1, 0") ls = Line((0,0), (10,0), csMercatorKm) print('Length Mercator km:', ls.get_length()) print('Lenght Mercator m:', ls.get_length(Unit.m)) # В Широте/Долготе csLL = CoordSystem.from_prj("1, 104") ls = Line((0,0), (10,0), csLL) print('Length LL m:', ls.get_length()) print('Length LL km:', ls.get_length(Unit.km)) ''' >>> Length Mercator km: 9.988805508567783 >>> Lenght Mercator m: 9988.805508567782 >>> Length LL m: 1111948.7428468117 >>> Length LL km: 1111.9487428468117 '''
- Параметры
u (
Optional
[LinearUnit
]) – Единица измерения, в которой необходимо получить результат. Если не задана, то используется единица измерения для СК. Если и она не задана, то производится расчет на плоскости.- Тип результата
-
get_perimeter
(u=None)¶ Рассчитывает периметр геометрии. Метод применим только для площадных объектов. В противном случае возвращает 0. В случае, если СК задана как Широта/Долгота, то расчет производится на сфере в метрах.
Пример см.
get_area()
- Параметры
u (
Optional
[LinearUnit
]) – Единица измерения, в которой необходимо получить результат. Если не задана, то используется единица измерения для СК. Если и она не задана, то производится расчет на плоскости.- Тип результата
-
property
is_valid_reason
¶ Если геометрия неправильная, возвращает краткую аннотацию причины.
- Тип результата
-
overlaps
(other)¶ Возвращает True, если пересечение геометрий отличается от обеих геометрий.
- Тип результата
-
static
point_by_azimuth
(point, azimuth, distance, cs=None)¶ Производит расчет координат точки относительно заданной, и находящейся на расстоянии distance по направлению azimuth.
См.также
Обратная функция
distance_by_points()
- Параметры
point (
Union
[Pnt
,Tuple
[float
,float
]]) – Точка, относительно которой производится расчет. Если задана СК, то в ней.azimuth (
float
) – Азимут в градусах, указывающий направление.distance (
float
) – Расстояние по азимуту. Задается в метрах.cs (
Optional
[CoordSystem
]) – СК, на базе эллипсоида которой производится расчет. Если не задана, то расчет производится на плоскости.
- Тип результата
- Результат
Возвращает результирующую точку.
-
reproject
(cs)¶ Перепроецирует геометрию в другую систему координат.
- Параметры
cs (
CoordSystem
) – СК, в которой требуется получить объект.- Тип результата
-
rotate
(point, angle)¶ Поворот геометрии относительно заданной точки. Поворот производится против часовой стрелки.
-
scale
(kx, ky)¶ Масштабирует объект по заданным коэффициентам масштабирования. После выполнения операции центр результирующего объекта остается прежним.
-
shift
(dx, dy)¶ Смещает объект на заданную величину. Значения задаются в текущей проекции.
-
symmetric_difference
(other)¶ Возвращает логический XOR областей геометрий (объединение разниц).
-
to_linestring
()¶ Пробует геометрию преобразовать в линейный объект. В случае неудачи возвращает None.
-
to_polygon
()¶ Пробует геометрию преобразовать в площадной объект. В случае неудачи возвращает None.
-
property
type
¶ Возвращает тип геометрического элемента.
¶ Значение
Наименование
Unknown
Не определен
Point
Точка
Line
Линия
LineString
Полилиния
Polygon
Полигон
MultiPoint
Коллекция точек
MultiLineString
Коллекция полилиний
MultiPolygon
Коллекция полигонов
GeometryCollection
Смешанная коллекция
Arc
Дуга
Ellipse
Эллипс
Rectange
Прямоугольник
RoundedRectange
Скругленный прямоугольник
Text
Текст
point = Point(10,10) if point.type == GeometryType.Point: print('Это точка')
- Тип результата
GeometryType
-
within
(other)¶ Возвращает True, если геометрия находится полностью внутри геометрии other.
- Тип результата