亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于HATEOAS約束的地理空間信息RESTful API設(shè)計探索

        2022-03-11 09:42:16劉明青朱國賓陳西亮
        地理空間信息 2022年1期
        關(guān)鍵詞:空間信息瓦片客戶端

        劉明青,朱國賓,陳西亮

        (1.武漢大學(xué) 遙感信息工程學(xué)院,湖北 武漢 430079)

        近年來,隨著智慧城市建設(shè)進(jìn)程的逐步推進(jìn),地理空間信息被廣泛應(yīng)用于各行各業(yè),并發(fā)揮著重要作用。不同于一般數(shù)據(jù),地理空間信息數(shù)據(jù)的屬性復(fù)雜,通常包含大小、形狀、位置或拓?fù)潢P(guān)系等復(fù)雜關(guān)系。因此,地理空間信息數(shù)據(jù)的有效使用和共享面臨著挑戰(zhàn)[1]。在Web服務(wù)開發(fā)中,現(xiàn)有的地理空間信息API均存在一定的缺陷。

        REST是前后端的一種規(guī)范性約束,使其易于理解,方便調(diào)用。HATEOAS是在最成熟、最復(fù)雜的REST分離技術(shù)的基礎(chǔ)上提出的指導(dǎo)Web應(yīng)用開發(fā)的原則,是對API的約束,打破了客戶端與服務(wù)器之間的嚴(yán)格契約,使客戶端趨于智能化和自適應(yīng)化,也使得REST服務(wù)本身的更新和演化更加容易[2]。傳統(tǒng)REST架構(gòu)風(fēng)格的地理空間信息API往往只注重數(shù)據(jù)提取的便捷性和交互效率,沒有充分體現(xiàn)地理信息數(shù)據(jù)特有的空間關(guān)聯(lián)關(guān)系。然而,現(xiàn)有的地理空間信息RESTful API都沒有嚴(yán)格遵循HATEOAS約束。因此,本文提出了一種遵循HATEOAS約束的地理信息RESTful API,有助于地理信息Web應(yīng)用的開發(fā),進(jìn)而提高地理信息的共享水平和效率。

        1 RESTful API

        1.1 REST架構(gòu)簡介

        REST架構(gòu)是由HTTP協(xié)議設(shè)計者之一的Fielding R T[3]在其博士論文中提出的。近年來,REST架構(gòu)被普遍作為軟件系統(tǒng)的接口設(shè)計標(biāo)準(zhǔn)。由于各種接口設(shè)計的目的是降低Web應(yīng)用開發(fā)的復(fù)雜度,提高系統(tǒng)的可維護(hù)性和可伸縮性[4],因此接口規(guī)范性與靈活性的統(tǒng)一成為衡量接口優(yōu)勢的重要特征。目前,絕大多數(shù)的Web應(yīng)用開發(fā)都遵循REST架構(gòu)的設(shè)計風(fēng)格,從而使得REST架構(gòu)風(fēng)格的接口設(shè)計規(guī)范成為事實(shí)上的開發(fā)標(biāo)準(zhǔn)[5]。REST架構(gòu)風(fēng)格定義了客戶端—服務(wù)器結(jié)構(gòu)、無狀態(tài)、可緩存、分層的系統(tǒng)和統(tǒng)一接口5個約束,只有滿足這些約束,才能稱之為符合REST架構(gòu)風(fēng)格[6-7],即 RESTful。

        1.2 地理信息RESTful API

        目前,在地理信息Web應(yīng)用開發(fā)中,大部分采用基于REST風(fēng)格的設(shè)計和實(shí)現(xiàn)?,F(xiàn)有的RESTful API包括ESRI的ArcGIS Sever RESTful API、Nanaimo Properties、FeatureSever、基于GeoJSON表達(dá)的RESTful API等,其中基于GeoJSON表達(dá)的RESTful API常應(yīng)用于地理信息Web應(yīng)用開發(fā)中。

        GeoJSON是一種對各種地理數(shù)據(jù)結(jié)構(gòu)進(jìn)行編碼的格式,是基于Javascript對象表示法(JSON)的地理空間信息數(shù)據(jù)交換格式[8]。GeoJSON由一個單獨(dú)對象組成,該對象為幾何體、屬性或幾何體集、屬性集[9]。相較于其他數(shù)據(jù)格式,GeoJSON更便于理解、更簡易、更方便客戶端訪問提取,提高了服務(wù)端與客戶端的交互效率。然而,GeoJSON對多個地理空間面要素的表達(dá)較模糊,不利于開發(fā)人員的理解,給地理信息Web應(yīng)用開發(fā)帶來不便。例如,兩個基于GeoJSON的地理要素表達(dá)為;

        由上述代碼可知,兩個GeoJSON十分相似,但分別代表兩個嵌套的多邊形和有孔洞的多邊形,如圖1所示,GeoJSON從結(jié)構(gòu)上無法清晰表示兩個多邊形的空間關(guān)系,需要開發(fā)者通過對結(jié)構(gòu)的包含關(guān)系進(jìn)行解析,才能區(qū)分隱含的空間關(guān)系。因此,本文提出了一種遵循HATEOAS約束的地理信息RESTful API,將空間關(guān)系加入到API設(shè)計中,從而提高地理信息的共享水平。

        圖1 地理要素示意圖

        HATEOAS是REST架構(gòu)風(fēng)格中最成熟、最復(fù)雜的約束,也是構(gòu)建成熟RESTful服務(wù)的核心。2008年Richardson提出了REST的成熟度模型。該模型將REST成熟度劃分為4個層次,而HATEOAS屬于目前Web服務(wù)設(shè)計最理想的層級。作為最成熟的REST架構(gòu)風(fēng)格約束,HATEOAS通過超媒體提供客戶端與服務(wù)端之間的交互,使得服務(wù)器與客戶端完全解耦,打破了客戶端與服務(wù)器之間的嚴(yán)格契約,使客戶端趨于智能化和自適應(yīng)化,也顯著提升了RESTful API的可發(fā)現(xiàn)性和響應(yīng)的自解釋性[10]。因此,本文利用HATEOAS約束構(gòu)建地理信息RESTful API,并以遙感影像Web應(yīng)用開發(fā)為例,闡述了面向HATEOAS約束的地理信息RESTful API開發(fā)的設(shè)計思路與實(shí)現(xiàn)過程。

        2 基于HATEOAS約束的遙感影像RESTful API設(shè)計

        本文基于HATEOAS約束,設(shè)計了一種面向遙感影像服務(wù)的RESTful API,以實(shí)現(xiàn)對某一范圍內(nèi)遙感影像的查詢與展示,主要采用Spring Boot框架進(jìn)行開發(fā)。Spring Boot框架免除了Spring開發(fā)中繁雜的配置,使應(yīng)用變得更輕量化[11]。Spring Boot開發(fā)的Web應(yīng)用程序主要采用MVC模式,同時其提供的Spring HATEOAS能幫助開發(fā)者快速構(gòu)建遵循HATEOAS約束的RESTful API。HATEOAS代表超媒體作為應(yīng)用狀態(tài)引擎,即通過超媒體(資源URIS)控制客戶端的狀態(tài)轉(zhuǎn)換[12]。HATEOAS的設(shè)計理念為響應(yīng)包含指向其他資源的鏈接。REST客戶端在請求一個API URI時,可獲得服務(wù)提供的多個資源鏈接,通過這些資源鏈接客戶端能動態(tài)獲取當(dāng)前可操作資源,因此客戶端不必再硬編碼URI結(jié)構(gòu)獲取不同資源[13]。遵循HATEOAS約束可以提高API的靈活性,使客戶端趨于智能化。

        2.1 分布式文件管理系統(tǒng)

        對于海量衛(wèi)星遙感影像,首先需要解決海量數(shù)據(jù)的存儲問題,然后為了實(shí)現(xiàn)客戶端的無縫影像縮放,需在存儲結(jié)構(gòu)中實(shí)現(xiàn)不同分辨率影像的層級。常用方法是通過金字塔結(jié)構(gòu)構(gòu)建遙感影像瓦片形態(tài)。本文采用go-fastdfs分布式文件系統(tǒng)來實(shí)現(xiàn)瓦片數(shù)據(jù)的存儲和管理。go-fastdfs是一個基于HTTP協(xié)議的分布式文件系統(tǒng),相較于常規(guī)的數(shù)據(jù)庫管理系統(tǒng),其性能高、可靠性高、運(yùn)維擴(kuò)展簡單,尤其適合海量數(shù)據(jù)的存儲與獲取。該文件系統(tǒng)支持上傳海量數(shù)據(jù),且能通過上傳路徑和文件名為數(shù)據(jù)構(gòu)建唯一的資源路徑,并支持統(tǒng)一認(rèn)證憑據(jù)。在數(shù)據(jù)處理過程中,通過特定的編碼規(guī)則確定每張瓦片的唯一索引;再利用每張瓦片的唯一編碼確定其上傳目錄,上傳至文件管理系統(tǒng)中。由此,可通過經(jīng)緯度坐標(biāo)生成瓦片編碼,確定目標(biāo)瓦片在文件管理系統(tǒng)中的資源路徑,從而獲取目標(biāo)瓦片。

        2.2 RESTful API設(shè)計

        在傳統(tǒng)遙感影像的RESTful API設(shè)計過程中,往往只注重其位置信息,即單個瓦片的地理坐標(biāo);而忽視了瓦片之間的空間關(guān)系,因此開發(fā)遙感影像RESTful API時,若想獲取多張空間上連續(xù)的瓦片,只能通過這些瓦片的地理坐標(biāo)信息發(fā)出多次請求,這樣既造成了客戶端與服務(wù)端的頻繁交互,又延長了客戶端的展示時間。

        本文在遙感影像的RESTful API設(shè)計時,首先嚴(yán)格遵循HATEOAS約束,提高開發(fā)者使用該API進(jìn)行開發(fā)的效率;然后在該API中加入遙感影像瓦片的空間鄰域關(guān)系,使客戶端能快速獲取該瓦片周圍的8張瓦片以及相鄰分辨率層級的兩張瓦片,從而提高API的可發(fā)現(xiàn)性與應(yīng)用靈活性,以及客戶端的智能化與自適應(yīng)化。遙感影像瓦片空間鄰域關(guān)系示意圖如圖2所示。

        圖2 瓦片空間鄰域關(guān)系示意圖

        遵循HATEOAS約束的遙感影像RESTful API的一個實(shí)例為;

        RESTful API包括遙感影像瓦片的name、geometry、level和links屬性,其中g(shù)eometry屬性包含數(shù)據(jù)類型以及該瓦片的4個角點(diǎn)坐標(biāo);links屬性包含瓦片自身以及與其空間相關(guān)瓦片的資源路徑,self是瓦片自身的資源路徑,left_up、up、right_up、left、right、left_down、down、right_down對應(yīng)該瓦片同級左上、上、右上、左、右、左下、下、右下8張瓦片,upon和below分別對應(yīng)高斯金字塔中其上、下級兩張瓦片的資源路徑。

        上述遙感影像RESTful API在請求單張瓦片時,可同時獲得與該瓦片空間相關(guān)的其他瓦片資源鏈接,客戶端可直接通過這些資源鏈接獲取相關(guān)瓦片,無需進(jìn)行多次請求,且響應(yīng)的資源鏈接所指向的瓦片與目標(biāo)瓦片的空間關(guān)系十分清晰,易于理解。該RESTful API的設(shè)計符合HATEOAS約束。在遙感影像的應(yīng)用場景中,通常會采用大量空間相關(guān)的瓦片提供服務(wù),因此利用遵循HATEOAS約束的RESTful API進(jìn)行遙感影像Web應(yīng)用開發(fā)可極大地提高開發(fā)效率。

        2.3 基于RESTful API的Web應(yīng)用

        在基于RESTful API的Web應(yīng)用中,通過視圖(View)獲取用戶輸入的經(jīng)緯度坐標(biāo)、層級以及瀏覽器窗口大小,通過GET請求將參數(shù)發(fā)送到控制器(Controller);后端通過RESTful API獲取EntityModel。EntityModel的屬性包括目標(biāo)瓦片基本信息、資源路徑以及與其空間相關(guān)瓦片的資源路徑。

        將目標(biāo)瓦片置于瀏覽器窗口中心,后端根據(jù)窗口大小參數(shù)計算得到填充整個窗口所需的瓦片數(shù)量以及這些瓦片與目標(biāo)瓦片的空間關(guān)系。以目標(biāo)瓦片為中心,通過服務(wù)接口快速獲取周圍瓦片;再利用服務(wù)接口對周圍瓦片進(jìn)行遞歸調(diào)用,直至得到充滿整個窗口的遙感影像瓦片,實(shí)現(xiàn)了遙感影像瓦片由瀏覽器窗口中心到窗口邊緣的快速獲取。

        3 應(yīng)用實(shí)驗(yàn)

        在后端的服務(wù)部署完成后,可通過前端提供的經(jīng)緯度坐標(biāo)和遙感影像層級方式進(jìn)行遙感影像的查詢和展示,最終得到充滿整個瀏覽器窗口的遙感影像。遙感影像查詢結(jié)果如圖3所示。

        圖3 遙感影像展示

        4 結(jié) 語

        本文提出了一種遵循HATEOAS約束的地理空間信息RESTful API,并以遙感影像查詢、展示的Web應(yīng)用開發(fā)為例,驗(yàn)證了利用遵循HATEOAS約束的地理信息RESTful API進(jìn)行地理信息Web應(yīng)用開發(fā)的高效性與便捷性。盡管本文僅以遙感影像的無縫瀏覽為例,但HATEOAS約束可普遍應(yīng)用于各種地理空間信息服務(wù)的API設(shè)計原則中,使API服務(wù)與空間關(guān)系約束相結(jié)合,從而拓展其鏈接能力,也更符合REST規(guī)范,提高了API設(shè)計的成熟度。因此,將地理信息中特有的空間關(guān)系加入API設(shè)計中,可極大提高地理信息Web服務(wù)應(yīng)用的開發(fā)效率,從而提高地理信息的共享水平。

        猜你喜歡
        空間信息瓦片客戶端
        結(jié)合多層特征及空間信息蒸餾的醫(yī)學(xué)影像分割
        一種基于主題時空價值的服務(wù)器端瓦片緩存算法
        慣性
        縣級臺在突發(fā)事件報道中如何應(yīng)用手機(jī)客戶端
        傳媒評論(2018年4期)2018-06-27 08:20:24
        孵化垂直頻道:新聞客戶端新策略
        傳媒評論(2018年4期)2018-06-27 08:20:16
        基于Vanconnect的智能家居瘦客戶端的設(shè)計與實(shí)現(xiàn)
        電子測試(2018年10期)2018-06-26 05:53:34
        《地理空間信息》協(xié)辦單位
        基于NoSQL數(shù)據(jù)庫的瓦片地圖服務(wù)
        關(guān)于地理空間信息標(biāo)準(zhǔn)體系
        客戶端空間數(shù)據(jù)緩存策略
        综合久久加勒比天然素人| 精品人妻一区三区蜜桃| 日韩国产人妻一区二区三区| 国产精品_国产精品_k频道| 亞洲綜合一區二區三區無碼| 亚洲国产精品国自产拍av在线| 野花视频在线观看免费| 日本一区二区三区视频网站| 97精品国产97久久久久久免费 | 久久精品日本不卡91| 在线观看精品视频网站| 在线视频你懂的国产福利| 综合久久青青草免费观看视频| 上海熟女av黑人在线播放| 色吊丝中文字幕| 九九免费在线视频| 91九色国产在线观看| 情爱偷拍视频一区二区| 老熟女重囗味hdxx70星空| 亚洲黄色在线看| 看一区二区日本视频免费| 中文精品久久久久人妻不卡 | 婷婷亚洲国产成人精品性色| 中文字幕人妻少妇精品| 亚洲成av人片一区二区密柚| 午夜成人无码福利免费视频| 岛国精品一区二区三区| 蜜臀人妻精品一区二区免费 | 永久天堂网av手机版| 日韩精品人妻系列无码专区免费| 99久久精品国产片| 成人在线观看av毛片| 中文无码熟妇人妻av在线| 日日躁夜夜躁狠狠久久av| 偷拍区亚洲区一区二区| 国产91精品在线观看| 久久亚洲av无码西西人体| 乱伦一区二| 午夜一区二区三区免费观看| 99久久99久久久精品齐齐| 18禁美女裸体网站无遮挡|