动态解析AIS原始数据

首先看一下解析效果:

在这里插入图片描述
首先项目引入jar包:

<dependency>
   <groupId>dk.tbsalling</groupId>
   <artifactId>aismessages</artifactId>
   <version>2.2.1</version>
</dependency>

import dk.tbsalling.aismessages.ais.messages.AISMessage;
import dk.tbsalling.aismessages.nmea.NMEAMessageHandler;
import dk.tbsalling.aismessages.nmea.NMEAMessageSocketClient;
 
import java.io.IOException;
import java.net.UnknownHostException;
import java.util.function.Consumer;
 
@Deprecated
public class SocketDemoApp implements Consumer<AISMessage> {
 
    @Override
    public void accept(AISMessage aisMessage) {
        System.out.println("Received AIS message: " + aisMessage);
    }
 
	public void runDemo() {
		System.out.println("AISMessages Demo App");
		System.out.println("--------------------");
 
		try {
			// NMEAMessageSocketClient nmeaMessageHandler = new NMEAMessageSocketClient("207.7.148.216", 9009, new NMEAMessageHandler("DEMOSRC1", this));
			NMEAMessageSocketClient nmeaMessageHandler = new NMEAMessageSocketClient("ais.exploratorium.edu", 80, new NMEAMessageHandler("DEMOSRC1", this));
			nmeaMessageHandler.run();
		} catch (UnknownHostException e) {
			System.err.println("Unknown host: " + e.getMessage());
		} catch (IOException e) {
			System.err.println("I/O error: " + e.getMessage());
		}
	}
 
	public static void main(String[] args) {
		new http().runDemo();
	}
 
}

船舶AIS轨迹信息内容

AIS : 船舶自动识别系统,相关概念可自行百度。

AIS信息项

信息字段信息类型信息内容备注
Message ID静态信息信息识别码
Repeat Indicator静态信息重复次数指示指示应该重发的次数。缺省为0,3表示不再重发
MMSI静态信息海上移动服务识别号在安装时设定-如船舶自身改变,则可能需要修正
aisVeisonIndicator静态信息采用的AIS的版本信息
IMO静态信息IMO号码在安装时设定
CallSign静态信息呼号在安装时设定-如船舶自身改变,则可能需要修正
VesselName静态信息船名
ShipType静态信息船舶类型从预设的列表中选择
CargoType静态信息货物类型从预设的列表中选择
dimension A/B/C/D静态信息船舶尺寸船的长度、宽度、高度等信息
deviceType静态信息定位设备的类型
ETA静态信息预计航行时间按船长判断。在航行开始手工输入并在需要时更新
Draught静态信息最大吃水深度
Destination静态信息目的地按船长判断。在航行开始手工输入并在需要时更新
navState动态信息航行状态航行状态信息在必要时由手工输入或改变,0=动力航行中;1=锚泊;2=未受令;3=机动性受限;4=受吃水限制;5=锚链系泊;6=搁浅;7=捕捞中;8=风帆动力航行;9~15为未来保留。
ROT动态信息转向率由与AIS连接的船舶的转向率传感器或旋转罗盘自动更新
Draught动态信息最大吃水深度
SOG动态信息对地航速由与AIS连接的主要位置传感器自动更新,规定传感器计算SOG,以1/10节距为单位,1023=无;1022= 102.2节
COG动态信息对地航向由与AIS连接的主要位置传感器自动更新,规定传感器计算COG,以1/10度表示的航向
Longitude动态信息最大吃水深度由与AIS连接的位置传感器自动更新。用1/10000分表示的经度(东= +,西= -)
Latitude动态信息航行位置纬度由与AIS连接的位置传感器自动更新。用1/10000分表示的纬度(北= +,南= -)
PositionAccuracy动态信息船位精确度1=高精度(差分式);0= 低精度。
trueHeading动态信息航艏向由与AIS连接的船艏向传感器自动更新
dateTime动态信息UTC的定位时间戳由与AIS连接的主要位置传感器自动更新(例如GPS)

原文链接1:https://blog.csdn.net/weixin_38959210/article/details/103136867
原文链接2:https://blog.csdn.net/m0_37287361/article/details/102649517

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值