Сводка
PointGeometry – это геометрия, которая не имеет ни длины, ни площади в заданном масштабе.
Описание
Во многих рабочих процессах геообработки может потребоваться запустить определенную операцию, используя информацию о координатах и геометрии, при этом не желая проходить процесс создания нового (временного) класса пространственных объектов, отображения класса пространственных объектов с помощью курсоров, использования класса пространственных объектов, и последующего удаления временного класса пространственных объектов. Чтобы упростить геообработку, вместо этого в качестве входных и выходных данных можно использовать объекты геометрии. Объекты геометрии могут создаваться сначала, используя классы Geometry, Multipoint, PointGeometry, Polygon, или Polyline.
Синтаксис
PointGeometry (inputs, {spatial_reference}, {has_z}, {has_m})
Parameter | Объяснение | Тип данных |
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 в виде строки. Подсказка:Возвращаемая строка может быть конвертирована в словарь с помощью функции Python json.loads. | 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) | Выстраивает пересечение геометрии и заданного экстента. |
contains (second_geometry, {relation}) | Показывает, содержит ли базовая геометрия сравнение геометрии. contains является противоположностью within. На этом рисунке показаны только отношения True. |
convexHull () | Выстраивает геометрию минимального ограничивающего полигона, внешние углы которого выпуклые. |
crosses (second_geometry) | Указывает на то, что две геометрии пересекаются в геометрии меньшего типа формы. Две полилинии пересекаются, если только они имеют точки соприкосновения, по крайней мере, одна из которых не является конечной точкой. Полилиния и полигон пересекаются, если они имеют общую линию или точку (для вертикальной линии) внутри полигона, который не эквивалентен всей полилинии. На этом рисунке показаны только отношения True. |
difference (other) | Выстраивает геометрию, состоящую из региона, уникального для базовой геометрии, но не являющуюся частью другой геометрии. Ниже иллюстрируются результаты, где красный полигон является исходной геометрией. |
disjoint (second_geometry) | Указывает, что базовая и сопоставляемая геометрия не имеют общих точек. Две геометрии пересекаются, если disjoint возвращает False. На этом рисунке показаны только отношения True. |
distanceTo (other) | Возвращает минимальное расстояние между двумя геометриями. Расстояние измеряться в единицах системы координат геометрии. Если геометрии пересекаются, минимальное расстояние будет равно нулю. Обе геометрии должны иметь одинаковую проекцию. |
equals (second_geometry) | Указывает, имеют ли основная и сравнительная геометрии одинаковый тип формы и определяют ли они один и то же набор точек на плоскости. Сравнение производится только в 2D; значения M и Z не учитываются. На этом рисунке показаны только отношения True. |
getGeohash (precision) | Конвертирует координаты широты и долготы PointGeometry географической системы координат в строку geohash с произвольной точностью в пределах ограничивающей рамки в гриде geohash. |
getPart ({index}) | Возвращает массив точечных объектов для определенной части геометрии или массы, содержащий несколько массивов, один для каждой части. Метод getPart эквивалентен индексированию объекта; т.е., obj.getPart(0) эквивалентен obj[0]. |
intersect (other, dimension) | Строит геометрию, являющуюся геометрическим пересечением двух входных геометрий. Для создания различных типов формы можно использовать разную размерность. Пересечением двух геометрий с одинаковым типом формы будет геометрия, содержащая только перекрывающиеся области исходных геометрий. Для ускорения процесса проверьте, не являются ли данные две геометрии disjoint, перед вызовом intersect. |
overlaps (second_geometry) | Показывает, если пересечение двух геометрий имеет тот же тип формы, что и входная геометрия и не эквивалентно любой из входных геометрий. На этом рисунке показаны только отношения True. |
pointFromAngleAndDistance (angle, distance, {method}) | Возвращает точку при заданном угле в градусах и расстоянии в единицах пространственной привязки, с использованием определенного типа измерения. |
projectAs (spatial_reference, {transformation_name}) | Проецирует геометрию и дополнительно применяет географическое преобразование. Для проецирования геометрия должна иметь пространственную привязку, значение UnknownCoordinateSystem не допускается. Новая система пространственной привязки, переданная методу, задает выходную систему координат. Если пространственная привязка неизвестна, координаты изменены не будут. Z-значения и измерения не меняются методом ProjectAs. |
symmetricDifference (other) | Строит геометрию, являющуюся геометрическим объединением двух геометрий с вычитанием пересечения этих геометрий. Обе входные геометрии должны быть одного типа. |
toCoordString (notation) | Конвертирует PointGeometry в заданную нотацию системы координат. |
touches (second_geometry) | Указывает на то, что границы геометрии пересекаются. Две геометрии соприкасаются, если пересечение геометрий не является пустым, а пересечение их внутренних частей пусто. Например, точка касается полилинии, только, если точка совпадает с одной из конечных точек полилинии. На этом рисунке показаны только отношения True. |
union (other) | Строит геометрию, являющуюся теоретико-множественным объединением входных геометрий. Обе объединяемые геометрии должны быть одного типа. |
within (second_geometry, {relation}) | Показывает, если базовая геометрия находится внутри сравнения геометрии. within является противоположностью оператора contains. На этом рисунке показаны только отношения True. Базовая геометрия находится внутри сравниваемой геометрии, если она является пересечением геометрий, и пересечение их внутренних частей не является пустым. within является оператором Клементини, за исключением случаев, когда базовая геометрия пуста. |
Методы
angleAndDistanceTo (other, {method})
Parameter | Объяснение | Тип данных |
other | Вторая геометрия. | PointGeometry |
method | PLANAR измерения отражают проекцию географических данных на 2D поверхность (другими словами, они не будут учитывать кривизну Земли). Если требуется, то в качестве альтернативы можно выбрать типы измерений GEODESIC, GREAT_ELLIPTIC, LOXODROME и PRESERVE_SHAPE.
(Значение по умолчанию — GEODESIC) | String |
Тип данных | Объяснение |
tuple | Возвращает кортеж из угла (в градусах) и расстояния (в метрах) до другой точки. |
boundary ()
Тип данных | Объяснение |
Object | Границей полигона является полилиния. Границей полилинии является мультиточка, соответствующая конечным точкам линии. Границей точки или мультиточки является пустая точка или мультиточка. |
buffer (distance)
Parameter | Объяснение | Тип данных |
distance | Буферное расстояние. Буферное расстояние измеряется в тех же единицах, что и буферизуемая геометрия. Отрицательное расстояние можно указать только для геометрии полигонов. | Double |
Тип данных | Объяснение |
Polygon | Полигональная геометрия с буферизацией. |
clip (envelope)
Parameter | Объяснение | Тип данных |
envelope | Объект экстента, используемый для определения экстента обрезания. | Extent |
Тип данных | Объяснение |
Object | Выходная геометрия, обрезанная до определенного экстента. |
contains (second_geometry, {relation})
Parameter | Объяснение | Тип данных |
second_geometry | Вторая геометрия. | Object |
relation | Типы пространственных отношений.
(Значение по умолчанию — None) | String |
Тип данных | Объяснение |
Boolean | Возвращенное логическое значение True указывает, что данная геометрия содержит вторую геометрию. |
convexHull ()
Тип данных | Объяснение |
Object | Получившаяся геометрия. Выпуклой оболочкой точки является сама эта точка. |
crosses (second_geometry)
Parameter | Объяснение | Тип данных |
second_geometry | Вторая геометрия. | Object |
Тип данных | Объяснение |
Boolean | Возвращенное логическое значение True указывает пересечение двух геометрий в геометрии меньшего типы формы. |
difference (other)
Parameter | Объяснение | Тип данных |
other | Вторая геометрия. | Object |
Тип данных | Объяснение |
Object | Получившаяся геометрия. |
disjoint (second_geometry)
Parameter | Объяснение | Тип данных |
second_geometry | Вторая геометрия. | Object |
Тип данных | Объяснение |
Boolean | Возвращенное логическое значение True указывает, что у двух геометрий нет общих точек. |
distanceTo (other)
Parameter | Объяснение | Тип данных |
other | Вторая геометрия. | Object |
Тип данных | Объяснение |
Double | Расстояние между двумя геометриями. |
equals (second_geometry)
Parameter | Объяснение | Тип данных |
second_geometry | Вторая геометрия. | Object |
Тип данных | Объяснение |
Boolean |
Полученное логическое значение Истина (True) указывает на то, что обе эти геометрии имеют одинаковый тип формы и определяют один и тот же набор точек на плоскости. |
getGeohash (precision)
Parameter | Объяснение | Тип данных |
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})
Parameter | Объяснение | Тип данных |
index | Значение индекса геометрии. | Integer |
Тип данных | Объяснение |
Array | getPart возвращает массив точечных объектов для конкретной части геометрии при указанном индексе. Если индекс не указан, возвращается массив, содержащий массивы точечных объектов для каждой части геометрии. |
intersect (other, dimension)
Parameter | Объяснение | Тип данных |
other | Вторая геометрия. | Object |
dimension | Топологическая размерность (тип формы) итоговой геометрии.
| Integer |
Тип данных | Объяснение |
Object | Новая геометрия (точка, мультиточка, полилиния или полигон), являющаяся геометрическим пересечением двух входных геометрий. |
overlaps (second_geometry)
Parameter | Объяснение | Тип данных |
second_geometry | Вторая геометрия. | Object |
Тип данных | Объяснение |
Boolean | Полученное логическое значение True указывает, что пересечение двух этих геометрий имеет такой же размер, как одна из входных геометрий. |
pointFromAngleAndDistance (angle, distance, {method})
Parameter | Объяснение | Тип данных |
angle | Угол поворота до возвращённой точки в градусах. | Double |
distance | Расстояние в единицах измерения пространственной привязки для возвращаемой точки. | Double |
method | На измерения PLANAR влияет проецирование географических данных на двухмерную поверхность (т.е. кривизна земной поверхности не учитывается). В качестве альтернативы можно выбрать типы измерений GEODESIC, GREAT_ELLIPTIC, LOXODROME или PRESERVE_SHAPE, если необходимо.
(Значение по умолчанию — GEODESIC) | String |
Тип данных | Объяснение |
PointGeometry | Возвращает точку при заданном угле и расстоянии в градусах и метрах. |
projectAs (spatial_reference, {transformation_name})
Parameter | Объяснение | Тип данных |
spatial_reference | Новая пространственная привязка. Это может быть объект SpatialReference или имя системы координат. | SpatialReference |
transformation_name | Имя географического преобразования. | String |
Тип данных | Объяснение |
Object | Проецированная геометрия. |
symmetricDifference (other)
Parameter | Объяснение | Тип данных |
other | Вторая геометрия. | Object |
Тип данных | Объяснение |
Object | Получившаяся геометрия. |
toCoordString (notation)
Parameter | Объяснение | Тип данных |
notation | Генерируемая нотация системы координат.
| None |
Тип данных | Объяснение |
String | Точка в выбранной нотации системы координат. |
touches (second_geometry)
Parameter | Объяснение | Тип данных |
second_geometry | Вторая геометрия. | Object |
Тип данных | Объяснение |
Boolean | Возвращенное логическое значение True указывает, что границы геометрий пересекаются. |
union (other)
Parameter | Объяснение | Тип данных |
other | Вторая геометрия. | Object |
Тип данных | Объяснение |
Object | Получившаяся геометрия. |
within (second_geometry, {relation})
Parameter | Объяснение | Тип данных |
second_geometry | Вторая геометрия. | Object |
relation | Типы пространственных отношений.
(Значение по умолчанию — None) | String |
Тип данных | Объяснение |
Boolean | Возвращенное логическое значение True указывает, что данная геометрия содержится внутри второй геометрии. |
Пример кода
Создание точечного класса объектов с нуля.
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")