首页 > 代码库 > 可以初步显示地图了
可以初步显示地图了
通过使用Tangram默认的OSM, 已经可以成功显示地图了, 地图配色惨了点, 留作以后修改吧。
使用Tangram显示地图很简单, 只需要new一个Tangram::Map, 并load一个预定义的Scene, 然后设置一个合适的camera位置就可以了。
m_map = new Tangram::Map(); m_map->loadSceneAsync(scene.toStdString().c_str(), false); m_map->setPosition(117.13788604736328, 39.24948501586914); m_map->setZoom(16);
然后响应QOpenGLWidget的初始化和绘图消息:
void MapWidget::initializeGL() { glClearColor(0, 0, 0, 1); m_lastRenderTime = QDateTime::currentMSecsSinceEpoch(); m_map->setupGL(); } void MapWidget::paintGL() { qint64 curr = QDateTime::currentMSecsSinceEpoch(); m_map->update(curr - m_lastRenderTime); m_map->render(); m_lastRenderTime = curr; }
简单类图:
MapView是一个纯虚C++接口, 如果有需要, 可以使用其他GUI库来实现, 保留迁移到Android, iOS等平台的能力
这里选择了QOpenGLWidget, 而不是传统的QGLWidget, 是因为从Qt5.5开始, QGLWidget被标记为废弃, QOpenGLWidget将取代原来QGLWidget的功能
尤其是在和QtQuick2或QML共同工作时, 更需要QOpenGLWidget
可以初步显示地图了
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。