PointGeometry

Краткая информация

Объект PointGeometry – это геометрия, которая не имеет ни длины, ни площади в заданном масштабе.

Обсуждение

Во многих рабочих процессах геообработки может потребоваться запустить определенную операцию, используя информацию о координатах и геометрии, при этом не желая проходить процесс создания нового (временного) класса пространственных объектов, отображения класса пространственных объектов с помощью курсоров, использования класса пространственных объектов, и последующего удаления временного класса пространственных объектов. Чтобы упростить геообработку, вместо этого в качестве входных и выходных данных можно использовать объекты геометрии. Объекты геометрии могут создаваться сначала, используя классы Geometry, Multipoint, PointGeometry, Polygon, или Polyline.

Вместо геометрических методов можно использовать следующие числовые операторы:

Геометрический методЧисловая операция

intersect

+

union

|

difference

-

symmetricDifference

^

Например, для объединения двух геометрических объектов, g3 = g1 | g2 является эквивалентом g3 = g1.union(g2).

Оператор + будет использовать тип геометрии (dimension) из первой геометрии для определения типа геометрии выходных данных.

Синтаксис

 PointGeometry  (inputs, {spatial_reference}, {has_z}, {has_m})
ПараметрОписаниеТип данных
inputs

Point, используемые для создания объекта.

Point
spatial_reference

Пространственная привязка новой геометрии.

(Значение по умолчанию — None)

SpatialReference
has_z

Статус Z: True для геометрии, если Z используются, и False – если нет.

(Значение по умолчанию — False)

Boolean
has_m

Статус M: True для геометрии, если M используются, и False– если нет.

(Значение по умолчанию — False)

Boolean

Свойства

СвойствоОписаниеТип данных
JSON
(только чтение)

Возвращает представление геометрии Esri JSON в виде строки.

Подсказка:

Возвращаемая строка может быть конвертирована в словарь с помощью функции loads модуля json.

String
WKB
(только чтение)

Возвращает WKB-представление для геометрии OGC. Он обеспечивает портативное представление значения геометрии в виде непрерывного потока байтов.

Bytearray
WKT
(только чтение)

Возвращает WKT-представление для геометрии OGC. Он обеспечивает портативное представление значения геометрии в виде текстовой строки.

Любые истинные кривые в геометрии будут уплотнены в аппроксимируют кривые в строки WKT.

String
area
(только чтение)

Площадь объекта полигона. Ноль для всех остальных типов объектов.

Double
centroid
(только чтение)

Возвращается истинное положение центроида, если он расположен внутри объекта, иначе возвращается точка надписи.

Point
extent
(чтение и запись)

Экстент геометрии.

Extent
firstPoint
(только чтение)

Первая точка координат геометрии.

Point
hasCurves
(только чтение)

Возвращает True, если геометрия содержит кривую.

Boolean
hullRectangle
(только чтение)

Строка пар координат прямоугольника, образующего выпуклую оболочку, разделенная пробелами.

String
isMultipart
(только чтение)

Возвращает True, если число частей этой геометрии более одного.

Boolean
labelPoint
(только чтение)

Точка расположения надписи. labelPoint всегда расположен внутри объекта или на нем.

Point
lastPoint
(только чтение)

Последняя координата объекта.

Point
length
(только чтение)

Длина линейного объекта. Ноль для точечных и мультиточечных объектов.

Double
length3D
(чтение и запись)

3D-длина линейного объекта. Ноль для точечных и мультиточечных объектов.

Double
partCount
(только чтение)

Количество частей пространственного объекта.

Integer
pointCount
(только чтение)

Общее количество точек объекта.

Integer
spatialReference
(только чтение)

Пространственная привязка геометрии.

SpatialReference
trueCentroid
(только чтение)

Центр тяжести пространственного объекта.

Point
type
(только чтение)

Тип геометрии: полигон, полилиния, точка, мультиточка, мультипатч, размер или аннотация.

String

Обзор метода

МетодОписание
angleAndDistanceTo (other, {method})

Возвращает кортеж из угла и расстояния до другой точки с использованием типа измерения.

boundary ()

Выстраивает границы геометрии.

Оператор границ
buffer (distance)

Выстраивает полигон на заданном расстоянии от геометрии.

Оператор буфера
clip (envelope)

