免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
解析ArcGis的標注(一)
userphoto

2019.02.18

關注

該“標注”系列博文的標注引擎使用“標準標注引擎(standard label engine)”,這個概念如不知道,可不理會,ArcGis默認標注引擎就是它。

ArcGis的標注表達式支持VBScript、Jscript、Python ,3種腳本語言進行語句解析。一般我們常用的是VB、Python。

普通標注這里不做講述,先從一個簡單的換行標注開始講起。

 


 

兩行標注

可以很簡單的通過下面的VB語句來實現

[字段1] +VB換行符+ [字段2]

 

VB的換行符一般用vbnewline,它與vbcrlf是等價的,在ArcGis的字段計算器或者標注表達式中其實還可以用chr(10)、chr(13)、chr(10)+chr(13)來替代。

先了解一下chr函數,它是將ASCII碼值返回對應的字符,這篇文章的讀者應該會對這個概念比較陌生,有興趣不妨自己去查一下chr函數與ASCII。

1
2
3
4
5
chr(10)—>vblf—>換行;
chr(13)—>vbcr—>回車;
chr(10)+chr(13)—>vbcrlf(vbnewline)—>換行回車

上面vb……的東西是VB語言中的預置常數,其值就是對應的chr函數返回值。

下面幾種組合的結果是一樣的

1
2
3
4
5
6
7
[PartCount]  +vbnewline+ [BH]
[PartCount]  +chr(10)+ [BH]
[PartCount]  +vbcr+ [BH]
[PartCount]  +chr(10)+chr(13)+ [BH]

這樣的標注只能叫兩行標注,它離分式標注還差一條分式橫線。

 


 

分式標注

這樣實現?

[PartCount]  +vbnewline+"——"+vbcrlf +[BH]

其實換行兩次成了3行,分子與分母距離較遠,看起來效果挺差。

改進方法?有的。

這就要引入ArcGis的標注標簽了,使用und(下劃線)標簽為分子字段加個下劃線:

"<und>"+[PartCount]+"</und>"+vbcrlf +[BH]

標簽的使用方式類似HTML、XML等的標簽,由上面的表達式可知(不知道就百度去吧)。效果如下圖,由于分子太短,分母太長,分式線顯得過于苗條了。

用一個VBScript函數對分子、分母字符串的長度進行比較,如果分母長,就在分子前后加若干空格(“ ”),然后對“空格+分子+空格”使用下劃線標簽加下劃線:

Function FindLabel ( [分子字段], [分母字段] )Dim fmLength '分母長度Dim fzLength '分子長度Dim strSpace '空格fmLength = Len([分母字段]) 'len函數取字符串長度,字段計算器那兒有講fzLength = Len([分子字段]) '博客園 yzhyingcoolIf fmLength > fzLength Then  '如果分母比分子長    strSpace = Space((fmLength - fzLength)/2) '(fmLength - fzLength)/2 取得兩端空格的長度End If                                        'space函數生成給定位數空格FindLabel = "<und>" + strSpace + [分子字段] + strSpace + "</und>" + vbCrLf + [分母字段]End Function

效果便是這樣了:

 

 


 

到這里應該插一個小節(jié)講一下標注函數表達式如何使用

 

如上圖,首先要確定函數使用的語言,然后去點擊“Advanced(高級)”,語句塊輸入框里會自動生成一個名為FindLabel  的函數框架,傳入的參數是標注需要的字段,這個函數名字不能改!

然后你就有兩種選擇,一種是直接在此基礎上完成函數,另一種是直接刪掉,復制現成的表達式進來修改傳入的字段參數。 

還有需要提醒的是不建議在ArcMap的標注表達式框里寫函數,因為它沒有關鍵詞提示、代碼高亮、縮進等的功能,不便于代碼編寫,甚至出錯了數出錯行數也是個麻煩事情??梢試L試使用Notepad++或者選用語言的IDE,如果使用VBScript可以使用Excel的VBE編輯器。

 


 

假分數樣式

使用下面的VBScript函數實現:

Function FindLabel ( [整數字段] , [分子字段], [分母字段] )Dim fmLength '分母長度Dim fzLength '分子長度Dim zsLength '整數長度Dim hxLength '分式線長度fmLength = Len([分母字段]) 'len函數取字符串長度,字段計算器那兒有講fzLength = Len([分子字段]) '博客園 yzhyingcoolzsLength = Len([整數字段])If fmLength > fzLength Then  '如果分母比分子長    hxLength=fmLength       else '反之       hxLength=fzLengthEnd If'下面的"-"或"—"根據英文(數字)或者中文進行調整即可FindLabel = space(zsLength)+[分子字段] +vbcrlf+[整數字段]+ string(hxLength,"-")+vbcrlf+space(zsLength)+ [分母字段]End Function

效果如圖:

其實這個樣式是由我們開始便講到的“3行標注分式”進化而來的,沒錯,這個假分數就是3行:

第一行→整數長度的空格+分子;

第二行→整數+分式線(根據分子分母的中英文調整"-"或"—");

第三行→整數長度的空格+分母

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ArcGIS中標注(label)的使用技巧
ArcGIS中實現上下標注、換行標注或分式標注的實用技巧
「數學」求極限之洛必達法則--L'Hospital
考研+每日一題(85)|函數|利用極限求分子分母包含有e的x次方型函數的值域
可去間斷點的四個判斷方法是什么
文摘 | Arcgis小技巧 標注
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服