S-52显示扩展

SuperMap iDesktopX 产品包根目录下的 bin/Resource/Chart/Presentation/S52 文件夹组织了控制海图物标显示的文件,包括 ColorTable、LookupTable、SymbolLib 三个文件夹。您可以通过修改或定义 ColorTable、SymbolLib 中的颜色表及符号风格,最后在 LookupTable 中修改或添加显示命令,以达到控制海图显示的目的。

文件夹说明

控制海图显示的文件夹具体说明如下:

  • ColorTable:文件夹中的 xml 文件定义了海图显示颜色表,与海图属性面板中的颜色模式参数相对应。
    • DayBright.xml 为白昼颜色表;
    • Dusk.xml 为晨昏颜色表;
    • Night.xml 为夜晚颜色表;

    您可修改文件中的 RGB 值,也可添加 Color 标签来扩展颜色,当需要在其他文件里设置颜色时,直接调用 token 值即可。

  • LookupTable:dic 文件定义了复杂点符号、简单点符号、线符号、符号化边界面符号、简单边界面符号显示命令。您可在对应的文件中修改或添加符号指令进行符号显示扩展。各文件的内容介绍如下:

    • psymref_paperchart.dic 记录了复杂点符号显示命令;
    • psymref_simplified.dic 记录了简单点符号显示命令;
    • lsymref.dic 记录了线符号显示命令;
    • asymref_symbolized.dic 记录了符号化边界面符号显示命令;
    • asymref_plain.dic 记录了简单边界面符号显示命令;
  • SymbolLib:文件夹中文件为 SuperMap 点线面符号库,分别记录了海图中用到的符号。您可打开符号库预览符号,也可绘制新的海图符号,进行符号扩展。在符号编辑器中,可按照 S-52 标准中符号宽高比例进行绘制,然后设置符号的默认大小为标准中要求的符号大小即可。如下图为点符号库:

扩展规则说明

SuperMap iDesktopX 支持扩展内河电子航道图、军用图的物标,这里以扩展内河电子航道图规范(CJ-57)中的水底/陆地管道物标的显示为例,详细介绍命令"PIPSOL","PRODCT3","LC(PIPSOL06)","6","O","OTHER","34070" 中的各参数:

命令内容(按逗号分隔)
说明
PIPSOL
为物标缩写,表示水底/陆地管道
PRODCT3
PRODCT为物标属性字段,3为值。即PRODCT=3的时候显示后面的风格,否则采用默认风格,当此处双引号内容为空时,表示默认风格。
LC(PIPSOL06)
表示线数据集的显示符号名称为PIPSOL06,PIPSOL06为符号名称(可从资源符号库中获取)。不同数据集的显示符号规则如下:
  • SY(点符号名):针对线数据,表示为线上的图标,对于面数据,则为面数据内的显示图标
  • LS(线型,线宽,颜色):可用于线数据和面数据边界的显示,如LS(SOLD,3,CHGRD),表示以线型为SOLD、线宽为3、线颜色为CHGRD显示线和面数据集的边界。
  • LC(线符号名):设置线数据的显示符号,线符号名可从资源符号库中获取。
  • AP(面符号名):设置面数据的填充符号,面符号名可从资源符号库中获取。
  • AC(颜色名称):面数据的背景填充色,在括号里输入颜色名称即可。在根目录bin/Resource/Chart/Presentation/S52/ColorTable文件夹中可以查询到颜色名称。
  • cs(符号名):内部符号命令,不可自定义修改。
  • TE():与上述规则一同使用,控制文本符号的样式,其详细规则说明请参见TE()规则说明
  • TX():规则与TE类似。
6
表示物标显示的优先级。
O
表示是否跟雷达相关,目前都是O,不影响显示效果。
OTHER
Base,Standard,OTHER:为物标显示类别。对应海图属性面板上显示类型。比如当这个物标设置为Standard时,而海图属性面板上设置为基础后,这个物标在地图中将不显示。
34070
34070为viewing group。类似将物标进行了逻辑分组,不影响显示效果

以 TE('bn%s','OBJNAM',2,1,2,'15110',-1,-1,CHBLK,21) 为例,规则说明如下:

命令内容(按逗号分隔)
说明
bn%s
某个字段值前面需要显示的前缀固定文本内容,一般和后面紧跟的字段配合使用。如('bn%s','OBJNAM'),当OBJNAM字段的值为刘家湾时,这个对象的文本显示内容为:bn 刘家湾。 对于数值型字段,如('%4.11f kn','CURVEL'),表示数值型字段值的小数位数保留两位,即某个对象的CURVEL字段的值为1245.23450002,则显示文本内容为:1245.23 kn。
%s,%4.1lf是C++语言的转义字符,您还可以在文件中看到或用到%03.0lf、%f等,详细说明请您参考C++语言。
OBJNAM
字段名称,使用方法同上。
2
文本水平对齐方式:
  • 1:表示中间对齐。
  • 2:表示右对齐。
  • 3:表示左对齐。
1
文本垂直对齐方式:
  • 1:表示底部对齐,定位点位于文本字符串的底线上。
  • 2:表示中部对齐,定位点位于文本字符串的中线上。
  • 3:表示顶部对齐,定位点位于文本字符串的顶线上。
2
文本文字间隔,可设置的值有1、2、3三种。
  • 1:表示将文本间隔设置为FitSpace。
  • 2:表示将文本间隔设置为StandardSpace。
  • 3:表示将文本间隔设置为StandardSpaceAndWordWrap。
15110
15110为viewing group,类似将物标进行了逻辑分组,不影响显示效果。
-1
文本在X方向上的偏移量
-1
文本在Y方向上的偏移量
CHBLK
文本颜色,在根目录bin/Resource/Chart/Presentation/S52/ColorTable文件夹中可以查询到颜色值。
21
表示文本显示的优先级,目前程序内部暂时没有用到。
注意事项:
  • 由于显示命令扩展是纯文本编辑,因此需要注意字符编写格式,双引号、逗号、括号都必须为英文字符,同时字符之间不能有空格。
  • 扩展时,建议都放在 .dic 文件的 section one 中,并且内容采用大写字母,可以找类似的已经定义好的规则来借鉴。

相关主题

 

物标定义查询

物标扩展

物标属性扩展

S-58检查扩展