|
import arcpy
# 设置工作空间和输出路径
workspace = r"C:\path\to\your\workspace"
output_folder = r"C:\path\to\your\output\folder"
# 定义比例尺列表
scales = [100000, 50000, 25000, 10000, 5000, 2500, 1000]
# 遍历比例尺列表
for scale in scales:
# 创建空的地图文档
mxd = arcpy.mapping.MapDocument("CURRENT")
df = arcpy.mapping.ListDataFrames(mxd)[0]
df.spatialReference = arcpy.SpatialReference(4326) # WGS84坐标系
# 设置图幅大小和行列数
if scale == 100000:
width = 6
height = 4
elif scale == 50000:
width = 12
height = 4
elif scale == 25000:
width = 24
height = 4
elif scale == 10000:
width = 60
height = 4
elif scale == 5000:
width = 120
height = 4
elif scale == 2500:
width = 240
height = 4
elif scale == 1000:
width = 600
height = 4
# 计算图幅范围
xmin = -180
ymin = -90
xmax = xmin + width * 6
ymax = ymin + height * 4
# 创建矩形要素类
rectangle = arcpy.Polygon(arcpy.Array([arcpy.Point(xmin, ymin),
arcpy.Point(xmax, ymin),
arcpy.Point(xmax, ymax),
arcpy.Point(xmin, ymax)]), df.spatialReference)
# 创建图幅图层
feature_class = arcpy.CreateFeatureclass_management(workspace, f"Standard_Scale_{scale}.shp", "POLYGON", spatial_reference=df.spatialReference)
arcpy.AddField_management(feature_class, "图幅号", "TEXT")
# 插入图幅要素
with arcpy.da.InsertCursor(feature_class, ["SHAPE@", "图幅号"]) as cursor:
for row in range(height):
for col in range(width):
# 计算图幅范围
xmin = -180 + col * 6
ymin = -90 + row * 4
xmax = xmin + 6
ymax = ymin + 4
# 创建矩形要素
rectangle = arcpy.Polygon(arcpy.Array([arcpy.Point(xmin, ymin),
arcpy.Point(xmax, ymin),
arcpy.Point(xmax, ymax),
arcpy.Point(xmin, ymax)]), df.spatialReference)
# 插入图幅要素
cursor.insertRow((rectangle, f"{col+31}{row+1}"))
# 保存地图文档
mxd.saveACopy(f"{output_folder}\\Standard_Scale_{scale}.mxd")
# 释放资源
del mxd, df, feature_class, cursor
|
|