首页| 论坛| 消息

标题:Qt/C++地图路径规划/公交路线/自驾路线/骑行路线/步行路线/获取路线轨迹点
作者:liudianwu
日期:2025-08-06 09:08
内容:

## 一、前言说明
地图路径规划是指在给定的地图上,找到从起点到目标点的最优或可行路径的过程。它在自动驾驶、机器人导航、物流配送、游戏AI等领域有广泛应用。路径规划的核心目标是找到一条满足特定约束条件(如最短距离、最少时间、避开障碍物等)的路径。
无论是百度地图还是高德地图或者天地图,都提供了路径规划的api接口,毫无疑问这些接口都是需要在线才能使用的,也就是联网可用,离线不可用,点对点路径搜索涉及到比较复杂的算法,道路信息也需要经常更新,才能保证最优路径,如果是放在本地,需要下载很大的道路数据包,而且这种算法未必开源,需要自己去计算。所以常规的做法是联网在线去查询最优路径。
## 二、效果图

## 三、相关代码
```cpp
#include "frmmapdemoroute.h"
#include "ui_frmmapdemoroute.h"
#include "qthelper.h"
#include "maphelper.h"
frmMapDemoRoute::frmMapDemoRoute(QWidget *parent) : QWidget(parent), ui(new Ui::frmMapDemoRoute)
{
ui->setupUi(this);
this->initForm();
}
frmMapDemoRoute::~frmMapDemoRoute()
{
delete ui;
}
void frmMapDemoRoute::initForm()
{
}
void frmMapDemoRoute::loadPolicy(int mapCore)
{
this->mapCore = mapCore;
MapHelper::loadTransitPolicy(ui->cboxTransitPolicy, (MapCore)mapCore);
MapHelper::loadDrivingPolicy(ui->cboxDrivingPolicy, (MapCore)mapCore);
}
void frmMapDemoRoute::receiveDataFromJs(const QString &type, const QVariant &data)
{
//不可见不用继续/说明不是本界面的操作触发的
if (!this->isVisible()) {
return;
}
QString result = data.toString();
if (type == "click") {
QString point = MapHelper::getLngLat2(result, 5);
if (ui->rbtnPointStart->isChe ..


#1 [uidab 08-06 17:57]

回复 发表
主题 版块