1. 7 海图GIS平台开发
Shipxy
  • 船讯网API服务概述
  • 注册与创建应用
  • 多语言SDK引入
  • AI大模型接入MCP服务
  • 视频监控AI识别预警服务
    • 视频监控服务接入指南
    • 视频监控API服务说明
    • 视频监控场景应用指南
    • 视频监控服务FAQ与最佳实践
  • AI智能体应用
    • 运力资源智能体
    • 船舶风控智能体
    • 运输规划智能体
    • 航次时效预测智能体
    • 船舶安全监控智能体
    • 多式联运协同智能体
    • 大宗贸易态势分析智能体
  • 1 船舶查询
    • 1.1 船舶位置查询
      • 1.1.1 单船位置查询
      • 1.1.2 多船位置查询
      • 1.1.3 船队位置查询
    • 1.2 船舶模糊查询
      GET
    • 1.3 周边船舶查询
      GET
    • 1.4 区域船舶查询
      GET
    • 1.5 船舶船籍查询
      GET
    • 1.6 船舶档案查询
      GET
  • 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安全实践:后端代理接入
  • 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 船舶搭靠事件推送
  • 文档附录
    • 船舶类型对照表
    • 服务码返回说明
    • 海区对照表
    • 航行状态对照表
    • 绕航节点清单
    • 航标类型对照表
  1. 7 海图GIS平台开发

7.6 航线绘制与区域回放服务

适用版本:ElaneMap H5 API 3.5
前置阅读:建议先阅读《7.1-快速入门:从注册到接入》与《7.2-地图引擎基础:地图控制与业务绘制》,掌握 API 引入、密钥(ak)配置、地图实例化(new ShipxyAPI.Map(...))之后再阅读本篇。
本篇涉及服务的 API 引用方式:
本篇覆盖五组服务:
服务入口功能定位
航线绘制服务ShipxyAPI.trackDrawSymbol在地图上交互式绘制/编辑/展示/删除航线
船位回放服务ShipxyAPI.areaPlayService指定区域、指定时间段的船位回放
区域船舶轨迹回放服务ShipxyAPI.AreaTrackReplayService区域内船舶轨迹回放任务面板
船舶检索服务ShipxyAPI.seachShipService内置船舶检索输入框
历史航次服务ShipxyAPI.voyageService查询船舶当前/历史航次数据

1. 航线绘制服务 trackDrawSymbol#

航线绘制服务提供显示航线、绘制航线、编辑航线、删除航线等功能。用户在地图上逐点单击形成航线节点,节点间自动连线并标注航向、航程等信息。

1.1 创建#

参数类型说明
mapL.Map地图对象
optionsObject设置信息
itemsarray航线节点数组(非必填),见 1.3 节
返回值:L.TrackDrawSymbol 航线绘制对象。

1.2 options 参数表#

参数说明
callBack绘制/编辑回调函数,function (item) {},item 为当前航线节点数组数据
unit航程单位,如 "nm"(海里)
symbol航线标识前缀,如 "ABC_"(节点编号显示为 ABC_1、ABC_2 …)
lineColor航线颜色,如 "#E000BB"

1.3 items 航线节点数组结构#

字段是否必填说明
lat必填纬度
lng必填经度
id非必填节点 ID
name非必填节点名称
cog非必填航向

1.4 方法#

方法说明
drawTrack()进入绘制模式,在地图上逐点单击绘制航线
editLine()进入编辑模式,可拖动调整已有节点
showTrack()只读模态展示当前航线(绘制"完成"态)
showTrack(items)只读模态展示指定航线数据
removeTrack()删除航线
演示页面 a1_4 中还提供了两个自定义节点文字的扩展方法(按需使用):
方法说明
setItemTextById({id, caText, pDistanceText, markerText})修改单个轨迹点文字展示
setItemTextByTextItems([{id, caText, pDistanceText, markerText}, ...])批量修改多个轨迹点文字展示

1.5 完整可运行示例(整理自 a1_4.htm)#

1.6 效果示意(文字描述)#

