999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于NodeJS和ArcGIS緊湊切片的OGC-WMTS服務的研究與實現

2014-07-27 06:19:30姜成楨熊志偉殷金榮
創新科技 2014年24期
關鍵詞:資源服務信息

姜成楨 熊志偉 殷金榮

(黃河勘測規劃設計有限公司,河南 鄭州 450008)

基于NodeJS和ArcGIS緊湊切片的OGC-WMTS服務的研究與實現

姜成楨 熊志偉 殷金榮

(黃河勘測規劃設計有限公司,河南 鄭州 450008)

在一般情況下都是用ArcGIS Desktop制作精美的地圖,用ArcGIS Server發布為地圖切片服務,但是,在有些時候僅需發布地圖切片服務,如何將龐大的后臺輕量化,筆者進行了摸索,通過NodeJS來發布符合OGC-WMTS規范的ArcGIS緊湊地圖切片是一個不錯的方案。

NodeJS;ArcGIS;OGC-WMTS;Compact Cache;緊湊切片緩存;bundle

1 引言

ArcGIS是功能最強大和性能最好的GIS平臺,具備一體化的GIS解決方案,具有強大的地圖制作、空間數據管理、空間分析、空間信息整合、發布與共享的能力。其中ArcGIS for Desktop為GIS專業人士提供強大的高級的地理數據建庫、分析、處理與地圖制圖等功能;ArcGIS for Server通過Web Services在網絡上提供GIS資源和功能服務,廣泛用于企業級 GIS實現以及各種Web GIS應用程序中。ArcGIS功能強大,當然價格也是很昂貴,而在現實中往往有這樣的需求:在實際的產品部署中只是用ArcGIS Server來發布電子地圖切片,這提高了成本并造成了資源的浪費,那有沒有一種廉價的替代方案呢?生產階段依然使用ArcGIS Desktop配置地圖并生成地圖切片,在部署時不使用ArcGIS Server而用其他方式發布符合OGC-WMTS規范的地圖服務,對此,筆者進行了探索。為了實現這個目的,首先需要了解ArcGIS的地圖切片結構;之后需要了解OGC-WMTS服務規范;在此基礎上給出實現,實現的技術多種,在這里筆者選用NodeJS。

2 ArcGIS緊湊型存儲格式分析

從ArcGIS 10開始增加了一種稱之為緊湊型存儲(Compact)的新的切片緩存文件格式,與之前的松散型存儲(Exploded)相比,它有文件個數少、節約存儲空間、容易部署和遷移等諸多優點,已經成為廣泛使用的格式。其核心為bundle和bundlx兩種文件。

2.1 其中bundle文件存儲地圖切片數據,bundlx是切片數據的索引文件。一個bundle文件中最多可以存儲128×128(16384)個地圖切片,以低位到高位的方式4個字節記錄切片數據長度,之后存儲切片的真實數據信息,如此循環。當在一個層級里,地圖切片數多余16384個,會分成多個bundle文件存儲。

2.2 bundlx文件比較簡單,大小81952字節,其中文件起始16字節和文件結束16字節為標識信息,與索引無關,剩余的81920字節為有效索引信息,以每5個字節重復,5個字節同樣以低位到高位的方式記錄了對應的切片在bundle文件中的偏移量,而偏移量的記錄按照列排順序。

2.3 對于每一個地圖切片,首先通過bundlx首先找到bundle中切片內容的偏移,然后從bundle文件中取出4個字節的長度數據,再隨后根據這個長度即可讀取真實的切片數據。

3 WMTS服務規范基本要求

WMTS(OpenGIS Web Map Tile Service,切片地圖網絡服務)提供了一種采用預先定義地圖切片方法來發布數字地圖服務的標準化解決方案。與WMS相比,WMTS服務器不提供可定制地圖服務,而是直接返回實現預先生成的切片,在這個過程不需要任何圖像操作或地理信息處理過程,這種方式盡管犧牲了提供定制地圖的靈活性,但是,卻能夠很好地滿足性能與伸縮性的需要。對于WMTS服務端,需要響應來自客戶端的以面向資源的架構風格(KVP、SOAP)的資源請求或以面向過程的架構風格(REST)的操作請求,請求包括3類資源:

3.1 服務元數據(ServiceMetadata)資源(面向過程架構風格下對GetCapabilities操作的響應),該資源描述指定服務器實現的能力和包含的信息,在面向過程的架構風格中該操作也支持客戶端與服務器間的標準版本協商,此請求服務器端必須響應。直接利用ArcGIS生成的服務元數據進行適當修改并返回。

3.2 切片(Tile)資源(面向過程架構風格下GetTile操作的響應),此請求服務器端必須實現。找到切片所在的bundle并打開加載Tile返回。

3.3 要素信息(FeatureInfo)資源(對面向過程架構風格下GetFeatureInfo操作的響應),服務器端可選擇實現。該資源提供了切片中某一特定像素位置處地物要素的信息,在這里不實現其操作。

4 基于NodeJS的OGC-WMTS實現

表1 模塊功能說明

NodeJS是一個可以快速構建網絡服務及應用的平臺,采用了Javascript V8引擎,性能很好,同時還提供了很多系統級的API,如文件操作、網絡編程等。它以單進程、單線程模式運行,事件驅動機制通過內部單線程高效率地維護事件循環隊列來實現的,不存在多線程的資源占用和上下文切換。

