1. 7 海图GIS平台开发
Shipxy
  • 船讯网API服务概述
  • 文档目录
  • 注册与创建应用
  • 多语言SDK引入
  • 标准API服务
    • 1 船舶查询
      • 1.1 船舶位置查询
        • 1.1.1 单船位置查询
        • 1.1.2 多船位置查询
        • 1.1.3 船队位置查询
      • 1.2 船舶模糊查询
      • 1.3 周边船舶查询
      • 1.4 区域船舶查询
      • 1.5 船舶船籍查询
      • 1.6 船舶档案查询
      • 1.7 档案服务扩展
    • 2 港口查询
      • 2.1 港口信息查询
      • 2.2 港口当前靠泊船查询
      • 2.3 港口当前到锚船查询
      • 2.4 港口预抵船舶查询
    • 3 历史行为
      • 3.1 船舶历史轨迹查询
      • 3.2 船舶互相搭靠记录查询
    • 4 挂靠记录
      • 4.1 船舶历史挂靠记录
      • 4.2 船舶挂靠指定港口记录
      • 4.3 船舶当前挂靠信息
      • 4.4 港口挂靠历史船舶
    • 5 航线规划
      • 5.1 点到点航线规划
      • 5.2 港到港航线规划
      • 5.3 预计到达时间(ETA)查询
    • 6 天气气象
      • 6.1 新全球气象
        • 6.1.1 实时气象数据
        • 6.1.2 未来气象预报
      • 6.2 全球台风
        • 6.2.1 获取全球台风列表
        • 6.2.2 获取单个台风信息
      • 6.3 国内港口潮汐
        • 6.3.1 查询国内潮汐观测站列表
        • 6.3.2 查询单个观测站潮汐详情
      • 6.4 全球港口潮汐
        • 6.4.1 查询全球潮汐观测站列表
        • 6.4.2 查询单个观测站潮汐详情
      • 6.5 海区气象
      • 6.6 单点海洋气象
      • 6.7 历史气象记录
    • 7 海图GIS平台开发
      • 7.1 快速入门:从注册到接入
      • 7.2 地图引擎基础:地图控制与业务绘制
      • 7.3 船位展示服务
      • 7.4 历史轨迹服务
      • 7.5 图层与气象服务
      • 7.6 航线绘制与区域回放服务
      • 7.7 Vue项目接入指南
      • 7.8 API Key后端代理接入
      • 7.9 坐标系转换指南
      • 7.10 私有化部署开发指南
        • 01 私有化地图加载绘制
        • 02 船舶与轨迹绘制实践
        • 03 气象图层效果绘制
    • 8 海事数据
      • 8.1 航行警告查询
    • 9 监控推送
      • 9.1 监控船队管理
        • 9.1.1 创建船队
        • 9.1.2 更新船队信息
        • 9.1.3 查询船队
        • 9.1.4 删除船队
        • 9.1.5 船队船舶增加
        • 9.1.6 船队船舶批量更新
        • 9.1.7 船队船舶删除
      • 9.2 区域监控推送
        • 9.2.1 区域创建
        • 9.2.2 区域更新
        • 9.2.3 区域查询
        • 9.2.4 区域删除
        • 9.2.5 区域监控推送内容
      • 9.3 船舶航速提醒推送
        • 9.3.1 新增船舶订阅
        • 9.3.2 删除订阅船舶信息
        • 9.3.3 查询订阅船舶列表
        • 9.3.4 船舶航速异常推送
      • 9.4 实时船位推送
      • 9.5 船舶到离港事件推送
      • 9.6 船舶动态ETA推送
      • 9.7 船舶AIS信号消失事件推送
      • 9.8 船舶搭靠事件推送
    • 文档附录
      • 船舶类型对照表
      • 服务码返回说明
      • 海区对照表
      • 航行状态对照表
      • 绕航节点清单
      • 航标类型对照表
      • 区域船二进制解析说明
      • 常见问题
  • AI智能体应用
    • AI大模型接入MCP服务
    • 智能体场景应用
      • 运力资源智能体
      • 船舶风控智能体
      • 运输规划智能体
      • 航次时效预测智能体
      • 船舶安全监控智能体
      • 多式联运协同智能体
      • 大宗贸易态势分析智能体
  • 视频监控AI识别预警服务
    • 视频监控服务接入指南
    • 视频监控API服务说明
    • 视频监控场景应用指南
    • 视频监控服务FAQ与最佳实践
  • 场景化开发示例
    • 大宗物流运输智能决策平台
      • 1、港口运力监控与找船
      • 2、船队货运跟踪与 ETA
      • 3、货运异常预警中心
      • 4、大宗航运态势分析与经营决策大屏
      • 5、航次时效预测与滞期费测算
      • 6、航次能效与碳强度管理
    • 海上设施安全监管与决策平台
      • 1、监管区域与事件推送(总览大屏)
      • 2、设施周边安全监控
      • 3、偏航识别与轨迹回放
      • 4、气象海况与航行警告
      • 5、海上安全态势监管大屏与执法效能分析
      • 6、水域通航密度与碰撞风险预测
      • 7、设施运维作业窗口智能排程与船舶调度
  1. 7 海图GIS平台开发

