使用的代码如下:
QString urlstr = "contextualWMSLegend=0&crs=EPSG:4326&dpiMode=4&featureCount=10&format=image/png&layers=L11&layers=L12&styles&styles&url=http://localhost:8080/geoserver/mygeoserver/wms?";
QgsRasterLayer *rasterLayerwms = new QgsRasterLayer(urlstr, "Rectangle-1112", "wms"); if (!rasterLayerwms->isValid())
{
QMessageBox::critical(this, "error", "wmslayer is invalid");
return;
}
使用的桌面版的qgis能加载成功,使用程序卡在if (!rasterLayerwms->isValid()),这里始终无效。
官网上是这样做的:
urlWithParams = "crs=EPSG:4326&format=image/png&layers=continents&styles&url=https://demo.mapserver.org/cgi-bin/wms" rlayer = QgsRasterLayer(urlWithParams, 'some layer name', 'wms') if not rlayer.isValid(): print("Layer failed to load!")
感觉区别也不大呀,望高手指导!谢谢!