司空 2 私有化FAQ
  1. 地图相关
司空 2 私有化FAQ
  • 部署相关
    • 高程数据导入报错 tif_slices"does not exist 问题
    • 解决没有NTP服务可用的问题
    • 机场媒体文件无法上传问题
    • 关于司空2平台调用RTK标定接口进行RTK标定未成功问题
    • 配置OAuth后,三方账号导入管理账户无权限为游客
    • 通过Amazon Cognito 身份平台用户登录白屏问题
    • 司空私有化平台无法修改设备绑定码问题
    • 登录司空平台报异常,且网络显示未连接问题
    • 司空平台删除模型文件后服务器对应文件还是存在问题
    • 司空私有化服务器重启后部分容器无法自动启动问题
    • 司空私有化系admin 账号提示没有权限问题
    • 部署司空报错HTTP 403解决方案
    • 司空服务异常报错 CodeMeter Licence Server not found Error 101 或者 Failure reason: CmContainer Entry not found, Error 200
    • codemeter启动/导入许可证异常处理
    • 修改env配置文件portainer密码未生效
    • FH2-V1.3高程数据导入报错 map_element_file_details doesnot exist
    • 司空页面报错服务器异常无法访问(容器全部运行正常)
    • 司空部署过程中tas-service/minio等容器报错退出致部署失败问题
    • 司空配置sync文件同步时报错:tls: failed to verify certificate: x509: certificate signed by unknown authority (*url.Error)
    • 部署司空的过程中报错error mounting "/etc/localtime" to rootfs at "/etc/localtime
    • 司空页面点击设备管理页面报错 “初始化设备列表失败”
  • 网络相关
    • 司空私有化内外网混合部署下的网络打通
    • 防火墙端口放开策略说明
    • 机场到司空私有化网络情况测试方法
  • 媒体相关
    • 设备上传媒体文件完成,但是在平台找不到对应的媒体文件
    • 开启MQTT桥接后,机场上传媒体到司空 2 的进度卡住不动
  • 地图相关
    • 离线地图部署各种问题解答
    • 在私有化安装部署中使用在线地图
    • 高程数据导入成功但是地图上不显示高程红色框问题
    • 发布地图显示成功,但地图服务map-server-gl报错了
  • 直播相关
    • 直播黑屏黑屏问题+直播报错超时问题
    • 司空私有化Webrtc 直播端口8000修改后,直播黑屏没有数据流问题
    • 虚拟驾驶舱直播报错213030问题
    • 飞机直播报错213030
    • 司空私有化点开项目或驾驶舱页面报“网络异常”错误
    • 司空页面点击设备直播报错“设备端运行异常(错误码400)”
  • 建模相关
    • 司空页面建模报错问题
    • 客户环境建模报错-已存在重建任务,请等待或取消进行的任务
    • 建模报错 “未找到有效的云端重建证书”
    • 上传模型文件或建模98%报异常问题解决
    • 物模型获取API中rainfall字段枚举对应的具体雨量值
  • 设备相关
    • 设备上云报超时问题
    • 飞机显示离线且poilt2报错101
    • 关于地形障碍物同步报错问题
    • 一体机在线设备扩容步骤
  • License证书
    • 部署司空2报codemeter的License相关错误解决
    • 司空私有化license v1.0升级v1.1
    • 4G私有化服务器升级到最新版本教程
    • license文件locked问题,获取CodeMeter服务日志方法
  • 二次开发相关
    • 司空2私有版的组织秘钥如何获取?
    • 司空2私有版的组织密钥是不是所有用户都是一样?
    • 通过curl命令访问/openapi/v0.1/flight-task/{task_uuid}/media,点击响应中的url连接提示没有权限
    • 物模型获取API中rainfall字段枚举对应的具体雨量值
    • 如何获取司空2前端PaaS组件的demo文件
    • 前端组件demo下载说明
    • 消息通知SDK
      • 消息通知SDK配置websocket连接地址后,建立连接失败
      • 如何异步等待websocket连接建立
      • 如何管理多个设备的通知事件
      • 同一个SN存在多个订阅者,消息是如何分发的,是广播模式吗
      • SDK的消息频率设置没生效,设置频率是30秒,消息推送还是1秒1次
      • 飞行任务状态变更事件通知中是否支持获取无人机的SN
      • 是否支持websocket连接健康检查,判断当前连接是否正常
      • 司空 2 私有版切换为https访问后,SDK报错:server's cert didn't look good
      • SDK的websocket连接断开后在OnClose回调中重连报错
      • SDK的websocket连接断开后重新建立连接后,会继续触发OnOpen回调吗
      • 接入SDK后无法收到事件的消息通知
      • 接入SDK后运行时报错:”无法加载JNI库:在jar包中找不到库文件:/lib/windows/x86_64/1ibcrypto.so.3“
      • SDK程序运行报错:Errorcode:NotificationcenterErrorcode_SubscribeError
      • SDK获取的飞行任务状态status的枚举值是什么
    • 飞行记录PaaS组件
      • window.FH2 报错为 undefined
      • 运行飞行记录组件demo.html但地图区域未加载
      • 飞行记录组件只加载了一部分界面
      • 飞行任务完成后,在组件中没有关联显示任务的视频录制回放,但是在媒体库中有
    • 直播操控SDK
      • 用户使用直播sdk初始化失败
      • 用户使用Nginx服务端部署SDK,无法识别/加载WASM文件
      • 用户调用SDK获取设备列表识别,错误拉取到html页面
      • 运行demo文件依赖的config.json中的字段值怎么填
      • 后台集成直播操控sdk后应用出现fatal error崩溃
      • 飞机已经开始直播,但是SDK没有触发推送直播码流数据回调
      • SDK会目前支持哪些开发语言和操作系统
      • 通过「直播操控SDK」获取直播码流,推送到流媒体服务器中,播放视频出现卡顿和模糊
      • 通过SDK远程控制无人机拍照报错,日志提示:“拍照失败,错误码: -6”
      • 目前SDK支持获取设备的哪些osd信息,osd的推送频率是怎样的
      • 在通过SDK远程控制负载或者无人机动作的时候,是否需要获取控制权
      • 使用SDK操控无人机拍照,照片信息中的拍摄时间比下发拍照指令的时间早2s
      • SDK上报的”liveview_world _region“ osd包含的字段信息及其含义是什么
      • 接入SDK后报错:Java.lang.unsatisfiedLinkError:void com.dji.flighthubsdk.generated.flighthubsdkJNI.swig_moduta_init()
      • 运行SDK demo报错:”[Networklmpl]http error status_code: 403“
      • SDK初始化完成后getDroneInstance时报错:SDK not initialized
      • 无人机osd中的height和elevation字段分别代表什么意思
      • 如何通过SDK判断无人机是否是返航状态
      • 通过 SDK getIs_online() 定频获取在线设备列表提示“获取设备列表失败:ERROR_OPERATION_FAILED”
      • 通过 SDK 收到的无人机和机场的新设备接入通知都是机场的sn
      • SDK 已经支持环绕飞行,DJI 那些无人机型号支持环绕飞行
      • javacript前端直播播放器拉取ZLM的直播流提示错误
    • 航线PaaS组件
      • 航点航线全局设置面板消失+模糊
      • 刷新网页后航线组件无法加载
      • 地图渲染错误:cesium render Error Cannott read properties of undefined(reading origin)
      • 地图右下角控件(底图切换)点击无反应
      • 航线Paas组件的全局*号样式会影响客户项目本身的样式
      • 航线预览时地图回中时的中心点是什么
      • PaaS组件是否支持切换英文
      • 司空2私有版切换为https访问后,PaaS组件报错
      • 点击航线预览回中显示,画面并没有出现完整航线
    • 驾驶舱PaaS组件
      • 无法进入驾驶舱,浏览器控制台报错,prjId为空
      • 在红外镜头直播情况下如何修改调色盘
      • 在html中动态加载的paas.js文件,导致paas-core文件未正常引入
      • 集成驾驶舱组件后存在文字图标显示位置不对的问题
      • 前端集成驾驶舱组件后地图部分没有正常显示
      • 在驾驶舱内拍摄4K分辨率视频,实际在媒体库看到的视频还是1080P
      • 在驾驶舱组件中操控无人机起飞后无法查看直播
    • OpenAPI
      • 司空2私有版开启直播API能否支持返回RTMP拉流地址
      • /openapi/v0.1/flight-task/{task_uuid} GET API 报200500错误码
      • /openapi/v0.1/flight-task/{task_uuid}/media GET API 报200500错误码
      • 通过curl命令访问/openapi/v0.1/flight-task/{task_uuid}/media,点击响应中的url连接提示没有权限
      • /openapi/v0.9/media/api/v1/workspaces/{proj_uuid}/files GET API返回的create_at是不是媒体的拍摄时间
      • 航线任务的暂停、恢复和终止返航可以通过哪个API实现
      • 在无人机飞行过程中,如何切换直播镜头为红外镜头
      • 通过flight-commands下发camera_look_at指令返回228406错误码
      • 是否有API能支持设置无人机的home点
      • 通过payload-command API下发camera_look_at指令,报500错误
      • 怎么通过API查询指点飞行或者一键起飞任务过程中产生的媒体文件
      • 无人机在飞行过程中的媒体文件怎么开启边飞边传
      • 如何通过API查询到司空 2 组织的设备绑定码
      • 怎么通过API查询航线任务产生的媒体文件
      • 哪些设备支持照片空中回传功能
      • 下发一键起飞指令成功,但是无人机没有飞起来,提示错误码:328051
      • 通过 API 下发返航指令报210113错误码
      • 如果通过 API 根据航线文件夹筛选文件夹
      • 通过 API 下发返航指令返回212018错误码
      • 如何通过 API 远程控制机场开关舱盖
      • 如何通过 API 触发断点续飞任务
      • 如何通过 API 设置无人机的返航预留电量
      • 如果通过 API 控制无人机负载录制视频
      • 如何获取司空 2 AI 巡逻航线任务过程中的告警信息
      • 司空 2 的蛙跳任务如何保证在无人机降落时另一台机场满足降落条件?
      • 如果通过 API 下发一键起飞任务?
      • 如何通过无人机OSD判断是否触发了避障
      • 司空私有版在运行一段时间后,有部分容器始终处于restarting状态
      • 创建航线任务后,提示 319008 错误码
      • 给Dock 3 下发航线任务后,无人机拍照的像素只有1200万,可以拍4800万像素吗
  • DJI Inside设备
    • DJI Inside设备媒体文件上传问题
  • 私有化4G增强图传相关
    • 私有化4G增强图传排障流程图
    • 4G私有化服务器第一次登录protainer 需要密码
    • 4G仲裁成功但是图传增强服务不可用问题
    • 4G私有化服务器license locked后如何处理
    • 4G私有化服务部署时本地IP地址无法配置上错误
  • 漏洞相关
    • 司空私有化Node-exporter容器30815端口漏洞修复
  1. 地图相关

