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

國產平臺上GIS矢量繪制的多線程改造

2017-04-14 10:34:48荔,鄭
軟件 2017年2期
關鍵詞:瓦片

朱 荔,鄭 昊

國產平臺上GIS矢量繪制的多線程改造

朱 荔1,鄭 昊2

(1. 中國電子科技集團第十五研究所,北京市 100083;2. 中國電子科技集團第十五研究所,北京市 100083)

為解決目前國產基礎軟硬件平臺上GIS矢量地圖繪制性能問題,本文嘗試基于矢量瓦片技術,對MGIS的矢量繪制進行多線程改造,其中包括對矢量數據模型的瓦片化改造以支持并行計算。實驗結果表明,本文提出的多線程改造技術能夠大幅提升矢量地圖可視化性能。

地理信息系統;矢量地圖可視化;矢量瓦片;多線程

0 引言

描述人類活動的信息有60%左右與位置相關[1],在信息化的時代,國防、政府、企業和大眾都離不開地理信息系統(Geographic Information System,縮寫為GIS)[2]。

MGIS是一個專業面向國防領域的系列化地理信息系統平臺,其基于商業化軟硬件平臺的版本目前已在國防領域得到了廣泛的應用。為確保關鍵領域信息系統安全,提供支持國產基礎軟硬件平臺的MGIS系列產品是十分必要的。

矢量地圖是地理信息系統中最復雜、處理難度最大的數據,相對于柵格地圖,它具有精確度更高、數據顯示不受分辨率影響、包含的關系數據可以使得一些空間分析更有效率(例如網絡分析)、數據所占據的存儲空間相對較小、便于編輯修改等優點[3][4]。

由于商用軟硬件平臺的成熟性和高性能,MGIS只需采用串行計算的體系結構,在矢量地圖顯示、漫游、尺度切換等各方面就能滿足用戶使用要求。但是,目前的國產基礎軟硬件(包括CPU/GPU的計算能力、操作系統對顯卡等外設的驅動能力、二三維圖形支撐環境的圖形繪制性能、國產整機的綜合性能等)與主流商用軟硬件相比還存在不小差距[5],如果只是將基于商用基礎軟硬件平臺的MGIS簡單移植到國產基礎軟硬件平臺上,矢量地圖顯示、漫游、尺度切換等方面指標將達不到用戶使用要求,我們的實踐已經證明了這點。

考慮到現有國產CPU一般都是多核,這為我們解決國產平臺上MGIS矢量繪制性能問題提供了一種可能——將最耗時的矢量繪制進行多線程改造,以充分利用現有國產多核CPU的并行計算能力。

本文主要針對國產基礎軟硬件平臺上MGIS的矢量地圖繪制展開多線程改造,以期對解決國產平臺上MGIS矢量繪制性能問題有所突破。

1 多線程改造與矢量瓦片

1.1地理信息系統體系結構分析

一個通常的地理信息系統體系結構如圖一所示[6,7]

圖1 一個典型的地理信息系統體系結構Fig.1 a typical architecture of GIS

圖中各模塊具體介紹如下:

(1)基礎軟件層:包括操作系統、數據管理系統(文件系統、關系數據庫等)、圖形支撐環境(比如GD1/GDI+、GTK、QT、OpenGL等);

(2)數據訪問對象:是中間件層,它屏蔽底層數據存儲層軟件(比如不同關系數據庫管理系統之間及同一數據庫管理系統不同版本之間)之間的差異,對上層提供統一的數據對象訪問接口;

(3)數據層:地理信息庫負責地理信息的組織與管理;

(4)空間數據引擎層:包括負責讀寫地理信息庫的空間數據庫訪問引擎、元數據及空間數據在內存與本地緩存一體化存儲管理與調度的數據緩存共享區、以及對緩存共享區數據進行讀寫的緩存共享數據訪問引擎;

(5)功能處理層:提供地理信息系統常用功能,主要包括數據裝載、數據處理(編輯、拓撲關系處理、空間索引與矢量金字塔生成、拼接裁剪等)、可視化、屬性與空間查詢(含屬性查詢、空間查詢、基于地名的查詢等)、空間分析計算(路徑規劃、地形分析計算、緩沖區分析、疊置分析、空間計算等)、綜合查詢分析、制圖輸出(含可視化顯示、打印等)。各功能一般以組件方式實現,便于功能模塊間的集成與協同工作;

(6)主控:為功能處理層各功能模塊的集成提供統一的集成框架,負責統一獲取用戶的交互操作、各功能組件自身的狀態、各功能組件的處理結果的狀態,并將對應的處理通過消息交給相應的功能組件去處理,各功能組件將處理結果以消息的方式返回給主控,通過這樣實現功能組件間的集成與協同工作;

(7)交互界面:提供人機交互接口,如鼠標操作、菜單選取、在對話框中輸入信息等。

矢量地圖顯示、漫游、尺度切換的性能主要與矢量繪制密切相關。典型的矢量繪制的流程是:

(1)交互界面向主控發布任務;(2)主控向繪制模塊分派任務;

(3)繪制模塊向空間數據引擎請求數據;

(4)空間數據引擎從數據層得到數據;

(5)繪制模塊進行圖形繪制,并將繪制結果顯示在交互界面中。

在上述流程中,空間數據引擎從數據層得到數據、繪制模塊進行圖形繪制兩個步驟是最具有多線程改造的潛力,而對它們進行多線程改造必將伴隨著對數據模型的改造[2]。

1.2地理數據模型改造與矢量瓦片

Richard Healey等在進行支持并行計算的地理信息系統設計時,提出過一種稱之為“多區塊”的矢量數據結構。所謂“多區塊”是用指一系列彼此獨立的規則網格來覆蓋一個區域[2]。這與當今在許多在線上商用地理信息系統中使用的“地圖瓦片”概念有相似的部分,盡管“地圖瓦片”的本質是柵格地圖,是將矢量地圖在服務器端柵格化形成圖片并在各個比例尺上進行切分所形成的,為的是解決初期線上地理信息系統的客戶端瀏覽器常常不支持繪圖功能以及網絡帶寬不支持快速的全圖傳輸的問題。隨著客戶端瀏覽器的繪圖能力由于一些繪圖插件(如WebGL)的出現得到提高,以及用戶對線上地圖的編輯性要求的提高,“矢量瓦片”的概念被提了出來。應該說,“矢量瓦片”雖然并不是為了解決并行計算問題而誕生,卻是最接近Richard Healey等人提出的“多區塊”數據結構的概念。

“矢量瓦片”的思想與“地圖瓦片”類似,是將矢量數據組織成類似的、按照地理位置組織地理要素的小片,并統合各比例尺數據進一步形成矢量瓦片金字塔,以應對多比例尺的切換問題。不過矢量瓦片比起地圖瓦片更為復雜,需要考慮格式標準、瓦片劃分體系、細節概括程度、基本幾何要素、圖層組織、屬性信息組織等等因素[4]。當前一個比較成熟的矢量瓦片體系是來自Mapbox的矢量瓦片服務。

Mapbox的一個矢量瓦片內部包含一個或幾個圖層,每個圖層都有一個版本號和名字,并記錄了其覆蓋的地理范圍。圖層內部有多個地理要素并存有這些地理要素所擁有的全部非幾何屬性的名稱和這些非幾何屬性的值。每個地理要素除了需要指向這些非幾何屬性的鍵和值外,還需要標明id、要素類型以及幾何信息。其中,幾何信息是以指令信息和參數信息所組成的。指令信息共有三種:MoveTo、LineTo、和ClosePath。最初的起點設為(0,0),MoveTo有兩個參數(dx,dy),它表示從當前點(x,y)直接移動到(x+dx, y+dy)畫點,并將新起點設為(x+dx, y+dy);LineTo也有兩個參數(dx,dy),它表示從當前點(x,y)移動到(x+dx, y+dy)畫點,并將(x,y)與(x+dx,y+dy)連線,起點不變;ClosePath沒有參數,它表示從當前點(x,y)回到起點并連線。這三條指令相互配合,能夠表示地理要素中可能出現的所有幾何類型,并且能夠被機器解讀,再與符號搭配表對照,從而繪制出相應的幾何圖形[8]。如果可以將這項技術應用于改造現有的關系數據庫,不但可以降低多線程改造的難度,而且可以大大減少在讀取數據時的I/O次數,從而提升繪制性能。