Строит пересечение геометрии и заданного экстента.

Оператор Clip
contains (second_geometry, {relation})

Показывает, содержит ли базовая геометрия сравнение геометрии.

contains является противоположностью within.

На этом рисунке показаны только отношения True.

Возможно содержит отношения
convexHull ()

Выстраивает геометрию минимального ограничивающего полигона, внешние углы которого выпуклые.

Оператор ConvexHull
crosses (second_geometry)

Указывает на то, что две геометрии пересекаются в геометрии меньшего типа формы.

Две полилинии пересекаются, если только они имеют точки соприкосновения, по крайней мере, одна из которых не является конечной точкой. Полилиния и полигон пересекаются, если они имеют общую линию или точку (для вертикальной линии) внутри полигона, который не эквивалентен всей полилинии.

На этом рисунке показаны только отношения True.

Возможные отношения пересечения (crosses)
difference (other)

Выстраивает геометрию, состоящую из региона, уникального для базовой геометрии, но не являющуюся частью другой геометрии. Ниже иллюстрируются результаты, где красный полигон является исходной геометрией.

Оператор разности
disjoint (second_geometry)

Указывает, что базовая и сопоставляемая геометрия не имеют общих точек.

Две геометрии пересекаются, если disjoint возвращает False.

На этом рисунке показаны только отношения True.

Возможные отношения дизъюнктный (disjoint)
distanceTo (other)

Возвращает минимальное расстояние между двумя геометриями. Расстояние измеряться в единицах системы координат геометрии. Если геометрии пересекаются, минимальное расстояние будет равно нулю.

Обе геометрии должны иметь одинаковую проекцию.

equals (second_geometry)

Указывает, имеют ли основная и сравнительная геометрии одинаковый тип формы и определяют ли они один и то же набор точек на плоскости. Сравнение производится только в 2D; значения M и Z не учитываются.

На этом рисунке показаны только отношения True.

Возможные отношения тождества (equals)
getGeohash (precision)

Конвертирует координаты широты и долготы PointGeometry географической системы координат в строку geohash с произвольной точностью в пределах ограничивающей рамки в гриде geohash.

getPart ({index})

Возвращает объект Array из объектов Point для определенной части геометрии, если указан индекс. Если индекс не указан, возвращается объект Array, содержащий Array из Point объектов для каждой части геометрии.

Метод getPart эквивалентен индексированию объекта; то есть, obj.getPart(0) эквивалентен obj[0].

intersect (other, dimension)

Строит геометрию, являющуюся геометрическим пересечением двух входных геометрий. Для создания различных типов формы можно использовать разную размерность.

Пересечением двух геометрий с одинаковым типом формы будет геометрия, содержащая только перекрывающиеся области исходных геометрий.

Оператор пересечения

Для ускорения процесса проверьте, не являются ли данные две геометрии disjoint, перед вызовом intersect.

overlaps (second_geometry)

Показывает, если пересечение двух геометрий имеет тот же тип формы, что и входная геометрия и не эквивалентно любой из входных геометрий.

На этом рисунке показаны только отношения True.

Возможные отношения наложения
pointFromAngleAndDistance (angle, distance, {method})

Возвращает точку при заданном угле в градусах и расстоянии в единицах пространственной привязки, с использованием определенного типа измерения.

projectAs (spatial_reference, {transformation_name})

Проецирует геометрию и при необходимости применяет географическую трансформацию.

Для проецирования геометрия должна иметь пространственную привязку, а не неизвестную систему координат. Новая система пространственной привязки, переданная методу, определяет выходную систему координат. Если какая-либо пространственная привязка неизвестна, координаты не будут изменены. Значение z и m не меняются методом projectAs.

symmetricDifference (other)

Строит геометрию, являющуюся геометрическим объединением двух геометрий с вычитанием пересечения этих геометрий.

Обе входные геометрии должны быть одного типа.

оператор symmetricDifference
toCoordString (notation)

Конвертирует PointGeometry в заданную нотацию системы координат.

touches (second_geometry)

Указывает на то, что границы геометрии пересекаются.

Две геометрии соприкасаются, если пересечение геометрий не является пустым, а пересечение их внутренних частей пусто. Например, точка касается полилинии, только, если точка совпадает с одной из конечных точек полилинии.

На этом рисунке показаны только отношения True.

