#coding=utf-8
#①要素幾何由點point構成
#要素類中的每個要素都包含一組用於定義 面或線 折點的點,或者包含單個用於定義乙個 點要素 的點。
#可以使用幾何物件(polygon、polyline、pointgeometry 或 multipoint)訪問這些點,
#幾何物件將以 point 物件的陣列形式返回這些點。
#②多部件
#要素的幾何可具有多個部件,幾何物件的 partcount 屬性將返回要素的部分數目。
#如果指定了索引,則 getpart(i) 方法將返回特定幾何部分的點物件陣列。
#如果未指定索引,則返回的陣列將包含每個幾何部分的點物件陣列。[[p,p,p],]
#多部件要素是由多個物理部分組成的,但是只引用資料庫中的一組屬性。
#例如,在州行政區圖層中,可將夏威夷州看作是乙個多部件要素。雖然它是由許多島嶼組成的,但在資料庫中仍將其記錄為乙個要素。#③環
#如果乙個面包含多個洞,它將由多個環組成。針對面返回的點物件陣列將包含外部環及所有內部環的點。
#外部環總是先返回,接著是內部環,其中以空點物件作為環之間的分隔符。none
#環是乙個用於定義二維區域的閉合路徑。
#有效的環是由有效路徑組成的,因而環的起點和終點具有相同的 x,y 座標。
#順時針環是外部環,逆時針環則定義內部環。
import
arcpy
## 3個環的組成點集合
#points1=[[0,0],[0,10],[10,10],[10,0],[0,0]]
#points2=[[2,2],[2,8],[8,8],[8,2],[2,2]]
#points3=[[4,4],[4,6],[6,6],[6,4],[4,4]]##
# 3個環的array物件
#ring1=arcpy.array([arcpy.point(*p) for p in points1])
#ring2=arcpy.array([arcpy.point(*p) for p in points2])
#ring3=arcpy.array([arcpy.point(*p) for p in points3])##
polygon=arcpy.polygon(arcpy.array([ring1,ring2,ring3]))##
partindex=1
#for part in polygon:
#print 'part%d:'%partindex
#partindex+=1
#for point in part:
#if point:
#print '{},{}'.format(int(point.x),int(point.y))
#else:
#print 'innerring'
featureclass=r"
e:\3 coding\py code\arcpy\create\polygon\polygon_multipart.shp
"with arcpy.da.searchcursor(featureclass,[
"shape@
"]) as cursor:
polygonindex=1
for row in
cursor:
'polygon%d
'%polygonindex
polygonindex+=1partindex = 1
for part in
row[0]:
'part%d:
' %partindex
partindex += 1
for point in
part:
ifpoint:
'{},{}
'.format(int(point.x), int(point.y))
else
:
'innerring
'
arcpy縮放至所選要素
encoding utf 8 獲取地 檔中的圖層列表 mxd可引用網路驅動器上的文件 import arcpy mxdpath r c users h desktop fp.mxd mxd.activedataframe.zoomtoselectedfeatures 若mxd中沒有選擇的圖層,則會縮...
使用arcpy進行簡單的要素編輯
類似上篇部落格內容,這次直接對要素屬性內容考試編輯 import arcpy from arcpy import env env.workspace r c usersyaodocumentsarcgisdefault.gdb print 修改之前 cur arcpy.searchcursor 地級...
獲取要素類
獲取所有要素類 要素集 要素類列表 public static listgetallfeatureclass ifeaturedataset featuredataset return featureclasslist 獲取要素類 要素資料集 要素類名稱 要素類物件 public static if...