L7 + MapBox.gl 如何離線铁孵,國(guó)內(nèi)加速使用

目前L7 支持高德和Mapbox兩種底圖汽畴,高德地圖由于使用在線API不能做的離線部署旧巾,如果你有離線部署的需求可以采用MapBox做底圖。L7 在接口層統(tǒng)一了不同底圖直接的差異整袁,一套可視化代碼可以運(yùn)行在L7 支持的任意底圖上菠齿。本文主要介紹如何離線使用,國(guó)內(nèi)加速使用MapBox坐昙,同時(shí)也提供了在線的字體服務(wù)绳匀,你也可也下載到本地使用。

L7 如何引入Mapbox

import { Scene, LineLayer } from '@antv/l7';
import { Mapbox } from '@antv/l7-maps';
const scene = new Scene({
  id: 'map',
  map: new Mapbox({
    style: 'dark',
    center: [ 103.83735604457024, 1.360253881403068 ],
    pitch: 4.00000000000001,
    zoom: 10.210275860702593,
    rotation: 19.313180925794313,
    token:'xxxx'
  })
});

為什么離線化

  • 離線部署
  • 國(guó)內(nèi)加速
  • 不使用mapbox token

如何離線化使用MapBox

你只要不使用MapBox的數(shù)據(jù)底圖服務(wù)就可以離線使用戈钢,mapbox所有數(shù)據(jù)服務(wù)資源都是在style里面配置的。除了數(shù)據(jù)服務(wù)以外還有一些靜態(tài)資源是尔,這些主要是圖片標(biāo)注殉了,文字標(biāo)注的時(shí)候使用。

mapbox本身資源在國(guó)外如果在國(guó)內(nèi)單獨(dú)部署一套單獨(dú)使用拟枚,加載速度體驗(yàn)還是很好的

我們先了解一下MapBox樣式包含哪些配置項(xiàng)薪铜。

Mapbox樣式參數(shù)

  • version:JS SDK對(duì)應(yīng)版本必須為8,
  • name:樣式的命名恩溅,
  • sprite:雪碧圖隔箍,將一個(gè)地圖涉及到的所有零星圖標(biāo)圖片都包含到一張大圖中。
  • glyphs:.pbf格式的字體樣式脚乡,例如微軟雅黑等字體庫(kù)蜒滩。
  • sources:圖層的資源文件,可以支持矢量切片奶稠、柵格俯艰、dem柵格、圖片锌订、geojson竹握、視頻等格式
  • layers:是對(duì)每個(gè)圖層樣式的描述,這里就是對(duì)地圖樣式渲染的關(guān)鍵瀑志,可以做定制化地圖樣式涩搓。<br />具體參數(shù)及其api可以參考mapbox官網(wǎng)

如果做到本地化只需要 sprite污秆,glyphs 本地化就可以了劈猪,地圖服務(wù)可以加載其他服務(wù)。

如果你不需要使用MapBox數(shù)據(jù)服務(wù)良拼,可視化層完成用L7渲染那就更簡(jiǎn)單了

你只需要將MapBox的地圖樣式設(shè)置 blank

const scene = new Scene({
  id: 'map',
  map: new Mapbox({
    style: 'blank',
    center: [ 103.83735604457024, 1.360253881403068 ],
    pitch: 4.00000000000001,
    zoom: 10.210275860702593,
    rotation: 19.313180925794313
  })
});

blank 樣式以為無(wú)底圖樣式战得,這種樣式下就不需要使用mapbox服務(wù),也不需要使用mapbox的token了

<a name="cGfei"></a>

本地化雪碧圖

如果你需要使用mapbox字段的圖片標(biāo)注庸推,你需要本地化雪碧圖資源<br />只需要下載兩個(gè)文件即可<br />sprite.json 主要記錄每個(gè)圖表在大圖上位置<br />sprite.png 每個(gè)小圖標(biāo)組成的大圖

在線雪碧圖服務(wù)地址:<br />https://lzxue.github.io/font-glyphs/sprite/sprite

<a name="KWyGs"></a>

本地化字體