Возможные отношения касания (touches)
union (other)

Строит геометрию, являющуюся теоретико-множественным объединением входных геометрий.

Обе объединяемые геометрии должны быть одного типа.

Оператор Union
within (second_geometry, {relation})

Показывает, если базовая геометрия находится внутри сравнения геометрии.

within является противоположностью оператора contains.

На этом рисунке показаны только отношения True.

Возможные отношения "находится в"

Базовая геометрия находится внутри сравниваемой геометрии, если она является пересечением геометрий, и пересечение их внутренних частей не является пустым. within является оператором Клементини, за исключением случаев, когда базовая геометрия пуста.

Методы

angleAndDistanceTo (other, {method})
ПараметрОписаниеТип данных
other

Вторая геометрия.

PointGeometry
method

PLANAR измерения отражают проекцию географических данных на 2D поверхность (другими словами, они не будут учитывать кривизну Земли). Если требуется, то в качестве альтернативы можно выбрать типы измерений GEODESIC, GREAT_ELLIPTIC, LOXODROME и PRESERVE_SHAPE.

  • GEODESICКратчайшее расстояние между двумя любыми точками поверхности земли на сфероиде (эллипсоиде). Одна из областей применения геодезических линий – определение кратчайшего расстояния между двумя городами для траектории полета самолета. Также называется ортодромической линией, если в основе измерений лежит сфероид или эллипсоид.
  • GREAT_ELLIPTICЛиния на сфероиде (эллипсоиде), определяемая пересечением поверхности плоскостью, проходящей через центр сфероида, начальную и конечную точки сегмента. При использовании на сфере также называется ортодромией.
  • LOXODROMEЛоксодромия не является кратчайшим расстоянием между двумя точками, а задает линию постоянного пеленга или азимута. Маршруты ортодромии часто разбиваются на ряд линий локсодромии, что упрощает навигацию. Также называется локсодромой.
  • PLANARПлоскостные измерения используют двухмерную (2D) декартову математику для вычисления длин и площадей. Эта опция доступна только тогда, когда измерения производятся в системе координат проекции, и двухмерная плоскость этой системы координат будет использоваться как основание для измерений.
  • PRESERVE_SHAPEЭтот тип вычисляет площадь или длину геометрии на поверхности эллипсоида Земли для геометрии, заданной в системе координат проекции или географической системе координат. Эта опция сохраняет форму геометрии в своей системе координат.

(Значение по умолчанию — GEODESIC)

String
Возвращаемое значение
Тип данныхОписание
tuple

Возвращает кортеж из угла (в градусах) и расстояния (в метрах) до другой точки.

boundary ()
Возвращаемое значение
Тип данныхОписание
Object

Границей полигона является полилиния. Границей полилинии является мультиточка, соответствующая конечным точкам линии. Границей точки или мультиточки является пустая точка или мультиточка.

buffer (distance)
ПараметрОписаниеТип данных
distance

Буферное расстояние.

Буферное расстояние измеряется в тех же единицах, что и буферизуемая геометрия.

Отрицательное расстояние можно указать только для геометрии полигонов.

Double
Возвращаемое значение
Тип данныхОписание
Polygon

Полигональная геометрия с буферизацией.

clip (envelope)
ПараметрОписаниеТип данных
envelope

An Extent object used to define the clip extent.

Extent
Возвращаемое значение
Тип данныхОписание
Object

Выходная геометрия вырезается до указанного экстента.

contains (second_geometry, {relation})
ПараметрОписаниеТип данных
second_geometry

Вторая геометрия.

Object
relation

Типы пространственных отношений.

  • BOUNDARY У отношений нет ограничений для внутренних частей или границ.
  • CLEMENTINI Внутренние части геометрии должны пересекаться. Указание CLEMENTINI эквивалентно None. Используется по умолчанию.
  • PROPER Границы геометрии не должны пересекаться.

(Значение по умолчанию — None)

String
Возвращаемое значение
Тип данныхОписание
Boolean

Возвращенное логическое значение True указывает, что данная геометрия содержит вторую геометрию.

convexHull ()
Возвращаемое значение
Тип данныхОписание
Object

Получившаяся геометрия. Выпуклой оболочкой точки является сама эта точка.

crosses (second_geometry)
ПараметрОписаниеТип данных
second_geometry

