我有一个很大的geoJson文件(将近700MB),我需要使用mapbox和openmaptiles服务器将其加载到我的地图中。 我需要一个外部文件,所以不能使用Mapbox Studio上载和转换数据。
我不能使用geojson2mvt,因为文件很大并且超过了内存堆。因此,我使用Tippecanoe将其转换为.Mbtiles。但是,我不能在mapbox中使用这种格式。 我按照以下步骤将Mbtiles转换为.mvt:
安装tippecanoe(https://github.com/mapbox/tippecanoe)和 生成mbtiles:
tippecanoe -o mbt_file.mbtiles -z18 input_file.geojson -pC
安装mb-util(https://github.com/mapbox/mbutil)并进行转换 mbtiles到mvt磁贴:
./mbutil/mb-util mbt_file.mbtiles mvt_dir --image_format=pbf
所有文件现在都是正确格式,但是您必须更改它们的格式 扩展名:
find mvt_dir -iname "*.pbf" -exec bash -c 'mv "$0" "${0%\.pbf}.mvt"' {} \;
文件已成功转换为.mvt,但是当我尝试将其加载到地图中时,显示以下错误:
blob:null/e1d9d487-dfa4-48b1-aa0e-b66527f28ac8:11754 Uncaught Error: Unimplemented type: 3
at No.skip (blob:null/e1d9d487-dfa4-48b1-aa0e-b66527f28ac8:11754)
at No.readFields (blob:null/e1d9d487-dfa4-48b1-aa0e-b66527f28ac8:11574)
at new Za (blob:null/e1d9d487-dfa4-48b1-aa0e-b66527f28ac8:9948)
at $a (blob:null/e1d9d487-dfa4-48b1-aa0e-b66527f28ac8:9964)
at No.readFields (blob:null/e1d9d487-dfa4-48b1-aa0e-b66527f28ac8:11573)
at new VectorTile (blob:null/e1d9d487-dfa4-48b1-aa0e-b66527f28ac8:9978)
at blob:null/e1d9d487-dfa4-48b1-aa0e-b66527f28ac8:14432
at XMLHttpRequest.T.r.onload (blob:null/e1d9d487-dfa4-48b1-aa0e-b66527f28ac8:416)
有人可以帮我解决这个问题吗?还是有什么方法可以显示我的大geojson文件?
谢谢!
答案 0 :(得分:0)
正如@Caramiriel所提到的,未实现类型:3通常表示您的图块已压缩,而Mapbox GL JS期望未压缩的图块。只需添加Content-Encoding:gzip标头,然后让浏览器即时进行解压缩即可。