如何在离线模式下使用ArcGIS Online Web Experience
完全离线使用ArcGIS Web Experience的可行方案
核心思路
不能直接将gdb或shapefile嵌入config.js,需先把本地数据转换为前端可直接加载的离线格式,替换原应用中依赖ArcGIS Online的数据源,同时确保Experience Builder的核心资源可离线访问。
步骤1:转换本地数据为离线兼容格式
- 将gdb或shapefile导出为
GeoJSON格式(可用ArcGIS Pro、QGIS等工具完成),这是前端最易解析的离线空间数据格式 - 若为底图类大规模数据,可转为
Vector Tile Package (VTPK),通过ArcGIS Pro生成
步骤2:配置Experience Builder应用的离线数据源
- 将转换后的GeoJSON/VTPK文件放到项目的
public目录下(例如public/data/your-layer.geojson) - 在应用编辑器中删除原ArcGIS Online托管服务图层,添加本地图层:
- 针对GeoJSON:使用
Feature Layer组件,数据源选择Local GeoJSON,路径填写/data/your-layer.geojson - 针对VTPK:使用
Vector Tile Layer组件,数据源选择Local Vector Tile Package,路径指向本地VTPK文件
- 针对GeoJSON:使用
步骤3:配置ArcGIS API for JavaScript离线资源
默认本地服务器依赖在线CDN加载API资源,离线时需替换为本地包:
- 下载与Experience Builder依赖版本一致的ArcGIS API for JavaScript离线包
- 将离线包解压到项目的
client/arcgis-js-api目录下 - 修改项目根目录的
config.js,添加以下配置:window.arcgisJsApiUrl = './arcgis-js-api'; window.arcgisJsApiVersion = 'x.x.x'; // 替换为实际API版本号
步骤4:离线测试验证
保持本地服务器启动,断开网络后访问https://localhost:3001/,确认数据正常加载显示
替代方案:基于ArcGIS Runtime SDK构建纯离线应用
如果Experience Builder的离线配置仍存在限制,可直接使用ArcGIS Runtime SDK(JavaScript版)搭建独立离线应用:
- 支持直接加载本地GeoJSON、Shapefile或移动地理数据库(.geodatabase)
- 完全脱离ArcGIS Online依赖,适合对离线稳定性要求极高的场景
内容的提问来源于stack exchange,提问作者Melanie
相关产品推荐
相关产品推荐