根據上述思路,我們擬以矢量瓦片技術為基礎,并對繪制模塊進行多線程改造的方法來對基于國產軟硬件基礎平臺的MGIS進行優化。

2 MGIS矢量繪制的多線程改造實驗

2.1實驗環境

本文所采用的實驗環境如表1所示。

2.2設計方案

MGIS矢量繪制多線程改造方案如圖2所示。

表1 實驗環境Tab.1 experiment context

圖2 MGIS矢量繪制多線程改造方案Fig.2 the design of the multithreading modification of MGIS vector drawing

其中:

(1)界面線程為主線程,負責接收用戶的交互輸入、將內存中的圖像進行貼圖和保存在本地緩存中;

(2)共有四個繪制線程,負責按矢量瓦片塊數據繪制成圖像,并寫入內存的圖像緩沖區中;

(3)一個后臺運行的注記線程,負責地圖注記的繪制與壓蓋處理;

(4)一個空間數據讀取線程,負責從本地緩存中按順序依次讀取地圖瓦片、矢量瓦片和從地理信息庫中讀取矢量瓦片數據;

(5)建立0-22級基于矢量瓦片的多尺度矢量數據庫。

2.3關鍵算法

原型系統主要涉及到的算法是矢量瓦片的生成算法。對于提取出的原始地理數據,首先將其處理成各比例尺所對應的地圖的矢量數據,在該過程中須經歷過濾和簡化,即預處理;再切分空間區域;然后對每一個比例尺的每一個圖層的每一個地理要素進行計算,判斷他們與該比例尺的哪些瓦片相關聯(穿過哪些瓦片或在瓦片內部),對橫跨兩個或以上的地理要素按照瓦片的邊緣進行切分,再放入記錄中重新進行判斷,直到取出的要素只在一瓦片內部,則將其放入所屬的瓦片空間中。其過程如圖3所示:

圖3 矢量瓦片生成流程Fig.3 the process of tiling vector data

該過程中的要點在于1.計算某個地理要素與哪些瓦片關聯(穿過哪些瓦片或在瓦片內部);2.將橫跨多個瓦片的地理要素按瓦片邊緣進行切分。

2.3.1 計算某個地理要素與哪些瓦片關聯的算法

對于某個比例尺下的點要素來說,用點的橫坐標除以該比例尺下瓦片的寬度,得到的數值取整加一,得到所屬瓦片的列數;用點的縱坐標除以該比例尺下瓦片的寬度,得到的數值取整加一,得到所屬瓦片的行數。

對于某個比例尺下的線要素來說,對非閉合弧段首先按照點要素的方法得出除終點、前后兩點的x值均小于自身x值及前后兩點的y值均小于自身這三類特殊點以外的其他節點相關的瓦片行列號;對于這三類特殊點,則需考察其前一個節點的坐標值情況,若其x值小于該特殊點的x值,則計算該特殊點所關聯的瓦片時,如果用點的橫坐標除以該比例尺下瓦片的寬度得到的數值為整數,則按照普通的點要素得到的相關瓦片的列數要減一才是該特殊點的所在瓦片的列數,如不為整數,則按照非特殊點處理,如果前一節點的y值小于特殊點y值,則對行數也需要做類似的處理;對閉合弧段,則要用同樣方式處理前后兩點的x值均小于自身x值及前后兩點的y值均小于自身的兩類特殊點。其次,找出兩端點相關聯的瓦片不相鄰的線段,計算以兩端點相關瓦片作為兩對角方格的網格中所有邊界所在的直線與線段的交點,按照將x值從小到大的方式排列,依次得出線段穿過了哪些瓦片的邊界,如果交點并不是瓦片的角點,則線段與所穿過的邊界兩邊的瓦片都相關;如果恰好是角點,則取中心點離上一個計算出的交點(若該點為線段的第一個交點,則考察線段的起點)最近的那個瓦片為關聯瓦片。

