From 5f28b0d2027cc4505ac62d1d27993815b94a27e2 Mon Sep 17 00:00:00 2001 From: rldhont Date: Wed, 16 Jan 2019 16:21:58 +0100 Subject: [PATCH] Cleaning WMTS utils code [Server] In the tile matrices calculation the code could be simplified. --- src/server/services/wmts/qgswmtsutils.cpp | 120 +++-- src/server/services/wmts/qgswmtsutils.h | 6 +- .../WMTS_GetTile_Project_3857_0.png | Bin 33108 -> 32405 bytes .../WMTS_GetTile_Project_3857_0_mask.png | Bin 0 -> 13637 bytes .../qgis_server/wmts_getcapabilities.txt | 500 +++++++++++++----- 5 files changed, 438 insertions(+), 188 deletions(-) create mode 100644 tests/testdata/control_images/qgis_server/WMTS_GetTile_Project_3857_0/WMTS_GetTile_Project_3857_0_mask.png diff --git a/src/server/services/wmts/qgswmtsutils.cpp b/src/server/services/wmts/qgswmtsutils.cpp index cedabbb2c565..9107e5f46f88 100644 --- a/src/server/services/wmts/qgswmtsutils.cpp +++ b/src/server/services/wmts/qgswmtsutils.cpp @@ -34,15 +34,12 @@ namespace QgsWmts { namespace { - QMap< QgsUnitTypes::DistanceUnit, double> populateInchesPerUnit(); QMap< QString, tileMatrixInfo> populateTileMatrixInfoMap(); QgsCoordinateReferenceSystem wgs84 = QgsCoordinateReferenceSystem::fromOgcWmsCrs( GEO_EPSG_CRS_AUTHID ); - double METERS_PER_INCH = 0.02540005080010160020; - QMap< QgsUnitTypes::DistanceUnit, double> INCHES_PER_UNIT = populateInchesPerUnit(); - int tileWidth = 256; - int tileHeight = 256; + constexpr int tileSize = 256; + constexpr double points_to_m = 2.83464567 / 10000.0; QMap< QString, tileMatrixInfo> tileMatrixInfoMap = populateTileMatrixInfoMap(); } @@ -102,18 +99,19 @@ namespace QgsWmts // calculate tile matrix scale denominator double scaleDenominator = 0.0; - int colRes = ( tmi.extent.xMaximum() - tmi.extent.xMinimum() ) / tileWidth; - int rowRes = ( tmi.extent.yMaximum() - tmi.extent.yMinimum() ) / tileHeight; + int colRes = ( tmi.extent.xMaximum() - tmi.extent.xMinimum() ) / tileSize; + int rowRes = ( tmi.extent.yMaximum() - tmi.extent.yMinimum() ) / tileSize; + double unit_to_m = QgsUnitTypes::fromUnitToUnitFactor( tmi.unit, QgsUnitTypes::DistanceMeters ); if ( colRes > rowRes ) - scaleDenominator = std::ceil( colRes * INCHES_PER_UNIT[ tmi.unit ] * METERS_PER_INCH / 0.00028 ); + scaleDenominator = std::ceil( colRes * unit_to_m / points_to_m ); else - scaleDenominator = std::ceil( rowRes * INCHES_PER_UNIT[ tmi.unit ] * METERS_PER_INCH / 0.00028 ); + scaleDenominator = std::ceil( rowRes * unit_to_m / points_to_m ); // Update extent to get a square one QgsRectangle extent = tmi.extent; - double res = 0.00028 * scaleDenominator / METERS_PER_INCH / INCHES_PER_UNIT[ tmi.unit ]; - int col = std::ceil( ( extent.xMaximum() - extent.xMinimum() ) / ( tileWidth * res ) ); - int row = std::ceil( ( extent.yMaximum() - extent.yMinimum() ) / ( tileHeight * res ) ); + double res = points_to_m * scaleDenominator / unit_to_m; + int col = std::ceil( ( extent.xMaximum() - extent.xMinimum() ) / ( tileSize * res ) ); + int row = std::ceil( ( extent.yMaximum() - extent.yMinimum() ) / ( tileSize * res ) ); if ( col > 1 || row > 1 ) { // Update scale @@ -132,10 +130,10 @@ namespace QgsWmts row = 1; } // Calculate extent - double left = ( extent.xMinimum() + ( extent.xMaximum() - extent.xMinimum() ) / 2.0 ) - ( col / 2.0 ) * ( tileWidth * res ); - double bottom = ( extent.yMinimum() + ( extent.yMaximum() - extent.yMinimum() ) / 2.0 ) - ( row / 2.0 ) * ( tileHeight * res ); - double right = ( extent.xMinimum() + ( extent.xMaximum() - extent.xMinimum() ) / 2.0 ) + ( col / 2.0 ) * ( tileWidth * res ); - double top = ( extent.yMinimum() + ( extent.yMaximum() - extent.yMinimum() ) / 2.0 ) + ( row / 2.0 ) * ( tileHeight * res ); + double left = ( extent.xMinimum() + ( extent.xMaximum() - extent.xMinimum() ) / 2.0 ) - ( col / 2.0 ) * ( tileSize * res ); + double bottom = ( extent.yMinimum() + ( extent.yMaximum() - extent.yMinimum() ) / 2.0 ) - ( row / 2.0 ) * ( tileSize * res ); + double right = ( extent.xMinimum() + ( extent.xMaximum() - extent.xMinimum() ) / 2.0 ) + ( col / 2.0 ) * ( tileSize * res ); + double top = ( extent.yMinimum() + ( extent.yMaximum() - extent.yMinimum() ) / 2.0 ) + ( row / 2.0 ) * ( tileSize * res ); tmi.extent = QgsRectangle( left, bottom, right, top ); tmi.scaleDenominator = scaleDenominator; @@ -152,25 +150,33 @@ namespace QgsWmts QgsRectangle extent = tmi.extent; QgsUnitTypes::DistanceUnit unit = tmi.unit; + // constant + double unit_to_m = QgsUnitTypes::fromUnitToUnitFactor( tmi.unit, QgsUnitTypes::DistanceMeters ); + double resolution = points_to_m * scaleDenominator / unit_to_m; + int column = std::ceil( ( extent.xMaximum() - extent.xMinimum() ) / ( tileSize * resolution ) ); + int row = std::ceil( ( extent.yMaximum() - extent.yMinimum() ) / ( tileSize * resolution ) ); + while ( scaleDenominator >= minScale ) { double scale = scaleDenominator; - double res = 0.00028 * scale / METERS_PER_INCH / INCHES_PER_UNIT[ unit ]; - int col = std::ceil( ( extent.xMaximum() - extent.xMinimum() ) / ( tileWidth * res ) ); - int row = std::ceil( ( extent.yMaximum() - extent.yMinimum() ) / ( tileHeight * res ) ); - double left = ( extent.xMinimum() + ( extent.xMaximum() - extent.xMinimum() ) / 2.0 ) - ( col / 2.0 ) * ( tileWidth * res ); - double top = ( extent.yMinimum() + ( extent.yMaximum() - extent.yMinimum() ) / 2.0 ) + ( row / 2.0 ) * ( tileHeight * res ); + // Calculate resolution based on scale denominator + double res = resolution; + int col = column; + int r = row; tileMatrixDef tm; tm.resolution = res; tm.scaleDenominator = scale; tm.col = col; - tm.row = row; - tm.left = std::max( left, extent.xMinimum() ); - tm.top = std::min( top, extent.yMaximum() ); + tm.row = r; + tm.left = extent.xMinimum(); + tm.top = extent.yMaximum(); tileMatrixList.append( tm ); scaleDenominator = scale / 2; + resolution = res / 2; + column = col * 2; + row = r * 2; } tileMatrixSetDef tms; @@ -247,7 +253,6 @@ namespace QgsWmts #ifdef HAVE_SERVER_PYTHON_PLUGINS QgsAccessControl *accessControl = serverIface->accessControls(); #endif - QgsCoordinateReferenceSystem wgs84 = QgsCoordinateReferenceSystem::fromOgcWmsCrs( GEO_EPSG_CRS_AUTHID ); // WMTS Project configuration bool wmtsProject = project->readBoolEntry( QStringLiteral( "WMTSLayers" ), QStringLiteral( "Project" ) ); @@ -352,15 +357,18 @@ namespace QgsWmts queryable = true; } - double lMaxScale = l->maximumScale(); - if ( lMaxScale > 0.0 && lMaxScale > maxScale ) - { - maxScale = lMaxScale; - } - double lMinScale = l->minimumScale(); - if ( lMinScale > 0.0 && ( minScale == 0.0 || lMinScale < minScale ) ) + if ( l->hasScaleBasedVisibility() ) { - minScale = lMinScale; + double lMaxScale = l->maximumScale(); + if ( lMaxScale > 0.0 && lMaxScale > maxScale ) + { + maxScale = lMaxScale; + } + double lMinScale = l->minimumScale(); + if ( lMinScale > 0.0 && ( minScale == 0.0 || lMinScale < minScale ) ) + { + minScale = lMinScale; + } } } pLayer.wgs84BoundingRect = wgs84BoundingRect; @@ -425,8 +433,16 @@ namespace QgsWmts pLayer.queryable = ( l->flags().testFlag( QgsMapLayer::Identifiable ) ); - pLayer.maxScale = l->maximumScale(); - pLayer.minScale = l->minimumScale(); + if ( l->hasScaleBasedVisibility() ) + { + pLayer.maxScale = l->maximumScale(); + pLayer.minScale = l->minimumScale(); + } + else + { + pLayer.maxScale = l->maximumScale(); + pLayer.minScale = l->minimumScale(); + } wmtsLayers.append( pLayer ); } @@ -443,7 +459,6 @@ namespace QgsWmts if ( tms.ref != QLatin1String( "EPSG:4326" ) ) { QgsCoordinateReferenceSystem crs = QgsCoordinateReferenceSystem::fromOgcWmsCrs( tms.ref ); - QgsCoordinateReferenceSystem wgs84 = QgsCoordinateReferenceSystem::fromOgcWmsCrs( GEO_EPSG_CRS_AUTHID ); QgsCoordinateTransform exGeoTransform( wgs84, crs, project ); try { @@ -475,10 +490,10 @@ namespace QgsWmts double res = tm.resolution; tileMatrixLimitDef tml; - tml.minCol = std::floor( ( rect.xMinimum() - tm.left ) / ( tileWidth * res ) ); - tml.maxCol = std::ceil( ( rect.xMaximum() - tm.left ) / ( tileWidth * res ) ) - 1; - tml.minRow = std::floor( ( tm.top - rect.yMaximum() ) / ( tileHeight * res ) ); - tml.maxRow = std::ceil( ( tm.top - rect.yMinimum() ) / ( tileHeight * res ) ) - 1; + tml.minCol = std::floor( ( rect.xMinimum() - tm.left ) / ( tileSize * res ) ); + tml.maxCol = std::ceil( ( rect.xMaximum() - tm.left ) / ( tileSize * res ) ) - 1; + tml.minRow = std::floor( ( tm.top - rect.yMaximum() ) / ( tileSize * res ) ); + tml.maxRow = std::ceil( ( tm.top - rect.yMinimum() ) / ( tileSize * res ) ) - 1; tileMatrixLimits[tmIdx] = tml; } @@ -620,13 +635,11 @@ namespace QgsWmts throw QgsRequestNotWellFormedException( QStringLiteral( "TileCol is unknown" ) ); } - int tileWidth = 256; - int tileHeight = 256; double res = tm.resolution; - double minx = tm.left + tc * ( tileWidth * res ); - double miny = tm.top - ( tr + 1 ) * ( tileHeight * res ); - double maxx = tm.left + ( tc + 1 ) * ( tileWidth * res ); - double maxy = tm.top - tr * ( tileHeight * res ); + double minx = tm.left + tc * ( tileSize * res ); + double miny = tm.top - ( tr + 1 ) * ( tileSize * res ); + double maxx = tm.left + ( tc + 1 ) * ( tileSize * res ); + double maxy = tm.top - tr * ( tileSize * res ); QString bbox; if ( tms.ref == "EPSG:4326" ) { @@ -670,21 +683,6 @@ namespace QgsWmts namespace { - QMap< QgsUnitTypes::DistanceUnit, double> populateInchesPerUnit() - { - QMap< QgsUnitTypes::DistanceUnit, double> m; - m[ QgsUnitTypes::DistanceMeters ] = 39.37; - m[ QgsUnitTypes::DistanceFeet ] = 12.0; - m[ QgsUnitTypes::DistanceYards ] = 36.0; - m[ QgsUnitTypes::DistanceMiles ] = 63360.0; - m[ QgsUnitTypes::DistanceDegrees ] = 4374754.0; - m[ QgsUnitTypes::DistanceKilometers ] = m[ QgsUnitTypes::DistanceMeters ] * 1000.0; - m[ QgsUnitTypes::DistanceNauticalMiles ] = m[ QgsUnitTypes::DistanceMeters ] * 1852.0; - m[ QgsUnitTypes::DistanceCentimeters ] = m[ QgsUnitTypes::DistanceMeters ] / 100.0; - m[ QgsUnitTypes::DistanceMillimeters ] = m[ QgsUnitTypes::DistanceMeters ] / 1000.0; - return m; - } - QMap< QString, tileMatrixInfo> populateTileMatrixInfoMap() { QMap< QString, tileMatrixInfo> m; diff --git a/src/server/services/wmts/qgswmtsutils.h b/src/server/services/wmts/qgswmtsutils.h index 146c03195d4b..026e4c6b34b2 100644 --- a/src/server/services/wmts/qgswmtsutils.h +++ b/src/server/services/wmts/qgswmtsutils.h @@ -41,9 +41,9 @@ namespace QgsWmts QgsRectangle extent; - double scaleDenominator = 0.0; + QgsUnitTypes::DistanceUnit unit = QgsUnitTypes::DistanceMeters; - QgsUnitTypes::DistanceUnit unit; + double scaleDenominator = 0.0; }; struct tileMatrixDef @@ -67,7 +67,7 @@ namespace QgsWmts QgsRectangle extent; - QgsUnitTypes::DistanceUnit unit; + QgsUnitTypes::DistanceUnit unit = QgsUnitTypes::DistanceMeters; QList< tileMatrixDef > tileMatrixList; }; diff --git a/tests/testdata/control_images/qgis_server/WMTS_GetTile_Project_3857_0/WMTS_GetTile_Project_3857_0.png b/tests/testdata/control_images/qgis_server/WMTS_GetTile_Project_3857_0/WMTS_GetTile_Project_3857_0.png index eae982b9ecef06958116e14c26b79c4ed11a552e..3064097f45a02f0f3fef8833a7cebcdd0a203aa4 100644 GIT binary patch literal 32405 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 P2#}Xn`BEuq`s05AJ2jNt diff --git a/tests/testdata/control_images/qgis_server/WMTS_GetTile_Project_3857_0/WMTS_GetTile_Project_3857_0_mask.png b/tests/testdata/control_images/qgis_server/WMTS_GetTile_Project_3857_0/WMTS_GetTile_Project_3857_0_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..cec68fb5c0093e5cfa5f51a77735691509b81919 GIT binary patch literal 13637 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 Dx>gNb literal 0 HcmV?d00001 diff --git a/tests/testdata/qgis_server/wmts_getcapabilities.txt b/tests/testdata/qgis_server/wmts_getcapabilities.txt index 90c1e18898c8..0f0ac77aae22 100644 --- a/tests/testdata/qgis_server/wmts_getcapabilities.txt +++ b/tests/testdata/qgis_server/wmts_getcapabilities.txt @@ -105,107 +105,107 @@ Content-Type: text/xml; charset=utf-8 6 0 - 63 + 62 1 49 7 1 - 127 + 125 2 - 99 + 98 8 3 - 254 + 251 5 - 198 + 196 9 7 - 509 + 502 11 - 397 + 392 10 14 - 1018 + 1005 22 - 794 + 784 11 29 - 2036 + 2011 45 - 1588 + 1569 12 - 59 - 4072 - 91 - 3177 + 58 + 4022 + 90 + 3139 13 - 119 - 8144 - 182 - 6355 + 117 + 8045 + 180 + 6278 14 - 238 - 16289 - 365 - 12711 + 235 + 16090 + 360 + 12556 15 - 476 - 32579 - 730 - 25423 + 470 + 32181 + 721 + 25112 16 - 952 - 65159 - 1461 - 50846 + 941 + 64362 + 1443 + 50225 17 - 1905 - 130318 - 2923 - 101693 + 1882 + 128725 + 2887 + 100450 18 - 3810 - 260637 - 5846 - 203386 + 3764 + 257451 + 5774 + 200900 19 - 7621 - 521274 - 11692 - 406772 + 7528 + 514903 + 11549 + 401801 20 - 15243 - 1042549 - 23384 - 813545 + 15057 + 1029806 + 23099 + 803602 @@ -250,107 +250,107 @@ Content-Type: text/xml; charset=utf-8 5 0 - 63 - 1 + 62 + 0 28 6 1 - 127 - 2 + 125 + 1 56 7 3 - 254 - 4 - 113 + 251 + 3 + 112 8 7 - 508 - 8 - 227 + 502 + 7 + 224 9 14 - 1016 - 16 - 454 + 1005 + 15 + 449 10 29 - 2032 - 32 - 908 + 2011 + 31 + 898 11 - 59 - 4065 - 64 - 1816 + 58 + 4022 + 63 + 1797 12 - 118 - 8130 - 129 - 3633 + 117 + 8045 + 127 + 3595 13 - 237 - 16260 - 258 - 7266 + 235 + 16090 + 255 + 7190 14 - 475 - 32520 - 517 - 14533 + 470 + 32181 + 511 + 14381 15 - 951 - 65041 - 1034 - 29066 + 941 + 64362 + 1023 + 28763 16 - 1902 - 130083 - 2068 - 58133 + 1882 + 128725 + 2047 + 57527 17 - 3804 - 260167 - 4137 - 116267 + 3764 + 257451 + 4094 + 115054 18 - 7608 - 520335 - 8274 - 232535 + 7528 + 514903 + 8188 + 230108 19 - 15216 - 1040671 - 16549 - 465071 + 15057 + 1029806 + 16376 + 460216 @@ -398,7 +398,133 @@ Content-Type: text/xml; charset=utf-8 0 3 0 - 3 + 2 + + + 3 + 0 + 7 + 0 + 5 + + + 4 + 0 + 15 + 0 + 11 + + + 5 + 0 + 31 + 1 + 23 + + + 6 + 0 + 63 + 2 + 47 + + + 7 + 1 + 126 + 5 + 95 + + + 8 + 2 + 252 + 10 + 191 + + + 9 + 5 + 504 + 20 + 383 + + + 10 + 10 + 1009 + 40 + 766 + + + 11 + 21 + 2019 + 81 + 1532 + + + 12 + 42 + 4039 + 163 + 3065 + + + 13 + 84 + 8078 + 327 + 6131 + + + 14 + 168 + 16157 + 654 + 12262 + + + 15 + 337 + 32314 + 1309 + 24524 + + + 16 + 674 + 64629 + 2619 + 49049 + + + 17 + 1349 + 129258 + 5239 + 98098 + + + 18 + 2698 + 258517 + 10478 + 196197 + + + 19 + 5396 + 517035 + 20956 + 392394 + + + 20 + 10793 + 1034070 + 41912 + 784789 @@ -419,6 +545,132 @@ Content-Type: text/xml; charset=utf-8 0 1 + + 2 + 0 + 7 + 0 + 3 + + + 3 + 0 + 15 + 0 + 6 + + + 4 + 0 + 31 + 0 + 13 + + + 5 + 0 + 63 + 1 + 27 + + + 6 + 1 + 126 + 2 + 55 + + + 7 + 2 + 252 + 4 + 110 + + + 8 + 5 + 504 + 8 + 221 + + + 9 + 10 + 1009 + 17 + 442 + + + 10 + 21 + 2019 + 35 + 885 + + + 11 + 42 + 4039 + 71 + 1771 + + + 12 + 84 + 8078 + 143 + 3542 + + + 13 + 168 + 16157 + 286 + 7084 + + + 14 + 337 + 32314 + 573 + 14169 + + + 15 + 674 + 64629 + 1147 + 28338 + + + 16 + 1349 + 129258 + 2294 + 56676 + + + 17 + 2698 + 258517 + 4588 + 113353 + + + 18 + 5396 + 517035 + 9176 + 226706 + + + 19 + 10793 + 1034070 + 18352 + 453412 + @@ -457,14 +709,14 @@ Content-Type: text/xml; charset=utf-8 0 1 0 - 1 + 0 2 0 3 0 - 2 + 1 @@ -483,7 +735,7 @@ Content-Type: text/xml; charset=utf-8 0 3 0 - 1 + 0 @@ -771,7 +1023,7 @@ Content-Type: text/xml; charset=utf-8 -180 90 256 256 - 1023 + 1024 512 @@ -780,8 +1032,8 @@ Content-Type: text/xml; charset=utf-8 -180 90 256 256 - 2045 - 1023 + 2048 + 1024 11 @@ -789,8 +1041,8 @@ Content-Type: text/xml; charset=utf-8 -180 90 256 256 - 4089 - 2045 + 4096 + 2048 12 @@ -798,8 +1050,8 @@ Content-Type: text/xml; charset=utf-8 -180 90 256 256 - 8178 - 4089 + 8192 + 4096 13 @@ -807,8 +1059,8 @@ Content-Type: text/xml; charset=utf-8 -180 90 256 256 - 16355 - 8178 + 16384 + 8192 14 @@ -816,8 +1068,8 @@ Content-Type: text/xml; charset=utf-8 -180 90 256 256 - 32709 - 16355 + 32768 + 16384 15 @@ -825,8 +1077,8 @@ Content-Type: text/xml; charset=utf-8 -180 90 256 256 - 65418 - 32709 + 65536 + 32768 16 @@ -834,8 +1086,8 @@ Content-Type: text/xml; charset=utf-8 -180 90 256 256 - 130836 - 65418 + 131072 + 65536 17 @@ -843,8 +1095,8 @@ Content-Type: text/xml; charset=utf-8 -180 90 256 256 - 261672 - 130836 + 262144 + 131072 18 @@ -852,8 +1104,8 @@ Content-Type: text/xml; charset=utf-8 -180 90 256 256 - 523344 - 261672 + 524288 + 262144 19 @@ -861,8 +1113,8 @@ Content-Type: text/xml; charset=utf-8 -180 90 256 256 - 1046688 - 523344 + 1048576 + 524288