postgis計(jì)算矢量切片(二)--按值渲染

方案背景

????今年三月份寫了一篇postgis計(jì)算矢量切片镜豹,參考了網(wǎng)上資料給出了一份很粗糙的相關(guān)方案(文章寫的更粗糙)瘦赫。當(dāng)時(shí)的方案中只能針對(duì)gis形狀進(jìn)行渲染,而不能用屬性渲染.針對(duì)這個(gè)情況灶泵,本文進(jìn)行相對(duì)應(yīng)的修改硬猫。

前期準(zhǔn)備

????軟件是用的是Qgis和Postgis(Postgis版本為2.42 ,Postgresql版本為10.0)补箍。qgis使用Ramdom points in extent 用來生成測(cè)試數(shù)據(jù),數(shù)據(jù)范圍參數(shù)使用
120.6327590942379970,120.8625335693359943,31.2309341430663991,31.4467678070068004(xmin,xmax,ymin,ymax),數(shù)據(jù)量設(shè)置為十萬(wàn)啸蜜。生成好數(shù)據(jù)坑雅,再建好索引,添加字段v,根據(jù)奇偶性給字段賦值。

后臺(tái)梳理

????先看了ST_AsMVT和ST_AsMVTGeom幫助文檔衬横,一頭霧水.使用谷歌大法裹粤,發(fā)現(xiàn)了這個(gè)資料參考資料

參考資料

只要通過上圖的方式就能查詢到我想要的帶屬性值的矢量切片,代碼如下蜂林。只要先輸入需要查找的范圍遥诉,用ST_AsMVTGeom查詢出范圍內(nèi)矢量并轉(zhuǎn)換成屏幕坐標(biāo),最后用ST_AsMVT壓縮數(shù)據(jù)成mvt格式悉尾,和之前文章有所不同的是突那,查詢過程中加入了屬性的查詢,壓縮之后矢量切片就會(huì)帶上我們想要的屬性值(w.v就是我們想要的屬性值)

SELECT ST_AsMVT(tile,'points',4096,'geom') tile  FROM (SELECT w.v,ST_AsMVTGeom(w.the_geom,Box2D(ST_MakeEnvelope(119.531250,30.751278,120.937500,31.952162, 4326)),4096, 0, true)     AS geom FROM pnt w) AS  tile where  tile.geom is not null

????做完這些我們只要用后臺(tái)語(yǔ)言寫一個(gè)服務(wù),將前臺(tái)請(qǐng)求的切片坐標(biāo)z/x/y這些轉(zhuǎn)換成經(jīng)緯度得到最大最小經(jīng)緯度构眯,放到前面提到的sql中去查詢就可以愕难。

前臺(tái)展示

????前臺(tái)展示還是選用mapbox,添加自定義矢量切片數(shù)據(jù)源,修改下按值渲染顏色

map.addLayer({
               "id": "custom-go-vector-tile-layer",
                "type": "circle",
                "source": "custom-go-vector-tile-source",
                "source-layer": "points",
                paint: {
                    'circle-radius': {
                        stops: [
                            [8, 0.1], [11, 0.5],[15, 3],[20, 60]
                        ]
                    },
                    'circle-color': {
                        property: 'v',
                        stops: [
                            [0, '#990055'],
                            [1, '#2a55b9']
                        ]
                    },
                    'circle-opacity': 1
                }
            });

顯示效果如下


前臺(tái)展示

性能對(duì)比

????一百萬(wàn)數(shù)據(jù)惫霸,頁(yè)面加載結(jié)束5s;十萬(wàn)數(shù)據(jù)猫缭,頁(yè)面加載結(jié)束1.86s.同樣數(shù)據(jù),百萬(wàn)數(shù)據(jù)壹店,geoserver的(openlayer)頁(yè)面加載結(jié)束20.20s;十萬(wàn)數(shù)據(jù)時(shí)猜丹,geoserver的的(openlayer)頁(yè)面加載結(jié)束4.32s</br>

附代碼地址:

https://github.com/tpolong/postgisvectortile

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市硅卢,隨后出現(xiàn)的幾起案子射窒,更是在濱河造成了極大的恐慌,老刑警劉巖将塑,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脉顿,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡点寥,警方通過查閱死者的電腦和手機(jī)艾疟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蔽莱,你說我怎么就攤上這事弟疆。” “怎么了盗冷?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵怠苔,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我正塌,道長(zhǎng)嘀略,這世上最難降的妖魔是什么恤溶? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任乓诽,我火速辦了婚禮,結(jié)果婚禮上咒程,老公的妹妹穿的比我還像新娘鸠天。我一直安慰自己,他們只是感情好帐姻,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布稠集。 她就那樣靜靜地躺著,像睡著了一般饥瓷。 火紅的嫁衣襯著肌膚如雪剥纷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天呢铆,我揣著相機(jī)與錄音晦鞋,去河邊找鬼。 笑死棺克,一個(gè)胖子當(dāng)著我的面吹牛悠垛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播娜谊,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼确买,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了纱皆?” 一聲冷哼從身側(cè)響起湾趾,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎派草,沒想到半個(gè)月后搀缠,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡澳眷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年胡嘿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钳踊。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡衷敌,死狀恐怖勿侯,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情缴罗,我是刑警寧澤助琐,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站面氓,受9級(jí)特大地震影響兵钮,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜舌界,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一掘譬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧呻拌,春花似錦葱轩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至猾普,卻和暖如春袜炕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背初家。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工偎窘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人笤成。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓评架,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親炕泳。 傳聞我的和親對(duì)象是個(gè)殘疾皇子纵诞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

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

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,100評(píng)論 1 32
  • QGIS是一套開源的跨平臺(tái)地理信息系統(tǒng),支持的操作系統(tǒng)包括Windows培遵、Mac浙芙、Linux和BSD,也即將支持A...
    逸之閱讀 21,009評(píng)論 14 34
  • 01.噩耗 上天向你宣布:“我即將收回賦予你的生命”籽腕。當(dāng)突如其來的噩耗降臨到你頭上嗡呼,你會(huì)怎樣? 02.五個(gè)階段的心...
    貓?zhí)蕴?/span>閱讀 86評(píng)論 0 0
  • 在開石門以前皇耗,周圍的丘陵連綿不斷南窗,將山內(nèi)和山外完全隔絕開來,山內(nèi)人過著桃花源一樣的生活,自種自織万伤,自給自足窒悔。山中飛...
    宋宵因閱讀 274評(píng)論 0 3
  • 又是一年開學(xué)季简珠,相信很多剛上大學(xué)的新生對(duì)于大學(xué)生活充滿了各種期待,也許是談一場(chǎng)奮不顧身又刻骨銘心的愛情虹钮,也...
    陳陳的自我修煉閱讀 291評(píng)論 5 1