7.10 私有化部署开发指南

适用对象:私有化部署客户——部署环境无公网(或受限网络),船讯网在线海图GIS平台(ElaneMap H5 API 3.5)的瓦片服务、船位数据接口、气象数据接口均不可直接访问,需要把地图、船舶、轨迹、气象图层全部改为本地数据源 + 本地渲染。
本指南基于船讯网官方文档,把在线平台的业务绘制能力"平移"到离线 Leaflet 引擎上实现。全套共 4 个文档:
文档内容
总览 (本文)私有化部署总体架构、与在线平台的差异对照、环境准备、阅读路径
私有化地图加载绘制私有瓦片数据(SQLite/MBTiles 与瓦片图文件两种形态)发布为标准 XYZ 瓦片服务,并用 Leaflet 加载海图底图
船舶与轨迹绘制实践用 Canvas 复现在线平台的区域船/船队船绘制效果,自建数据源接入(对应 getAreaShipsCallBack )、船舶选中/定位/筛选、历史轨迹绘制与回放
气象图层效果绘制基于离线气象数据(CurrentWeather JSON / GRIB / 台风接口数据)自绘风场粒子、海浪等值面、台风路径与风圈等图层

1. 为什么在线平台的写法在私有化环境不可用#

在线平台的典型接入方式(官方 7.1 快速入门):
这条链路里有三处强依赖船讯网在线服务:
1.
JS API 主文件从 api.shipxy.com 加载,密钥(k 参数 / ak)由在线鉴权;
2.
海图底图瓦片来自 //m12.shipxy.com/tile.c?l=Na&m=o&x={x}&y={y}&z={z}(官方 7.2 中 tileLayer.sea.url 的默认值);
3.
业务数据接口(区域船 Getmanyship、轨迹、气象 apicall 等)全部指向船讯网数据服务器。
私有化环境无公网,以上三项都不可达。但平台底座是 Leaflet(官方 7.1 明确说明"底层基于开源地图引擎 Leaflet,全局同时暴露 L 与 ShipxyAPI"),因此正确的平移思路是:
引擎:直接使用开源 Leaflet(私有化包),替代 ShipxyAPI.Map —— ShipxyAPI.Map 的返回值本来就是 L.Map,官方 7.2 的自定义图源也是用 L.tileLayer 构造的;
底图:把客户自有的瓦片数据(SQLite/MBtiles 或瓦片图文件)发布成本地 XYZ 瓦片服务,用 L.tileLayer 加载 —— 等价于官方 7.2 的 addTileLayer 自定义图源 / 7.5 的 customeTileLayerService;
船舶/轨迹:用 Canvas 自绘船舶符号与轨迹线,数据结构对齐官方 CanvasShip、Track 对象 —— 官方 7.3 本身就提供了 getAreaShipsCallBack 外部数据源回调钩子,说明这套数据契约就是为"数据在外、绘制在内"设计的;
气象:解析离线气象数据(CurrentWeather JSON / GRIB / 台风 JSON),自绘风场粒子、海浪等值面、台风路径,数据字段与官方 6.x 气象接口的返回结构保持一致。

