mapbox-gl開發(fā)教程(九):加載符號(hào)圖層(symbol)
開發(fā)地圖應(yīng)用時(shí),加載POI等點(diǎn)狀數(shù)據(jù),顯示文字或者圖標(biāo)信息,mapbox-gl對(duì)應(yīng)使用的是符號(hào)圖層(symbol),下邊講一下如何加載符號(hào)圖層數(shù)據(jù)。
mapbox-gl加載矢量數(shù)據(jù),通過兩種數(shù)據(jù)源,一種是矢量切片(vector),另一種是geojson數(shù)據(jù),數(shù)據(jù)源加載完成后,再進(jìn)行圖層的設(shè)置。
以geojson數(shù)據(jù)為例:
//添加geojson數(shù)據(jù)源,第一個(gè)參數(shù)為id
map.addSource('points',?
{'type': 'geojson',
'data': {'type': 'FeatureCollection',
'features': [
{'type': 'Feature','geometry': {'type': 'Point','coordinates': [118.03238901390978, 38.913188059745586]},'properties': {'title': '屬性信息',?'iconname':'iconname'
}}
]}});
//添加一個(gè)符號(hào)圖層
map.addLayer({'id': 'points','type': 'symbol',
//對(duì)應(yīng)上邊的數(shù)據(jù)源id
'source': 'points','layout': {
//設(shè)置圖標(biāo)的名稱
'icon-image': 'custom-marker',
// 設(shè)置顯示文字的字段
'text-field': ['get', 'title'],
//設(shè)置字體樣式
'text-font': [?'Arial Unicode MS Bold']?}});
符號(hào)圖層屬性設(shè)置鏈接:
https://docs.mapbox.com/mapbox-gl-js/style-spec/layers/#symbol
之前地圖樣式設(shè)置中的sprite和glyphs,是供符號(hào)圖層使用的,精靈圖的json文件配置的每個(gè)圖標(biāo)名稱,對(duì)應(yīng)icon-image屬性名稱,text-font是字體的設(shè)置,類型是數(shù)組,可以設(shè)置多個(gè)字體,根據(jù)字體名稱請(qǐng)求不同的url,要保證服務(wù)器端存在相應(yīng)的字體。
mapbox-gl開發(fā)是講述如何從基礎(chǔ)到實(shí)際應(yīng)用進(jìn)行地圖開發(fā)的教程,不定時(shí)進(jìn)行持續(xù)進(jìn)行更新,如有疑問,公眾號(hào)留言進(jìn)行討論。
mapbox-gl官網(wǎng)地址:https://docs.mapbox.com/mapbox-gl-js/guides/