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

基于TypeScript的WebGIS地圖接口庫設(shè)計與實現(xiàn)

2021-05-27 05:14:00楊益文
地理空間信息 2021年5期
關(guān)鍵詞:可視化功能

楊益文

(1.上海市測繪院,上海 200063)

隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,WebGIS新技術(shù)層出不窮,基于WebGIS應(yīng)用構(gòu)建系統(tǒng)已成為用戶首選。地理信息各軟件平臺廠商在優(yōu)化軟件的同時,不斷迭代開發(fā)更新專有的WebGIS地圖開發(fā)接口庫,經(jīng)過多年技術(shù)積累和新技術(shù)迭代發(fā)展,平臺地圖Web開發(fā)庫日趨龐大和復(fù)雜。互聯(lián)網(wǎng)地圖在互聯(lián)網(wǎng)技術(shù)變革下快速發(fā)展成熟壯大,具有地圖內(nèi)容更新快、功能豐富、簡單易用等特點,受到許多用戶追捧。ArcGIS JS API是Esri公司推出的新一代WebGIS地圖開發(fā)接口庫[1],是完整的企業(yè)級WebGIS開發(fā)庫,其接口之豐富、數(shù)量之多、功能之強大,足以滿足企業(yè)級WebGIS應(yīng)用開發(fā)的需求;但其核心本質(zhì)是多年Web技術(shù)的累積,因此開發(fā)門檻高、學(xué)習(xí)成本高、入門難,遠不及當(dāng)前日漸成熟的互聯(lián)網(wǎng)地圖簡單實用。

為了降低基于ArcGIS的WebGIS應(yīng)用開發(fā)難度以及開發(fā)人員的入門門檻,本文采用主流TypeScript Web開發(fā)語言,遵循面向?qū)ο蟆⒚嫦蚰K的開發(fā)理念[2],對ArcGIS JS API進行二次封裝,使封裝后的地圖接口具有高內(nèi)聚、低耦合[3]、輕量、簡潔、易用等特性,同時能按需實現(xiàn)復(fù)雜業(yè)務(wù)定制。

1 設(shè)計思路

根據(jù)互聯(lián)網(wǎng)地圖的設(shè)計模式[4-8],本文基于ArcGIS JS API利用TypeScrpt封裝構(gòu)建地圖接口核心庫,再圍繞核心庫按需、按功能、按業(yè)務(wù)擴展構(gòu)建地圖插件庫,然后編譯混淆地圖接口核心庫和插件庫,最后通過NPM版本化管理分發(fā)交付用戶使用。

1)通過調(diào)研、分析、測試和使用高德、百度等互聯(lián)網(wǎng)地圖文檔、編程接口、開發(fā)示例和應(yīng)用體驗,整體把握互聯(lián)網(wǎng)地圖設(shè)計的特點、思路和方向;結(jié)合企業(yè)級ArcGIS JS API架構(gòu)特點,構(gòu)建Smap地圖接口核心庫[9-10]。

2)Smap地圖接口核心庫以細粒度ArcGIS JS API為底層庫,緊密結(jié)合時空地理信息服務(wù)資源,按需組織服務(wù)和業(yè)務(wù)層,可接入地圖資源服務(wù)層權(quán)限管控系統(tǒng),實現(xiàn)核心庫和資源層按需緊密定制和授權(quán),從地圖接口庫層滿足服務(wù)層授權(quán)和內(nèi)容定制需求。

3)圍繞地圖接口核心庫和用戶需求,構(gòu)建擴展地圖接口插件庫;通過擴展地圖接口插件庫,實現(xiàn)Smap地圖功能接口無限擴展,以滿足用戶靈活多變的需求,同時可保持核心庫的簡潔、靈活和穩(wěn)定。

2 關(guān)鍵技術(shù)

2.1 ArcGIS JS API

ArcGIS API for Javascript是Esri公司推出的基于開源Javascript Dojo工具包[11]開發(fā)的WebGIS地圖開發(fā)接口庫,可結(jié)合ArcGIS Enterprise與開源GIS平臺,搭建開發(fā)運行在瀏覽器中各專題、場景的專業(yè)二三維一體化WebGIS應(yīng)用[12]。

2.2 TypeScript

TypeScript是由微軟開發(fā)的開源、跨平臺網(wǎng)絡(luò)編程語言[13],是Javascript的超集。其本質(zhì)是向該語言添加了可選的靜態(tài)類型和基于類的面向?qū)ο缶幊蹋ㄟ^擴展Javascript的語法,使得現(xiàn)有的Javascript程序均可在TypeScript環(huán)境中運行。TypeScript也可為已存在的Javascript庫添加類型信息的頭文件,擴展其對于流行的庫支持。TypeScript必將是未來Web技術(shù)主流開發(fā)語言[14]。

2.3 Node Package Manager

Node Package Manager(NPM)是NodeJS包管理和分發(fā)工具。通過NPM管理機制實現(xiàn)基于Javascript包的編譯、混淆、打包、上傳和分發(fā);基于NodeJS網(wǎng)絡(luò)應(yīng)用可統(tǒng)一通過NPM分發(fā)管理機制實現(xiàn)包的下載、引用和調(diào)用[15]。

3 Smap地圖接口庫架構(gòu)與工作流程

3.1 地圖接口庫架構(gòu)

根據(jù)互聯(lián)網(wǎng)地圖設(shè)計模式,為保證地圖架構(gòu)輕量、簡潔、易用,Smap地圖接口核心庫架構(gòu)以TypeScript模塊為構(gòu)件單元,構(gòu)建Smap作為地圖接口庫核心輸出單元,并在Smap模塊中構(gòu)建Map、Layers、Control、OverLayers等地圖內(nèi)容功能部件。Map是地圖接口庫的核心對象,通過Map實例化實現(xiàn)地圖初始化、圖層加載渲染表達展示、地圖應(yīng)用控件交互和地圖行為事件等內(nèi)容。Layers是構(gòu)成Map內(nèi)容的核心層,地圖內(nèi)容展示均通過該圖層來實現(xiàn),也可支持圖層擴展開發(fā),實現(xiàn)自定義和多平臺服務(wù)圖層定義接入。Control是Map對象的核心控件層,可按需定制、加載使用各種業(yè)務(wù)類型地圖控件。OverLayers是Map對象的核心覆蓋層,可為Map對象定制Mark、Polyline、Polygon等多種類型的覆蓋層,并可按需擴展實現(xiàn)。

Smap地圖接口插件庫同樣參照互聯(lián)網(wǎng)地圖設(shè)計模式,獨立于地圖接口核心庫設(shè)計,但可圍繞地圖接口核心庫按功能進行定制擴展開發(fā),在使用過程中按需加載即可。 本文設(shè)計了數(shù)據(jù)可視化展示庫和通用功能擴展組件庫兩組Smap擴展插件庫,其中數(shù)據(jù)可視化展示庫可實現(xiàn)地理數(shù)據(jù)可視化定制表達;通用功能擴展組件庫中集成了與核心庫獨立的通用功能,包括Trajectory軌跡路徑回放、MigrationMap遷移圖、MapRoam漫游等通用接口模塊,后期可按需、按業(yè)務(wù)進行再擴展,豐富了基于地圖接口核心庫的擴展功能接口集。

3.2 工作流程

