html5video网站,wordpress照片主题,潍坊网站空间,2023年商标注册流程图背景
当我们收到别人分享的航迹文档#xff0c;即gpx文档时#xff0c;如何快速的进行浏览呢#xff1f;我们可以使用GIS软件来打开gpx文档并显示gpx中所记录的航迹#xff0c;例如常用的GIS软件有googleEarth#xff0c; Basecamp#xff0c; GPXsee#xff0c; GPX E…背景
当我们收到别人分享的航迹文档即gpx文档时如何快速的进行浏览呢我们可以使用GIS软件来打开gpx文档并显示gpx中所记录的航迹例如常用的GIS软件有googleEarth Basecamp GPXsee GPX Editor 等。 今天教分享一个脚本大家可以不依赖上述软件即可快速的浏览gpx航迹。
准备工作
本文所分享的脚本需要依赖python工作所以需要电脑上安装python解释器哦。
基本原理
本文所分享的脚本其工作的基本逻辑如下
bat脚本获取gpx文档调用py脚本打开并解析gpx文档内容py脚本根据gpx内容并使用gpxAndMap模块生成folium地图文档html文档py脚本直接调用浏览器打开所生成的html文档进行显示航迹
两个脚本展示
以下为今天所分享的两个脚本一个bat脚本一个py脚本这两个脚本需要放在同一路径下才可正常工作哦
bat脚本内容
echo off
chcp 65001
set srcDir%1echo.
echo %srcDir%
echo.python %~dp0gpxShower.py --gpx文档%1echo.
echo 5s后自动退出窗口
timeout /t 5py脚本内容
# -*- coding:UTF-8 -*-# region 引入必要的依赖
import os模块名 GpsAndMap
try:from GpsAndMap.MapModule import *
except ImportError as impErr:print(f尝试导入 {模块名} 依赖时检测到异常{impErr})print(f尝试安装 {模块名} 模块)try:os.system(fpip install {模块名})except OSError as osErr:print(f尝试安装模块 {模块名} 时检测到异常{osErr})exit(0)else:try:from GpsAndMap.MapModule import *except ImportError as impErr:print(f再次尝试导入 {模块名} 依赖时检测到异常{impErr})exit(0)模块名 DebugInfo
try:from DebugInfo.DebugInfo import *
except ImportError as impErr:print(f尝试导入 {模块名} 依赖时检测到异常{impErr})print(f尝试安装 {模块名} 模块)try:os.system(fpip install {模块名})except OSError as osErr:print(f尝试安装模块 {模块名} 时检测到异常{osErr})exit(0)else:try:from DebugInfo.DebugInfo import *except ImportError as impErr:print(f再次尝试导入 {模块名} 依赖时检测到异常{impErr})exit(0)模块名 gpxpy
try:import gpxpy
except ImportError as impErr:print(f尝试导入 {模块名} 依赖时检测到异常{impErr})print(f尝试安装 {模块名} 模块)try:os.system(fpip install {模块名})except OSError as osErr:print(f尝试安装模块 {模块名} 时检测到异常{osErr})exit(0)else:try:import gpxpyexcept ImportError as impErr:print(f再次尝试导入 {模块名} 依赖时检测到异常{impErr})exit(0)# endregionclass 入参类(入参基类):def __init__(self):# 初始化父类super().__init__()# 添加入参参数self._添加参数(gpx文档, str, 请指定需要解析的gpx文档)# region 访问器propertydef gpx文档(self) - str:if gpx文档 in self._参数字典:return self._参数字典[gpx文档].值else:return gpx文档.setterdef gpx文档(self, 值: str):if gpx文档 in self._参数字典:self._参数字典[gpx文档].值 str(值)# endregiondef 展示gpx数据(gpx文档: str, 画板: 打印模板 None):画板 画板 if isinstance(画板, 打印模板) else 打印模板()画板.执行位置(展示gpx数据)if not gpx文档:画板.提示错误(gpx文档 无值)return Falseif not os.path.isfile(gpx文档):画板.提示错误(fgpx文档 不存在:{gpx文档})return False# 创建一个地图对象,并添加高德地图,高德卫星地图底图地图: 地图类 地图类().添加瓦片.高德地图().高德卫星地图().智图GeoQ().地图# 添加一个网页标题,显示gpx文档名地图.添加网页标题(os.path.basename(gpx文档))with open(gpx文档, r) as f:gpx数据 gpxpy.parse(f)if gpx数据 and gpx数据.tracks:for track in gpx数据.tracks:if track.segments:for seg in track.segments:if seg.points:折线 折线类(蚂蚁路径蚂蚁路径标记类(显示True))for point in seg.points:折线.添加路径点(GPS坐标类(point.longitude, point.latitude, GPS坐标系类型.wgs84))地图.添加标记(地图.添加图层(), 折线)地图.优化网络资源().保存html(文档名f{os.path.basename(gpx文档)}.html, 目标路径os.path.dirname(os.path.abspath(gpx文档)), 画板画板.副本.缩进()).打开()return Trueif __name__ __main__:画板: 打印模板 打印模板(True)入参: 入参类 入参类()入参.解析入参(画板画板.副本.缩进())if 画板.正在调试:入参.展示(画板画板.副本.缩进())if not 入参.gpx文档:画板.提示错误(未指定gpx文档)if not 画板.正在调试:exit(0)else:展示gpx数据(gpx文档入参.gpx文档, 画板画板.副本.缩进())设置打开方式
在windows中 我们可以通过设置gpx文档的打开方式来设置我们使用bat脚本做为默认的gpx文档的打开应用。设置方式如下图所示
设置完成后当我们双击gpx文档时系统会自动调用【gpxShower.bat】来打开/处理gpx文档并生成html文档并自动调用浏览器打开该html文档。
如下图所示当我们双击gpx文档后bat脚本py脚本将会在同路径下创建同名html文档做为gpx航迹的可视化文档。并且当我们再次双击同一gpx文档后html文档会重新生成并覆盖旧的html文档。
效果展示
如下图在html文档中我们首先可以看到gpx文档的文档名被显示为网页的标题这样当我们打开浏览多个gpx文档时不至于会发生混淆。
如下图在html文档中我们可以看到gpx航迹的地图有三种分别是普通高德地图 高德卫星地图 和智力GeoQ地图三种底图分别提供了不同的地图风格以供我们选择使用。
如下图在html文档中gpx航迹以蚂蚁路径的效果显示。
如下图这是在高德卫星地图下的显示效果。
如下图这是在智力GeoQ地图下的显示效果。
如下图这是在高速互通场景下的显示效果可以看出轨迹显示与地图道路的匹配度是不错的。
优点
参考下图我们可以看出gpx文档大概是1MB的体积但生成的html文档只有564KB的体积我们可以很方便的把html文档作为分离的媒介以使对方可以在不安装GIS软件的情况下浏览我们的航迹信息。
注意点
如下图我们可以看到在生成的html文档中引用了大量的js/css资源这些资源的加载需要互联网的支持如果您在使用此脚本方法时发现html文档打开是空白或者打开时间过长请检查您的网络链接是否畅通。
小结
以上就是这次分享的gpx文档可视化小工具了希望可以帮助到大家。 B-1696525190859)]
注意点
如下图我们可以看到在生成的html文档中引用了大量的js/css资源这些资源的加载需要互联网的支持如果您在使用此脚本方法时发现html文档打开是空白或者打开时间过长请检查您的网络链接是否畅通。 [外链图片转存中…(img-d8tDDylY-1696525190860)]
小结
以上就是这次分享的gpx文档可视化小工具了希望可以帮助到大家。