mapbox-gl:創(chuàng)建Marker
mapbox-gl提供了兩種在地圖上創(chuàng)建poi方式:使用圖層(Layers)中的symbol樣式,另一種是使用Marker的形式,圖層的數(shù)據(jù)源是geojson數(shù)據(jù),Marker是以坐標(biāo)點(diǎn)的形式加載到地圖上。
這兩者的區(qū)別是:圖層(Layers)適用于批量加載poi數(shù)據(jù),poi只能在地圖顯示成圖標(biāo)或者文字,或者是兩者的混合,poi加載的數(shù)據(jù)量可以達(dá)到很多;Marker是一個(gè)一個(gè)的根據(jù)坐標(biāo)加載到地圖上,poi的樣式比較豐富,完全根據(jù)html中排版和css樣式進(jìn)行設(shè)計(jì),poi的加載數(shù)據(jù)量比較小。
在地圖上創(chuàng)建一個(gè)基本自帶Marker:

var?marker?=?new?mapboxgl.Marker()
.setLngLat([30.5,?50.5])
.addTo(map);
通過(guò)瀏覽的開發(fā)調(diào)試,可以發(fā)現(xiàn)在頁(yè)面上加載了一個(gè)html元素,在地圖移動(dòng)時(shí),通過(guò)css中的translate rotate等變換參數(shù)進(jìn)行變化,達(dá)到跟隨上地圖相應(yīng)的坐標(biāo)點(diǎn)。

在Marker的api中,通過(guò)element的屬性,可以設(shè)置自定義的html元素,從頁(yè)面文檔中選取,或者通過(guò)createElement進(jìn)行元素創(chuàng)建:
var?el?=?document.createElement('div');
el.className?=?'marker';
同時(shí),在html的元素上加載css3,能實(shí)現(xiàn)一些更良好的效果,同時(shí)能加上動(dòng)態(tài)的標(biāo)簽效果。
畢竟Marker是通過(guò)html元素的形式進(jìn)行加載的,當(dāng)同一地方聚集很多的時(shí)候,頁(yè)面會(huì)有些卡頓,而使用圖層就不會(huì)存在這種問(wèn)題。