离线地图部署各种问题解答

文档编号维护人内容版本号
2025041601WA离线地图部署V1.0

场景一#

基于司空私有化2平台上部署XYZ格式的地图瓦片
(注意:前提条件司空私有化服务器服务正常)

1、地图数据获取#

方式一:通过地图下载工具进行地图文件下载,例如 MobileAtlasCreator、水经微图、太乐地图。操作请参考跳转链接。
方式二:将影像 TIF 数据(需含有坐标系)转为 XYZ 格式瓦片集合,操作请参考跳转链接。
说明:
如果需要更多 XYZ 地图瓦片数据知识,请跳转链接进行阅读。

2、地图数据的配置#

2.1
把xyz格式的地图瓦片文件拷贝到服务器 ${DATA_ROOT_PATH}/static_data/asset-map/png-tiles/ 目录下(注:DATA_ROOT_PATH为实际部署时数据安装目录,env文件里面配置的地址)。
image.png
2.2
修改地图配置文件${DATA_ROOT_PATH}/conf/map/map_config.yaml,修改配置文件可以实现地图数据源的新增/删除/修改。
说明:
XYZ 卫星底图地图瓦片链接的拼接规则
${SERVICE_DOMAIN}:${MAP_CUSTOM_TCP_PORT}/${DATA_ROOT_PATH}/static_data/asset-map/png-tiles/
例如:
卫星瓦片文件存放路径为/data/static_data/asset-map/png-tiles/loudi-xyz/{z}/{x}/{y}.jpg
那么map_config.yaml文件里面配置的卫星瓦片链接就为
${SERVICE_DOMAIN}:${MAP_CUSTOM_TCP_PORT}/loudi-xyz/{z}/{x}/{y}.jpg
image.png
XYZ 路网瓦片链接的拼接规则
${SERVICE_DOMAIN}:${MAP_CUSTOM_TCP_PORT}/street_layer/${DATA_ROOT_PATH}/static_data/asset-map/street-tiles/
例如:
路网瓦片文件存放路径为/data/static_data/asset-map/street-tiles/loudi-xyz/{z}/{x}/{y}.jpg
那么map_config.yaml文件里面配置的路网瓦片链接就为
${SERVICE_DOMAIN}:${MAP_CUSTOM_TCP_PORT}/loudi-xyz/{z}/{x}/{y}.jpg
image.png
注意:SERVICE_DOMAIN(司空私有化服务器外网IP)、MAP_CUSTOM_TCP_PORT(默认30813)、DATA_ROOT_PATH(实际部署数据安装目录),以实际部署环境env文件配置为准。
例如:
#vim /data/conf/map/map_config.yaml
image.png
数据项的参数说明:
参数名称参数用途参数说明
name界面上显示的名称使用常规字符串,不含特殊符号,不为空
type地图上图标类型 default - 即随安装包默认携带的卫星地图 custom - 表示自定义的离线数据此参数仅影响右下角的地图底图图标样式
link卫星数据 URLURL 中的占位符 {z}、{x}、{y} 与发布的数据服务层级关系一致,后缀名与数据服务瓦片格式的后缀名一致。举例:http://myhost.org/services/testdata/{z}/{x}/{y}.png
street_link配套的街道数据URL可选项,若数据项无配套路网数据,可省略此选项。配置规则与 link(卫星数据URL)一致
min_z数据可用最小层级可选,默认值为0,请提供数据源的真实最小层级,只影响卫星数据。地图缩小到对应级别时,所有小于这个层级的数据都会以这个层级的数据为基准缩放。如果没有配置,小于真实最小层级时会显示为空白。
max_z数据可用最大层级可选,无默认值,请提供数据源的真实最大层级,只影响卫星数据。地图放大到对应级别时,所有大于这个层级的数据都会以这个层级的数据为基准缩放。如果没有配置,大于真实最大层级时会显示为空白。

