Настройка пространственной привязки курсора
Пространственная привязка для класса объектов описывает его систему координат, пространственный домен и точность.
- Система координат является аналогом проекции карты (например, географической, 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(pnt.X + ";" + pnt.Y + "\n")
# Close the output file
#
out.close()