This is an automated email from the git hooks/post-receive script. sebastic pushed a commit to branch experimental in repository qgis.
commit 677e09a1b00890581c57032d23875af964ff28df Author: Bas Couwenberg <[email protected]> Date: Fri Dec 8 22:40:56 2017 +0100 New upstream version 2.14.21+dfsg --- CMakeLists.txt | 2 +- ChangeLog | 12 +++++++ debian/changelog | 10 ++++-- src/server/qgswmsserver.cpp | 85 +++++++++++++++++++++++++++++++++------------ 4 files changed, 83 insertions(+), 26 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 791fa33..7e136f0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ SET(CPACK_PACKAGE_VERSION_MAJOR "2") SET(CPACK_PACKAGE_VERSION_MINOR "14") -SET(CPACK_PACKAGE_VERSION_PATCH "20") +SET(CPACK_PACKAGE_VERSION_PATCH "21") SET(COMPLETE_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}) SET(RELEASE_NAME "Essen") IF (POLICY CMP0048) # in CMake 3.0.0+ diff --git a/ChangeLog b/ChangeLog index 0e87783..7dbcfac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +rldhont <[email protected]> 2017-11-06 + + [Server] GetFeatureInfo: enhance raster data values displayed + +rldhont <[email protected]> 2017-11-03 + + [BUGFIX][Server] GetFeaturInfo: do not identify raster data if point not contains + +Juergen E. Fischer <[email protected]> 2017-10-27 + + Release of 2.14.20 + Juergen E. Fischer <[email protected]> 2017-08-22 bring back sip workaround, but only for the affected versions (followup 7e4345a9d) diff --git a/debian/changelog b/debian/changelog index 836db5b..63a9f40 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,14 @@ -qgis (2.14.20) UNRELEASED; urgency=medium +qgis (2.14.21) UNRELEASED; urgency=medium + + * Release of 2.14.21 + + -- Jürgen E. Fischer <[email protected]> Fri, 08 Dec 2017 14:00:15 +0100 + +qgis (2.14.20) unstable; urgency=medium * Release of 2.14.20 - -- Jürgen E. Fischer <[email protected]> Fri, 27 Oct 2017 14:00:19 +0200 + -- Jürgen E. Fischer <[email protected]> Fri, 08 Dec 2017 14:00:15 +0100 qgis (2.14.19) unstable; urgency=medium diff --git a/src/server/qgswmsserver.cpp b/src/server/qgswmsserver.cpp index f0ba8df..6698d92 100644 --- a/src/server/qgswmsserver.cpp +++ b/src/server/qgswmsserver.cpp @@ -1825,26 +1825,26 @@ int QgsWMSServer::getFeatureInfo( QDomDocument& result, const QString& version ) } else //raster layer { + QgsRasterLayer* rasterLayer = qobject_cast<QgsRasterLayer*>( currentLayer ); + if ( !rasterLayer ) + { + continue; + } + if ( !infoPoint.data() ) + { + continue; + } + QgsPoint layerInfoPoint = mMapRenderer->mapToLayerCoordinates( currentLayer, *( infoPoint.data() ) ); + if ( !rasterLayer->extent().contains( layerInfoPoint ) ) + { + continue; + } if ( infoFormat.startsWith( "application/vnd.ogc.gml" ) ) { layerElement = result.createElement( "gml:featureMember"/*wfs:FeatureMember*/ ); getFeatureInfoElement.appendChild( layerElement ); } - - QgsRasterLayer* rasterLayer = qobject_cast<QgsRasterLayer*>( currentLayer ); - if ( rasterLayer ) - { - if ( !infoPoint.data() ) - { - continue; - } - QgsPoint layerInfoPoint = mMapRenderer->mapToLayerCoordinates( currentLayer, *( infoPoint.data() ) ); - if ( featureInfoFromRasterLayer( rasterLayer, &layerInfoPoint, result, layerElement, version, infoFormat ) != 0 ) - { - continue; - } - } - else + if ( featureInfoFromRasterLayer( rasterLayer, &layerInfoPoint, result, layerElement, version, infoFormat ) != 0 ) { continue; } @@ -2551,17 +2551,36 @@ int QgsWMSServer::featureInfoFromRasterLayer( QgsRasterLayer* layer, if ( !identifyResult.isValid() ) return 1; - QMap<int, QVariant> attributes = identifyResult.results(); + QMap<int, QVariant> values = identifyResult.results(); if ( infoFormat == "application/vnd.ogc.gml" ) { QgsFeature feature; QgsFields fields; - feature.initAttributes( attributes.count() ); + feature.initAttributes( values.count() ); int index = 0; - for ( QMap<int, QVariant>::const_iterator it = attributes.constBegin(); it != attributes.constEnd(); ++it ) + Q_FOREACH ( int bandNo, values.keys() ) { - fields.append( QgsField( layer->bandName( it.key() ), QVariant::Double ) ); - feature.setAttribute( index++, QString::number( it.value().toDouble() ) ); + if ( values.value( bandNo ).isNull() ) + { + fields.append( QgsField( layer->bandName( bandNo ), QVariant::String ) ); + feature.setAttribute( index++, "no data" ); + } + else + { + QVariant value( values.value( bandNo ) ); + fields.append( QgsField( layer->bandName( bandNo ), QVariant::Double ) ); + // The cast is legit. Quoting QT doc : + // "Although this function is declared as returning QVariant::Type, + // the return value should be interpreted as QMetaType::Type" + if ( static_cast<QMetaType::Type>( value.type() ) == QMetaType::Float ) + { + feature.setAttribute( index++, QString::number( value.toFloat() ) ); + } + else + { + feature.setAttribute( index++, QString::number( value.toDouble() ) ); + } + } } feature.setFields( fields ); @@ -2578,11 +2597,31 @@ int QgsWMSServer::featureInfoFromRasterLayer( QgsRasterLayer* layer, } else { - for ( QMap<int, QVariant>::const_iterator it = attributes.constBegin(); it != attributes.constEnd(); ++it ) + Q_FOREACH ( int bandNo, values.keys() ) { + QString valueString; + if ( values.value( bandNo ).isNull() ) + { + valueString = "no data"; + } + else + { + QVariant value( values.value( bandNo ) ); + // The cast is legit. Quoting QT doc : + // "Although this function is declared as returning QVariant::Type, + // the return value should be interpreted as QMetaType::Type" + if ( static_cast<QMetaType::Type>( value.type() ) == QMetaType::Float ) + { + valueString = QgsRasterBlock::printValue( value.toFloat() ); + } + else + { + valueString = QgsRasterBlock::printValue( value.toDouble() ); + } + } QDomElement attributeElement = infoDocument.createElement( "Attribute" ); - attributeElement.setAttribute( "name", layer->bandName( it.key() ) ); - attributeElement.setAttribute( "value", QString::number( it.value().toDouble() ) ); + attributeElement.setAttribute( "name", layer->bandName( bandNo ) ); + attributeElement.setAttribute( "value", valueString ); layerElement.appendChild( attributeElement ); } } -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/qgis.git _______________________________________________ Pkg-grass-devel mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-grass-devel

