mainwindow.h中添加代码
void addOpenSourceRasterLayer(const QString & url, const QString & basename, const QString & providerKey);
mainwindow.cpp中添加代码
添加一个函数代码如下:
// 加载在线地图
void MainWindow::addOpenSourceRasterLayer(const QString & url, const QString & basename, const QString & providerKey)
{
QgsRasterLayer* rasterLayer = 0;
if (providerKey.isEmpty())
{
rasterLayer = new QgsRasterLayer(url, basename);
}
else
{
rasterLayer = new QgsRasterLayer(url, basename, providerKey);
}
if (!rasterLayer->isValid())
{
QMessageBox::critical(this, "error", "layer is invalid!");
return;
}
QgsProject::instance()->addMapLayer(rasterLayer);
m_mapcanvas->setExtent(rasterLayer->extent());
m_layersList.append(rasterLayer);
m_mapcanvas->setLayers(m_layersList);
m_mapcanvas->setVisible(true);
m_mapcanvas->freeze(false);
m_mapcanvas->refresh();
}
在构造函数中添加代码
addOpenSourceRasterLayer("type=xyz&url=http://c.tile.openstreetmap.org/{z}/{x}/{y}.png", "OSM", "wms");