Вторая геометрия.

Object
Возвращаемое значение
Тип данныхОписание
Boolean

Возвращенное логическое значение True указывает пересечение двух геометрий в геометрии меньшего типы формы.

difference (other)
ПараметрОписаниеТип данных
other

Вторая геометрия.

Object
Возвращаемое значение
Тип данныхОписание
Object

Получившаяся геометрия.

disjoint (second_geometry)
ПараметрОписаниеТип данных
second_geometry

Вторая геометрия.

Object
Возвращаемое значение
Тип данныхОписание
Boolean

Возвращенное логическое значение True указывает, что у двух геометрий нет общих точек.

distanceTo (other)
ПараметрОписаниеТип данных
other

Вторая геометрия.

Object
Возвращаемое значение
Тип данныхОписание
Double

Расстояние между двумя геометриями.

equals (second_geometry)
ПараметрОписаниеТип данных
second_geometry

Вторая геометрия.

Object
Возвращаемое значение
Тип данныхОписание
Boolean

Полученное логическое значение Истина (True) указывает на то, что обе эти геометрии имеют одинаковый тип формы и определяют один и тот же набор точек на плоскости.

getGeohash (precision)
ПараметрОписаниеТип данных
precision

Длина точности хеш-строки, возвращаемой для PointGeometry. Минимальная длина 1, максимальная 20. По умолчанию – 8.

(Значение по умолчанию — 8)

Integer
Возвращаемое значение
Тип данныхОписание
String

getGeohash возвращает строку geohash, основанную на координатах широты-долготы входной точечной геометрии и длине точности.

Для возвращения точного geohash пространственная привязка точечной геометрии должна быть в географической системе координат.

import arcpy

# Spatial reference set to GCS_WGS_1984
spatial_reference = arcpy.SpatialReference(4326)
pnt = arcpy.Point(-88.236, 40.096)
pnt_geometry = arcpy.PointGeometry(pnt, spatial_reference)
print(pnt_geometry.getGeohash(6))  # dp1k05
getPart ({index})
ПараметрОписаниеТип данных
index

The index position of the geometry.

Integer
Возвращаемое значение
Тип данныхОписание
Array

Полученный в результате объект Array.

intersect (other, dimension)
ПараметрОписаниеТип данных
other

Вторая геометрия.

Object
dimension

Топологическая размерность (тип формы) итоговой геометрии.

  • 1Геометрия с нулевой размерностью (точка или мультиточка).
  • 2Одномерная геометрия (полилиния).
  • 4Двумерная геометрия (полигон).
Integer
Возвращаемое значение
Тип данныхОписание
Object

Новая геометрия (точка, мультиточка, полилиния или полигон), являющаяся геометрическим пересечением двух входных геометрий.

overlaps (second_geometry)
ПараметрОписаниеТип данных
second_geometry

Вторая геометрия.

Object
Возвращаемое значение
Тип данныхОписание
Boolean

Полученное логическое значение True указывает, что пересечение двух этих геометрий имеет такой же размер, как одна из входных геометрий.

pointFromAngleAndDistance (angle, distance, {method})
ПараметрОписаниеТип данных
angle

Угол поворота до возвращённой точки в градусах.

Double
distance

Расстояние в единицах измерения пространственной привязки для возвращаемой точки.

Double
method

На измерения PLANAR влияет проецирование географических данных на двухмерную поверхность (т.е. кривизна земной поверхности не учитывается). В качестве альтернативы можно выбрать типы измерений GEODESIC, GREAT_ELLIPTIC, LOXODROME или PRESERVE_SHAPE, если необходимо.

  • GEODESICКратчайшее расстояние между двумя любыми точками поверхности земли на сфероиде (эллипсоиде). Одна из областей применения геодезических линий – определение кратчайшего расстояния между двумя городами для траектории полета самолета. Также называется ортодромической линией, если в основе измерений лежит сфероид или эллипсоид.
  • GREAT_ELLIPTICЛиния на сфероиде (эллипсоиде), определяемая пересечением поверхности плоскостью, проходящей через центр сфероида, начальную и конечную точки сегмента. При использовании на сфере также называется ортодромией.
  • LOXODROMEЛоксодромия не является кратчайшим расстоянием между двумя точками, а задает линию постоянного пеленга или азимута. Маршруты ортодромии часто разбиваются на ряд линий локсодромии, что упрощает навигацию. Также называется локсодромой.
  • PLANARПлоскостные измерения используют двухмерную (2D) декартову математику для вычисления длин и площадей. Эта опция доступна только тогда, когда измерения производятся в системе координат проекции, и двухмерная плоскость этой системы координат будет использоваться как основание для измерений.
  • PRESERVE_SHAPEЭтот тип вычисляет площадь или длину геометрии по эллипсоиду земной поверхности для геометрии, заданной в системе координат проекции или географической системе координат. Эта опция сохраняет форму геометрии в своей системе координат.

