Cesium中如何正确加载本地GeoJSON数据? 宇文恒菽 提问于 2026-03-30 13:52:19 阅读 4 交互 我在用Cesium加载本地的GeoJSON文件时总是失败,控制台报错说找不到资源。明明路径是对的,也试过把文件放public目录下,但还是不行。 我用的是Vite搭建的项目,是不是需要特殊配置?下面是我的加载代码: viewer.dataSources.add( Cesium.GeoJsonDataSource.load('./data/test.geojson') ); 我来解答 赞 2 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 迷人的奕瑞 Lv1 遇到这种情况,一般这样处理。首先你用的是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 加载更多 相关推荐 2 回答 24 浏览 Cesium中如何正确移除之前添加的Entity? 我在用Cesium做轨迹回放功能,每次重新加载数据前想清空之前的entity,但调用remove后地图上还是有残留,不知道是不是方法用错了。 我试过这样写: const entity = viewer... 端木树萱 交互 2026-03-09 14:34:19 2 回答 38 浏览 Cesium加载3D模型后如何让模型始终面向屏幕? 我在用Cesium加载glTF模型时发现,模型会随着视角旋转而转动,导致始终侧面对着屏幕。比如放个路牌模型,怎么调整都能让它的正面永远朝向用户视角呢? 尝试过在Entity里设置orientation... 东焕(打工版) 交互 2026-02-02 19:12:33 2 回答 70 浏览 Cesium加载GLTF模型时显示加载失败怎么办? 在Cesium中用Entity.addModel()加载本地GLTF模型时,总提示“加载失败”,但文件路径明明没问题。我按官方文档配置了modelMatrix和scale参数,控制台还报404错误,该... 设计师若溪 交互 2026-02-01 20:25:25 2 回答 61 浏览 OpenLayers动态加载GeoJSON图层不显示怎么办? 大家好,我在用OpenLayers做地图应用时遇到个怪问题。按照文档写了动态加载GeoJSON的代码,但图层就是不显示,控制台也没报错... 场景是这样的:我先用fetch获取本地GeoJSON文件,... ❤柯欣 交互 2026-02-08 11:07:33 2 回答 34 浏览 Cesium中地图容器高度不生效怎么办? 我在用Cesium加载3D地图时,发现设置的容器高度总是150px,不管我怎么改CSS都没用,明明代码里写了100vh啊。 试过在父级加height: 100%、也试过用!important,但开发者... 小诗雅 交互 2026-03-12 14:28:19 1 回答 42 浏览 Cesium中如何监听地图点击事件并获取经纬度? 我在用Cesium做地图应用,想实现点击地图时弹出当前点的经纬度,但不知道怎么绑定点击事件。试过用viewer.screenSpaceEventHandler,但拿到的坐标是笛卡尔坐标,转成经纬度后数... 萌新.钰浩 交互 2026-02-24 09:24:22 1 回答 22 浏览 NgRx中如何正确处理异步加载状态的错误重试? 我在用NgRx做数据加载,遇到网络错误时想让用户点击重试按钮重新发起请求。现在的问题是:重试的时候action发出去了,但effect好像没响应,控制台也没报错。 我试过在组件里重新dispatch原... 码农雨妍 框架 2026-03-26 08:03:23 1 回答 19 浏览 SvelteKit 中如何正确加载动态路由的页面数据? 我在 SvelteKit 里写了个动态路由 [slug],但每次进入页面都拿不到数据,+page.js 里的 load 函数好像没执行? 我试过在 +page.svelte 里直接 fetch,但这样... Dev · 书希 框架 2026-03-23 17:13:18 1 回答 85 浏览 Naive UI Cascader 如何动态加载子级数据? 我用 Naive UI 的 Cascader 做省市区选择,但不想一次性加载全部数据。试了 on-update:value 和 onLoad,但文档里没找到类似 Ant Design 的 loadDa... 上官鑫鑫 组件 2026-03-23 00:33:19 1 回答 42 浏览 WebView加载本地HTML时如何防止XSS攻击? 我在React Native里用WebView加载本地的HTML文件,但担心用户输入的内容被注入脚本。比如我从接口拿到一段富文本,直接塞进HTML里展示,会不会有安全风险? 试过用DOMPurify清... 轩辕梦媛 移动 2026-03-20 13:40:25
试试把GeoJSON文件放到public目录下,然后用绝对路径来加载。比如你的文件在public/data/test.geojson,那代码要改成这样:
另外记得检查CORS设置,有时候跨域问题也会导致加载失败。如果还是不行,可以考虑用fetch先把数据拉下来再传给Cesium解析,就像这样:
这种写法虽然麻烦点,但兼容性更好些。折腾这个东西真让人头大,不过多试几次总能搞定。