如果需要使用mapbox文章標(biāo)注功能需要本地化常侦,如果你的渲染能力都是用L7實(shí)現(xiàn)的,這個(gè)過(guò)程也是不需要的贬媒。

L7 提供了在線字體服務(wù)<br /> 目前支持4種字

  • 阿里巴巴普惠體
  • noto
  • opensan
  • roboto

如果你有新的字體需求可提PR聋亡,幫你自動(dòng)生成在線可用的字體服務(wù),你可以在線使用际乘,也可以下載到本地使用坡倔。

字體服務(wù)下載:gh-pages分支 你可以clone下來(lái)直接使用。

你也可以使用在線服務(wù)<br />**<br />github服務(wù)<br />https://lzxue.github.io/font-glyphs/glyphs/{fontstack}/{range}.pbf<br />螞蟻CDN:<br />https://gw.alipayobjects.com/os/antvdemo/assets/mapbox/glyphs/{fontstack}/{range}.pbf

<a name="oeqps"></a>

地圖服務(wù)本地化

1.加載第三方底圖,柵格瓦片圖層做底圖罪塔,如天地圖投蝉,高德,google的柵格瓦片都可以<br />2.下載opensteetmap 矢量瓦片地圖做底圖<br />3.自己業(yè)務(wù)數(shù)據(jù)發(fā)布底圖服務(wù)征堪,或者矢量瓦片服務(wù)瘩缆。
<a name="SXkO4"></a>

所有的服務(wù)資源已經(jīng)準(zhǔn)備好了,這樣我們就可以獨(dú)立使用mapbox服務(wù)佃蚜,不需要再申請(qǐng)mapbox的token了

 
import { Scene, LineLayer } from '@antv/l7';
import { Mapbox } from '@antv/l7-maps';
const scene = new Scene({
  id: 'map',
  map: new Mapbox({
    style: {
        "version": 8,
          "name": "blank",
          "sprite": "https://lzxue.github.io/font-glyphs/sprite/sprite",
          "glyphs": "https://gw.alipayobjects.com/os/antvdemo/assets/mapbox/glyphs/{fontstack}/{range}.pbf",
           "sources": {},
           "layers": [
             {
               id: 'background',
               type: 'background',
               paint: {
                 'background-color': 'white',
               },
             },
           ]
         },
    center: [ 103.83735604457024, 1.360253881403068 ],
    pitch: 4.00000000000001,
    zoom: 10.210275860702593,
    rotation: 19.313180925794313,
    token:'xxxx'
  })
});

離線庸娱,無(wú)token使用mapbox demo<br />

l7 地理可視化

<a name="FaOhR"></a>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末涌韩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子氯夷,更是在濱河造成了極大的恐慌臣樱,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腮考,死亡現(xiàn)場(chǎng)離奇詭異雇毫,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)踩蔚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)棚放,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人馅闽,你說(shuō)我怎么就攤上這事飘蚯。” “怎么了福也?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵局骤,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我暴凑,道長(zhǎng)峦甩,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任现喳,我火速辦了婚禮凯傲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嗦篱。我一直安慰自己冰单,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布灸促。 她就那樣靜靜地躺著诫欠,像睡著了一般狮腿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上呕诉,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天缘厢,我揣著相機(jī)與錄音,去河邊找鬼甩挫。 笑死贴硫,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的伊者。 我是一名探鬼主播英遭,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼亦渗!你這毒婦竟也來(lái)了挖诸?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤法精,失蹤者是張志新(化名)和其女友劉穎多律,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體搂蜓,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡狼荞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了帮碰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片相味。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖殉挽,靈堂內(nèi)的尸體忽然破棺而出丰涉,到底是詐尸還是另有隱情,我是刑警寧澤斯碌,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布一死,位于F島的核電站,受9級(jí)特大地震影響输拇,放射性物質(zhì)發(fā)生泄漏摘符。R本人自食惡果不足惜贤斜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一策吠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瘩绒,春花似錦猴抹、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春跋理,著一層夾襖步出監(jiān)牢的瞬間择克,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工前普, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留肚邢,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓拭卿,卻偏偏與公主長(zhǎng)得像骡湖,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子峻厚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容