好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Sqlview動態發布地圖圖層的方法

Sqlview動態發布地圖圖層的方法

熱門標簽:安卡拉地圖標注app 我要地圖標注數量有限制嗎 400電話辦理泰安 電話機器人怎么代理商 零成本地圖標注賺錢 家庭農場地圖標注名稱怎樣起名 千呼電話機器人可以試用嗎 互聯網電話外呼系統 電銷需要外呼系統嗎

1.SQL Views簡介

Geoserver+postgresql+openlayers(leaflet)是目前主流的gis開發工具。Postgresql用于存儲地圖數據,geoserver用于發布地圖數據,openlayers或者leaflet用于訪問發布地圖。正常情況下當shapefile格式的數據導入postgresql數據庫中之后,我們需要通過geoserver把所有的數據發布出去,這樣才能訪問。常規情況下這種操作方式是沒有問題的,因為地圖作為基礎服務,一旦發布出去是不會變化的。但是對于室內地圖來說就不行了,假如一個商場有5層,每一樓層又層有5個地圖圖層,對于這樣一個商場需要把這25個地圖圖層在geoserver中全部發布出來才能訪問該商場的全部地圖。假如發布這一個商場的25個圖層你還能忍受的話,那發布成千上萬個商場的地圖你還能忍受嗎?既然忍受不了那就要想辦法解決。由于發布地圖是機械的重復的工作,我們是否能想一些辦法來幫我們完成這些工作呢。這時候就是我們的sqlView出場了。

首先介紹一下sql View,通過SQLViews可以做如下事情:

(1)數據庫view可以在geoserver中當作表完全一樣的發布,而geoserver的SQLViews不僅能實現簡單的查詢發布,還能輸入參數作為查詢視圖的條件。

(2)SQLViews可以發布數據庫的存儲過程或者function,執行更加復雜的邏輯操作與查詢。

(3)SQL Views查詢可以通過字符串替換的方式進行參數化,參數值可以在wms和wfs請求總使用,輸入值可以通過設置的正則表達式進行驗證從而消除SQL 注入攻擊的風險。

(4)SQLViews是對數據庫操作與查詢的一個結果,不能使用wfs_t去操作它,但是wfs,wms都可以正常請求或者查詢。

2.創建帶查詢條件的SQL Views視圖:

(1)登錄geoserver,點擊圖層,選擇工作空間,新建圖層。

(2)新建SQL Views視圖圖層,并發布。


這里創建了一個視圖,發布傳入的表名數據。

tbl的默認值設置為數據庫中一直會存在的表格,設置的正則表達式為只允許輸入字母數字和下劃線。


在屬性值對輸出結果的類型和坐標系做了設置。

(3)圖層訪問

在通過wms獲取地圖的時候只需要把tbl的值通過viewparams傳遞過去就行了

http://10.20.135.14/geoserver/parking/wms?SERVICE=WMSVERSION=1.3.0REQUEST=GetMapFORMAT=image%2FpngTRANSPARENT=trueLAYERS=parking%3AvTingcheweiCRS=EPSG%3A4326STYLES=WIDTH=2700HEIGHT=1200BBOX=20.02708134918213%2C110.33805803565978%2C20.03351865081787%2C110.3525419643402viewparams=tbl%3Awanghaiguojia_b2_tingchewei

viewparams格式一般是viewparams=p1:v1;p2:v2;…可以加若干個參數。不同參數之間以;隔開,單個參數是鍵值對,即p1是參數名稱,v1是參數值。

通過wms方式訪問發布的視圖方法為:

var params = {
LAYERS:'parking:vTingchewei',
FORMAT:'image/png'
};
varviewparams = [
'tbl:wanghaiguojia_b2_tingchewei'
];
params.viewparams= viewparams;
varvTingchewei = new ol.layer.Image({
source:new ol.source.ImageWMS({
url:'http://10.20.135.14/geoserver/parking/wms', 
params:params,
serverType:'geoserver',
})
});

通過這種方式,再多的商場只需要在geoserver中發布5次視圖即可,而且該發布視圖的代碼可以預先寫入geoserver中打包進去。這樣該系統在任何商場使用都不需要發布地圖了。

3.創建包含function的SQL View視圖

解決了圖層發布的問題,終于可以松一口氣了。但是,沒想到棘手的問題還在后面。領導讓做室內導航功能。做就做吧,誰讓咱是苦逼的碼農呢。那該怎么做室內導航呢,做這個功能之前,咱還是要規劃一下的。首先要寫最短路徑查詢算法;然后查詢路徑的時候只需要把起點和終點的位置輸入算法查詢即可;最后把查詢的結果通過wms或wfs方式獲取,顯示在地圖上。

編寫最短路徑規劃算法的時候我們需要的輸入有:用戶所在樓層的道路名,起點和終點的位置,然后我們吭哧吭哧,大戰3天三夜,搞定。

接著查詢,好辦,直接按照上面的放吧,把該商場的5個樓層都發布一個基于對應樓層的結果路徑視圖,機智吧?NO,NO,NO!簡直遇事情不懂腦子啊。這個時候肯定需要換一個新的方法,把最短路徑規劃算法寫成一個Function嵌入到postgresql數據庫中,該function的輸入參數為:用戶所在樓層,起點位置,終點位置;輸出參數為起點和終點直接經過的點坐標。

最后,通過wms或者wfs的方式獲取得到的最短路徑結果即可。

以上所述實現小編給大家介紹的Sqlview動態發布地圖圖層的方法,希望對大家有所幫助!

標簽:濱州 東營 黃山 新鄉 大同 來賓 池州 文山

巨人網絡通訊聲明:本文標題《Sqlview動態發布地圖圖層的方法》,本文關鍵詞  Sqlview,動態,發布,地圖,圖層,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Sqlview動態發布地圖圖層的方法》相關的同類信息!
  • 本頁收集關于Sqlview動態發布地圖圖層的方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 伦理片免费网站| 亚洲天堂福利视频| 欧美黑人粗大XXXX在线视频| 国产农村妇女一级A片村妓| 秋霞电影2020进口| 无限资源免费观看高清在线播放| 成人软件网18免费视频| 国产亚洲精品久久久优势| 少妇激情婬乱一区二区三区下载| 欧美一区二区三区高清视频| 久久香蕉国产线看观看乱码| 秘?韩H漫画免费羞羞漫画观看| 欧美精品AV一区二区三区| 久久理论片琪琪电影院| 备前宰相| 欧美日韩视频一区二区| 无码人妻精品一区二区三区蜜臀百度| 亲子乱视频国产免费AV| 麻豆映画传媒画在线播放| 天天爱综合网| 高h猛烈失禁双性| 无遮挡啪啪摇乳动态图| 午夜狠狠干| 好紧我太爽了再快点喷水了| 武则天一级裸片| 加勒比色综合久久久久久久久| 榕江县| 我和岳一晚4次| 亚洲一区二区三区四区五区XX | 好大好硬?用力?深一点影院| 国产做受???高潮软件| 99国产精品视频免费观看| 欧美男同videos欧美同性| 国产精品无码久久红杏影院| 中国大黄网| 欧美亚洲日本视频| 国产精品久久久久久免费| 美女主播视频4C.com| 日本伦理视频在线观看| 精品毛片久久久久| chinese酷刑捆绑bdsmfoot|