欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 艺术 > ARCGIS PRO 要素标注

ARCGIS PRO 要素标注

2024/10/24 10:59:49 来源:https://blog.csdn.net/xa13850869/article/details/138967816  浏览:    关键词:ARCGIS PRO 要素标注

一、普通模式

1、标注:名称和面积(无分数线)
语言:Arcade
      $feature.QLR +'\n'+Round($feature.Shape_Area,2)
语言:vbscript
     [QLR] & " " & Round([Shape_Area],2)

2、标注:名称和宗地号(放大是虚线)
语言:vbscript
Space(1) & [QLR] & vbNewLine &  "————" & Space(1)  & vbNewLine & [ZDDM] 

3、标注:名称和宗地号(解决分数线打印为虚线的问题)
语言:vbscript
Space(1) & [QLR] & vbNewLine & "<CHR spacing = '" & -1 * Int(10) & "'>" + "----------" + "</CHR>" & Space(1) &   vbNewLine & [ZDDM] 

 4、标注:名称和宗地号及面积注记(未左对齐)
语言:vbscript
Space(1) &  [QLR] & vbNewLine & "<CHR spacing = '" & -1 * Int(10) & "'>" + "-----" + "</CHR>" & Space(1) & Round([Shape_Area],2) & vbNewLine & [ZDDM]

5、标注:名称和宗地号及面积注记(推荐)
语言:vbscript
"<und>" & [ZDDM] &"—"& [QLR]  & "</und>" & vbnewline & [FRMC]  & "—" & [FRDHHM]

二、高级模式

1、二分式对齐标注
语言:vbscript
Function strlen(str)
    Dim p_len
    p_len=0
    strlen=0
    p_len=Len(str)
    For xx=1 To p_len
        If Asc(Mid(str,xx,1))<0 Then
            strlen=Int(strlen) + 2
        Else
            strlen=Int(strlen) + 1
        End If
    Next
End Function
Function myFind ( DZM, NAME )
    If dzm<>"" Then a=strlen(dzm) Else a=0
    If NAME<>"" Then b=strlen(NAME)  Else b=0
    If a>b Then 
       myFind ="<und>" & DZM & "</und>" &  vbnewline & NAME
   Else
        str= Space((b-a)/2)
        myFind ="<und>" & str & DZM & str & "</und>" & vbnewline & NAME
    End If
End Function

Function FindLabel ([ZDDM],[QLR])
  FindLabel =myFind([ZDDM],[QLR])
End Function

2、三分式对齐标注
语言:vbscript
Function strlen(str)
   Dim p_len
   p_len=0
   strlen=0
   p_len=Len(str)
   For xx=1 To p_len
        If Asc(Mid(str,xx,1))<0 Then
            strlen=Int(strlen) + 2
        Else
            strlen=Int(strlen) + 1
        End If
   Next
End Function
Function myFind(cunname,DJH,SHAPE_Area)
    Dim str
    str=Round(SHAPE_Area,2)
    Dim d
    d=strlen(str)
    Dim d1
    Dim d2
    If cunname<>"" Then d1=strlen(cunname) /2 Else d1=0
    If d1<1 Then  
        d1=1
    End If
    If DJH<>"" Then d2=strlen(DJH) /2 Else d2=0
    If d2<1 Then  
        d2=1
    End If
    If d2>d1 Then
         d1=d2
   End If 
    myFind = cunname  &  Space(d/2) & vbnewline  & String(d1,"—") & str & vbnewline & DJH  & Space(d/2)
End Function

Function FindLabel ([ZDDM],[QLR],[Shape_Area])
  FindLabel =myFind([ZDDM],[QLR],[Shape_Area])
End Function

3、三分式对齐标注(前)
语言:vbscript
Function strlen(str)
   Dim p_len
   p_len=0
   strlen=0
   p_len=Len(str)
   For xx=1 To p_len
        If Asc(Mid(str,xx,1))<0 Then
            strlen=Int(strlen) + 2
        Else
            strlen=Int(strlen) + 1
        End If
   Next
End Function
Function myFind(cunname,DJH,SHAPE_Area)
    Dim str
    str=Round(SHAPE_Area,2) & " "
    Dim d
    d=strlen(str)
    Dim d1
    Dim d2
    If cunname<>"" Then d1=strlen(cunname) /2 Else d1=0
    If d1<1 Then  
        d1=1
    End If
    If DJH<>"" Then d2=strlen(DJH) /2 Else d2=0
    If d2<1 Then  
        d2=1
    End If
    If d2>d1 Then
         d1=d2
   End If 
   myFind = Space(d/2) & cunname  & vbnewline  & str & String(d1, "—") & vbnewline & Space(d/2) & DJH 
End Function

Function FindLabel ([ZDDM],[QLR],[Shape_Area])
  FindLabel =myFind([ZDDM],[QLR],[Shape_Area])
End Function

三、总结

    将所有标注类型可以总结为:前部、分子、分母、后部四部分:

语言:vbscript
通用标注表达式:
Space(1) &  [分子]   & vbNewLine & [前部] & "<CHR spacing = '-10' >" +  String(5, "—") + "</CHR>"+ Space(1) + [后部]+ vbNewLine & [分母]
在通用表达式式中的标注的字段均可定义,将通用格式扩展为,如:
Space(1) &  [标注字段]   & vbNewLine........  扩展为:Space(1) & "标注描述" & [标注字段]  & "标注描述结束" & vbNewLine........
例如:
     定义颜色:Space(1) & "<CLR red='255'>" & [标注字段]  & "</CLR>" & vbNewLine........
     定义大小:Space(1) & "标注描述" & [标注字段]  & "标注描述结束" & vbNewLine........
可扩展为:
Space(1) & "" & [分子] & "" &  vbNewLine & "<CLR red='255'><FNT size = '10'>"  & [前部] & "</FNT></CLR>" & "<CHR spacing = '-10' >" +  String(5, "—") + "</CHR>"+ Space(1) + "" & [后部]+ "" & vbNewLine & "" & [分母]  & "",效果如下:

归纳如下:
1、  Font: 字体及大小:"<FNT name='Arial' size='18'>" & [LABELFIELD] & "</FNT>"
2、 Color: 颜色:"<CLR red='255' green='255' blue='255'>" & [LABELFIELD] & "</CLR>" 
               或者:
                   "<CLR cyan='100' magenta ='100' yellow='100' black='100'>" & [LABELFIELD] & "</CLR>"
3、 Bold: 加粗:"<BOL>" & [LABELFIELD] & "</BOL>"
4、 Italic: 斜体:"<ITA>" & [LABELFIELD] & "</ITA>"
5、 Underline: 下划线:"<UND>" & [LABELFIELD] & "</UND>"
6、 All caps: 大写:"<ACP>" & [LABELFIELD] & "</ACP>"
7、 Small caps: 小写:"<SCP>" & [LABELFIELD] & "</SCP>"
8、 Superscript 上标:"<SUP>" & [LABELFIELD] & "</SUP>"
9、 Subscript: 下标:"<SUB>" & [LABELFIELD] & "</SUB>"
10、Character spacing (%): 字体间隔:"<CHR spacing='25'>" & [LABELFIELD] & "</CHR>"
11、Word spacing (%): 词间隔:"<WRD spacing='150'>" & [LABELFIELD] & "</WRD>"
12、Leading (pts): 在前面的,重要的:"<LIN leading='12'>" & [LABELFIELD] & "</LIN >"

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com