基于OpenLayers的螢火圖效果

一 目標(biāo)

1.1 測(cè)試數(shù)據(jù)描述

示例數(shù)據(jù)

waterquality:水質(zhì)各谚。
geom:采樣點(diǎn)圖形。
示例數(shù)據(jù)來(lái)源:https://pan.baidu.com/s/1tiZqaERqrGj-YUskYlTVIQ
獲取密碼: eckw

1.2 可視化目標(biāo)

開(kāi)局一草圖

亮瞎你的眼

其實(shí)總共就以下幾個(gè)小步驟:

  • 1 弄個(gè)背景底圖冰木,黑夜主題的鸯檬,關(guān)鍵因素。
  • 2 可視化的點(diǎn)超升,應(yīng)該根據(jù)水質(zhì)參數(shù)嗓违,水質(zhì)好的點(diǎn)畫的大點(diǎn)九巡,水質(zhì)差的點(diǎn)畫的小點(diǎn)。
  • 3 點(diǎn)雖然分大小靠瞎,把點(diǎn)換成圖標(biāo)比庄,點(diǎn)睛之筆求妹。。佳窑。

??本文參考ESRI的一篇配圖教程來(lái)的制恍,雖然esri主要宣傳它的軟件如何牛逼,如何一步步的操作軟件得到結(jié)果(不講原理是其一貫的作風(fēng))神凑,但是分析了下步驟净神,很容易得到怎么實(shí)現(xiàn)的。溉委。鹃唯。

二 螢火圖實(shí)現(xiàn)

2.1 背景底圖

??人靠衣裝馬靠鞍,一個(gè)好的地圖可視化效果瓣喊,底圖是非常重要的坡慌,而不是說(shuō)很隨意的,選擇esri的暗夜藍(lán)背景圖(因?yàn)楦叩掳俣鹊臇|西藻三,都是自己api加載洪橘,其他api解析不了他的矢量和樣式,故不做選擇)棵帽。

    var layers = [
        new ol.layer.Tile({
            source: new ol.source.XYZ({
                url: 'https://map.geoq.cn/arcgis/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}'
            })
        }),
        
    ];
    var map = new ol.Map({
        layers: layers,
        target: 'map',
        view: new ol.View({
            center: ol.proj.fromLonLat([114.36,38.08]),
            zoom: 8
        })
    });
底圖+默認(rèn)點(diǎn)樣式

2.2 水質(zhì)參數(shù)區(qū)分點(diǎn)大小

調(diào)整樣式函數(shù)熄求,根據(jù)水質(zhì)參數(shù),區(qū)分點(diǎn)的大小逗概。

 var layers = [
        new ol.layer.Tile({
            source: new ol.source.XYZ({
                url: 'https://map.geoq.cn/arcgis/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}'
            })
        }),
        new ol.layer.Vector({
            source:new ol.source.Vector({
                format:new ol.format.GeoJSON(),
                url:'./data/data.json'
            }),
            //新增的樣式函數(shù)
            style:function(feature,res){
                var attributes=feature.getProperties();
                var level=attributes.waterquality;
                var r;//點(diǎn)(本質(zhì)就是圓)的半徑
                if(level>=60&&level<66)
                    r=4;
                else if(level>=66&&level<73)
                    r=5;
                else if(level>=73&&level<82)
                    r=6;
                else if(level>=82&&level<91)
                    r=7;
                else if(level>=91&&level<100)
                    r=8;
            
                var style=new ol.style.Style({
                    image: new ol.style.Circle({
                        radius: r,
                        fill: new ol.style.Fill({
                            color:  [0, 153, 255, 1]
                        }),
                        stroke: new ol.style.Stroke({
                            color: [255, 255, 255, 1],
                            width: 3 / 2
                        })
                    })
                }) ;
                return [style];
            }
        })
    ];
雛形弟晚,還是很難看

到此為止,其實(shí)這個(gè)效果圖逾苫,就是根據(jù)圖形位置+水質(zhì)參數(shù)(根據(jù)參數(shù)分級(jí)渲染不同樣式而已)配置的卿城,地圖中很常見(jiàn)的分等級(jí)渲染原理。