2. 私有化部署总体架构#

┌──────────────────────────── 客户内网(无公网) ────────────────────────────┐
│                                                                              │
│  浏览器(Leaflet 页面)                                                       │
│    ├── 底图:    L.tileLayer("http://内网瓦片服务/{z}/{x}/{y}.png")            │
│    ├── 船舶层:  Canvas 绘制(数据来自内网船位接口/AIS 解析服务)                 │
│    ├── 轨迹层:  Canvas/Polyline 绘制(数据来自内网轨迹库)                     │
│    └── 气象层:  Canvas 粒子/等值面(数据来自内网气象文件服务)                  │
│                                                                              │
│  服务端                                                                       │
│    ├── 瓦片服务:  ① Node.js + better-sqlite3 读 MBTiles/SQLite               │
│    │              ② Nginx 直接托管瓦片图文件目录                               │
│    ├── 业务接口:  客户自有(船位、轨迹)或船讯网离线数据包                       │
│    └── 气象数据:  CurrentWeather JSON / GRIB 文件 / 台风 JSON 定时更新         │
└──────────────────────────────────────────────────────────────────────────┘

3. 与在线平台的能力对照#

在线平台能力在线 API(参考)私有化实现详见
海图底图new ShipxyAPI.Map(...) + 内置 sea 瓦片本地瓦片服务 + L.tileLayer文档 01
图源切换map.basemapsControl.changeMap("MT_SEA")多个 L.tileLayer + L.control.layers 切换文档 01
自定义瓦片叠加customeTileLayerService.addLayer / options.addTileLayerL.tileLayer 叠加 + 图层控制文档 01
区域船/船队船ShipxyAPI.ShipService(map, {...})(CanvasShipService)Canvas 船舶层(数据结构对齐 CanvasShip)文档 02
外部船位数据源getAreaShipsCallBack 回调本地数据接口轮询 + addShips 等价方法文档 02
船舶选中/事件addSelectedListenerCanvas 命中检测 + 选中高亮文档 02
历史轨迹map.trackService.addAndShow(mmsi, btime, etime, options)本地轨迹数据 + 分段彩绘 polyline文档 02
轨迹回放options.isEnablePlayer: true自实现播放器(进度条/倍速/暂停)文档 02
风场粒子weatherService.showWindFiel()Canvas 风场粒子动画(风速风向格点数据)文档 03
海浪图层weatherService.showSeaWaves()波高等值面/等值线填充绘制文档 03
台风图层weatherService.showTyphoonInfoList()台风路径 + 7/10 级风圈 + 预报锥文档 03
单点气象GetWeatherByPoint本地气象格点插值查询文档 03

4. 环境准备#

前端(浏览器端)
Leaflet 1.9.x(私有化包,内网 CDN 或随工程打包):leaflet.js + leaflet.css
jQuery 2.x+(仅当沿用官方示例代码习惯时需要;纯 Leaflet 方案不需要)
服务端
方案 A(SQLite/MBTiles):Node.js ≥ 16 + better-sqlite3(读 .mbtiles / 自定义 SQLite 瓦片库)
方案 B(瓦片图文件):Nginx(静态文件托管 + 缓存头)
可选:Python 3(GRIB 解析,pygrib 或离线预转 JSON)
数据
海图瓦片数据(客户提供,两种形态之一:MBTiles/SQLite 单文件,或 {z}/{x}/{y}.png 目录树)
船位/轨迹数据(客户内网接口,或船讯网离线数据包)
气象数据(离线 JSON / GRIB,字段结构参照官方气象接口)

5. 阅读路径#

只做底图加载:直接读文档 01;
做船位/轨迹监控大屏:文档 01 → 02;
做气象辅助决策(航线避风、台风预警):文档 01 → 03;
全部能力:按 01 → 02 → 03 顺序,每篇自带可运行的完整代码与示例效果图。
各文档中的示例效果图均为本地真实渲染(Leaflet + 本地瓦片/数据)后截图,私有化环境可直接复现。
上一页
7.9 坐标系转换指南
下一页
01 私有化地图加载绘制