對于面要素來說,首先計算其邊界節點相關的瓦片行列號,得到x的最大值和最小值、y的最大值和最小值,并計算在x=xmin,y=ymin,x=xmax,y=ymax所圍成的瓦片網格中,有哪些瓦片的角點在圖形之中,如果這些在圖形內部的角點既不在圖形的邊上也不在圖形的角點上,則這些角點四周的瓦片都與該圖形相關;若這樣的角點在圖形的邊上,則用線要素的方法計算與這條邊相關聯的瓦片,這些瓦片與該圖形關聯;若這樣的角點恰好在圖形的角點上,則用線要素的方法計算與該角點相連的兩邊的關聯瓦片,這些瓦片與該圖形關聯。

2.3.2 將橫跨多個瓦片的地理要素按瓦片邊緣進行切分的算法

對于某個比例尺下的線要素,當它與多個瓦片相關聯時,隨意找這條弧段中與兩個以上瓦片相關聯的一條線段,計算它與其中存在公共邊界的兩個瓦片的公共邊界的交點,根據交點將弧段分成起點-交點、交點-終點兩條弧段。

對于某個比例尺下的面要素,首先尋找與兩個瓦片相關聯的邊,計算這條邊與這兩個瓦片公共邊界的交點,然后找出另一條與這條公共邊界所在直線相交的邊,計算出交點,根據交點將圖形劃分為起點-交點1-交點2-起點、起點-交點2-交點1-起點兩個圖形。

3 實驗結果

優化前后二維地圖可視化實驗結果對比如表2所示。

可以看出,國產平臺上的MGIS優化后所達到的性能指標與優化前相比,整體性能提升一倍左右。

表2 優化前后二維地圖可視化實驗結果對比Tab.2 performance comparison: before optimization vs after optimization

4 結果與討論

綜上所述,國產平臺上的MGIS經過優化后所達到的性能指標與優化前相比,整體性能有大幅提升,但與用戶要求仍然存在一些差距。我們認為可能的改進工作將圍繞以下兩點:

(1)空間數據引擎的多線程改造;

(2)對矢量數據模型的改造以支持基于CPU/ GPU的異構計算,以充分發揮GPU在二維可視化特別是符號化時的硬件加速能力。

相信在未來通過以上兩點的優化,基于國產基礎軟硬件的GIS的矢量地圖顯示、漫游、尺度切換的性能還將得到進一步的提升。

[1] Hahmann S, Burghardt D. How much information is geospatially referenced? Networks and cognition[J]. International Journal of Geographical Information Science, 2013, 27(6): 1171-1189.

[2] Healey, R., Dowers, S., Gittings, B., & Mineter, M. J. Parallel processing algorithms for GIS[M]. CRC Press, 1997.

[3] Chen F, Ren H. Comparison of vector data compression algorithms in mobile GIS[C]. Computer Science and Information Technology (ICCSIT), 2010 3rd IEEE International Conference on. IEEE, 2010, 1: 613-617.

[4] Ingensand J, Nappez M, Moullet C, et al. Implementation of tiled vector services: a case study[OL]. [2016-5-27].

張曉清, 龔波, 田麗韞, 等. 國產自主可控應用性能優化研究[J]. 軟件, 2015, 36(2): 5-9.

[5] ZHANG X Q, GONG B, TIAN L Y, et al. Study on the performance optimization of application running on the platform built with Chinese owned technology[J]. Software, 2015, 36(2): 5-9.

[6] 賈鵬, 王雅楠. 地理信息系統數據庫設計的研究[J]. 計算機技術與應用進展2004, 2004.

JIA P, WANG Y N. The research on the design of GIS database[J]. Progress of Computer Technology and Application in 2004, 2004

[7] 譚少輝. 一種跨平臺三維GIS系統的分析與實現[J]. 軟件, 2014, 35(12): 94-97

TAN S H. The analysis and implementation of a cross- platform 3D GIS system[J]. Software, 2014, 35(12): 94-97

[8] Mapbox. Vector Tile Specification ver2.1[OL]. [2016-4-29]. https://github.com/mapbox/vector-tile-spec/tree/master/2.1..