3、离线地图的发布#

在 ${部署安装包解压目录}/tool/map/ 路径下执行命令:
image.png
访问司空私有化平台验证地图发布是否成功
image.png

场景二#

独立的服务器上部署XYZ格式的地图瓦片服务
(注意:前提条件地图服务器和司空私有化服务器网络通讯正常)

1、部署前准备#

** 1.1
司空私有化平台查看自定义地图用到的容器,登录网关dashboard 页面(自定义地图用到的是30813端口检查这个端口指向的容器)**
image.png
image.png
image.png
1.2
导出地图服务镜像文件

(在司空私有化服务器里面查看地图服务容器用到的镜像然后导出文件导入到要部署的地图服务器)
#docker ps|grep map-server-nginx
image.png
#docker inspect map-server-nginx |grep Image
image.png
#docker images |grep nginx
image.png
司空私有化服务器内找到Nginx镜像
#docker images |grep nginx
image.png
使用 docker save 命令导出镜像为一个 .tar 文件
#docker save -o nginx_image.tar harbor.djicorp.com/es310/public/nginx:1.26.1
image.png
1.3
在新的地图服务器内导入上面nginx_image.tar 镜像。

(注意:服务器先要安装docker环境版本不低于27.2.0)
使用docker 安装包和脚本安装(司空私有化安装包解压目录下的tool/docker/目录)
image.png
安装docker
#bash ./install_docker.sh
image.png
检查docker版本
#docker --version
image.png
导入Nginx镜像文件到新的地图服务器
#docker load -i nginx_image.tar
image.png

