- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
也谈分数标注的问题
经常被朋友问到分数标注的问题,如林班的标注。在坛子里搜索,大伙给出了很多方案。最常见的是勾选advance后,用VBA语言,利用“—”来划那条横线,或者利用对分子加下划线的形式加横线。下边看下具体例子【其中引用了很多以前坛子里大家滴成果】:
如只想简单的标注成分数形式,那是很easy的,如以shape_length作分子,shape_area作分母,则其设置方式为:
试验1:
图1简单分数形式标注设置
即,对分子[Shape_Length]字段加下划线,然后用vbnewline换行,再加上[Shape_Area]字段即可。
UND[Shape_Length]/UNDvbnewline[Shape_Area]
复制代码
此时存在的问题是,有可能分子的长度小于分母,导致下划线长度不够,缺少美观,改进方式为,增加长度判断,并以—代替下划线,则此时将分子、横线和分母,作三行显示。其设置如下:
试验2
图2调整中间横线长度的设置
用len([字段])来获取字段值的长度,如12.34,其长度为4,而123.45,其长度为5。用if..then..endif条件判断语句,使max取得最长字段的长度,作为—长度计算值。string(int(max/2),—)的作用为:绘制int(max/2)个—,
而int(max/2)是因为一个中文输入法下的—占据了2个英文字符的长度,因此要除2取整。
FunctionFindLabel([Shape_Length],[Shape_Area],[DM])
max=len([Shape_Length])
ifmaxlen([Shape_Area])then
max=len([Shape_Area])
endif
FindLabel=[Shape_Length]
FindLabel=[Shape_Length]vbnewline[DM]string(int(max/2),—)vbnewline
[Shape_Area]
EndFunction
复制代码
标注作如上设置,使其聚合:
图3解决标注行间过于分散的设置
完成上述设置,则纯粹的分子/分母的标注形式就完成了。
但往往我们的需求不止于此,还需要在分数的左边再加一个字段,如图:
试验3:
图43个字段的分数形式设置
即,在上一步的基础上,对分子,分母前分别加上与[DM]字段等长的空格,用s=string(len([DM]),)表示。然后把[DM]字面放在横线所在行即可。
FunctionFindLabel([Shape_Length],[Shape_Area],[DM])
max=len([Shape_Length])
ifmaxlen([Shape_Area])then
max=len([Shape_Area])
endif
s=string(len([DM]),)
FindLabel=s[Shape_Length]vbnewline[DM]string(int(max/2),—)vbnewlines[Shape_Area]
EndFunction
复制代码
理论上可行,但我们发现空格好像被忽略了,不论对变量s增加多少个空格长度,分子分母
都总要往左挤。
-----^-^我是可爱的分割线^-^ 以上为
坛子里大家的总结,以下为本人心得 ^-^
为此,我试验了很多方法,把代码修改来修改去,始终无法达以完美的效果。突然意识到,这个问题跟代码无关,而应该跟arcmap内部的设置有关。
的确,仔细看上述所有试验的标注发现两点:1)标注是默认居中对齐的(试验1、2可以看以明显效果)
系统默认把我加的空格给忽略掉了。(这是导致试验3无效的主因)
从上述着手,我找到两种不同的解决方案。对于10.1及以后版本中,maplex增加了一个细小的新功能:
图5去除标注内多余空格的设置
在labelexpression界面,切换到maplex选项卡,发现有一个叫removeextraspacefromlabel的功能项,默认设置是勾选的。
它的作用为:去除标注中无效的空格,所谓无效,是指标注行开始和末尾处的空格。即,我们不论在分子或分母(因为此时分子、分母都是单独成行的)的前或后任意加多少空格,都
会被忽视掉。
因此,去除勾选后,查看效果图如下:
试验4:
图6不勾选“去除标注内多余空格”设置的效果
注意,此时为了对齐,做了很多小改动,如增加了s0变量,以及对s变量的修改,s=string(len([DM])*2+s0,),对[DM]长度*2的目的,也在
您可能关注的文档
- AE文字特效教程.docx
- ai ei ui同步词语拼读练习.docx
- AICT石油油管与套管尺寸列表.docx
- aja试题与答案 2分析和总结.docx
- Alevel数学简介分析和总结.docx
- Allegro快捷键大全分析和总结.docx
- android proc 进程信息解析.docx
- android OnTouchEvent事件分析和总结.docx
- android实现底部菜单栏.docx
- android系统触摸屏虚拟按键.docx
- 重庆新速达物业服务集团股份凯里公司招聘笔试题库2024.pdf
- 浙江杭州千岛湖泰众肉类食品有限公司招聘笔试题库2024.pdf
- 陕西新华出版传媒集团新华书店分公司招聘笔试题库2024.pdf
- 宁夏海原县肉牛产业发展集团有限公司招聘笔试题库2024.pdf
- 浙江温岭市化工轻工建筑材料有限公司招聘笔试题库2024.pdf
- 中航飞机汉中航空零组件制造有限公司招聘笔试题库2024.pdf
- 山东海阳市海昇矿产资源开发有限公司招聘笔试题库2024.pdf
- 山东潍坊寿光市公共交通运输有限公司招聘笔试题库2024.pdf
- 内蒙古察右前旗农业投资开发有限公司招聘笔试题库2024.pdf
- 线上清明祭英烈活动策划.pptx
文档评论(0)