• 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)
  • 相关阅读:
    Docker容器操作
    Docker的镜像操作
    CentOs安装Docker
    超长字符串
    编程之美-2.11 扩展 寻找距离最远的两个点
    编程之美-2.8 找到符合条件的整数
    编程之美-2.4 1的数目
    编程之美-1.16 24点游戏
    logistic回归 c++ 实现
    朴素贝页斯分类法 c++实现
  • 原文地址:https://www.cnblogs.com/nerocm/p/12715013.html
Copyright © 2020-2023  润新知