1.是什么?
Mapbox是一個可以免費創建並定制個性化地圖的網站。
2.了解一些基本東西
常見的 mapbox.js和mapbox-gl.js的異同點?
相同點:
1.都是由Mapbox公司推出的免費開源的JavaScript庫
2.都可以作為前端渲染矢量瓦片交互地圖的工具
3.它們的樣式設置都支持Mapbox Style
不同點:
1.mapbox.js是Leaflet的一個插件,使用方式是通過結合Leaflet使用
2.mapbox-gl.js是Leaflet的一個插件,使用方式是通過結合Leaflet使用
3.使用mapbox-gl.js的瀏覽器必須支持WebGL渲染,在舊的瀏覽器中是不支持mapbox-gl.js的,而mapbox.js則沒有 此限制
3.能表達整個Map的style文件
mapbox-gl.js目前是圍繞style文件來進行的,其內容如下:
-
{
-
"version": 8,
-
"name": "Mapbox Streets",
-
"sprite": "mapbox://sprites/mapbox/streets-v8",
-
"glyphs": "mapbox://fonts/mapbox/{fontstack}/{range}.pbf",
-
"sources": {...},
-
"layers": [...]
-
}
從以上可以看出,除了一些基本的屬性定義之外,就是sources和layers。
基本屬性的可以參見官網https://www.mapbox.com/mapbox-gl-js/api
3.Map的組成:
任何GIS引擎必然要處理兩個部分,一個是數據來源,一個是這些數據在界面呈現的樣子,在style里面的source和layer對應於這兩個部分。
4.Source:
目前source支持vector,raster, geojson, image,video。geojson的支持比較巧妙,有了這個就可以處理各種矢量類型,包括集合。而vector主要解決的是矢量瓦片,raster解決的是目前常用的柵格化的瓦片。video的加入使得功能更加的現代化。 mapbox在style里面,為source定義了一個type屬性,來說明這些類型。
除了這個屬性之外,source其實都有一個id,被layer引用,從而讓數據源和數據呈現關聯在一起。 這個地方需要注意的是,source和layer之間的關系,可以是1->n
5.Layer:
這樣設計不僅簡單化,關鍵還可以提高效率,能批量化的渲染。
Filter: