分享開(kāi)源mapbox-gl地形生成代碼
mapbox-gl加載的地形(高程)數(shù)據(jù),是將dem數(shù)據(jù),以rgb數(shù)值的形式標(biāo)示,具體的數(shù)值計(jì)算參見(jiàn)官網(wǎng)的說(shuō)明:“png or webp file extension must be used. height = -10000 + ((R * 256 * 256 + G * 256 + B) * 0.1)”,所以,制作mapbox-gl的地形切片數(shù)據(jù),首先要將高程數(shù)據(jù)轉(zhuǎn)換成terrain RGB的格式,之后再進(jìn)行數(shù)據(jù)的切片。分享github兩個(gè)開(kāi)源的實(shí)現(xiàn)方式,代碼是python的。
分享內(nèi)容:
1、https://github.com/geostarters/dem2mapbox
將高程數(shù)據(jù),制作成terrain RGB?數(shù)據(jù)格式,不過(guò)這個(gè)里邊,并沒(méi)有進(jìn)行地圖切片;調(diào)用了gdal的類庫(kù),使用gdal相關(guān)的api進(jìn)行開(kāi)發(fā);
生成地圖切片,需要做進(jìn)一步開(kāi)發(fā);
2、https://github.com/watergis/dem2terrainrgb將高程數(shù)據(jù)轉(zhuǎn)換成terrain RGB?數(shù)據(jù)格式,并進(jìn)行了地圖的切片操作;使用python調(diào)用命令行的方式進(jìn)行生成,分幾步執(zhí)行:gdalwarp 填充高程數(shù)據(jù)沒(méi)有值的數(shù)據(jù);rio rgbify?將高程數(shù)據(jù)轉(zhuǎn)換成rgb的顏色值;gdal2tiles?將顏色值的數(shù)據(jù),進(jìn)行地圖切片操作;
在上述的使用中,都需要安裝python的gdal類庫(kù),第2種方式,還需要安裝rasterio、rio-rgbify等類庫(kù),才能夠進(jìn)行使用,如果在python中執(zhí)行不方便,可以將命令行單獨(dú)拿出來(lái)進(jìn)行執(zhí)行。