一个用于测定MeshTastic网络覆盖范围的Web应用,支持多终端同时使用,提供直观的可视化界面。
- 地图显示与选点:集成Leaflet地图库,支持交互式地图操作
- 信号强度可视化:根据RSSI值使用不同颜色标记(绿色-强,黄色-中,红色-弱)
- 节点管理:支持添加、查看和管理MeshTastic节点
- 覆盖范围展示:显示节点的信号覆盖范围圆
- 距离测定:测量两点之间的距离
- Trace路径:记录和显示移动轨迹
- Log上传:支持上传和解析trace log文件
- 普通坐标:支持经纬度显示和输入
- 梅登海德坐标:支持梅登海德坐标系统,双向转换
- 实时显示:右上角实时显示当前位置的多种坐标格式
- 节点信息:ID、名称、位置、高度
- 技术参数:发射功率、覆盖范围半径
- 状态标记:未测定节点使用"未测定"汉字标记
- 多种添加方式:手动输入坐标、使用地图中心、使用当前位置
- SwiftUI风格:现代化的卡片式布局,柔和阴影效果
- 响应式设计:适配手机、平板和桌面设备
- 流畅动画:平滑的过渡效果和交互反馈
- 多终端支持:支持多设备同时访问和使用
- 克隆仓库
git clone https://github.com/TreorTang-sz/MeshDetector.git
cd MeshDetector- 启动本地服务器
使用Python:
python -m http.server 8080或使用Node.js:
npx http-server -p 8080或使用PHP:
php -S localhost:8080- 访问应用
在浏览器中打开 http://localhost:8080
-
确保设备在同一网络:手机和电脑连接到同一Wi-Fi或热点
-
获取电脑IP地址
Windows:
ipconfigMac/Linux:
ifconfig- 在手机浏览器中访问
http://[电脑IP地址]:8080
例如:http://192.168.43.123:8080
- 点击"节点管理"中的"添加节点"
- 输入节点信息(ID、名称等)
- 设置节点位置:
- 手动输入经纬度
- 输入梅登海德坐标
- 点击"使用地图中心"使用当前地图中心位置
- 点击"使用当前位置"获取设备当前位置
- 设置节点参数:高度、发射功率、覆盖范围
- 点击"保存节点"
- 在"上传信号数据"表单中输入:
- 信号强度(RSSI)
- Hop数
- 发射功率
- Node ID
- 备注(可选)
- 测量类型
- 点击"获取当前位置"或使用地图中心
- 点击"保存数据"
- 在节点列表中点击要查看的节点
- 或在地图上点击节点标记
- 点击"显示覆盖范围"按钮
- 可在"覆盖范围"设置中调整显示参数
- 点击"标记起点"
- 在地图上点击起点位置
- 点击"标记终点"
- 在地图上点击终点位置
- 点击"计算距离"查看结果
- 点击"开始Trace"
- 移动设备或在地图上点击添加路径点
- 点击"停止Trace"结束记录
- 点击"清除Trace"清除当前路径
- 点击"选择文件"选择log文件
- 点击"上传"解析文件
- 查看解析结果和地图显示
- 前端框架:纯HTML/CSS/JavaScript
- 地图库:Leaflet.js
- 图标库:Font Awesome
- 设计风格:SwiftUI风格
- 数据存储:LocalStorage(本地存储)
MeshDetector/
├── index.html # 主页面
├── styles.css # 样式文件
├── script.js # 核心功能实现
├── .gitignore # Git忽略配置
├── README.md # 项目说明
└── LICENSE # 许可证
- Chrome/Edge 90+
- Firefox 88+
- Safari 14+
- 移动端浏览器
- 位置权限:使用当前位置功能需要浏览器位置权限
- 网络连接:首次加载需要下载Leaflet地图库
- 数据存储:所有数据保存在浏览器本地,清除浏览器数据会丢失
- 跨设备同步:目前不支持跨设备数据同步,建议定期导出数据
点击"数据管理"中的"导出数据"按钮,将所有数据导出为JSON文件。
欢迎提交Issue和Pull Request!
MIT License
如有问题或建议,请通过以下方式联系:
- GitHub Issues: https://github.com/TreorTang-sz/MeshDetector/issues
- Email: Tangyunxiang560@Gmail.com
Stay Onlne 📡🗺️