AGS JS開發(fā)-以JSON參數(shù)構(gòu)建地圖渲染之四

使用SVG圖標(biāo)符號

1.環(huán)境說明

ArcGIS 10.4.1

JS API 3.15

2.SVG圖標(biāo)介紹

SVG是使用XML來描述二維圖形和繪圖程序的語言。可以用來定義用于網(wǎng)絡(luò)的矢量圖形帖池。相比JPEG聂使、PNG等圖像箍铭,SVG尺寸更小,且可以放大波附,修改顏色等優(yōu)勢。

SVG預(yù)定義了常用的幾種形狀元素昼钻,包括<rect>掸屡、<circle>、<ellipse>然评、<line>折晦、<polyline>、<polygon>沾瓦、<path>满着。其中<path>可以理解為可創(chuàng)建任何的自定義圖標(biāo)。通常使用這些元素標(biāo)簽來定義圖形贯莺,然后保存為.svg文件风喇,該文件可與HTML一起使用。

3.SVG圖標(biāo)制作

SVG圖標(biāo)可使用現(xiàn)成的工具來生成缕探,或者搜索網(wǎng)上提供的免費(fèi)圖標(biāo)魂莫。

(1)在線制作工具

www.zhangxinxu.com/sp/svg/

(2)免費(fèi)SVG圖標(biāo)

icomoon.io/app/#/select

4.點(diǎn)符號使用SVG圖標(biāo)介紹

JSAPI中的SimpleMarkerSymbol支持使用SVG中定義的圖標(biāo)。因此第一步需要先獲取SVG圖標(biāo)path的定義爹耗,可使用前述方法獲取耙考。

這里介紹的JS API使用SVG圖標(biāo)的方式谜喊,還是按前面思路,使用JSON來定義倦始,其JSON格式定義如下:

{

"color": [49, 45, 182, 255],

"size": 12,

"type": "esriSMS",

"style": "esriSMSPath",

"path": "svg中path定義的值"

}

5.結(jié)合分級渲染和SVG圖標(biāo)符號測試

(1)構(gòu)建SVG圖標(biāo)符號

var?svgPath1="M16

0c-5.523 0-10 4.477-10 10 0 10 10 22 10 22s10-12

10-22c0-5.523-4.477-10-10-10zM16 16.125c-3.383

0-6.125-2.742-6.125-6.125s2.742-6.125 6.125-6.125 6.125 2.742 6.125 6.125-2.742

6.125-6.125 6.125zM12.125 10c0-2.14 1.735-3.875 3.875-3.875s3.875 1.735 3.875

3.875c0 2.14-1.735 3.875-3.875 3.875s-3.875-1.735-3.875-3.875z";

var?svgJson1= {

"color": [255,165,0,255],

"size":18,

"type":"esriSMS",

"style":"esriSMSPath",

"path":svgPath1

};

(2)在分級渲染中使用SVG圖標(biāo)符號

//創(chuàng)建分級渲染JSON斗遏,點(diǎn)符號function?createClassbreakRendererJson(classbreakFieldName,classbreakValues,classbreakSymbols){

var?rendererJson= {

"type":"classBreaks",

"field": classbreakFieldName,

"defaultSymbol": {

"color": [128,128,128],

"size":12,

"type":"esriSMS",

"style":"esriSMSCircle"},

"minValue": classbreakValues[0],

"classBreakInfos": []

};

var?i=1;

for(i;i<classbreakValues.length;i++){

var?obj= {

"classMaxValue": classbreakValues[i],

"symbol": classbreakSymbols[i]

};

rendererJson.classBreakInfos.push(obj);

}

return?rendererJson;

}

var?svgPath1="M16 0c-5.523 0-10 4.477-10 10 0 10 10 22 10 22s10-12 10-22c0-5.523-4.477-10-10-10zM16 16.125c-3.383 0-6.125-2.742-6.125-6.125s2.742-6.125 6.125-6.125 6.125 2.742 6.125 6.125-2.742 6.125-6.125 6.125zM12.125 10c0-2.14 1.735-3.875 3.875-3.875s3.875 1.735 3.875 3.875c0 2.14-1.735 3.875-3.875 3.875s-3.875-1.735-3.875-3.875z";

var?svgJson1= {

"color": [255,165,0,255],

"size":18,

"type":"esriSMS",

"style":"esriSMSPath",

"path":svgPath1

};

