fix feature info for WMS 1.3

This commit is contained in:
Juergen E. Fischer 2012-05-16 00:16:55 +02:00
parent 0bac04db2c
commit 3a252fc100

View File

@ -2936,11 +2936,13 @@ QStringList QgsWmsProvider::identifyAs( const QgsPoint& point, QString format )
++layers, ++styles )
{
// Is sublayer visible?
if ( activeSubLayerVisibility.find( *layers ).value() )
{
if ( !mActiveSubLayerVisibility.find( *layers ).value() )
continue;
// Is sublayer queryable?
if ( mQueryableForLayer.find( *layers ).value() )
{
if ( !mQueryableForLayer.find( *layers ).value() )
continue;
QgsDebugMsg( "Layer '" + *layers + "' is queryable." );
QUrl requestUrl( mGetFeatureInfoUrlBase );
@ -2948,25 +2950,31 @@ QStringList QgsWmsProvider::identifyAs( const QgsPoint& point, QString format )
setQueryItem( requestUrl, "VERSION", mCapabilities.version );
setQueryItem( requestUrl, "REQUEST", "GetFeatureInfo" );
setQueryItem( requestUrl, "BBOX", bbox );
setQueryItem( requestUrl, crsKey, imageCrs );
setQueryItem( requestUrl, "WIDTH", QString::number( cachedViewWidth ) );
setQueryItem( requestUrl, "HEIGHT", QString::number( cachedViewHeight ) );
setQueryItem( requestUrl, crsKey, mImageCrs );
setQueryItem( requestUrl, "WIDTH", QString::number( mCachedViewWidth ) );
setQueryItem( requestUrl, "HEIGHT", QString::number( mCachedViewHeight ) );
setQueryItem( requestUrl, "LAYERS", *layers );
setQueryItem( requestUrl, "STYLES", *styles );
setQueryItem( requestUrl, "FORMAT", imageMimeType );
setQueryItem( requestUrl, "FORMAT", mImageMimeType );
setQueryItem( requestUrl, "QUERY_LAYERS", *layers );
setQueryItem( requestUrl, "INFO_FORMAT", format );
if ( mCapabilities.version == "1.3.0" || mCapabilities.version == "1.3" )
{
setQueryItem( requestUrl, "I", QString::number( point.x() ) );
setQueryItem( requestUrl, "J", QString::number( point.y() ) );
}
else
{
setQueryItem( requestUrl, "X", QString::number( point.x() ) );
setQueryItem( requestUrl, "Y", QString::number( point.y() ) );
}
if ( mFeatureCount > 0 )
{
setQueryItem( requestUrl, "FEATURE_COUNT", QString::number( mFeatureCount ) );
}
// X,Y in WMS 1.1.1; I,J in WMS 1.3.0
// requestUrl += QString( "&I=%1&J=%2" ).arg( point.x() ).arg( point.y() );
QgsDebugMsg( QString( "getfeatureinfo: %1" ).arg( requestUrl.toString() ) );
QNetworkRequest request( requestUrl );
setAuthorization( request );
@ -2980,8 +2988,6 @@ QStringList QgsWmsProvider::identifyAs( const QgsPoint& point, QString format )
results << mIdentifyResult;
}
}
}
QgsDebugMsg( "Exiting with: " + results.join( "\n------\n" ) );
return results;