Qt地铁智慧换乘系统浅学( 一 )存储站点,线路信息
存储
- 定义所需要的容器
- 定义最大最小经纬度
- [统计站点信息 在经纬度网站](https://map.jiqrxx.com/jingweidu/)
- 读取统计的信息存储到容器
- 其他的一些相关函数
- debug 显示存储的信息
- 更新最小最大经纬度的函数
- 获取两点之间的距离 根据经纬度
定义所需要的容器
extern QMap<QString,node> Station; //画图使用
extern QMap<QString,QList<QString> > edge; // 跑最短路
extern QMap<QString,QSet<QString> > Station_Line; // 站点所属线路总
extern QMap<QString,QColor> LineColor; // 线路颜色
extern QMap<QString,QMap<QString,int> >dp; //两站点之间的距离;
extern QMap<QString,QMap<QString,QSet<QString> > >mp; //两站站点共同的线路
定义最大最小经纬度
extern double minLongi;
extern double minLati;
extern double maxLongi;
extern double maxLati;
统计站点信息 在经纬度网站

统计如下

读取统计的信息存储到容器
void infoinit(){QFile file(":/src/lineQD.txt");file.open(QIODevice::ReadOnly);if(!file.isOpen()){qDebug()<<"error open";return ;}QTextStream in(&file);QString buffer;QString Name;QString Color;int Num;while(true){in>>buffer>>buffer;if(in.atEnd()) break;in>>buffer>>buffer; // line name;Name = buffer;in>>buffer>>buffer; // line colorColor = buffer;in>>buffer>>buffer; // startin>>buffer; // endin>>buffer>>buffer; // station numNum = buffer.toInt();/*extern QMap<QString,node> Station; //画图使用extern QMap<QString,QList<QString> > edge; // 跑最短路extern QMap<QString,QSet<QString> > Station_Line; // 站点所属线路总extern QMap<QString,QString> LineColor; // 线路颜色*/node stal[100];for(int i=0;i<Num;i++){ // 存储站点信息,存储站点所属线路in>>buffer>>stal[i].name>>stal[i].e>>stal[i].n;updateBound(stal[i].e,stal[i].n);qDebug()<<stal[i].name<<stal[i].e<<stal[i].n<<"\n";qDebug()<<maxLati<<" "<<maxLongi<<" "<<minLati<<" "<<minLongi<<"\n";Station[stal[i].name] = stal[i];Station_Line[stal[i].name].insert(Name);}node sta,laststa;for(int i=0;i<Num;i++){ //存储边if(i>=1) { edge[stal[i].name].append(stal[i-1].name); dp[stal[i].name][stal[i-1].name]=getDistance(stal[i].name,stal[i-1].name);mp[stal[i].name][stal[i-1].name].insert(Name);}if(i<Num-1) { edge[stal[i].name].append(stal[i+1].name); dp[stal[i].name][stal[i+1].name]=getDistance(stal[i].name,stal[i+1].name);mp[stal[i].name][stal[i+1].name].insert(Name);}}LineColor[Name] = QColor(Color); // 存储线路颜色}for(auto i:Station.keys()) {Station[i].coord.setX((Station[i].n-minLongi)/(maxLongi-minLongi)*1000+30);Station[i].coord.setY((Station[i].e-minLati)/(maxLati-minLati)*500+30);qDebug()<<Station[i].coord<<"\n";}return;
}
其他的一些相关函数
debug 显示存储的信息
void ddebug(){qDebug()<<"all station\n";QString s;for(auto &i:Station.keys()) {qDebug()<<Station[i].name<<" "<<Station[i].e<<" "<<Station[i].w<<" ";s=*Station_Line[i].begin();if(Station_Line[i].size()!=1) qDebug()<<"black ";}
}
更新最小最大经纬度的函数
void updateBound(const double lati,const double longi){if(minLati>lati)minLati=lati;if(maxLati<lati)maxLati=lati;if(minLongi>longi)minLongi=longi;if(maxLongi<longi)maxLongi=longi;
}
获取两点之间的距离 根据经纬度
int getDistance(const QString sta1,const QString sta2){const double EARTH_RADIUS = 6378.137;double rlati1 = Station[sta1].w * M_PI / 180;double rlati2 = Station[sta2].w * M_PI / 180;double rlongi1 = Station[sta1].e * M_PI / 180;double rlongi2 = Station[sta2].e * M_PI / 180;double vlongi = abs(rlongi1-rlongi2);double vlati = abs(rlati1-rlati2);double h = HaverSin(vlati)+cos(rlati1)*cos(rlati2)*HaverSin(vlongi);double ret = 2*EARTH_RADIUS*asin(sqrt(h));return (int)(ret*1000);
}
double HaverSin(double theta)
{double v = sin(theta / 2);return v * v;
}
相关文章:
Qt地铁智慧换乘系统浅学( 一 )存储站点,线路信息
存储 定义所需要的容器定义最大最小经纬度[统计站点信息 在经纬度网站](https://map.jiqrxx.com/jingweidu/)读取统计的信息存储到容器其他的一些相关函数debug 显示存储的信息更新最小最大经纬度的函数获取两点之间的距离 根据经纬度 定义所需要的容器 extern QMap<QStrin…...
Python之xToolkit库
文章目录 一、xToolkit是什么?二、准备工作1.引入库2.导入数据 三、使用时间模块-xdatetime判断时间格式是否正确get方法获取时间戳获取年月日时分秒时间推移计算时间替换时间扩展两个时间的差值开始与结束时间时间是否在指定区间中 字符串模块-xstring字符串格式校…...
2w+深度梳理!全网最全NLP面试题总结!
目录 技术交流群 1、命名实体识别常见面试篇2、关系抽取常见面试篇3、事件抽取 常见面试篇4、NLP 预训练算法常见面试篇5、Bert 常见面试篇6、文本分类 常见面试篇7、文本匹配 常见面试篇8、问答系统常见面试篇FAQ 检索式问答系统常见面试篇问答系统工具篇常见面试篇 9、对话系…...
Spring 学习(五)JavaConfig 实现配置
1. 使用 JavaConfig 实现配置 JavaConfig 是 Spring 项目的一个子项目,Spring 4 后成为核心功能。 注意: 如果开启包扫描,加载配置类以后就可以通过反射拿到配置类中的对象了。Bean 只写在方法上,返回的是一个对象,但…...
【Synapse数据集】Synapse数据集介绍和预处理,数据集下载网盘链接
【Segment Anything Model】做分割的专栏链接,欢迎来学习。 【博主微信】cvxiaoyixiao 本专栏为公开数据集的介绍和预处理,持续更新中。 文章目录 1️⃣Synapse数据集介绍文件结构源文件样图文件内容 2️⃣Synapse数据集百度网盘下载链接官网下载登录下…...
【运动规划算法项目实战】Dynamic Window Approach算法(附ROS C++代码)
文章目录 前言一、简介1.1 DWA算法原理1.2 DWA算法的应用场景1.4 DWA算法的优缺点1.4.1 优点1.4.2 缺点二、代码实现2.1 算法细节2.1.1 DWA的控制输入:2.1.2 动态窗口的计算2.1.3 评价函数的优化2.2 程序说明2.21 PathGenerator2.2.2 WaypointAction2.2.3 使用方法2.3 代码演示…...
第十四届蓝桥杯大赛软件赛决赛 C/C++ 大学 B 组 试题 A: 子 2023
[蓝桥杯 2023 国 B] 子 2023 试题 A: 子 2023 【问题描述】 小蓝在黑板上连续写下从 1 1 1 到 2023 2023 2023 之间所有的整数,得到了一个数字序列: S 12345678910111213 ⋯ 20222023 S 12345678910111213\cdots 20222023 S12345678910111213⋯2…...
Unity 场景淡入淡出效果
一. 使用Dotween,建议使用我的方式 FindObjectOfType<SceneFadeInAndOut>().FadeIn(() > { Debug.Log("Fade in MenuStart Scene"); }); using DG.Tweening; using System; using System.Numerics; using UnityEngi…...
快速使用Spring Cache
哈喽~大家好,这篇我们来看看快速使用Spring Cache。 🥇个人主页:个人主页 🥈 系列专栏:【日常学习上的分享】 🥉与这篇相关的文章: R…...
Scrum敏捷开发培训内训:提升团队能力和效率的重要途径
在当今软件开发领域,Scrum敏捷开发方法越来越受到重视。Scrum是一种以团队协作为基础,注重灵活性和快速响应变化的方法。 为了帮助团队更好地掌握Scrum敏捷开发,培训变得越来越重要。Scrum敏捷开发方法注重高效协作、快速迭代和持续改进。通…...
kaggle新赛:Optiver 美股价格预测赛题解析
赛题名称:Optiver - Trading at the Close 赛题链接:https://www.kaggle.com/competitions/optiver-trading-at-the-close 赛题背景 证券交易所是快节奏、高风险的环境,每一秒都很重要。随着交易日接近尾声,强度不断升级&#…...
Vue 学习笔记 错误ResizeObserver loop completed with undelivered notifications
环境Vue3 Ts 使用了el-table 后,容易出现如下错误 ERROR ResizeObserver loop completed with undelivered notifications. at handleError (webpack-internal:///./node_modules/webpack-dev-server/client/overlay.js:299:58) at eval (webpack-internal:///./nod…...
Wi-Fi直连分享:Android设备间的高速连接
Wi-Fi直连分享:Android设备间的高速连接 引言 随着无线局域网(Wi-Fi)的普及和发展,使用Wi-Fi直连技术(P2P)在没有中间接入点的情况下实现设备间直接互联成为可能。通过Wi-Fi直连,具备相应硬件…...
LeetCode 面试题 05.06. 整数转换
文章目录 一、题目二、Java 题解 一、题目 整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。 示例1: 输入: A 29 (或者0b11101), B 15(或者0b01111) 输出: 2 示例2: 输入&a…...
增强for循环和一般for循环的对比使用
文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。个人B站主页热爱技术的小郑 ,视频内容主要是对应文章的视频讲解形式。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘…...
云原生之使用Docker部署RSS阅读器Huntly
云原生之使用Docker部署RSS阅读器Huntly 一、Huntly介绍1.1 Huntly简介1.2 Huntly功能2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、下载Huntly镜像五、部署Huntly5.1 创建挂载目录5.2 创建Hun…...
Powershell 实现禁用密码复杂性,空密码
前提条件 开启wmi,配置网卡,参考 实现一键关闭密码策略和远程空密码登录 最近客户需要的一个无法理解的需求,需要远程登录不输入密码,安全性没有了还要实现,没办法客户是上帝,客户怎么开心怎么来都行,安全性问题告知不重视,实际环境不建议一下操作,只要联网你被黑的哦…...
【c语言】详解动态内存管理
目录 关于动态内存分配malloc和calloc函数介绍动态内存回收----freerealloc函数介绍常见的动态内存错误 关于动态内存分配 回想一下我们之前学过的内存开辟方式: int val 20;//在栈空间上开辟四个字节 char arr[10] {0};//在栈空间上开辟10个字节的连续空间在学…...
深度学习概念——端对端
目录 1、端对端是什么2、端对端有什么用3、例子4、引用 在读论文的过程中反复遇到端对端的概念,就需要理解深刻一些。在此将收集到的一些资料拿出来辅以自己的拙见,请大家多多批评指正! 1、端对端是什么 在计算机学科中有一种算法叫分治法&a…...
苹果触控笔有必要买吗?平价ipad电容笔推荐
其实,市面上的数码类产品很多,有的侧重于美观,有的侧重于功能,有的侧重于性能。与iPad平板电脑搭配使用的电容笔同样也如此。因此,在选购电容笔时,一定要了解有关电容笔的知识。在购买之前,一定…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...
如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
uniapp 实现腾讯云IM群文件上传下载功能
UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中,群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS,在uniapp中实现: 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...
