前言
接续前面文章《webgis之制作地图切片方法(一) —— QGIS》,本文介绍另外一种切片工具gdal2tiels。通常遥感影像数据非常大,要在webgis应用中使用遥感影像数据需要对其进行切片,提升用户体验,降低客户端性能要求。gdal2tiels.py切片工具可以实现对栅格数据的切片。
- 环境
macOS、Python 3.10.9、GDAL、gdal2tiels.py
准备工作
- GDAL安装,网上教程很多在此不再赘述。
- gdal2tiels安装
工具使用及配置参数
pip install gdal2tiles
关键切片制作代码
通过以下代码可以得到 z/x/y 文件组织形式的切片。
import gdal2tiles
options = {
'zoom':(12,18), # 切片层级 min zoom 5 - max zoom 18
'resume':True,
'tile_size': 256, # 瓦片大小
's_srs': "EPSG:4326"
}
gdal2tiles.generate_tiles('WGS84_2018_NCMP_NC_18SVD5092_RGB.tif','./tiles', **options)
使用MapboxGL加载切片
- 关键代码
// Get a mapbox API access token
mapboxgl.accessToken ='token';
// Initialize mapbox map
const map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/light-v9',
center: [-75.5352, 35.17688],
zoom: 15,
});
// Insert the layer before mapbox labels
map.on('load', () => {
map.addSource('XYZ-source', {
type: "raster",
tiles: ["http://127.0.0.1:5555/tiles/{z}/{x}/{y}.png"],
tileSize: 256,
"scheme":"tms",
})
map.addLayer({
id: 'XYZ-layer',
source: "XYZ-source",
type: 'raster',
});
});
-
效果
-
注意
通过gdal2tiels切片是tms的切片方式,编号坐标在左下角,所以在用webgis地图引擎加载时需要注意相关配置。