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

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

2022-03-11 09:42:16劉明青朱國賓陳西亮
地理空間信息 2022年1期
關鍵詞:瓦片設計

劉明青,朱國賓,陳西亮

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

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

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

1 RESTful API

1.1 REST架構簡介

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

1.2 地理信息RESTful API

目前,在地理信息Web應用開發中,大部分采用基于REST風格的設計和實現。現有的RESTful API包括ESRI的ArcGIS Sever RESTful API、Nanaimo Properties、FeatureSever、基于GeoJSON表達的RESTful API等,其中基于GeoJSON表達的RESTful API常應用于地理信息Web應用開發中。

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

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

圖1 地理要素示意圖

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

2 基于HATEOAS約束的遙感影像RESTful API設計

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

2.1 分布式文件管理系統

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

2.2 RESTful API設計

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

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

圖2 瓦片空間鄰域關系示意圖

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

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

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

2.3 基于RESTful API的Web應用

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

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

3 應用實驗

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

圖3 遙感影像展示

4 結 語

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

猜你喜歡
瓦片設計
河水
遼河(2025年7期)2025-07-25 00:00:00
打水漂
揚子江詩刊(2021年4期)2021-11-11 15:58:35
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
一種基于主題時空價值的服務器端瓦片緩存算法
慣性
揚子江(2019年1期)2019-03-08 02:52:34
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
基于NoSQL數據庫的瓦片地圖服務
主站蜘蛛池模板: 中文字幕无码中文字幕有码在线| 亚洲欧美成aⅴ人在线观看 | 国产永久在线观看| 亚洲欧美另类专区| 国产在线欧美| 久久五月天综合| 538国产在线| 91精品国产一区自在线拍| 久久综合亚洲色一区二区三区| 操国产美女| jizz亚洲高清在线观看| 国产视频一二三区| 欧美日韩国产系列在线观看| 国产视频一二三区| 亚欧成人无码AV在线播放| 五月婷婷亚洲综合| 亚洲福利视频一区二区| 黄片一区二区三区| 欧美国产日韩在线播放| 日韩人妻少妇一区二区| 久久国产黑丝袜视频| 中文字幕无码电影| 1级黄色毛片| 99热国产这里只有精品无卡顿"| 国产精品一区在线麻豆| 成人一级免费视频| 97综合久久| 午夜不卡福利| 在线观看国产小视频| 亚洲国产天堂在线观看| 在线va视频| 99精品久久精品| 午夜三级在线| 亚洲欧美极品| 99在线观看视频免费| 国产精品亚欧美一区二区| 国产国语一级毛片| av免费在线观看美女叉开腿| 国产一级视频久久| 日韩在线永久免费播放| 国产内射一区亚洲| 精品一区二区三区视频免费观看| 狠狠色噜噜狠狠狠狠奇米777| 97在线观看视频免费| 欧美视频免费一区二区三区| 亚洲一区无码在线| 日韩免费毛片| 九九这里只有精品视频| 久久鸭综合久久国产| AV无码无在线观看免费| 久久免费精品琪琪| 成人中文字幕在线| 国产欧美精品一区aⅴ影院| 99er精品视频| 亚洲色图欧美视频| 国产草草影院18成年视频| 亚洲一区二区成人| 亚洲欧美成人综合| 欧美激情视频二区三区| 欧美日韩国产在线人成app| 日日拍夜夜操| 国产91特黄特色A级毛片| 亚洲a级在线观看| 色网在线视频| 久久国产精品影院| 67194亚洲无码| 日韩中文字幕亚洲无线码| 97久久超碰极品视觉盛宴| 欧美 国产 人人视频| 激情成人综合网| 在线免费a视频| 婷婷伊人久久| 午夜日韩久久影院| yjizz国产在线视频网| 国产激情在线视频| 狠狠色香婷婷久久亚洲精品| 夜夜操天天摸| 国产99视频精品免费观看9e| 狠狠五月天中文字幕| 一级毛片在线播放免费观看| 亚洲国产理论片在线播放| 亚洲欧洲日韩久久狠狠爱 |