cesium搭建離線地圖服務(wù)——瓦片數(shù)據(jù)原理以及本地瓦片數(shù)據(jù)服務(wù)部署的思路

      網(wǎng)友投稿 5818 2022-05-30

      兩個(gè)術(shù)語(yǔ):

      quadkey?——三維地圖加載瓦片地圖圖片的鍵值,在請(qǐng)求url中可以看到;

      TileXY——瓦片地圖圖片在整個(gè)地圖中的坐標(biāo),也用作該瓦片圖的存儲(chǔ)目錄;

      一、地圖分片原理

      以Cesium默認(rèn)加載的bing maps tile system為例。其地圖以一種四叉樹的方式進(jìn)行存儲(chǔ)和加載。每當(dāng)放大地圖時(shí),會(huì)根據(jù)放大層級(jí)以及當(dāng)前區(qū)域加載對(duì)應(yīng)子層級(jí)的地圖圖片,在瀏覽器進(jìn)行拼接展示。

      官方給的示意圖如下:

      圖中每個(gè)區(qū)域的紅色的數(shù)字編碼,可以記做TileXY。

      二、瓦片地圖圖片的URL格式

      Bing Maps的瓦片地圖圖片的URL的格式為:

      http://ecn.t{0}.tiles.virtualearth.net/tiles/{1}{2}.png? g={4}

      參數(shù)解釋:

      參數(shù)

      解釋

      說明

      {0}

      代表Bing Maps的服務(wù)器,平衡負(fù)載

      現(xiàn)在看來(lái)取值可以是0~7,也就是8臺(tái)服務(wù)器

      {1}

      地圖類型

      衛(wèi)星地圖:a;普通地圖:r;混合地圖:h

      為cesium搭建離線地圖服務(wù)——瓦片數(shù)據(jù)原理以及本地瓦片數(shù)據(jù)服務(wù)部署的思路

      {2}

      瓦片地圖圖片鍵值(quadkey?)

      通過對(duì)應(yīng)地圖區(qū)域的位置、顯示尺度等計(jì)算而來(lái)

      {3}

      地圖圖片類型

      取值為png | jpeg | jpg

      {4}

      地圖版本

      其他url參數(shù)可以參考bing maps的官方文檔。

      其他地圖供應(yīng)商的url大同小異。

      三、瓦片數(shù)據(jù)的存儲(chǔ)

      瓦片數(shù)據(jù)在文件系統(tǒng)中以下面這種路徑形式(z/x/y.jpg,即TileXY方式)存儲(chǔ)的:

      上圖中的圖片路徑是 2/2/1.jpg,即按照TileXY方式描述的 {地圖放大層級(jí)}/{X坐標(biāo)}/{Y坐標(biāo)}.jpg。它對(duì)應(yīng)的url是:

      https://ecn.t3.tiles.virtualearth.net/tiles/a123.jpg?g=9675

      也就是url中的圖片名 a123.jpg(quadkey)和文件夾路徑(TileXY)存在換算的映射。

      四、quadkey和TileXY之間的映射

      根據(jù)官方文檔:在給定level下,把行號(hào)Y和列號(hào)X轉(zhuǎn)換為2進(jìn)制,然后行列交叉存儲(chǔ),再轉(zhuǎn)換為4進(jìn)制,即得到了相應(yīng)的quadkey。譬如Level 3的第6行第4列的Tile計(jì)算:tileY = 5 = 101 ,tileX = 3 = 011;quadkey = 100111 = 213(4進(jìn)制) = “213”。反過來(lái)計(jì)算就是quadkey到TileXY的轉(zhuǎn)換。根據(jù)此方法,就很容易寫quadkey到TileXY之間的轉(zhuǎn)換代碼。

      五、本地搭建Maps服務(wù)方案

      如果考慮網(wǎng)絡(luò)不可用的場(chǎng)景,就需要構(gòu)建本地Maps的服務(wù)。

      比較可行的方案是根據(jù)url規(guī)則,將需要的地圖瓦片數(shù)據(jù)批量下載到本地服務(wù)器,并根據(jù)quadkey和TileXY的映射關(guān)系配置路由,cesium的地圖源的請(qǐng)求改成從本地服務(wù)器獲取。

      當(dāng)前有對(duì)應(yīng)腳本工具對(duì)瓦片數(shù)據(jù)進(jìn)行批量下載,唯一問題是數(shù)據(jù)量有些大。中國(guó)范圍內(nèi)如果地圖縮放支持到16級(jí)的衛(wèi)星地圖影像,中國(guó)的地圖數(shù)據(jù)有圖片約1.17億張。放大到16級(jí)大概是下面效果,地面分辨率2.39m每像素。

      所以如果使用此方案,需要:

      1、根據(jù)我們實(shí)際需要下載對(duì)應(yīng)區(qū)域、對(duì)應(yīng)縮放層級(jí)的瓦片數(shù)據(jù),如國(guó)外區(qū)域只下載部分層級(jí),國(guó)內(nèi)下載到16級(jí),避免用到的數(shù)據(jù)占用太大;

      2、有足夠空間、有服務(wù)器存放瓦片數(shù)據(jù),同時(shí)在此服務(wù)器上部署Maps服務(wù),并配置好請(qǐng)求路由映射;

      3、修改cesium對(duì)應(yīng)的配置,改成三維地圖圖片加載走自己部署的Maps服務(wù)器,對(duì)應(yīng)Viewer初始化時(shí)候配置imageryProvider參數(shù)。如:

      // 衛(wèi)星圖設(shè)置為本地影像 imageryProvider : new Cesium.UrlTemplateImageryProvider({ url: "/resource/map-tile/bing/{z}/{x}/{y}.jpg", }),

      六、如何下載地圖數(shù)據(jù)

      目前發(fā)現(xiàn)了一個(gè)名為MapTileDownloader的軟件比較好用。感興趣的可以找找試試。

      web前端

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:vue項(xiàng)目對(duì)接釘釘企業(yè)內(nèi)部H5微應(yīng)用
      下一篇:Windows運(yùn)行機(jī)理——API與SDK
      相關(guān)文章
      337p日本欧洲亚洲大胆精品555588| 国产亚洲免费的视频看| 久久精品国产亚洲77777| 亚洲精品无码专区久久久| 久久久久亚洲AV成人网人人网站| 亚洲国产a级视频| 亚洲AV无码乱码在线观看牲色| 国产亚洲男人的天堂在线观看| 色婷婷六月亚洲综合香蕉| 亚洲av无码兔费综合| 亚洲精品动漫免费二区| 亚洲人成色99999在线观看| 亚洲熟妇无码一区二区三区| 久久亚洲国产成人影院| 亚洲午夜无码久久| www亚洲精品久久久乳| xvideos亚洲永久网址| 亚洲美女高清一区二区三区 | 亚洲国产成人久久综合区| 成人伊人亚洲人综合网站222| 婷婷亚洲天堂影院| 久久精品国产亚洲5555| 亚洲区小说区图片区QVOD| 亚洲Av永久无码精品三区在线 | 久久精品亚洲日本佐佐木明希| 久久精品国产精品亚洲蜜月| 亚洲成人激情在线| 亚洲乱人伦精品图片| 最新国产精品亚洲| 人人狠狠综合久久亚洲| 亚洲精品国产自在久久| 黑人大战亚洲人精品一区| 亚洲成av人在线视| 777亚洲精品乱码久久久久久| 亚洲人成7777影视在线观看| 亚洲影院天堂中文av色| 日本中文一区二区三区亚洲| 久久久久国产成人精品亚洲午夜| 亚洲精品乱码久久久久久| 亚洲黄色三级视频| 亚洲熟妇少妇任你躁在线观看|