一、gprmc數據格式解析
GPS 的 gprmc 數據格式是指 Global Positioning System(GPS)Recommended Minimum 公共標準,適用於所有接收器和設備。該格式包括了時間、日期、緯度、經度、速度、航向、地磁偏角和校驗和等信息,並以逗號隔開,最後附帶一個回車換行符。下面是一個具體的 gprmc 數據格式示例(已刪去校驗和):
$GPRMC,082802.00,A,3153.32516,N,11846.89312,E,40.420,153.48,230219,,,A*5B
該示例中的元素依次為:
- GPRMC:語句ID,表明該語句為GPRMC格式
- 08:28:02.00:UTC時間,格式為HHmmss.sss,精確到毫秒
- A:位置狀態,A表示定位,V表示未定位
- 31°53.32516′ N:緯度,格式為ddmm.mmmmm(度分格式),單位為度
- 118°46.89312′ E:經度,格式為dddmm.mmmmm(度分格式),單位為度
- 40.420:對地速度,單位為海里/h,精確到小數點後三位
- 153.48:對地航向,單位為度,以真北為基準
- 230219:日期,格式為ddmmyy
- “A”:校驗碼狀態,A表示校驗通過,V表示校驗失敗
二、gprmc數據解析代碼
對於上述的 gprmc 數據,我們通常需要進行解析以獲得有用的信息。下面是一個 Python 代碼示例,具體實現了從 gprmc 數據中提取出緯度、經度、速度、航向、時間等信息的功能:
def parse_gprmc(gprmc): parts = gprmc.split(',') if parts[2] != "A": return None lat = float(parts[3][:2]) + float(parts[3][2:]) / 60 if parts[4] == 'S': lat = -lat lon = float(parts[5][:3]) + float(parts[5][3:]) / 60 if parts[6] == 'W': lon = -lon speed = float(parts[7]) * 0.514444 # 將海里/h轉換為m/s direction = float(parts[8]) date = parts[9] time = parts[1][:2] + ":" + parts[1][2:4] + ":" + parts[1][4:6] return {'lat': lat, 'lon': lon, 'speed': speed, 'direction': direction, 'date': date, 'time': time}
該函數接受一個 gprmc 數據字符串作為參數,返回一個包含有用信息的字典。其中,經度和緯度的計算涉及對度分格式進行轉換,速度的單位換算為 m/s。
三、gps數據格式詳解
GPS 數據格式不僅僅有 gprmc 格式,還包括 gpgga、gpgsv、gpvtg、gngga、gnrmc 等多種格式。下面簡單介紹幾種常見的 GPS 數據格式:
1. gpgga 格式
gpgga 數據格式也是常見的一種 GPS 數據格式,其信息包括了時間、緯度、經度、定位質量指示、使用衛星數、水平精度因子、天線離海平面高度、大地水準面高度和校驗和等。數據格式示例如下:
$GPGGA,082802.00,3153.32516,N,11846.89312,E,2,18,0.9,23.6,M,0.0,M,,*73
2. gpgsv 格式
gpgsv 數據格式包含了衛星的信息,可以獲取衛星的ID、高度、方位角等信息。數據格式示例如下:
$GPGSV,3,3,09,31,,,25,22,-6,32,27,0,0,21ok
3. gpvtg 格式
gpvtg 數據格式包含了航向和速度信息。數據格式示例如下:
$GPVTG,153.48,T,,M,0.420,N,0.778,K,A*0A
四、總結與展望
本文詳細介紹了 GPS 的 gprmc 數據格式,並提供了相應的代碼示例。同時,針對其他常見的 GPS 數據格式也進行了簡要的介紹。我們在實際開發應用中,需要根據具體需求選擇合適的 GPS 數據格式,並進行相應的解析和處理。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/301913.html