要素类的空间参考用于描述要素类的坐标系、空间域和精度。
- 坐标系类似于地图投影(例如,地理投影、通用横轴墨卡托 (UTM) 投影和美国国家平面投影)。它定义了存储坐标和地球上实际位置之间的数学关系。
- 空间域通过 x,y 坐标、m(测量)值和 Z 值的允许坐标范围来准确描述。
- 分辨率用于描述每个测量单位的系统单元数。
默认情况下,从搜索游标返回的几何空间参考与通过游标打开的要素类空间参考相同。还可以在更新或插入游标上设置空间参考。
在更新或插入游标上设置空间参考时,您声明的是要通过该游标写入的几何的空间参考。例如,假设要将几何插入一个采用 UTM 坐标的要素类。您将从包含美国国家平面坐标的文本文件读取几何并将其插入到该要素类中。该要素类的空间参考 (UTM) 不同于要从文本文件读取的几何的空间参考(美国国家平面)。当在要素类上打开插入游标时,如果将游标的空间参考设置为美国国家平面,则表明要将所插入几何的空间参考从美国国家平面转换到 UTM。因此,仅当所写入几何与游标要素类处于不同的空间参考时,才需要设置插入或更新游标的空间参考。
对于搜索游标的情况,指定不同于游标要素类的空间参考将导致几何的空间参考转换为游标的空间参考。
以下示例有一个空间参考中定义采用坐标系 UTM zone 21N 的点要素类。该脚本将产生一个包含十进制度点坐标的文本文件。
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()