由于NodeJS官方API基本都是以會回調方式傳遞函數返回值,容易出現層層嵌套,形成回調金字塔,代碼可能性變差,調試困難,出現異常后難以排查。借助Promise可以解決這個問題,目前實現Promise標準的模塊有很多,如Q、bluebird和Deferred,筆者在這里使用的是Q,可以通過npm install Q-g來安裝這個插件。

具體到模塊劃分,可分為Loader模塊、Cache模塊、parser模塊和Wmts模塊。其中Wmts是主模塊,其邏輯是通過parser的parse方法解析客戶端請求,若客戶端請求ServiceMetadata信息,則首先檢查SmdCache,若已經加載過該服務的元數據信息則直接返回,若未加載過則調用SmdLoader加載并存入緩存后返回;若客戶端請求Tile,則先檢查TileCache,若已加載過則直接返回,無則檢查BundleCache,若有則直接通過fd加載Tile,若無則通過BundleLoader加載bundle然后再加載Tile,緩存后返回給客戶端。

為了減少不必要的I/O進行緩存是必不可少的,除了Cache數據外,還記錄訪問次數和最后一次訪問的時間,有了這兩個信息對不同的Cache就可以采用不同的緩存調度策略。SmdCache可以一直保存ServiceMetadata信息,因為數據量不會太大,而且為了提高響應效率,可以在服務啟動時就進行加載WMTS服務的ServiceMetadata信息。BundleCache可以采用LRU策略,即最少使用頁面置換算法;TileCache則采用訪問次數計數與LRU相結合的調度策略,替換掉訪問次數少、最久沒有被請求的地圖切片,同樣為了提高訪問速度,在系統啟動開始可以預先加載熱點區域的地圖切片。

5 測試

開發完成后需要進行嚴格的功能和性能測試,在這里筆者選擇使用Openlayers進行功能測試,結果正常。采用微軟WAST壓力測試工具進行性能測試取得了不錯的成績。

6 結語

在只有簡單的發布地圖切片的需求時,采用此種方案是可行的,除了能大大的減少成本支出,還具有拷貝即部署的特點。

[1]劉穎.基于ArcGIS Server的移動地圖Mashup應用系統設計與研究[J].北京郵電大學,2012(12).

P208

A

1671-0037(2014)12-102-2

姜成楨,男,工程師,研究方向:測繪與地理信息系統開發。

猜你喜歡
資源服務信息
基礎教育資源展示
一樣的資源,不一樣的收獲
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
資源回收
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
資源再生 歡迎訂閱
資源再生(2017年3期)2017-06-01 12:20:59
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
主站蜘蛛池模板: 青草视频网站在线观看| 丁香五月婷婷激情基地| 男人的天堂久久精品激情| 手机永久AV在线播放| 国产成年无码AⅤ片在线| 中文字幕精品一区二区三区视频 | a级毛片在线免费| 97se综合| 2021国产乱人伦在线播放| 亚洲愉拍一区二区精品| 欧洲亚洲欧美国产日本高清| 国产尹人香蕉综合在线电影| 久久九九热视频| 精品久久蜜桃| 婷婷综合亚洲| 成人在线综合| 久久精品国产亚洲麻豆| AV天堂资源福利在线观看| 97亚洲色综久久精品| 国产精品刺激对白在线| 日本欧美午夜| 国产永久无码观看在线| 国产99视频精品免费视频7| 精品三级网站| 免费高清a毛片| 国内精品伊人久久久久7777人| 在线视频精品一区| 久久久精品无码一区二区三区| 日韩资源站| 欧美成人h精品网站| 亚洲三级电影在线播放| 欧美日韩国产成人高清视频| 日本一区二区三区精品AⅤ| 亚洲视频四区| 国产一国产一有一级毛片视频| 欧美三级不卡在线观看视频| 视频一本大道香蕉久在线播放 | 国产成人一区在线播放| 免费全部高H视频无码无遮掩| 好紧太爽了视频免费无码| 亚洲综合香蕉| 国产亚洲日韩av在线| a级毛片一区二区免费视频| 日韩在线影院| 无码福利日韩神码福利片| 精品无码视频在线观看| 91小视频在线观看| 亚洲国产精品日韩欧美一区| 国产午夜福利亚洲第一| 久久国产精品麻豆系列| 亚洲高清在线播放| 四虎影视库国产精品一区| 999国内精品视频免费| 欧美日韩精品一区二区在线线| 亚洲AV无码久久天堂| 中文字幕人成乱码熟女免费| 在线播放91| 精品国产福利在线| 亚洲精品无码抽插日韩| 国产精品无码作爱| 久久a毛片| 亚洲第一区欧美国产综合 | 中文字幕在线看| 成AV人片一区二区三区久久| 亚洲中文字幕日产无码2021| 99视频在线观看免费| 国产99视频精品免费观看9e| 网久久综合| 久久精品国产免费观看频道| 免费看a级毛片| 99精品热视频这里只有精品7 | 美女被操91视频| 国产第四页| 色综合五月婷婷| 亚洲欧洲日韩综合色天使| 久久网综合| 手机在线免费不卡一区二| 日韩欧美中文| 久久久久亚洲精品成人网 | 国产91丝袜在线播放动漫| 国产av一码二码三码无码 | 国产91特黄特色A级毛片|