var?svgPath2="M32 7.075c-1.175 0.525-2.444 0.875-3.769 1.031 1.356-0.813 2.394-2.1 2.887-3.631-1.269 0.75-2.675 1.3-4.169 1.594-1.2-1.275-2.906-2.069-4.794-2.069-3.625 0-6.563 2.938-6.563 6.563 0 0.512 0.056 1.012 0.169 1.494-5.456-0.275-10.294-2.888-13.531-6.862-0.563 0.969-0.887 2.1-0.887 3.3 0 2.275 1.156 4.287 2.919 5.463-1.075-0.031-2.087-0.331-2.975-0.819 0 0.025 0 0.056 0 0.081 0 3.181 2.263 5.838 5.269 6.437-0.55 0.15-1.131 0.231-1.731 0.231-0.425 0-0.831-0.044-1.237-0.119 0.838 2.606 3.263 4.506 6.131 4.563-2.25 1.762-5.075 2.813-8.156 2.813-0.531 0-1.050-0.031-1.569-0.094 2.913 1.869 6.362 2.95 10.069 2.95 12.075 0 18.681-10.006 18.681-18.681 0-0.287-0.006-0.569-0.019-0.85 1.281-0.919 2.394-2.075 3.275-3.394z";

var?svgJson2= {

"color": [30,144,255,255],

"size":14,

"type":"esriSMS",

"style":"esriSMSPath",

"path":svgPath2

};

var?citiesUrl="https://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer/0";

var?citiesLayer=new?FeatureLayer(citiesUrl,{

outFields: ["*"]

});

var?classbreaksRenderer=new?ClassBreaksRenderer(createClassbreakRendererJson("pop2000",[10000,50000,200000],["",svgJson1,svgJson2]));

citiesLayer.setRenderer(classbreaksRenderer);

map.addLayer(citiesLayer);

效果:


6.源碼

使用SVG圖標(biāo)符號

7.參考資料

[1]使用SVG中的Symbol元素制作Icon(https://isux.tencent.com/16292.html)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市鞋邑,隨后出現(xiàn)的幾起案子诵次,更是在濱河造成了極大的恐慌,老刑警劉巖枚碗,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件逾一,死亡現(xiàn)場離奇詭異,居然都是意外死亡肮雨,警方通過查閱死者的電腦和手機(jī)遵堵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來怨规,“玉大人鄙早,你說我怎么就攤上這事∫窝牵” “怎么了限番?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長呀舔。 經(jīng)常有香客問我弥虐,道長,這世上最難降的妖魔是什么媚赖? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任霜瘪,我火速辦了婚禮,結(jié)果婚禮上惧磺,老公的妹妹穿的比我還像新娘颖对。我一直安慰自己,他們只是感情好磨隘,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布缤底。 她就那樣靜靜地躺著,像睡著了一般番捂。 火紅的嫁衣襯著肌膚如雪个唧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天设预,我揣著相機(jī)與錄音徙歼,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛魄梯,可吹牛的內(nèi)容都是我干的桨螺。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼酿秸,長吁一口氣:“原來是場噩夢啊……” “哼灭翔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起允扇,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎则奥,沒想到半個月后考润,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡读处,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年糊治,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罚舱。...
    茶點(diǎn)故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡井辜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出管闷,到底是詐尸還是另有隱情粥脚,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布包个,位于F島的核電站刷允,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏碧囊。R本人自食惡果不足惜树灶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望糯而。 院中可真熱鬧天通,春花似錦、人聲如沸熄驼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瓜贾。三九已至萝映,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間阐虚,已是汗流浹背序臂。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人奥秆。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓逊彭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親构订。 傳聞我的和親對象是個殘疾皇子侮叮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 油炸藕片的制作步驟: 第一步:蓮藕洗凈削皮。 第二步:把藕切成均勻的薄片悼瘾,加入生抽調(diào)味囊榜。 第三步:調(diào)制面糊:面粉加...
    六個太陽金閱讀 336評論 0 1
  • 對于一個喜歡看書,然而看過之后就如風(fēng)拂過面亥宿,不曾留下什么記憶的人來講卸勺,只是看,沒有什么長進(jìn)烫扼。希望自己能夠?qū)懗銮逦?..
    史終成長閱讀 201評論 0 0
  • 她在見到他的時候是在學(xué)校的操場上曙求,微風(fēng)拂面卻沒有帶來一絲清涼。她不敢靠近他因為他們早就分手了映企。路過的時候她發(fā)現(xiàn)他的...
    f31c46275894閱讀 154評論 0 1