【项目背景】
平时出行基本上是骑行,行驶轨迹可以用手机定位显示。前几天在DF商城上看到“GNSS北斗定位模块”,所以设计了行空板加北斗定位模块及语音识别模块采集骑行轨迹,并利用Mind+的python模式编程进行显示。
【项目设计】
数据采集、轨迹显示均使用Mind+的python模式进行编程。轨迹显示使用folium库。是一个用于完成地图可视化的Python扩展库。folium库把标识好的地图生成html,然后用“PyQt5.QtWebEngineWidgets”进行显示。
【硬件安装】
语音识别模块与北斗定位模块接行空板IIC引脚。行空板使用充电宝供电。
【坐标采集】
行空板图形化编程,获取骑行轨迹经纬度坐标,保存在Mind+.txt文件中。
【骑行记录】
【轨迹显示】
编写类文件map.py
-
- class Browser(QMainWindow):
-
- def __init__(self):
- super().__init__()
- self.setWindowTitle('云天GPS轨迹')
- self.setGeometry(10, 30, 1400, 800)
- self.browser = QWebEngineView()
- self.show()
- def draw_gps(self,locations,color):
- Mymap=folium.Map(locations[0],
- tiles= 'https://wprd01.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=1&style=7',
- attr='高德-常规图',
- zoom_start=15,
- )
- folium.Marker(
- location=locations[0],
- popup='Home',
- icon=folium.Icon(color='green')).add_to(Mymap)
- folium.PolyLine( # polyline方法为将坐标用线段形式连接起来
- locations, # 将坐标点连接起来
- weight=10, # 线的大小为3
- color=color, # 线的颜色为
- opacity=0.9 # 线的透明度
- ).add_to(Mymap) # 将这条线添加到刚才的区域m内
- Mymap.save('map.html')
- def myshow(self,locations,path):
- #locations.append([x,y])
- self.draw_gps(locations,'red')
- self.Mybrowse(path)
- def Mybrowse(self,url):
- self.browser.load(QUrl(url))
- self.setCentralWidget(self.browser)
复制代码
图形化编程,显示轨迹,同时将实际获取经纬坐标与地图经纬坐标进行校正。
【演示视频】
|