可以初步显示地图了

Posted btian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了可以初步显示地图了相关的知识,希望对你有一定的参考价值。

通过使用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库来实现, 保留迁移到androidios等平台的能力

这里选择了QOpenGLWidget, 而不是传统的QGLWidget, 是因为从Qt5.5开始, QGLWidget被标记为废弃, QOpenGLWidget将取代原来QGLWidget的功能

尤其是在和QtQuick2或QML共同工作时, 更需要QOpenGLWidget

以上是关于可以初步显示地图了的主要内容,如果未能解决你的问题,请参考以下文章

谷歌地图不显示在片段中

谷歌地图片段显示,但没有地图

使用片段的谷歌地图

带有标记的Android谷歌地图片段

谷歌地图在Android的标签片段上显示为灰色

谷歌地图片段显示空地图