地圖接口核心庫的工作流程也是地圖全生命周期過程,用戶通過NPM分發(fā)下載安裝核心庫,在網(wǎng)絡(luò)開發(fā)應(yīng)用中引用Smap地圖接口模塊包,通過設(shè)置屬性控制參數(shù)初始化Map對象。Map對象首先需通過認證標識到地圖服務(wù)資源認證服務(wù)器,并獲取資源認證密鑰;再根據(jù)授權(quán)控制授權(quán)賬號信息,獲取圖層和地圖控件定制授權(quán)詳細配置信息;然后根據(jù)獲取的圖層和地圖控件配置詳細信息,初始化地圖圖層和地圖UI控件層,實現(xiàn)地圖內(nèi)容初始化和地圖事件暴露;最后應(yīng)用層可根據(jù)Map對象,進行地圖內(nèi)容控制和業(yè)務(wù)功能定制。工作流程如圖1所示。

圖1 工作流程圖

4 地圖接口模塊

地圖接口庫包括Smap地圖接口核心庫、基于核心庫的Smap數(shù)據(jù)可視化展示庫和Smap通用功能擴展組件庫。地圖接口核心庫是地圖構(gòu)建的基礎(chǔ),集成了地圖內(nèi)容、控件、操作和事件,是構(gòu)建地圖應(yīng)用最基本的依賴;數(shù)據(jù)可視化展示庫是面向地圖數(shù)據(jù)的可視化展示應(yīng)用庫,是地圖展示內(nèi)容最好的表達;通用功能擴展組件庫是通用功能的集合。這些模塊相互組合使用,可構(gòu)建面向空間的地理數(shù)據(jù)地圖應(yīng)用,并可與業(yè)務(wù)系統(tǒng)相集成,滿足企業(yè)級用戶基于WebGIS的地理空間大數(shù)據(jù)展示、分析、可視化的應(yīng)用需求,提升了業(yè)務(wù)系統(tǒng)應(yīng)用價值。

4.1 Smap地圖接口核心庫

地圖接口核心庫完整構(gòu)建了地圖全生命周期管理,包括地圖初始化管理、地圖內(nèi)容可視化定制展示管理、地圖控件功能定制管理、地圖事件機制管理和地圖行為功能管理。通過簡潔代碼構(gòu)建基于Smap的地圖,其中tokenconfigname用于后臺交換資源密鑰,userName和menuName相結(jié)合用以獲取定制授權(quán)地圖配置信息,viewMode用于指定地圖二三維模式,Center用于設(shè)置地圖中心點, zoom用于獲取縮放層級,zooms用于控制地圖縮放級別,pitch用于設(shè)置三維地圖視角傾斜角度,mapStyle用于指定地圖主題、設(shè)置showBuildingBlock建筑物模型。這些參數(shù)可按需組合使用,基于核心庫達到互聯(lián)網(wǎng)地圖接口簡潔、易用、輕量的效果,并呈現(xiàn)出企業(yè)級地理信息應(yīng)用。核心庫使用效果如圖2所示。部分代碼為:

4.2 Smap數(shù)據(jù)可視化展示庫

數(shù)據(jù)可視化展示庫基于地圖接口核心庫構(gòu)建,可按業(yè)務(wù)需要根據(jù)地圖地理信息服務(wù)資源進行數(shù)據(jù)可視化表達和渲染;可通過靈活的配置,快速制作散點、軌跡、區(qū)面、熱力圖等與地理位置相關(guān)的可視化作品。例如,基于邊界數(shù)據(jù),利用數(shù)據(jù)可視化展示庫setmaskboundary接口構(gòu)建邊界光圈可視化效果,如圖3所示。

圖2 Smap地圖接口核心庫示例

圖3 Smap數(shù)據(jù)可視化展示庫示例

4.3 Smap通用功能擴展組件庫

Smap通用功能擴展組件庫也是基于地圖接口核心庫構(gòu)建的,通過集成業(yè)務(wù)通用需求地圖功能構(gòu)建擴展集。目前該庫集成了地圖軌跡播放、地圖漫游、遷徙圖等通用功能接口組件,用戶可按需配合地圖接口核心庫使用。例如,通過地圖軌跡播放Trajectory.play接口實現(xiàn)熱氣球軌跡播放展示,效果如圖4所示。

圖4 Smap通用功能擴展組件庫示例

