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