QGIS API Documentation
3.14.0-Pi (9f7028fd23)
src
server
services
wms
qgswmsgetmap.cpp
Go to the documentation of this file.
1
/***************************************************************************
2
qgswmsgetmap.cpp
3
-------------------------
4
begin : December 20 , 2016
5
copyright : (C) 2007 by Marco Hugentobler (original code)
6
(C) 2014 by Alessandro Pasotti (original code)
7
(C) 2016 by David Marteau
8
email : marco dot hugentobler at karto dot baug dot ethz dot ch
9
a dot pasotti at itopen dot it
10
david dot marteau at 3liz dot com
11
***************************************************************************/
12
13
/***************************************************************************
14
* *
15
* This program is free software; you can redistribute it and/or modify *
16
* it under the terms of the GNU General Public License as published by *
17
* the Free Software Foundation; either version 2 of the License, or *
18
* (at your option) any later version. *
19
* *
20
***************************************************************************/
21
#include "
qgswmsutils.h
"
22
#include "
qgswmsgetmap.h
"
23
#include "
qgswmsrenderer.h
"
24
#include "
qgswmsserviceexception.h
"
25
26
#include <QImage>
27
28
namespace
QgsWms
29
{
30
31
void
writeGetMap
(
QgsServerInterface
*serverIface,
const
QgsProject
*project,
32
const
QString &,
const
QgsServerRequest
&request,
33
QgsServerResponse
&response )
34
{
35
// get wms parameters from query
36
const
QgsWmsParameters parameters( QUrlQuery( request.
url
() ) );
37
38
// prepare render context
39
QgsWmsRenderContext context( project, serverIface );
40
context.setFlag(
QgsWmsRenderContext::UpdateExtent
);
41
context.setFlag(
QgsWmsRenderContext::UseOpacity
);
42
context.setFlag(
QgsWmsRenderContext::UseFilter
);
43
context.setFlag(
QgsWmsRenderContext::UseSelection
);
44
context.setFlag(
QgsWmsRenderContext::AddHighlightLayers
);
45
context.setFlag(
QgsWmsRenderContext::AddExternalLayers
);
46
context.setFlag(
QgsWmsRenderContext::SetAccessControl
);
47
context.setFlag(
QgsWmsRenderContext::UseTileBuffer
);
48
context.setParameters( parameters );
49
50
// rendering
51
QgsRenderer
renderer( context );
52
std::unique_ptr<QImage> result( renderer.getMap() );
53
54
if
( result )
55
{
56
const
QString format = request.
parameters
().value( QStringLiteral(
"FORMAT"
), QStringLiteral(
"PNG"
) );
57
writeImage
( response, *result, format, context.imageQuality() );
58
}
59
else
60
{
61
throw
QgsException
( QStringLiteral(
"Failed to compute GetMap image"
) );
62
}
63
}
64
}
// namespace QgsWms
QgsWms::writeGetMap
void writeGetMap(QgsServerInterface *serverIface, const QgsProject *project, const QString &, const QgsServerRequest &request, QgsServerResponse &response)
Output GetMap response in DXF format.
Definition:
qgswmsgetmap.cpp:48
QgsWms::QgsWmsRenderContext::UpdateExtent
@ UpdateExtent
Definition:
qgswmsrendercontext.h:58
QgsServerRequest::parameters
QgsServerRequest::Parameters parameters() const
Returns a map of query parameters with keys converted to uppercase.
Definition:
qgsserverrequest.cpp:85
qgswmsrenderer.h
QgsException
Definition:
qgsexception.h:34
qgswmsutils.h
QgsWms::QgsWmsRenderContext::UseFilter
@ UseFilter
Definition:
qgswmsrendercontext.h:55
QgsWms::writeImage
void writeImage(QgsServerResponse &response, QImage &img, const QString &formatStr, int imageQuality)
Write image response.
Definition:
qgswmsutils.cpp:124
QgsWms::QgsWmsRenderContext::AddHighlightLayers
@ AddHighlightLayers
Definition:
qgswmsrendercontext.h:57
QgsServerRequest
Definition:
qgsserverrequest.h:38
QgsWms::QgsWmsRenderContext::AddExternalLayers
@ AddExternalLayers
Definition:
qgswmsrendercontext.h:62
QgsProject
Definition:
qgsproject.h:92
QgsWms::QgsWmsRenderContext::SetAccessControl
@ SetAccessControl
Definition:
qgswmsrendercontext.h:59
qgswmsgetmap.h
QgsWms
WMS implementation.
Definition:
qgsdxfwriter.cpp:22
QgsServerRequest::url
QUrl url() const
Definition:
qgsserverrequest.cpp:65
QgsWms::QgsRenderer
Map renderer for WMS requests.
Definition:
qgswmsrenderer.h:63
qgswmsserviceexception.h
QgsWms::QgsWmsRenderContext::UseSelection
@ UseSelection
Definition:
qgswmsrendercontext.h:56
QgsWms::QgsWmsRenderContext::UseTileBuffer
@ UseTileBuffer
Definition:
qgswmsrendercontext.h:64
QgsServerInterface
Definition:
qgsserverinterface.h:60
QgsServerResponse
Definition:
qgsserverresponse.h:43
QgsWms::QgsWmsRenderContext::UseOpacity
@ UseOpacity
Definition:
qgswmsrendercontext.h:54
Generated on Mon Jun 22 2020 05:14:09 for QGIS API Documentation by
1.8.17