MapViewer V2.0:在高德/百度地图上增加小车回放功能,控制小车的速度,显示行驶方方向

背景介绍 

        在MapViewer V1.0的基础上,增加了小车行驶轨迹回放的功能,这种展示方法直观、清晰,很适合给领导尤其是不懂技术的领导汇报工作。

效果图

主要部分的设计与实现 

右下角控件布置

<body><div id="container"></div>
  <div class="input-card" position="top">
    <div>
        <select id="spd" style="width:100px;" onchange="changeSpd()">
            <option value="500">500</option>
            <option value="5000" selected="selected">5000</option>
            <option value
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Qt是一种跨平台的开发框架,它提供了丰富的功能库,可轻松实现各种应用程序。要在Qt中调用百度地图标记点信息,首先需要在百度地图平台上创建一个应用程序,并获得对应的应用密钥。接着,可以使用Qt中提供的网络模块进行HTTP请求,从而与百度地图API进行通信,获取标记点的信息。 在Qt中,可以使用QNetworkAccessManager类来发起HTTP请求,并使用QNetworkReply类来处理响应。需要注意的是,百度地图API通常会返JSON格式的数据,因此需要使用Qt中提供的Json模块进行解析。同时,还可以使用Qt中的Graphics View框架来展示地图和标记点,以及与用户进行交互。 以下是一个简单的示例代码,演示如何在Qt中使用百度地图API获取标记点信息并在地图显示: ``` #include <QtNetwork> #include <QGraphicsView> #include <QJsonDocument> #include <QJsonObject> class MapViewer : public QGraphicsView { public: MapViewer(QWidget *parent = nullptr) : QGraphicsView(parent) { // 创建网络访问管理器 m_network = new QNetworkAccessManager(this); // 设置百度地图API密钥 m_apikey = "YOUR_API_KEY"; // 发起HTTP请求获取标记点信息 requestMarkers(); } private: QNetworkAccessManager *m_network; QString m_apikey; void requestMarkers() { QUrl url("http://api.map.baidu.com/place/v2/search"); QUrlQuery query; query.addQueryItem("query", "餐厅"); // 搜索关键词 query.addQueryItem("region", "北京"); // 搜索区域 query.addQueryItem("output", "json"); // 返格式为JSON query.addQueryItem("scope", "2"); // 返详细信息 query.addQueryItem("ak", m_apikey); // 此处填写应用程序的API密钥 url.setQuery(query); QNetworkRequest request(url); QNetworkReply *reply = m_network->get(request); connect(reply, &QNetworkReply::finished, this, &MapViewer::handleMarkers); } void handleMarkers() { QNetworkReply *reply = qobject_cast<QNetworkReply *>(sender()); if (reply->error() != QNetworkReply::NoError) return; QByteArray data = reply->readAll(); QJsonDocument doc = QJsonDocument::fromJson(data); QJsonObject jsonObj = doc.object(); QJsonArray results = jsonObj.value("results").toArray(); for (const QJsonValue &result : results) { QJsonObject poi = result.toObject(); double lon = poi.value("location").toObject().value("lng").toDouble(); double lat = poi.value("location").toObject().value("lat").toDouble(); QGraphicsRectItem *marker = new QGraphicsRectItem(-5, -5, 10, 10); marker->setPen(Qt::NoPen); marker->setBrush(Qt::red); marker->setPos(lon * 100000, -lat * 100000); scene()->addItem(marker); } } }; int main(int argc, char *argv[]) { QApplication app(argc, argv); MapViewer viewer; viewer.setScene(new QGraphicsScene); viewer.show(); return app.exec(); } ``` 以上代码演示了如何在Qt中发起HTTP请求,获取百度地图API返的标记点信息,并在Graphics View中显示标记点。当然,由于百度地图API拥有丰富的功能,上述代码仅为一个示例,开发者可以根据需求进行扩展和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dj Yang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值