Multithreading Modification of GIS Vector Drawing on Domestic Platform

ZHU Li1, ZHENG Hao2
(1. No.15 Institute of China Electronics Technology Corporation, Beijing, 100083, China; 2. No.15 Institute of China Electronics Technology Corporation, Beijing, 100083, China)

In order to solve the usability problem of vector map drawing in GIS on domestic platform, this article tries to modify vector drawing module in a multithreading way based on the idea of vector tiles, including the tiling of vector data. The result shows that this method of the multithreading modification can improve the performance of vector map drawing performance largely.

GIS; The optimization of vector map visualization; Vector tiles; Multithreading

P208

: A

10.3969/j.issn.1003-6970.2017.02.024

朱荔(1992-),女,碩士研究生,主要研究方向:計算機軟件與理論;鄭昊(1978-),男,研究員級高級工程師,主要研究方向:地理信息系統平臺技術與數據共享。

本文著錄格式:朱荔,鄭昊. 國產平臺上GIS矢量繪制的多線程改造[J]. 軟件,2017,38(2):116-120

猜你喜歡
瓦片
河水
遼河(2025年7期)2025-07-25 00:00:00
打水漂
揚子江詩刊(2021年4期)2021-11-11 15:58:35
一種基于主題時空價值的服務器端瓦片緩存算法
慣性
揚子江(2019年1期)2019-03-08 02:52:34
基于NoSQL數據庫的瓦片地圖服務
主站蜘蛛池模板: 国产欧美日韩资源在线观看 | 露脸一二三区国语对白| 欧美一级视频免费| 精品无码日韩国产不卡av| 无码高清专区| 日韩人妻少妇一区二区| 曰韩人妻一区二区三区| 亚洲精品自拍区在线观看| 精品国产中文一级毛片在线看| 亚洲91精品视频| 日韩欧美国产另类| 孕妇高潮太爽了在线观看免费| 欧美成人午夜视频| 国产精品九九视频| 久久亚洲综合伊人| 亚洲最新在线| 欧美中文字幕在线视频| 99er这里只有精品| 2021无码专区人妻系列日韩| 亚洲一区二区视频在线观看| 国产精品专区第1页| 中国国产A一级毛片| 国产精品久久久久久久伊一| 成年网址网站在线观看| 午夜视频在线观看免费网站| 久久视精品| 成人一区在线| 久久综合丝袜长腿丝袜| 亚洲人成网线在线播放va| 欧美97欧美综合色伦图| 国产无码精品在线播放| 国产精品网址你懂的| 国产成人调教在线视频| 欧美色香蕉| 国产乱子伦无码精品小说 | 亚洲成年人网| 最新午夜男女福利片视频| 久久伊人操| 自慰高潮喷白浆在线观看| 狠狠做深爱婷婷久久一区| 久久亚洲高清国产| 精品视频福利| 任我操在线视频| 欧美色99| 伊人色综合久久天天| 亚洲中文字幕日产无码2021| 精品综合久久久久久97超人| 欧美日韩久久综合| 国产亚洲一区二区三区在线| 精品国产免费观看一区| 国产精品妖精视频| 国产视频一二三区| 亚洲高清无码精品| 成人韩免费网站| 亚洲开心婷婷中文字幕| 亚洲日本中文字幕天堂网| 亚洲乱码视频| 免费高清毛片| 亚洲中文无码h在线观看| 露脸一二三区国语对白| 国产精品13页| 老司机午夜精品网站在线观看 | 91精品免费高清在线| 日本在线欧美在线| 国产综合网站| 亚洲天堂成人在线观看| 伊人国产无码高清视频| 国产91无毒不卡在线观看| 夜夜操国产| 欧美激情网址| 最新日韩AV网址在线观看| 国产成人亚洲精品色欲AV| 伊人国产无码高清视频| 久久精品人妻中文视频| 91精品专区国产盗摄| 国产第一页亚洲| 中文无码日韩精品| 成年人免费国产视频| 71pao成人国产永久免费视频| 欧美中文一区| 2021国产乱人伦在线播放| 国产精品手机在线播放|