点击"绘制"后进入绘制模式:在地图上每单击一次生成一个航线节点,节点显示为带编号的小圆点(编号为 symbol 前缀加序号,如 ABC_1、ABC_2),相邻节点间自动连线,线上标注航向角与分段航程(单位由 unit 决定),同时实时显示累计航程。点击"编辑"后节点变为可拖动状态,拖动节点航线自动重算。点击"完成"后进入只读模态,节点不可再拖动。点击"删除"清除整条航线。点击"显示"可将 callBack 中保存的航线数据重新回显到地图上。

2. 船位回放服务 areaPlayService#

船位回放服务提供指定区域、指定时间段的船位回放功能:按播放倍速逐秒推进时间轴,重现区域内各船舶在不同时刻的位置。

2.1 创建#

返回值:L.AreaPlayService。

2.2 options 参数表#

参数默认值说明
playSpeed60播放倍速,播放秒数 = 真实秒数(如 60 表示 1 秒播放 60 秒数据)
beginTime0开始位置(毫秒),0 表示从起始位置开始
playCallBacknull播放时间后回调
minTime0开始时间,秒(Unix 时间戳)
maxTime0结束时间,秒(Unix 时间戳)
getDataByURL""数据获取 URL
area""区域,整数型经纬度逗号分割字符串
areaId""区域 ID

2.3 area 参数格式说明#

area 为整数型经纬度逗号分割字符串,即经纬度乘以 10 的 6 次方取整后,按 经度,纬度 成对排列、逗号连接,依次给出区域多边形的各顶点。例如:
"121534582,31361372,121630627,31361372,121630627,31416852,121534582,31416852"
表示一个矩形区域的四个顶点:(121.534582, 31.361372)、(121.630627, 31.361372)、(121.630627, 31.416852)、(121.534582, 31.416852)。

2.4 完整示例#


3. 区域船舶轨迹回放服务 AreaTrackReplayService#

区域船舶轨迹回放服务提供"新建回放任务"面板:在地图上圈选区域、选择时间段后,回放该区域内所有船舶的运动轨迹,支持播放控制、船舶列表、全屏等。

3.1 创建#

返回值:ShipxyAPI.AreaReplayService。初始化后通过 map.areaTrackReplayService 访问。

3.2 options 参数表#

主文档列出的核心参数:
参数默认值说明
defaultPlay—是否默认播放(示例为 false)
isVisiableWithNoSignalfalse设置船舶无信号是否可见,默认:不可见
isVisiableOutOfBoundsfalse设置船舶超过视图范围是否可见,默认:不可见
isVisiableShipTrackfalse设置轨迹是否可见,默认:不可见
演示页面 b1_7 中实际使用的扩展参数与回调:
参数说明
areaStyle区域样式,如 {color: "red", fillColor: "rgba(255,0,0,0.2)", weight: 1},支持 dashArray
maxSupplementPointInterval最大补点间隔,单位 s(示例 1800)
shipTrackMaxInterval轨迹最大显示间隔时间,单位 s(示例 1800)
shipTemplaterZoom船舶缩放比例(示例 1.0)
openCallback打开任务面板回调
closeCallback关闭任务面板回调
afterInitReplayData(hasData)数据加载完成后回调,hasData 表示是否有数据
startReplayCallback开始回放回调
closeReplayCallback关闭回放回调
fullScreenReplayCallback全屏按钮回调
shipListClickCallback(mmsi)船舶列表点击回调,返回 mmsi
isCallDrawFeature是否调用绘制功能(示例 false)

3.3 方法#

方法说明
openCreateTaskLayer()打开"新建回放任务"面板,用户在地图上圈选区域并设置时间段

3.4 完整示例(整理自 b1_7.htm)#


4. 船舶检索服务 seachShipService#

船舶检索服务提供内置的船舶检索输入框:在指定 div 容器中渲染搜索框,用户输入船名/MMSI 关键字后展示候选列表,点击结果项通过回调返回该船 mmsi。

4.1 创建#

参数类型说明
mapMap地图对象
dividstringdiv 容器 ID(检索输入框渲染到该容器内)
optionsObject配置信息
options 参数表:
参数说明
itemClickCallBack点击结果回调函数,返回:mmsi

