作為GPS 測試專業戶出身,一直有想法將GPS數據本地網頁化,從而實現動態展示導航數據。在摸索過程中也遇到了問題,因此分享這個文章。
剛畢業的頭兩年,從事軟件測試GPS相關,其間參與多個項目,也和高通,博通等平台反饋過問題,於是想着匯總一些如下。
1. GPS 測試常用方法和功能指標
歸總起來,GPS測試不外乎常見的兩種,即性能測試和導航測試。
1. 性能指標 (測試重點)
- TTFT
- COLD START
- WARM START
- HOT START
- 定位率
- 定位精度(偏移)
- 星數(N >=40)
2. 導航
靜態導航
- opensky
- canyon
動態導航
- urban 市區主街道 (跨區或者跨市省)
- street 市區街道(有些不做區分)
- tunnel 隧道
3.其他
這個主要看各公司的要求以及芯片平台支持的程度。 如耗電,長待機等壓力測試
2.用Python 實現動態地圖展示
提取設備的GPS log 來實現具體位置,主要經歷代碼改版
1. 首次完成后,支持單點和多點定位顯示
2. 修改代碼后,增加了pop 彈框,方便
3. 后來為了好看,又增加了連線方式,大概展示內容如下圖
3. 代碼功能實現。特別說明的兩處
1) 需要引入的python模塊
import folium import pandas as pd import webbrowser as wb import math from datetime import datetime,timedelta
2)需要轉換坐標(百度地圖和高德均需要,此處優選高德地圖) 定義轉換坐標函數
def transferGPS(lat,lng): dlat = transformlat(lat - 35.0,lng - 105.0) dlng = transformlng(lat - 35.0,lng - 105.0) radlat = lat / 180.0 * pi magic = math.sin(radlat) magic = 1 - ee * magic * magic sqrtmagic = math.sqrt(magic) dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * pi) dlng = (dlng * 180.0) / (a / sqrtmagic * math.cos(radlat) * pi) mglat = lat + dlat mglng = lng + dlng return [mglat,mglng]
3)采用numpy 來批量處理多個 定位點 html操作
map_data = pd.DataFrame(data) for i in range(len(map_data)): text = folium.Html('<b>ID:{}</b></br><b>Time:{}</b></br><b>lat:{}</b> </br> <b>lon:{}</b></br><b>Evt:{}</b>'.format(map_data.iloc[i]['ID'],transfortime(map_data.iloc[i]['Received']),map_data.iloc[i]['Lat'],map_data.iloc[i]['Lon'],map_data.iloc[i]['Event']),script=True) popup = folium.Popup(text,max_width=2650) ret = transferGPS(map_data.iloc[i]['Lat'],map_data.iloc[i]['Lon']) local.append(ret) folium.Marker(ret,popup=popup).add_to(myMap)