重庆网络建站,wordpress设置文章期限,6免费建站的网站,设计说明ai存储 定义所需要的容器定义最大最小经纬度[统计站点信息 在经纬度网站](https://map.jiqrxx.com/jingweidu/)读取统计的信息存储到容器其他的一些相关函数debug 显示存储的信息更新最小最大经纬度的函数获取两点之间的距离 根据经纬度 定义所需要的容器
extern QMapQStrin… 存储 定义所需要的容器定义最大最小经纬度[统计站点信息 在经纬度网站](https://map.jiqrxx.com/jingweidu/)读取统计的信息存储到容器其他的一些相关函数debug 显示存储的信息更新最小最大经纬度的函数获取两点之间的距离 根据经纬度 定义所需要的容器
extern QMapQString,node Station; //画图使用
extern QMapQString,QListQString edge; // 跑最短路
extern QMapQString,QSetQString Station_Line; // 站点所属线路总
extern QMapQString,QColor LineColor; // 线路颜色
extern QMapQString,QMapQString,int dp; //两站点之间的距离
extern QMapQString,QMapQString,QSetQString 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){inbufferbuffer;if(in.atEnd()) break;inbufferbuffer; // line name;Name buffer;inbufferbuffer; // line colorColor buffer;inbufferbuffer; // startinbuffer; // endinbufferbuffer; // station numNum buffer.toInt();/*extern QMapQString,node Station; //画图使用extern QMapQString,QListQString edge; // 跑最短路extern QMapQString,QSetQString Station_Line; // 站点所属线路总extern QMapQString,QString LineColor; // 线路颜色*/node stal[100];for(int i0;iNum;i){ // 存储站点信息存储站点所属线路inbufferstal[i].namestal[i].estal[i].n;updateBound(stal[i].e,stal[i].n);qDebug()stal[i].namestal[i].estal[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 i0;iNum;i){ //存储边if(i1) { 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(iNum-1) { edge[stal[i].name].append(stal[i1].name); dp[stal[i].name][stal[i1].name]getDistance(stal[i].name,stal[i1].name);mp[stal[i].name][stal[i1].name].insert(Name);}}LineColor[Name] QColor(Color); // 存储线路颜色}for(auto i:Station.keys()) {Station[i].coord.setX((Station[i].n-minLongi)/(maxLongi-minLongi)*100030);Station[i].coord.setY((Station[i].e-minLati)/(maxLati-minLati)*50030);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(minLatilati)minLatilati;if(maxLatilati)maxLatilati;if(minLongilongi)minLongilongi;if(maxLongilongi)maxLongilongi;
}获取两点之间的距离 根据经纬度
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;
}