mapbox-gl開發(fā):圖層數(shù)據(jù)操作
mapbox-gl開發(fā)時,批量的數(shù)據(jù),都以圖層的方式進(jìn)行加載,源數(shù)據(jù)的格式是geojson,在數(shù)據(jù)加載完成后,同樣能夠?qū)D層數(shù)據(jù)進(jìn)行編輯,實現(xiàn)增、刪、改的效果。
mapbox-gl加載圖層數(shù)據(jù)源的方式://判斷是否有相同id的數(shù)據(jù)源,否則會拋出異常
?if?(map.getSource("layersource")?==?undefined)?{
? ? ? ?//地圖中添加數(shù)據(jù)源,之后才能進(jìn)行圖層的加載
? ? ? ? map.addSource("layersource", 'geojson數(shù)據(jù)');
? ?}
加載后,獲取圖層數(shù)據(jù)的方式,獲取的數(shù)據(jù)轉(zhuǎn)換成geojson格式處理:
?map.getSource("layersource")._data
編輯geojson數(shù)據(jù),對其中的數(shù)據(jù)進(jìn)行增、刪、改,修改完成后,再保存成geojson數(shù)據(jù)。
將新的數(shù)據(jù)進(jìn)行數(shù)據(jù)源重新設(shè)置,地圖上的數(shù)據(jù)就能夠同步進(jìn)行更新:
?map.getSource("layersource").setData('新的geojson數(shù)據(jù)');
mapbox-gl中的一個數(shù)據(jù)源,能實現(xiàn)多個圖層進(jìn)行引用,在修改的同時,要考慮多個圖層的引用,數(shù)據(jù)源變化時,圖層會同步都更新。