GPS 測試匯總和python GPS 導航地圖實現


作為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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM