适用接口: GET https://api.shipxy.com/apicall/v3/GetAreaShip(区域船舶查询,output=0即二进制 Base64 编码返回)
请求参数依据:船讯网官方在线文档《1.4 区域船舶查询》(https://apidocs.shipxy.com/475744022e0)
二进制结构依据:《船讯网 API 开发文档 V2》表 11「区域船舶返回结果-二进制」、表 58 「8.2 详细数据」、附录 2 / 3 / 5
目标读者:需要对接二进制返回格式、将其反序列化为标准 AIS 船舶数据的后端研发人员
scode 分页获取剩余船舶(见 §1.4)。key 并联系商务开通权限;购买服务后会设定总的区域查询范围,每次请求的经纬度坐标都不能超出该范围,超出后无法返回数据;GET https://api.shipxy.com/apicall/v3/GetAreaShip| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
key | string | 必需 | 船讯网授权码,验证服务权限。需在控制台创建并开通权限;官方文档示例中的 key 已绑定域名,直接使用会返回 status 14(来源域错误),请使用自己的 key |
region | string | 必需 | 查询区域,经纬度逗号分隔、多个点减号分隔,格式 lng,lat-lng,lat-lng,lat。规则:① 多个坐标点必须按顺时针或逆时针依次输入;② 坐标点必须超过 2 个(2 个点只能连一条线,无法划分区域);③ 必须按先经度后纬度顺序输入;④ 区域不可超出分配的权限范围;⑤ 权限范围内可根据场景自行拆分多个小区域分别请求 |
data_type | integer | 可选 | 数据返回类型:0 仅船舶;1 仅航标;2 仅网位仪;3 船舶+航标;4 船舶+网位仪;5 船舶+航标+网位仪。默认 0 |
output | integer | 可选 | 输出数据格式:0 为二进制 Base64 编码,1 为 JSON 格式,默认 1。注意:当返回数据带有航标或网位仪时(data_type ≠ 0),output 只能是 JSON |
scode | integer | 可选 | 查询某一区域的会话令牌。区域较大、数据过多无法单次返回时,使用首次请求返回的 scode 再次请求剩余数据,详见 §1.4 |
https://api.shipxy.com/apicall/v3/GetAreaShip?key=<你的key>®ion=121.289063,35.424868-122.783203,35.281501-122.167969,33.979809&output=0| output | 格式 | 说明 |
|---|---|---|
| 0 | 二进制 Base64 | 紧凑、单次可容纳约 8000 艘船,需按本文档反序列化;仅支持纯船舶数据(data_type=0) |
| 1(默认) | JSON | 字段名可直接读,单次约 2600 艘,字段语义与二进制完全一致;含航标/网位仪时只能选此格式 |
output=1 的 JSON 响应与二进制解析结果比对核验。scode 再次发起请求;continue 字段 :为 0 时代表区域内全部船舶数据已经查完,无需再请求;为 1 时代表还有剩余数据,填入 scode 继续请求;scode 在公共头第 15–18 字节返回(见 §3),count 为本次返回的船舶条数。cnname(中文船名)与 newtype(新船舶类型,附录 5)两个字段,记录中相应多出 newtype 定长字段与 cnname 变长字符串。本文档的记录布局按 v=4 描述(样例数据即 v=4 格式);对接 v=2 时按 §4.3 的说明裁剪即可。data 字段为 Base64 字符串,解码后才是真正的二进制负载:HTTP Response Body (application/json)
└── { "status": 0, "msg": "", "data": "<Base64>" }
└── base64 decode
└── Binary Payload
├── 公共头 23 字节
└── 船舶记录 × count(变长,紧密排列,无分隔符)status:数据返回状态,0 表示成功,其他值见官方附录 1;msg:状态描述;data:Base64 编码的二进制负载。| 偏移 | 字节 | 类型 | 字段 | 说明 |
|---|---|---|---|---|
| 0 | 4 | u32 LE | dataLength | 数据包长度(样例 27753 = 总长 27759 − 6) |
| 4 | 2 | u16 LE | dataType | 数据包类型(样例 0) |
| 6 | 1 | u8 | 保留字节 | 样本中恒为 0x00 |
| 7 | 8 | i64 LE | serviceTime | 服务器当前时间,unix 秒(样例 1789441918 = 2026-09-15 11:11:58 北京时间) |
| 15 | 4 | u32 LE | scode |