Cesium中如何正确加载本地GeoJSON数据?

宇文恒菽 阅读 4

我在用Cesium加载本地的GeoJSON文件时总是失败,控制台报错说找不到资源。明明路径是对的,也试过把文件放public目录下,但还是不行。

我用的是Vite搭建的项目,是不是需要特殊配置?下面是我的加载代码:

viewer.dataSources.add(
  Cesium.GeoJsonDataSource.load('./data/test.geojson')
);
我来解答 赞 2 收藏
二维码
手机扫码查看
1 条解答
迷人的奕瑞
遇到这种情况,一般这样处理。首先你用的是Vite,它对资源路径的解析跟传统方式不太一样。直接用相对路径可能找不到文件。

试试把GeoJSON文件放到public目录下,然后用绝对路径来加载。比如你的文件在public/data/test.geojson,那代码要改成这样:

viewer.dataSources.add(
Cesium.GeoJsonDataSource.load('/data/test.geojson')
);


另外记得检查CORS设置,有时候跨域问题也会导致加载失败。如果还是不行,可以考虑用fetch先把数据拉下来再传给Cesium解析,就像这样:

fetch('/data/test.geojson')
.then(response => response.json())
.then(data => {
return Cesium.GeoJsonDataSource.load(data);
})
.then(dataSource => viewer.dataSources.add(dataSource));


这种写法虽然麻烦点,但兼容性更好些。折腾这个东西真让人头大,不过多试几次总能搞定。
点赞
2026-03-30 14:05