0
我对Python仍然很陌生。我要带领一个项目,在税地图上绘制我们县内的建筑脚印。在ArcGIS中使用Python从原点创建多边形/折线?
我已经找到了前面的问题,可能是非常有帮助的这个项目:https://gis.stackexchange.com/questions/6724/creating-line-of-varying-distance-from-origin-point-using-python-in-arcgis-deskt
我们卡马系统生成的意见/表所需要的信息。下面是一个例子:
PARID LLINE VECT X_COORD Y_COORD
1016649 0 R59D26L39U9L20U17 482547 1710874
180,59,270,26,0,39,90,9,0,20,90,17 (VECT column converted)
我已经发现了一些Python示例的VECT列,该列是距离和方向调用的角度和由逗号分隔的距离转换。
我的问题:有没有实现循环到下面的脚本利用一个表,而不是静态的方式,用户输入,数字?由于我们有数千个多边形要建设,因此这对该县非常有价值。
下面是改变距离和角度x的代码段,以在ArcMap 10.2
#Using trig to deflect from a starting point
import arcpy
from math import radians, sin, cos
origin_x, origin_y = (400460.99, 135836.7)
distance = 800
angle = 15 # in degrees
# calculate offsets with light trig
(disp_x, disp_y) = (distance * sin(radians(angle)),\
distance * cos(radians(angle)))
(end_x, end_y) = (origin_x + disp_x, origin_y + disp_y)
output = "offset-line.shp"
arcpy.CreateFeatureClass_management("c:\workspace", output, "Polyline")
cur = arcpy.InsertCursor(output)
lineArray = arcpy.Array()
# start point
start = arcpy.Point()
(start.ID, start.X, start.Y) = (1, origin_x, origin_y)
lineArray.add(start)
# end point
end = arcpy.Point()
(end.ID, end.X, end.Y) = (2, end_x, end_y)
lineArray.add(end)
# write our fancy feature to the shapefile
feat = cur.newRow()
feat.shape = lineArray
cur.insertRow(feat)
# yes, this shouldn't really be necessary...
lineArray.removeAll()
del cur
生成ÿ点任何建议,将不胜感激。
谢谢你宝贵的时间和知识。
感谢您的快速响应。每个多边形的每一行是否需要创建自己的字典?正如问题中提到的,我们有几千个多边形可供创建。 @Daniel –
@MichaelCore是的,如果数据来自表格,你可以指定一个多边形ID,然后用它的属性创建一个DIC。您必须动态创建dic的dic,而不是手动创建。 –
非常感谢您的洞察力。我会检查一些食谱和帮助文件,看看我能产生什么。我会尽快发布我的代码并标记您的答案,以便我可以分享一些有用的内容。非常感谢你@Daniel –