使用WGIS的字段計(jì)算器

WGIS的字段計(jì)算器(Field Calculator)跟其他桌面GIS軟件的字段計(jì)算器類似徐块,計(jì)算器的規(guī)則遵循Javascript的語(yǔ)法規(guī)則哎垦。

1.為什么使用字段計(jì)算器

字段計(jì)算器可以批量對(duì)數(shù)據(jù)表進(jìn)行操作耍攘,是一種非辰嘧溃快速高效的計(jì)算工具癞谒。這個(gè)跟Excel的公式類似啊掏,不過(guò)公式的寫法略有不同梗搅。比如我們有上千條數(shù)據(jù)內(nèi)容需要更新禾唁,而這些更新是基于其他字段就可以自動(dòng)識(shí)別的,那么无切,利用字段計(jì)算器就可以在1秒之內(nèi)(或很短時(shí)間內(nèi))計(jì)算完所有的結(jié)果荡短,而不用靠人工逐一去驗(yàn)證計(jì)算。

2. 工具入口

在圖層列表頂部哆键,我們可以找到入口:

或者在屬性表中掘托,我們可以點(diǎn)擊下面示意圖片中的計(jì)算器圖標(biāo)來(lái)打開字段計(jì)算器。

打開之后籍嘹,下圖中:

紅色序號(hào)1位置可以設(shè)置需要編輯的圖層數(shù)據(jù)闪盔;

序號(hào)2處可以快速插入我們所需要的字段;

序號(hào)3處可以選擇需要進(jìn)行計(jì)算的字段辱士;

序號(hào)4處是公式或語(yǔ)句的編寫窗口泪掀;

序號(hào)5處是編寫完成后的操作按鈕。

3. 基本規(guī)則

計(jì)算器使用JavaScript (以下簡(jiǎn)稱JS) 作為計(jì)算腳本颂碘;

出于安全考慮异赫,某些與安全相關(guān)的函數(shù)和語(yǔ)句將被禁止,如console.log()头岔、var塔拳、function等等;

您可以訪問到的WGIS數(shù)據(jù)接口:

使用 $f 來(lái)表示某一行數(shù)據(jù)峡竣;

用$f["name"] 或$f.name 來(lái)表示該行數(shù)據(jù)中名為name的字段靠抑。

數(shù)學(xué)運(yùn)算:加減乘除分別用+、-适掰、*颂碧、/荠列,JavaScript的常見運(yùn)算符可以參考這里

WGIS還內(nèi)置了一些常用的JS函數(shù)供大家快速選擇:

4.使用方法舉例

舉例1:字符拼接

下面的語(yǔ)句表示名為name的字段稚伍,等于city字段后面加上zone字段弯予。如果city和zone字段都是數(shù)字格式,那么name將得到一個(gè)數(shù)字个曙,如果city和zone都是字符格式锈嫩,那么name將得到兩個(gè)字符串的拼接。

我們令 name =

$f["city"]+$f["zone"]

即:

計(jì)算結(jié)果:

namecityzone

北京市A區(qū)北京市A區(qū)

上海市B區(qū)上海市B區(qū)

舉例2:數(shù)學(xué)運(yùn)算

JS的加減乘除運(yùn)算符分別為+垦搬、-呼寸、*、/

加法:a+b

減法:a-b

乘法:a*b

除法:a/b

取余數(shù):a%b

混合運(yùn)算:(a+b)/c-d

其他數(shù)學(xué)運(yùn)算公式猴贰,可以在WGIS內(nèi)置的數(shù)學(xué)函數(shù)選擇框中查看对雪,鼠標(biāo)滑過(guò)會(huì)有相關(guān)提示:

舉例3:數(shù)字精度計(jì)算

(1)取整

下面的語(yǔ)句表示了一個(gè)簡(jiǎn)單的數(shù)學(xué)計(jì)算過(guò)程。將price和number的數(shù)字進(jìn)行相乘米绕,然后賦值給sum瑟捣。

