Пространственная привязка для класса объектов описывает его систему координат, пространственный домен и точность.
- Система координат является аналогом проекции карты (например, географической, UTM или государственной). Она определяет математическую связь между сохраненными координатами и реальным местоположением на поверхности Земли.
- Пространственный домен можно представить в виде допустимого диапазона координат X и Y, значений M и z-значений.
- Разрешение описывает количество системных единиц на единицу измерения.
По умолчанию пространственная привязка геометрии, возвращаемая курсором поиска, совпадает с пространственной привязкой класса объектов, с которым работает курсором. Пространственную привязку можно задать также для курсора обновления или вставки.
При настройке пространственной привязки для курсора обновления или вставки определяется пространственная привязка области, в которую будет производиться запись курсором. Предположим, что предполагается вставить геометрические данные в класс объектов с системой координат UTM. Нужно считать геометрические данные из текстового файла, содержащего государственные координаты, и вставить их в этот класс объектов. Пространственная привязка класса объектов (UTM) отличается от пространственной привязки геометрических данных, считываемых из файла (государственная система плановых координат). При открытии курсора вставки на классе объектов нужно выбрать государственную пространственную привязку и указать, что вставляемые геометрические данные нужно конвертировать из государственной системы координат в UTM. Поэтому настраивать пространственную привязку курсора вставки или обновления нужно только в случае, если пространственные привязки записываемых геометрических данных и класса объектов курсора отличаются.
В случае курсора поиска указание пространственной привязки, отличающейся от пространственной привязки класса объектов курсора, приводит к трансформации геометрических данных к пространственной привязке курсора.
В следующем примере содержится точечный класс объектов с системой координат северной зоны 21 UTM, указанной в его пространственной привязке. Скрипт формирует текстовый файл, содержащий координаты точек в десятичных градусах.
import arcpy
# Describe a feature class with a geographic coordinate system
#
desc = arcpy.Describe("d:/base/data.gdb/latlongbnd")
# Create search cursor. Use the spatial reference object from the
# described feature class so geometries are returned in decimal degrees.
#
rows = arcpy.da.SearchCursor("d:/base/data.gdb/buildings", ["SHAPE@"],
spatial_reference=desc.spatialReference)
# Open the file for output. This also creates the file if it does not exist.
#
out = open(arcpy.GetParameterAsText(0), "w")
# Print the coordinates of each building point feature
#
for row in rows:
# Get the geometry's point object.
#
pnt = row[0].getPart()
# Write the x,y coordinate to the output file
#
out.write('{};{}\n'.format(pnt.X, pnt.Y)
# Close the output file
#
out.close()