如果你想用将标签平铺到注释但是没有多边形索引层,你可以使用Python创建一个包含地图比例尺和每个地图帧的名称的多边形索引层:
import arcpy from arcpy import env #设置输出特性类的输出位置和名称workspace = "C:/temp/test_project/data. "gdb" #将在gdb中创建的新特性类的名称outputFcName = "MapExtents" outputFeatureClass = env. gdb"workspace + "/" + outputFcName aprx = arcpy.mp.ArcGISProject("CURRENT") layout = aprx. listlayouts ()[0] mapFrames = layout. listelements ("MAPFRAME_ELEMENT") #创建新的特征类来保存输出workspace, outputFcName, "POLYGON", "", "DISABLED", "DISABLED", "WGS_1984_Web_Mercator_Auxiliary_Sphere") #添加字段来存储名称和缩放属性。AddField(outputFeatureClass, "MapFrameName", "TEXT", 0,0,100)AddField(outputFeatureClass, "MapScale", "DOUBLE", None, None) #存储每个映射帧的范围细节的数组outputFeatures =[] #在布局中循环每个映射帧,并在mapFrames中存储帧的地图帧范围细节:# print(frame.name + "\t" +str(frame.camera.scale)) extent = frame.camera. getextent () outputFeatures.append((extent. size))polygon, frame.name, frame.camera.scale))InsertCursor(outputFeatureClass, ['SHAPE@', "MapFrameName", "MapScale"])用于outputFeatures中的输出:InsertCursor . insertrow (output) del InsertCursor
然后使用这些参数运行Tiled Labels To Annotation工具:
该工具的结果将是新的注释层,它们的引用尺度被添加到名称中,每个注释层被添加到一个单独的组中,如下所示:
如果你的一些地图帧与其他地图帧重叠,你可能会有标签冲突,所以你可以在groupanno# ##层上设置可见范围,这样它们只会以预期的比例显示。
另一个可以考虑的选择是将标签转换为图形对于覆盖所有地图帧的区域,然后将图形层的参考比例尺更改为None。注释需要参考尺度,而图形则不需要。如果你的一些地图帧重叠,你可能会有麻烦把标签放在你想要的地方,因为所有的地图帧共享相同的地图,因此相同的图形集。如果这是一个问题,平铺注释可能更好。