2、部署和配置地图服务#

** 2.1
在新的地图服务器里面启动容器前先创建需要的配置文件和地图数据。**
在compose.yaml文件内检查司空私有化服务器里面原来地图服务map-service-nginx的配置文件和涉及到的文件为asset-map-nginx.conf 。
image.png
拷贝这个文件到新的离线地图服务器内(存放目录自己定义保证足够权限就可以)
然后文件添加如下配置
image.png
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE, PATCH, HEAD, TRACE';
add_header 'Access-Control-Max-Age' '100';
** 2.2
在新的地图服务器里面启动Nginx容器**
#docker run -itd -p 5971:80 -v /mnt/map/loudi-map:/var/png-tiles -v /mnt/map/accst-map/asset-map-nginx.conf:/etc/nginx/nginx.conf harbor.djicorp.com/es310/public/nginx:1.26.1
image.png
说明:
-p 5971:80
*将宿主机的 5971 端口 映射到容器的 80 端口(Nginx 默认监听 80)
-v /mnt/map/loudi-map:/var/png-tiles
*将本地路径 /mnt/map/loudi-map 里的地图数据挂载到容器的 /var/png-tiles 目录。
容器里的 Nginx 会通过 /var/png-tiles 提供地图瓦片服务。
-v /mnt/map/accst-map/asset-map-nginx.conf:/etc/nginx/nginx.conf
*将本地自定义的 nginx 配置文件挂载到容器的 /etc/nginx/nginx.conf(替换默认配置)。
意味着你用了一个自定义配置文件去控制 nginx 的行为,比如怎样访问 /var/png-tiles
harbor.djicorp.com/es310/public/nginx:1.26.1
*使用指定私有仓库中的 Nginx 镜像(版本 1.26.1)来运行容器。
2.3
司空私有化服务器内重新更新地图配置文件地址指向独立的地图服务器地址(配置具体方法场景一配置方法,修改IP和端口以及实际的XYZ地图瓦片目录名)
image.png
司空私有化服务器上重新发布地图
image.png

3、验证离线地图服务#

登录司空私有化平台验证刚配置的新地图服务
image.png
修改于 2025-12-29 11:10:25
上一页
开启MQTT桥接后,机场上传媒体到司空 2 的进度卡住不动
下一页
在私有化安装部署中使用在线地图
Built with