• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于瓦片地圖的電子海圖生成和應(yīng)用方法

      2019-03-10 03:17:28赟,邢
      雷達(dá)與對(duì)抗 2019年4期
      關(guān)鍵詞:數(shù)據(jù)文件瓦片文件夾

      劉 赟,邢 朦

      (中國(guó)船舶重工集團(tuán)公司第七二四研究所,南京 211153)

      0 引 言

      隨著地理信息數(shù)字化、大數(shù)據(jù)存儲(chǔ)與檢索技術(shù)的發(fā)展,地理信息顯示技術(shù)也迎來(lái)了新的發(fā)展。從地圖信息的制作技術(shù)到顯示標(biāo)繪技術(shù),再到地圖信息的訪問(wèn)服務(wù)方式都發(fā)生了翻天覆地的變化。因此,軍事上對(duì)地圖資訊的應(yīng)用與顯示效果也提出了更高的需求。直觀、豐富、可交互的地圖顯示軟件越來(lái)越受到青睞,而傳統(tǒng)矢量地圖的應(yīng)用與更新模式已經(jīng)滿足不了軍事上對(duì)地圖訊息的需求了。[1-4]

      離線瓦片地圖數(shù)據(jù)的應(yīng)用不僅避免了大數(shù)據(jù)傳輸帶來(lái)的弊端,更保證了大數(shù)據(jù)地圖信息在應(yīng)用過(guò)程中的安全性,為本地可視化管理、分析、建模、開(kāi)發(fā)等一站式服務(wù)提供有力保證。以金字塔結(jié)構(gòu)分層檢索存儲(chǔ)的瓦片地圖的應(yīng)用也越來(lái)越廣泛。瓦片地圖不僅滿足了軍事上對(duì)圖層顯示越來(lái)越豐富的需求,而且具有更快的地圖刷新速度、更簡(jiǎn)潔地使用和擴(kuò)展應(yīng)用方式。這些都是傳統(tǒng)矢量地圖難以做到的。[5]

      針對(duì)瓦片地圖的顯示開(kāi)發(fā)優(yōu)勢(shì),以瓦片地圖為基礎(chǔ),本文介紹如何對(duì)瓦片地圖進(jìn)行存儲(chǔ)與檢索,以及如何通過(guò)D3D紋理映射技術(shù)來(lái)進(jìn)行瓦片地圖的顯示。

      1 瓦片地圖的圖層管理與檢索技術(shù)

      1.1 瓦片

      瓦片是指將固定范圍的某一比例尺下的地圖按照指定的尺寸(通常為128 × 128像素或者256×256像素)切成若干行與列的正方形柵格圖片,而切圖后獲得的正方形柵格圖片被形象地稱(chēng)為瓦片(也稱(chēng)作Tile)。[1,3-4]圖1由20張瓦片拼接而成的一部分世界地圖。

      圖1 由20張瓦片拼成的中國(guó)沿海地圖

      1.2 瓦片地圖數(shù)據(jù)的索引

      瓦片地圖的存儲(chǔ)結(jié)構(gòu)來(lái)源于影像金字塔的概念。根據(jù)用戶需要將地圖不同比例尺進(jìn)行分割、存儲(chǔ)與顯示,形成比例尺由小到大、數(shù)據(jù)量由小到大的金字塔形結(jié)構(gòu),以便于用戶對(duì)柵格圖像能夠按照相應(yīng)的算法進(jìn)行管理、讀取、顯示等。[6]

      對(duì)瓦片地圖數(shù)據(jù)的分類(lèi)索引可按照以下技術(shù)方案實(shí)施:

      (1) 對(duì)地圖瓦片按照第1預(yù)定規(guī)則進(jìn)行分級(jí),形成b級(jí)數(shù)據(jù)文件,其中,b為正整數(shù),b的取值為1、2、3…;

      (2) 根據(jù)第i級(jí)數(shù)據(jù)文件中地圖瓦片的數(shù)量,按照第2預(yù)定規(guī)則構(gòu)建c個(gè)文件,構(gòu)建的每一個(gè)所述文件中存放對(duì)應(yīng)的若干地圖瓦片,其中i為整數(shù),i的取值為0、1…(b-1),c為正整數(shù),c的取值為1、2、3…。

      具體舉例來(lái)說(shuō),首先按照預(yù)定大小將電子地圖順序分割成a張地圖瓦片,并對(duì)所述a張地圖瓦片進(jìn)行分級(jí),形成b級(jí)數(shù)據(jù)文件,其中第i+1級(jí)數(shù)據(jù)文件中地圖瓦片數(shù)量為第i級(jí)數(shù)據(jù)文件中地圖瓦片數(shù)量對(duì)應(yīng)的預(yù)定倍數(shù)。該預(yù)定倍數(shù)可以為整數(shù)倍數(shù),也可以為小數(shù)倍數(shù),且每相鄰兩級(jí)數(shù)據(jù)文件中地圖瓦片數(shù)量的比值(即對(duì)應(yīng)的預(yù)定倍數(shù))可以為固定倍數(shù),也可以為動(dòng)態(tài)倍數(shù)。其中i為整數(shù),i的取值為0、1…(b-1),且第i級(jí)數(shù)據(jù)文件中地圖瓦片組成一個(gè)m*n瓦片矩陣。其中,m和n均為正整數(shù),m和n可以相等,則形成的瓦片矩陣為正方形瓦片矩陣(比如,Google坐標(biāo)系統(tǒng)的瓦片地圖);m和n也可以不相等,則形成的瓦片矩陣為長(zhǎng)方形瓦片矩陣(比如,非Google坐標(biāo)系統(tǒng)的瓦片地圖)。

      以常用地圖坐標(biāo)系統(tǒng)的瓦片地圖為例,其瓦片地圖是WebMercator坐標(biāo)系統(tǒng)。瓦片地圖標(biāo)示的總范圍是經(jīng)度-180°~180°,緯度-85°~85°。按照電子地圖表示的坐標(biāo)規(guī)則對(duì)電子地圖進(jìn)行分割,并對(duì)分割后的地圖瓦片進(jìn)行分級(jí)。在實(shí)例中,第0級(jí)使用一張地圖瓦片表示。從第1級(jí)開(kāi)始,每一級(jí)的地圖瓦片的橫向和縱向方向上均提升到原來(lái)的兩倍,即每一級(jí)地圖瓦片數(shù)量是上一級(jí)地圖瓦片數(shù)量的4倍。由于每一級(jí)數(shù)據(jù)文件中地圖瓦片的數(shù)量均為上一級(jí)數(shù)據(jù)文件中地圖瓦片數(shù)量的四倍,因此到達(dá)一定級(jí)別后該級(jí)別數(shù)據(jù)文件中地圖瓦片總數(shù)量總是能夠被65 536整除。

      采用本例提供的地圖瓦片的存儲(chǔ)方法,即使是不同的投影坐標(biāo)系統(tǒng),或者是分級(jí)數(shù)據(jù)的地圖分辨率并不是按照兩倍的關(guān)系均勻往上增長(zhǎng),導(dǎo)致某一級(jí)地圖瓦片總數(shù)量個(gè)數(shù)并不是一個(gè)能夠被65 536整除的數(shù),都能夠適用。對(duì)于橫向或者縱向超過(guò)256的瓦片仍然采用256×256個(gè)小瓦片圖片組成的大文件來(lái)存儲(chǔ)。橫向或者縱向的文件行列數(shù)為橫向或者縱向瓦片最大序號(hào)/256的值取整,不妨設(shè)為N。那么從0到N-1的行號(hào)或者列號(hào)的范圍內(nèi),大文件的行或者列的存儲(chǔ)值為256,而在最邊緣的行或者列則為總值減去256×(N-1)。設(shè)立文件夾的規(guī)則則是類(lèi)似于前述的文件夾取值規(guī)則。取文件總行數(shù)或者總列數(shù)的較大值除以64,若大于1則繼續(xù)往下除64直到小于1為止。除了M次,就需要M-1層子文件夾來(lái)管理。例如,文件總行列數(shù)為65行×63列,文件序號(hào)為8、8,則需要1層子文件夾。最終的文件路徑應(yīng)該是L/0/520.dat(8/64=0,8×64+8=520)。

      1.3 利用oracle數(shù)據(jù)庫(kù)存儲(chǔ)瓦片地圖的步驟

      步驟1:在數(shù)據(jù)庫(kù)中創(chuàng)建表空間TBS_GE,并在該表空間中建立3個(gè)相同定義的表格,分別為T(mén)_TileMap_EARTH_JD(用于存儲(chǔ)地圖文件中的街道圖片)、T_TileMap_EARTH_XZ(用于存儲(chǔ)Google Earth地圖文件中的行政圖片)和T_TileMap_EARTH_WX(用于存儲(chǔ)Google Earth地圖文件中的衛(wèi)星圖片)。瓦片地圖信息如表1所示。

      表1 瓦片地圖信息表

      步驟2:將地圖文件按照?qǐng)D片類(lèi)型存入對(duì)應(yīng)的表格中。例如,一張層號(hào)12、存儲(chǔ)在5號(hào)文件夾下的名為1 246.png的衛(wèi)星圖片在表T_TileMap_EARTH_WX中對(duì)應(yīng)的記錄見(jiàn)表2。

      表2 瓦片地圖檢索示例表

      步驟3:分別在表格T_TileMap_EARTH_JD、T_TileMap_EARTH_XZ和T_TileMap_EARTH_WX中建立位圖索引idx_bmp_jd,idx_bmp_xz和idx_bmp_wx,以提高圖片查詢(xún)的速度。

      存儲(chǔ)在oracle數(shù)據(jù)庫(kù)中的地圖文件的移植方法:

      方法1:利用數(shù)據(jù)泵工具expdp將表格T_TileMap_EARTH_JD、T_TileMap_EARTH_XZ和T_TileMap_EARTH_WX分別導(dǎo)出生成DMP文件,在其他數(shù)據(jù)庫(kù)中利用數(shù)據(jù)泵工具impdp對(duì)DMP文件進(jìn)行導(dǎo)入操作。

      方法2:在網(wǎng)絡(luò)聯(lián)通的不同oracle數(shù)據(jù)庫(kù)中將表空間TBS_GE及其對(duì)應(yīng)的數(shù)據(jù)文件進(jìn)行傳輸。

      2 瓦片數(shù)據(jù)的讀取與繪制

      根據(jù)以上的瓦片地圖存儲(chǔ)規(guī)則,可以得到如下的換算關(guān)系,完成了圖片像素坐標(biāo)和實(shí)際地理坐標(biāo)之間的換算。這些換算公式是地圖顯示瀏覽的基礎(chǔ)。

      2.1 條件和變量假設(shè)

      (1) 已知待切地圖范圍:左上角坐標(biāo)(Xmin,Ymax);右下角坐標(biāo)(Xmax,Ymin)。

      (2) 已知切圖后圖片高寬:width。

      (3) 地圖跨度:ΔX=Xmax-Xmin;ΔY=Ymax-Ymin。

      (4) 當(dāng)前坐標(biāo):X,Y。

      (5) 當(dāng)前瓦片名稱(chēng)“bbrrrrrcccccc.jpg”;當(dāng)前所在行row=rrrrrr;當(dāng)前所在列col=cccccc;當(dāng)前比例尺級(jí)別lev=bb。

      (6) 當(dāng)前瓦片范圍:左上角坐標(biāo)(tileXmin,tileYmax);右下角坐標(biāo)(tileXmax,tileYmax)。

      2.2 根據(jù)當(dāng)前瓦片名稱(chēng)計(jì)算當(dāng)前瓦片范圍

      2.3 根據(jù)坐標(biāo)和比例尺計(jì)算當(dāng)前圖片所在行列號(hào)

      其中,Math.Floor意為向下取整。

      2.4 當(dāng)前坐標(biāo)在當(dāng)前圖片上的像素坐標(biāo)(pX,pY)

      有了以上的這些公式就可以把客戶端需要顯示的地理范圍換算成相應(yīng)的瓦片名稱(chēng)序列,然后把所需要的瓦片加載到客戶端,完成地圖的顯示。

      2.5 通過(guò)DirectX 3D下LPD3DXSPRITE對(duì)象進(jìn)行繪制

      生成LPD3DXSPRITE對(duì)象m_pSprite,通過(guò)LPD3DXSPRITE下Draw函數(shù)繪制,繪制結(jié)果如圖2、3所示。

      圖2 行政區(qū)域瓦片地圖顯示效果

      圖3 衛(wèi)星瓦片地圖顯示效果

      3 結(jié)束語(yǔ)

      本文闡述了瓦片地圖的索引、存儲(chǔ)與顯示調(diào)用方法,研究如何在Oracle下用金字塔結(jié)構(gòu)建立地圖索引的辦法。針對(duì)瓦片地圖的生成原理,本文提供了根據(jù)坐標(biāo)尋找地圖文件的算法。下一步的研究工作是考慮瓦片地圖的三維球體貼圖的拼接方式以及如何提供B/S架構(gòu)下的訪問(wèn)方式。

      猜你喜歡
      數(shù)據(jù)文件瓦片文件夾
      磁力文件夾
      一種基于主題時(shí)空價(jià)值的服務(wù)器端瓦片緩存算法
      慣性
      數(shù)據(jù)文件恢復(fù)專(zhuān)題問(wèn)答
      數(shù)據(jù)文件安全管控技術(shù)的研究與實(shí)現(xiàn)
      SQL數(shù)據(jù)文件恢復(fù)工具
      調(diào)動(dòng)右鍵 解決文件夾管理三大難題
      TC一鍵直達(dá)常用文件夾
      電腦迷(2015年1期)2015-04-29 21:24:13
      Tekla Structure數(shù)據(jù)文件交互格式分析
      基于NoSQL數(shù)據(jù)庫(kù)的瓦片地圖服務(wù)
      娄烦县| 胶南市| 滕州市| 南皮县| 天峨县| 宁波市| 定远县| 双江| 泸水县| 鄢陵县| 吴江市| 洱源县| 慈溪市| 彩票| 繁昌县| 乌兰浩特市| 永清县| 汶川县| 河津市| 长沙县| 杂多县| 常山县| 安国市| 东辽县| 寿宁县| 郧西县| 定南县| 宁阳县| 铜陵市| 洛宁县| 朝阳县| 托克托县| 乡宁县| 滦平县| 阿拉善盟| 睢宁县| 故城县| 宣化县| 青铜峡市| 大关县| 眉山市|