如何将大型geojson文件加载到mapbox中?

如何将大型geojson文件加载到mapbox中?,mapbox,mapbox-gl-js,mbtiles,vector-tiles,tippecanoe,Mapbox,Mapbox Gl Js,Mbtiles,Vector Tiles,Tippecanoe,我有一个很大的geoJson文件(大约700MB),我需要使用mapbox和OpenMatpiles服务器将其加载到地图中。 我需要一个外部文件,所以我不能使用Mapbox Studio上传和转换数据 我无法使用,因为文件太大,超出了内存堆。所以,我用TipperCanoe将其转换为.Mbtiles。但是,我无法在mapbox中使用此格式。 我按照以下步骤将Mbtiles转换为.mvt: 安装TipperCanoe()和 生成mbtiles: tippecanoe-o mbt_file.mbti

我有一个很大的geoJson文件(大约700MB),我需要使用mapbox和OpenMatpiles服务器将其加载到地图中。 我需要一个外部文件,所以我不能使用Mapbox Studio上传和转换数据

我无法使用,因为文件太大,超出了内存堆。所以,我用TipperCanoe将其转换为.Mbtiles。但是,我无法在mapbox中使用此格式。 我按照以下步骤将Mbtiles转换为.mvt:

  • 安装TipperCanoe()和 生成mbtiles:

    tippecanoe-o mbt_file.mbtiles-z18 input_file.geojson-pC

  • 安装mb-util()并转换 mbtiles到mvt tiles:

    /mbutil/mbutil 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文件


    谢谢

    正如@Caramiriel所提到的,未实现的type:3通常意味着您的tile是gzip的,而Mapbox GL JS需要未压缩的tile。只需添加一个Content-Encoding:gzip头,让浏览器动态解压缩即可

    相关的?仅供参考,如果在第一步中使用
    -e mvt_dir
    而不是
    -o mbt_file.mbtiles
    ,则不需要第二步。如何在不使用浏览器的情况下解压缩文件?或者我必须在哪里添加内容编码?到HTTP响应头,或者使用gzip命令解压这些tile,如果您不关心性能的话。我遇到了一个类似的问题,这个答案最终为我提供了解决方案。我已经搜索了好几天,文档中没有提到这个小事实。谢谢