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

从Mapbox获取珠峰RGB地形瓦片返回404 JS代码运行异常排查

JS珠峰飞行模拟项目Mapbox高程瓦片调用异常问题

项目方案演进

近期重启JS珠峰飞行模拟项目的开发工作。最初尝试使用DEM高程数据自定义高程网格与瓦片,将高程值映射至顶点Z轴实现3D地形渲染。
后续评估认为Mapbox RGB瓦片存储高程数据的方案更优,可大幅减少自定义高程数据的加工量,但实际运行时始终无法正常获取目标瓦片。

当前异常表现

  • 官方文档提供的内布拉斯加州奥马哈示例请求可正常响应
  • 切换至珠峰坐标的瓦片请求始终返回未找到
  • 已在对应sphericalmercator开源仓库提交相关问题单,等待技术人员提供排查思路

测试调用代码

import fs from "fs";
import dotenv from "dotenv";
import fetch from "node-fetch";
import SphericalMercator from "@mapbox/sphericalmercator";

dotenv.config();

const queryMapbox = async () => {
  const merc = new SphericalMercator({
    size: 256,
  });
  const xyFromLatLong = (lat, long, merc) => {
    return merc.forward([long, lat]);
  };

  const zoom = 14;
  const long = 86.922623;
  const lat = 27.986065;
  const xyPos = xyFromLatLong(lat, long, merc);

  console.log({ xyPos });

  try {
    // 文档示例 - 内布拉斯加州奥马哈区域
    // const response = await fetch(
    //   `https://api.mapbox.com/v4/mapbox.terrain-rgb/14/12558/6127.pngraw?access_token=${process.env.ACCESS_TOKEN}`
    // );
    // const filename = "omaha-rgb.png"

    const response = await fetch(
      `https://api.mapbox.com/v4/mapbox.terrain-rgb/${zoom}/${xyPos[0].toFixed(0)}/${xyPos[1].toFixed(0)}.pngraw?access_token=${process.env.ACCESS_TOKEN}`
    );
    const filename = "everest-rgb.png"

    await new Promise((resolve, reject) => {
      const fileStream = fs.createWriteStream(`./data/${filename}`);
      response.body.pipe(fileStream);
      response.body.on("error", (err) => {
        reject(err);
      });
      fileStream.on("finish", function () {
        resolve();
      });
    });


    console.log({ response });
  } catch (err) {
    console.error(err);
  }
};

queryMapbox(); // 测试执行

内容的提问来源于stack exchange,提问作者Michael Paccione

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.25 20:57:02