2.3 點(diǎn)睛之筆

圖標(biāo)

從esri的教程里铅搓,附帶了圖標(biāo)和數(shù)據(jù)藻雪,我們選擇這種藍(lán)色圖標(biāo),修改下之前的地圖樣式:

 var layers = [
        new ol.layer.Tile({
            source: new ol.source.XYZ({
                url: 'https://map.geoq.cn/arcgis/rest/services/ChinaOnlineStreetPurplishBlue/MapServer/tile/{z}/{y}/{x}'
            })
        }),
        new ol.layer.Vector({
            source:new ol.source.Vector({
                format:new ol.format.GeoJSON(),
                url:'./data/data.json'
            }),
            //修改的樣式狸吞,改成了圖標(biāo)了
            style:function(feature,res){
                var attributes=feature.getProperties();
                var level=attributes.waterquality;
                var scale;
                if(level>=60&&level<66)
                    scale=10.0/50;
                else if(level>=66&&level<73)
                    scale=14.5/50;
                else if(level>=73&&level<82)
                    scale=19.0/50;
                else if(level>=82&&level<91)
                    scale=23.5/50;
                else if(level>=91&&level<100)
                    scale=28/50;
                var style=new ol.style.Style({
                    image: new ol.style.Icon({
                        crossOrigin: 'anonymous',
                        scale:scale,
                        src: 'image/blue.png'
                    })
                });
                return [style];
            }
        })
    ];

最終圖片

三 總結(jié)

  • 1 好的效果,底圖非常非常重要V讣濉LF!
  • 2 很多好的效果至壤,其實(shí)原理很簡(jiǎn)單威始,主要這個(gè)螢火圖標(biāo),美工很重要O窠帧@杼摹晋渺!
  • 3 地圖可視化,不是一個(gè)搞技術(shù)的人能做好的脓斩,很多時(shí)候木西,要專業(yè)的人員,專業(yè)的工具随静,gis可視化只是工具之一八千,還有好多其他制圖軟件各種美化。燎猛。恋捆。
  • 4 多看看技術(shù)文章,分析原理重绷,而不是被esir這種商業(yè)公司洗腦沸停。。昭卓。它的效果也許很好愤钾,其實(shí)大家都能做,善于總結(jié)和分析葬凳。绰垂。。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末火焰,一起剝皮案震驚了整個(gè)濱河市劲装,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌昌简,老刑警劉巖占业,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異纯赎,居然都是意外死亡谦疾,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門犬金,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)念恍,“玉大人,你說(shuō)我怎么就攤上這事晚顷》寤铮” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵该默,是天一觀的道長(zhǎng)瞳氓。 經(jīng)常有香客問(wèn)我,道長(zhǎng)栓袖,這世上最難降的妖魔是什么匣摘? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任店诗,我火速辦了婚禮,結(jié)果婚禮上音榜,老公的妹妹穿的比我還像新娘庞瘸。我一直安慰自己,他們只是感情好囊咏,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布恕洲。 她就那樣靜靜地躺著,像睡著了一般梅割。 火紅的嫁衣襯著肌膚如雪霜第。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,198評(píng)論 1 299
  • 那天户辞,我揣著相機(jī)與錄音泌类,去河邊找鬼。 笑死底燎,一個(gè)胖子當(dāng)著我的面吹牛刃榨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播双仍,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼枢希,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了朱沃?” 一聲冷哼從身側(cè)響起苞轿,我...
    開(kāi)封第一講書(shū)人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎逗物,沒(méi)想到半個(gè)月后搬卒,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡翎卓,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年契邀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片失暴。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡坯门,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出逗扒,到底是詐尸還是另有隱情田盈,我是刑警寧澤,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布缴阎,位于F島的核電站,受9級(jí)特大地震影響简软,放射性物質(zhì)發(fā)生泄漏蛮拔。R本人自食惡果不足惜述暂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望建炫。 院中可真熱鬧畦韭,春花似錦、人聲如沸肛跌。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)衍慎。三九已至转唉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間稳捆,已是汗流浹背赠法。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留乔夯,地道東北人砖织。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像末荐,于是被迫代替她去往敵國(guó)和親侧纯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

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