5 結(jié) 語

參照互聯(lián)網(wǎng)地圖的設(shè)計思維和模式,本文設(shè)計了基于TypeScript、ArcGIS JS API和NPM技術(shù)的二三維一體化Smap地圖開發(fā)接口庫。該庫不僅具有互聯(lián)網(wǎng)地圖簡潔、輕量、易用等特點,而且具備擴展企業(yè)級地圖應(yīng)用接口功能,可按需進行地圖功能定制擴展開發(fā),解決了目前互聯(lián)網(wǎng)地圖功能不足、企業(yè)級地圖開發(fā)復(fù)雜等痛點,為WebGIS應(yīng)用開發(fā)提供了靈活多變的選擇。

猜你喜歡
可視化功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
基于CiteSpace的足三里穴研究可視化分析
基于Power BI的油田注水運行動態(tài)分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
基于CGAL和OpenGL的海底地形三維可視化
“融評”:黨媒評論的可視化創(chuàng)新
傳媒評論(2019年4期)2019-07-13 05:49:14
關(guān)于非首都功能疏解的幾點思考
中西醫(yī)結(jié)合治療甲狀腺功能亢進癥31例
辨證施護在輕度認知功能損害中的應(yīng)用
主站蜘蛛池模板: 2021国产v亚洲v天堂无码| 国产精品丝袜在线| 四虎永久免费网站| www.国产福利| 高清国产在线| 国产精品yjizz视频网一二区| 久久久久青草大香线综合精品| 亚洲国产中文精品va在线播放 | 在线免费看片a| 亚洲伊人电影| 国产精品欧美亚洲韩国日本不卡| 91国内在线视频| 久草视频精品| 99久久无色码中文字幕| 欧美a在线看| 久久综合国产乱子免费| 午夜免费视频网站| 免费无码在线观看| 福利在线免费视频| 91蝌蚪视频在线观看| 最新日本中文字幕| 国产美女91视频| 野花国产精品入口| 亚洲美女久久| 幺女国产一级毛片| 欧美有码在线| 精品国产自在在线在线观看| 美女无遮挡免费网站| 一级毛片高清| 青青草原国产av福利网站| 人妻免费无码不卡视频| 97久久超碰极品视觉盛宴| 国产成熟女人性满足视频| 国产性猛交XXXX免费看| 亚洲午夜片| 亚洲精品午夜天堂网页| 亚洲欧美另类日本| 自拍偷拍欧美日韩| 精品人妻AV区| 四虎成人免费毛片| 国产成人精品午夜视频'| 日韩国产另类| 激情無極限的亚洲一区免费| 亚洲精品无码在线播放网站| 亚洲天堂精品在线观看| 亚洲国产天堂久久九九九| 黄色免费在线网址| 久久不卡精品| 亚洲经典在线中文字幕| 五月婷婷激情四射| 一级全黄毛片| 国产素人在线| 国产综合精品一区二区| 国产精品亚欧美一区二区三区| 中文字幕佐山爱一区二区免费| 亚洲美女一区二区三区| 免费国产高清视频| 欧美午夜在线观看| 无码高潮喷水在线观看| 青草精品视频| 真实国产精品vr专区| 国产欧美日韩18| 欧美精品成人一区二区在线观看| 国模视频一区二区| 中文字幕人成人乱码亚洲电影| 久久精品丝袜高跟鞋| 全午夜免费一级毛片| 国产精品毛片一区视频播| 国产又粗又猛又爽| 欧日韩在线不卡视频| 国产精品人莉莉成在线播放| a级毛片免费看| yjizz视频最新网站在线| 欧美日韩精品一区二区在线线 | 欧美国产日本高清不卡| 国产99在线观看| 国内精品久久人妻无码大片高| 久久综合九九亚洲一区| 黄色网页在线观看| 国产成在线观看免费视频| jizz国产视频| 全色黄大色大片免费久久老太|