我們令 sum =

parseInt($f["price"]*$f["number"])

計(jì)算結(jié)果:

pricenumbersum

0.251251

4.2612312

(2)四舍五入

注意:parseInt函數(shù)僅取整,并非四舍五入栅干。如需四舍五入迈套,可以使用Math.round()函數(shù)。

Math.round($f["price"]*$f["number"])

(3)保留兩位小數(shù)

如果需要保留兩位小數(shù)碱鳞,則:

Math.round($f["price"]*$f["number"]*100)/100

計(jì)算結(jié)果

pricenumbersum

0.251251.26

4.2612312.78

除了Math.round()方法外桑李,還可以用下面的代碼實(shí)現(xiàn)上面的功能。

注意:JS的toFixed()得到的是字符串窿给,如果需要轉(zhuǎn)換為數(shù)字贵白,需使用parseFloat()方法。

parseFloat(parseFloat($f["price"]*$f["number"]).toFixed(2))

舉例4:字符截取和替換

稍微復(fù)雜的字符處理:截取前5個(gè)字崩泡,并將所有的“北京”替換為“上航模”。

注:$f.address等價(jià)于$f["address"]

我們令 name =

$f.address.substr(0,5).replace("北京","上海")

舉例5:條件判斷

根據(jù)type類型來(lái)判斷該城市是否為地級(jí)市角撞,并分別輸出不同的文本圈浇。

注:$f.type等價(jià)于$f["type"]

我們令 note =

$f.type==="地級(jí)市"?($f.name+"是一個(gè)地級(jí)市"):($f.name+"不是一個(gè)地級(jí)市")

關(guān)于條件運(yùn)算符的規(guī)則:條件?成立時(shí)執(zhí)行的語(yǔ)句:不成立時(shí)執(zhí)行的語(yǔ)句。也就是說(shuō)?前面是一個(gè)布爾判斷靴寂,如果結(jié)果為true,執(zhí)行?后面召耘、:前面的語(yǔ)句百炬;如果結(jié)果為false,則執(zhí)行:后面的語(yǔ)句污它。

計(jì)算結(jié)果:

nametypenote

廊坊市地級(jí)市廊坊市是一個(gè)地級(jí)市

青州市縣級(jí)市青州市不是一個(gè)地級(jí)市

需要更多示例剖踊?

您可以留言寫下您的需求庶弃,我們看到后會(huì)針對(duì)需求撰寫新的示例。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末德澈,一起剝皮案震驚了整個(gè)濱河市歇攻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌梆造,老刑警劉巖缴守,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異镇辉,居然都是意外死亡屡穗,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門忽肛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)村砂,“玉大人,你說(shuō)我怎么就攤上這事屹逛〈》希” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵罕模,是天一觀的道長(zhǎng)评腺。 經(jīng)常有香客問我,道長(zhǎng)手销,這世上最難降的妖魔是什么歇僧? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮锋拖,結(jié)果婚禮上诈悍,老公的妹妹穿的比我還像新娘。我一直安慰自己兽埃,他們只是感情好侥钳,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著柄错,像睡著了一般舷夺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上售貌,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天给猾,我揣著相機(jī)與錄音,去河邊找鬼颂跨。 笑死敢伸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的恒削。 我是一名探鬼主播池颈,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼尾序,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了躯砰?” 一聲冷哼從身側(cè)響起每币,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎琢歇,沒想到半個(gè)月后兰怠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡矿微,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年痕慢,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涌矢。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡掖举,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出娜庇,到底是詐尸還是另有隱情塔次,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布名秀,位于F島的核電站励负,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏匕得。R本人自食惡果不足惜继榆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望汁掠。 院中可真熱鬧略吨,春花似錦、人聲如沸考阱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)乞榨。三九已至秽之,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吃既,已是汗流浹背考榨。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鹦倚,地道東北人董虱。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親愤诱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351