4.2 完整示例#

效果示意:容器中出现一个搜索输入框,输入"新洋山"等关键字后下方弹出候选船舶列表(船名 + MMSI),点击某一条目后触发 itemClickCallBack 并返回该船 MMSI。

5. 历史航次服务 voyageService#

历史航次服务提供两类查询:查询船舶当前航次数据、查询船舶指定时间段的历史航次数据。

5.1 创建#

初始化后通过 map.voyageService 访问。

5.2 方法#

方法说明
getCurrentByUrl(mmsi, callback)查询当前航次数据;mmsi 为船舶 MMSI,callback(result) 接收查询结果
getHisByUrl(mmsi, btime, etime, callback)查询历史航次数据;btime/etime 为起止时间,callback(result) 接收查询结果

5.3 完整示例#


6. 注意事项与 FAQ#

6.1 注意事项#

1.
所有服务均需在 new ShipxyAPI.Map("map", {ak: "您的密钥"}) 创建地图之后初始化;密钥占位符 您的密钥 需替换为实际申请的 ak。
2.
trackDrawSymbol 与 seachShipService 的方法名为小写开头(与官方文档保持一致,注意拼写:seachShipService 中的 "seach" 为官方命名,并非笔误)。
3.
航线绘制:drawTrack() 之前必须先创建 ShipxyAPI.trackDrawSymbol(_map, options) 对象;showTrack(items) 用于数据回显时,items 中 lat/lng 为必填字段,缺失会导致节点无法绘制。
4.
航线数据持久化:通过 options 的 callBack 拿到节点数组后自行存储(如提交到后端),需要回显时再调用 showTrack(items)。
5.
areaPlayService 的 area 参数是整数型经纬度(度 × 10^6 取整),不是浮点经纬度;minTime/maxTime 单位为秒,而 beginTime 单位为毫秒,注意区分。
6.
areaPlayService 需要配套的数据接口(getDataByURL),示例中的内网地址 //192.168.1.22:8083/AreaPlay/GetData 仅为演示,需替换为实际部署的数据服务。
7.
AreaTrackReplayService 初始化后不会自动弹出任务面板,需调用 map.areaTrackReplayService.openCreateTaskLayer() 打开。
8.
船舶检索服务的容器 div 需自行设置定位样式(如 position: relative; z-index: 888),否则可能被地图遮挡。
9.
历史航次服务为异步查询,结果通过 callback 返回,需考虑网络异常时的提示处理。

6.2 FAQ#

Q:航线绘制完成后如何拿到航线数据?
A:在 options 的 callBack: function (item) {} 中接收,item 即航线节点数组(含 lat/lng/cog 等字段),可保存后在需要时用 showTrack(items) 回显。
Q:如何让航线节点显示自定义文字(如转向点说明)?
A:使用演示示例中的 setItemTextById(单个)或 setItemTextByTextItems(批量)方法,传入 {id, caText, pDistanceText, markerText}。
Q:区域回放打开面板后没有数据?
A:通过 afterInitReplayData(hasData) 回调判断是否加载到数据;若 hasData 为 false,检查圈选区域与时间段内是否确有船舶、以及密钥是否具备区域回放权限。
Q:船位回放 areaPlayService 与区域船舶轨迹回放 AreaTrackReplayService 有什么区别?
A:areaPlayService 面向"已有数据接口 + 固定区域/时间段"的轻量船位重现,参数全部在代码中给定;AreaTrackReplayService 提供完整的任务面板交互(圈选区域、选择时间、播放控制、船舶列表),适合直接交付终端用户使用。
Q:seachShipService 回调只返回 mmsi,如何获取船名等更多信息?
A:该服务回调仅返回 mmsi(官方文档定义)。拿到 mmsi 后可联动船位展示/轨迹查询等其他服务获取并展示详细信息。
Q:getHisByUrl 的 btime/etime 是什么格式?
A:为起止时间参数,与查询接口约定的时间字符串一致(示例采用 "yyyy-MM-dd HH:mm:ss" 格式),具体以服务端接口要求为准。
上一页
7.5 图层与气象服务
下一页
7.7 Vue项目接入指南