Skip to content

Commit 778afc5

Browse files
committed
Support different xml root element for feature info response (WMSFeatureInfoDocumentName)
1 parent 828ee7e commit 778afc5

File tree

4 files changed

+20
-1
lines changed

4 files changed

+20
-1
lines changed

src/mapserver/qgsconfigparser.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@ class QgsConfigParser
116116
/**Returns map with layer aliases for GetFeatureInfo (or 0 pointer if not supported). Key: layer name, Value: layer alias*/
117117
virtual QHash<QString, QString> featureInfoLayerAliasMap() const { return QHash<QString, QString>(); }
118118

119+
virtual QString featureInfoDocumentName( const QString& defaultValue ) const { return defaultValue; }
120+
119121
protected:
120122
/**Parser to forward not resolved requests (e.g. SLD parser based on user request might have a fallback parser with admin configuration)*/
121123
QgsConfigParser* mFallbackParser;

src/mapserver/qgsprojectparser.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1397,6 +1397,21 @@ QHash<QString, QString> QgsProjectParser::featureInfoLayerAliasMap() const
13971397
return aliasMap;
13981398
}
13991399

1400+
QString QgsProjectParser::featureInfoDocumentName( const QString& defaultValue ) const
1401+
{
1402+
QDomElement propertiesElem = mXMLDoc->documentElement().firstChildElement( "properties" );
1403+
if ( propertiesElem.isNull() )
1404+
{
1405+
return defaultValue;
1406+
}
1407+
QDomElement featureInfoDocumentNameElem = propertiesElem.firstChildElement( "WMSFeatureInfoDocumentName" );
1408+
if ( featureInfoDocumentNameElem.isNull() )
1409+
{
1410+
return defaultValue;
1411+
}
1412+
return featureInfoDocumentNameElem.text();
1413+
}
1414+
14001415
QString QgsProjectParser::convertToAbsolutePath( const QString& file ) const
14011416
{
14021417
if ( !file.startsWith( "./" ) && !file.startsWith( "../" ) )

src/mapserver/qgsprojectparser.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@ class QgsProjectParser: public QgsConfigParser
104104
/**Returns map with layer aliases for GetFeatureInfo (or 0 pointer if not supported). Key: layer name, Value: layer alias*/
105105
virtual QHash<QString, QString> featureInfoLayerAliasMap() const;
106106

107+
virtual QString featureInfoDocumentName( const QString& defaultValue ) const;
108+
107109
private:
108110

109111
//forbidden

src/mapserver/qgswmsserver.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -803,7 +803,7 @@ int QgsWMSServer::getFeatureInfo( QDomDocument& result, QString version )
803803
QStringList layerIds = layerSet( layersList, stylesList, mMapRenderer->destinationCrs() );
804804
QMap<QString, QString> originalLayerFilters = applyRequestedLayerFilters( layersList );
805805

806-
QDomElement getFeatureInfoElement = result.createElement( "GetFeatureInfoResponse" );
806+
QDomElement getFeatureInfoElement = result.createElement( mConfigParser->featureInfoDocumentName( "GetFeatureInfoResponse" ) );
807807
result.appendChild( getFeatureInfoElement );
808808

809809
QStringList nonIdentifiableLayers = mConfigParser->identifyDisabledLayers();

0 commit comments

Comments
 (0)