(Значение по умолчанию — GEODESIC)

String
Возвращаемое значение
Тип данныхОписание
PointGeometry

Возвращает точку при заданном угле и расстоянии в градусах и метрах.

projectAs (spatial_reference, {transformation_name})
ПараметрОписаниеТип данных
spatial_reference

The new spatial reference. This can be a SpatialReference object or the coordinate system name.

SpatialReference
transformation_name

The geotransformation name.

String
Возвращаемое значение
Тип данныхОписание
Object

Геометрия после проецирования.

symmetricDifference (other)
ПараметрОписаниеТип данных
other

Вторая геометрия.

Object
Возвращаемое значение
Тип данныхОписание
Object

Получившаяся геометрия.

toCoordString (notation)
ПараметрОписаниеТип данных
notation

Генерируемая нотация системы координат.

  • DD Десятичные градусы. Например, 34.05719570N 117.19647020W
  • DDM Градусы с десятичными минутами. Например, 34 03.43174200N 117 11.78821200W
  • DDS Градусы Минуты Секунды. Например, 34 03 25.90452000N 117 11 47.29272000W
  • GARS Global Area Reference System (Глобальная система координат). Карта мира разделяется на ячейки на основе координат широты и долготы. Например, 126LJ47
  • GEOREF Всемирная система географических координат. Например, EJCE4821203432
  • MGRS Military Grid Reference System (Военная система прямоугольных координат). Например, 11SMT8186968515
  • USNG United States National Grid. Например, 11S MT 81869 68515
  • UTM Универсальная поперечная проекция Меркатора. Например, 11S 481868 3768515
  • UTMNS Универсальная поперечная проекция Меркатора (без пробелов). Например, 11N4818683768515
None
Возвращаемое значение
Тип данныхОписание
String

Точка в выбранной нотации системы координат.

touches (second_geometry)
ПараметрОписаниеТип данных
second_geometry

Вторая геометрия.

Object
Возвращаемое значение
Тип данныхОписание
Boolean

Возвращенное логическое значение True указывает, что границы геометрий пересекаются.

union (other)
ПараметрОписаниеТип данных
other

Вторая геометрия.

Object
Возвращаемое значение
Тип данныхОписание
Object

Получившаяся геометрия.

within (second_geometry, {relation})
ПараметрОписаниеТип данных
second_geometry

Вторая геометрия.

Object
relation

Типы пространственных отношений.

  • BOUNDARY У отношений нет ограничений для внутренних частей или границ.
  • CLEMENTINI Внутренние части геометрии должны пересекаться. Указание CLEMENTINI эквивалентно None. Используется по умолчанию.
  • PROPER Границы геометрии не должны пересекаться.

(Значение по умолчанию — None)

String
Возвращаемое значение
Тип данныхОписание
Boolean

Возвращенное логическое значение True указывает, что данная геометрия содержится внутри второй геометрии.

Пример кода

Пример использования PointGeometry

Создание точечного класса объектов с нуля.

import arcpy

# A list of coordinate pairs
pointList = [[1, 2], [3, 5], [7, 3]]

# Create an empty Point object
point = arcpy.Point()

# A list to hold the PointGeometry objects
pointGeometryList = []

# For each coordinate pair, populate the Point object and create a new 
# PointGeometry object
for pt in pointList:
    point.X = pt[0]
    point.Y = pt[1]

    pointGeometry = arcpy.PointGeometry(point)
    pointGeometryList.append(pointGeometry)

# Create a copy of the PointGeometry objects, by using pointGeometryList as 
# input to the CopyFeatures tool.
arcpy.CopyFeatures_management(pointGeometryList, "c:/geometry/a.gdb/points")

Связанные разделы