没有参考尺度的注释

76
1
01-03-2023 08:12 am
IanLadd
通过
新贡献者II

你好!

我有一个不同参考比例尺的20个地图帧的布局,都来自一张地图。我想把我的标签转换为注释,但是当我这样做的时候,注释层设置了它自己的参考比例。我想简单地将我的标签转换为注释,而不需要参考尺度。

我看到了瓷砖标签注释工具,但我没有一个多边形索引层。

任何帮助都太好了!

——伊恩

0荣誉
1回复
JesseWickizer
通过 Esri贡献者
Esri贡献者

如果你想用将标签平铺到注释但是没有多边形索引层,你可以使用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工具:

  • 多边形索引层:脚本生成的MapExtents层
  • 贴图ID字段:MapFrameName(在MapExtents层中创建的字段)
  • 参考缩放字段:MapScale(在MapExtents层中创建的字段)

该工具的结果将是新的注释层,它们的引用尺度被添加到名称中,每个注释层被添加到一个单独的组中,如下所示:

jessewickizer_0 - 1672943252433. - png

如果你的一些地图帧与其他地图帧重叠,你可能会有标签冲突,所以你可以在groupanno# ##层上设置可见范围,这样它们只会以预期的比例显示。

jessewickizer_1 - 1672943357660. - png

另一个可以考虑的选择是将标签转换为图形对于覆盖所有地图帧的区域,然后将图形层的参考比例尺更改为None。注释需要参考尺度,而图形则不需要。如果你的一些地图帧重叠,你可能会有麻烦把标签放在你想要的地方,因为所有的地图帧共享相同的地图,因此相同的图形集。如果这是一个问题,平铺注释可能更好。

jessewickizer_2 - 1672943442204. - png

0荣誉