You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将17.7MB的GeoJSON文件上传至Mapbox Dataset?

解决Mapbox Datasets API上传大GeoJSON文件的问题

问题原因

直接用POST /datasets/v1/{username}上传17.7MB文件触发的request entity too large错误,是因为该端点的单次请求payload存在隐性大小限制(虽未在文档明确标注,但实际约为10MB),无法直接承载超过限制的文件。

解决方案

推荐两种可行的处理方式:


方式一:手动分块上传(无额外工具依赖)

  1. 创建空数据集
    先发起POST请求创建空数据集容器,获取返回的datasetId:

    curl -X POST "https://api.mapbox.com/datasets/v1/${MAPBOX_USERNAME}?access_token=${MAPBOX_ACCESS_TOKEN}" \
      --header "Content-Type:application/json" \
      -d '{"name": "10m精度海岸线", "description": "Natural Earth海岸线数据"}'
    

    保存返回结果中的id字段值(记为DATASET_ID)。

  2. 拆分GeoJSON文件
    将原文件拆分为多个大小不超过5MB的子文件(可使用geojson-split工具):

    # 先安装工具:npm install -g geojson-split
    geojson-split ne_10m_coastline.json -m 5000000
    

    执行后会生成part-1.json、part-2.json等拆分文件。

  3. 批量上传特征
    循环将每个拆分文件的特征通过PATCH请求添加到数据集:

    for file in part-*.json; do
      curl -X PATCH "https://api.mapbox.com/datasets/v1/${MAPBOX_USERNAME}/${DATASET_ID}/features?access_token=${MAPBOX_ACCESS_TOKEN}" \
        --header "Content-Type:application/json" \
        -d @$file
    done
    

方式二:使用Mapbox CLI自动处理(更简便)

Mapbox官方CLI会自动处理大文件的分块上传,无需手动拆分:

  1. 安装并登录CLI
    npm install -g @mapbox/mapbox-cli
    mapbox login # 输入你的Mapbox Access Token完成登录
    
  2. 直接上传创建数据集
    mapbox datasets upload ne_10m_coastline.json --name "10m精度海岸线"
    
    工具会自动完成数据集创建、分块上传等操作,无需额外干预。

内容的提问来源于stack exchange,提问作者Matthew Herbst

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 20:55:21