mirror of
https://github.com/qgis/QGIS.git
synced 2025-04-14 00:07:35 -04:00
[Server][Feature][needs-docs] WMTS tile matrices configuration
In QGIS Server 3.4, the WMTS API has been added in which the tile matrices are calculated except fro EPSG:3857 and EPSG:4326. This commit adds the capability to select the tile matrices to use with the project and to configure the top-left corner and the last level of the tile matrix. In the case of EPSG:3857 and EPSG:4326, the user can only choose the last level of the tile matrices. Funded by Ifremer.
This commit is contained in:
parent
681707b51b
commit
81aa143923
@ -69,6 +69,7 @@
|
||||
#include <QHeaderView> // Qt 4.4
|
||||
#include <QMessageBox>
|
||||
#include <QDesktopServices>
|
||||
#include <QAbstractListModel>
|
||||
|
||||
const char *QgsProjectProperties::GEO_NONE_DESC = QT_TRANSLATE_NOOP( "QgsOptions", "None / Planimetric" );
|
||||
|
||||
@ -686,6 +687,40 @@ QgsProjectProperties::QgsProjectProperties( QgsMapCanvas *mapCanvas, QWidget *pa
|
||||
}
|
||||
connect( twWmtsLayers, &QTreeWidget::itemChanged, this, &QgsProjectProperties::twWmtsItemChanged );
|
||||
|
||||
for ( int i = 0; i < mWMSList->count(); i++ )
|
||||
{
|
||||
QString crsStr = mWMSList->item( i )->text();
|
||||
addWmtsGrid( crsStr );
|
||||
}
|
||||
connect( mWMSList->model(), &QAbstractListModel::rowsInserted, this, &QgsProjectProperties::lwWmsRowsInserted );
|
||||
connect( mWMSList->model(), &QAbstractListModel::rowsRemoved, this, &QgsProjectProperties::lwWmsRowsRemoved );
|
||||
connect( twWmtsGrids, &QTreeWidget::itemDoubleClicked, this, &QgsProjectProperties::twWmtsGridItemDoubleClicked );
|
||||
connect( twWmtsGrids, &QTreeWidget::itemChanged, this, &QgsProjectProperties::twWmtsGridItemChanged );
|
||||
const QStringList wmtsGridList = QgsProject::instance()->readListEntry( QStringLiteral( "WMTSGrids" ), QStringLiteral( "CRS" ) );
|
||||
if ( !wmtsGridList.isEmpty() )
|
||||
{
|
||||
const QStringList wmtsGridConfigList = QgsProject::instance()->readListEntry( QStringLiteral( "WMTSGrids" ), QStringLiteral( "Config" ) );
|
||||
QMap<QString, QStringList> wmtsGridConfigs;
|
||||
for ( const QString &c : wmtsGridConfigList )
|
||||
{
|
||||
QStringList config = c.split( ',' );
|
||||
wmtsGridConfigs[config[0]] = config;
|
||||
}
|
||||
for ( QTreeWidgetItem *item : twWmtsGrids->findItems( QString(), Qt::MatchContains | Qt::MatchRecursive, 1 ) )
|
||||
{
|
||||
QString crsStr = item->data( 0, Qt::UserRole ).toString();
|
||||
if ( !wmtsGridList.contains( crsStr ) )
|
||||
continue;
|
||||
|
||||
item->setCheckState( 1, Qt::Checked );
|
||||
QStringList config = wmtsGridConfigs[crsStr];
|
||||
item->setData( 2, Qt::DisplayRole, QVariant( config[1] ).toDouble() );
|
||||
item->setData( 3, Qt::DisplayRole, QVariant( config[2] ).toDouble() );
|
||||
item->setData( 4, Qt::DisplayRole, QVariant( config[3] ).toDouble() );
|
||||
item->setData( 5, Qt::DisplayRole, QVariant( config[4] ).toInt() );
|
||||
}
|
||||
}
|
||||
|
||||
mWFSUrlLineEdit->setText( QgsProject::instance()->readEntry( QStringLiteral( "WFSUrl" ), QStringLiteral( "/" ), QString() ) );
|
||||
QStringList wfsLayerIdList = QgsProject::instance()->readListEntry( QStringLiteral( "WFSLayers" ), QStringLiteral( "/" ) );
|
||||
QStringList wfstUpdateLayerIdList = QgsProject::instance()->readListEntry( QStringLiteral( "WFSTLayers" ), QStringLiteral( "Update" ) );
|
||||
@ -1321,6 +1356,18 @@ void QgsProjectProperties::apply()
|
||||
QgsProject::instance()->writeEntry( QStringLiteral( "WMTSPngLayers" ), QStringLiteral( "Layer" ), wmtsPngLayerList );
|
||||
QgsProject::instance()->writeEntry( QStringLiteral( "WMTSJpegLayers" ), QStringLiteral( "Layer" ), wmtsJpegLayerList );
|
||||
|
||||
QStringList wmtsGridList;
|
||||
QStringList wmtsGridConfigList;
|
||||
for ( const QTreeWidgetItem *item : twWmtsGrids->findItems( QString(), Qt::MatchContains | Qt::MatchRecursive, 1 ) )
|
||||
{
|
||||
if ( !item->checkState( 1 ) )
|
||||
continue;
|
||||
wmtsGridList << item->data( 0, Qt::UserRole ).toString();
|
||||
wmtsGridConfigList << QStringLiteral( "%1,%2,%3,%4,%5" ).arg( item->data( 0, Qt::UserRole ).toString(), item->data( 2, Qt::DisplayRole ).toString(), item->data( 3, Qt::DisplayRole ).toString(), item->data( 4, Qt::DisplayRole ).toString(), item->data( 5, Qt::DisplayRole ).toString() );
|
||||
}
|
||||
QgsProject::instance()->writeEntry( QStringLiteral( "WMTSGrids" ), QStringLiteral( "CRS" ), wmtsGridList );
|
||||
QgsProject::instance()->writeEntry( QStringLiteral( "WMTSGrids" ), QStringLiteral( "Config" ), wmtsGridConfigList );
|
||||
|
||||
QgsProject::instance()->writeEntry( QStringLiteral( "WFSUrl" ), QStringLiteral( "/" ), mWFSUrlLineEdit->text() );
|
||||
QStringList wfsLayerList;
|
||||
QStringList wfstUpdateLayerList;
|
||||
@ -1414,6 +1461,71 @@ void QgsProjectProperties::showProjectionsTab()
|
||||
mOptionsListWidget->setCurrentRow( 2 );
|
||||
}
|
||||
|
||||
void QgsProjectProperties::lwWmsRowsInserted( const QModelIndex &parent, int first, int last )
|
||||
{
|
||||
Q_UNUSED( parent );
|
||||
for ( int i = first; i <= last; i++ )
|
||||
{
|
||||
QString crsStr = mWMSList->item( i )->text();
|
||||
addWmtsGrid( crsStr );
|
||||
}
|
||||
twWmtsGrids->header()->resizeSections( QHeaderView::ResizeToContents );
|
||||
}
|
||||
|
||||
void QgsProjectProperties::lwWmsRowsRemoved( const QModelIndex &parent, int first, int last )
|
||||
{
|
||||
Q_UNUSED( parent );
|
||||
Q_UNUSED( first );
|
||||
Q_UNUSED( last );
|
||||
QStringList crslist;
|
||||
for ( int i = 0; i < mWMSList->count(); i++ )
|
||||
{
|
||||
crslist << mWMSList->item( i )->text();
|
||||
}
|
||||
for ( const QTreeWidgetItem *item : twWmtsGrids->findItems( QString(), Qt::MatchContains | Qt::MatchRecursive, 1 ) )
|
||||
{
|
||||
QString crsStr = item->data( 0, Qt::UserRole ).toString();
|
||||
if ( crslist.contains( crsStr ) )
|
||||
continue;
|
||||
delete item;
|
||||
}
|
||||
}
|
||||
|
||||
void QgsProjectProperties::twWmtsGridItemDoubleClicked( QTreeWidgetItem *item, int column )
|
||||
{
|
||||
Qt::ItemFlags flags = item->flags();
|
||||
if ( column == 0 || column == 6 )
|
||||
{
|
||||
item->setFlags( flags & ( ~Qt::ItemIsEditable ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
QString crsStr = item->text( 0 );
|
||||
if ( crsStr == QStringLiteral( "EPSG:3857" ) && column != 5 )
|
||||
{
|
||||
item->setFlags( flags & ( ~Qt::ItemIsEditable ) );
|
||||
}
|
||||
else if ( crsStr == QStringLiteral( "EPSG:4326" ) && column != 5 )
|
||||
{
|
||||
item->setFlags( flags & ( ~Qt::ItemIsEditable ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
item->setFlags( flags | Qt::ItemIsEditable );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void QgsProjectProperties::twWmtsGridItemChanged( QTreeWidgetItem *item, int column )
|
||||
{
|
||||
if ( column == 4 || column == 5 )
|
||||
{
|
||||
double maxScale = item->data( 4, Qt::DisplayRole ).toFloat();
|
||||
int lastLevel = item->data( 5, Qt::DisplayRole ).toInt();
|
||||
item->setData( 6, Qt::DisplayRole, ( maxScale / std::pow( 2, lastLevel ) ) );
|
||||
}
|
||||
}
|
||||
|
||||
void QgsProjectProperties::twWmtsItemChanged( QTreeWidgetItem *item, int column )
|
||||
{
|
||||
if ( column == 1 && !item->checkState( 1 ) )
|
||||
@ -2079,6 +2191,93 @@ void QgsProjectProperties::populateWmtsTree( const QgsLayerTreeGroup *treeGroup,
|
||||
}
|
||||
}
|
||||
|
||||
void QgsProjectProperties::addWmtsGrid( const QString &crsStr )
|
||||
{
|
||||
QgsTreeWidgetItem *gridItem = new QgsTreeWidgetItem( QStringList() << crsStr );
|
||||
gridItem->setFlags( gridItem->flags() | Qt::ItemIsUserCheckable | Qt::ItemIsSelectable | Qt::ItemIsEditable );
|
||||
gridItem->setCheckState( 1, Qt::Unchecked );
|
||||
gridItem->setData( 0, Qt::UserRole, crsStr );
|
||||
|
||||
// Define or calculate top, left, max. scale
|
||||
int lastLevel = 18;
|
||||
double scaleDenominator = 0.0;
|
||||
if ( crsStr == QStringLiteral( "EPSG:3857" ) )
|
||||
{
|
||||
gridItem->setData( 2, Qt::DisplayRole, 20037508.3427892480 );
|
||||
gridItem->setData( 3, Qt::DisplayRole, -20037508.3427892480 );
|
||||
scaleDenominator = 559082264.0287179;
|
||||
}
|
||||
else if ( crsStr == QStringLiteral( "EPSG:4326" ) )
|
||||
{
|
||||
gridItem->setData( 2, Qt::DisplayRole, 90.0 );
|
||||
gridItem->setData( 3, Qt::DisplayRole, -180.0 );
|
||||
scaleDenominator = 279541132.0143588675418869;
|
||||
}
|
||||
else
|
||||
{
|
||||
// calculate top, left and scale based on CRS bounds
|
||||
QgsCoordinateReferenceSystem crs = QgsCoordinateReferenceSystem::fromOgcWmsCrs( crsStr );
|
||||
QgsCoordinateTransform crsTransform( QgsCoordinateReferenceSystem::fromOgcWmsCrs( GEO_EPSG_CRS_AUTHID ), crs, QgsProject::instance() );
|
||||
try
|
||||
{
|
||||
// firstly transform CRS bounds expressed in WGS84 to CRS
|
||||
QgsRectangle extent = crsTransform.transformBoundingBox( crs.bounds() );
|
||||
// Constant
|
||||
int tileSize = 256;
|
||||
double POINTS_TO_M = 2.83464567 / 10000;
|
||||
// Calculate scale denominator
|
||||
int colRes = ( extent.xMaximum() - extent.xMinimum() ) / tileSize;
|
||||
int rowRes = ( extent.yMaximum() - extent.yMinimum() ) / tileSize;
|
||||
if ( colRes > rowRes )
|
||||
{
|
||||
scaleDenominator = std::ceil( colRes * QgsUnitTypes::fromUnitToUnitFactor( crs.mapUnits(), QgsUnitTypes::DistanceMeters ) / POINTS_TO_M );
|
||||
}
|
||||
else
|
||||
{
|
||||
scaleDenominator = std::ceil( rowRes * QgsUnitTypes::fromUnitToUnitFactor( crs.mapUnits(), QgsUnitTypes::DistanceMeters ) / POINTS_TO_M );
|
||||
}
|
||||
// Calculate resolution based on scale denominator
|
||||
double res = POINTS_TO_M * scaleDenominator / QgsUnitTypes::fromUnitToUnitFactor( crs.mapUnits(), QgsUnitTypes::DistanceMeters );
|
||||
// Get numbers of column and row for the resolution
|
||||
int col = std::ceil( ( extent.xMaximum() - extent.xMinimum() ) / ( tileSize * res ) );
|
||||
int row = std::ceil( ( extent.yMaximum() - extent.yMinimum() ) / ( tileSize * res ) );
|
||||
// Update resolution and scale denominator to get 1 tile at this scale
|
||||
if ( col > 1 || row > 1 )
|
||||
{
|
||||
// Update scale
|
||||
if ( col > row )
|
||||
{
|
||||
res = col * res;
|
||||
scaleDenominator = col * scaleDenominator;
|
||||
}
|
||||
else
|
||||
{
|
||||
res = row * res;
|
||||
scaleDenominator = row * scaleDenominator;
|
||||
}
|
||||
// set col and row to 1 for the square
|
||||
col = 1;
|
||||
row = 1;
|
||||
}
|
||||
double top = ( extent.yMinimum() + ( extent.yMaximum() - extent.yMinimum() ) / 2.0 ) + ( row / 2.0 ) * ( tileSize * res );
|
||||
double left = ( extent.xMinimum() + ( extent.xMaximum() - extent.xMinimum() ) / 2.0 ) - ( col / 2.0 ) * ( tileSize * res );
|
||||
|
||||
gridItem->setData( 2, Qt::DisplayRole, top );
|
||||
gridItem->setData( 3, Qt::DisplayRole, left );
|
||||
}
|
||||
catch ( QgsCsException &cse )
|
||||
{
|
||||
Q_UNUSED( cse );
|
||||
}
|
||||
}
|
||||
gridItem->setData( 4, Qt::DisplayRole, scaleDenominator );
|
||||
gridItem->setData( 5, Qt::DisplayRole, lastLevel );
|
||||
gridItem->setData( 6, Qt::DisplayRole, ( scaleDenominator / std::pow( 2, lastLevel ) ) );
|
||||
twWmtsGrids->blockSignals( true );
|
||||
twWmtsGrids->addTopLevelItem( gridItem );
|
||||
twWmtsGrids->blockSignals( false );
|
||||
}
|
||||
|
||||
void QgsProjectProperties::checkOWS( QgsLayerTreeGroup *treeGroup, QStringList &owsNames, QStringList &encodingMessages )
|
||||
{
|
||||
QList< QgsLayerTreeNode * > treeGroupChildren = treeGroup->children();
|
||||
|
@ -99,9 +99,23 @@ class APP_EXPORT QgsProjectProperties : public QgsOptionsDialogBase, private Ui:
|
||||
* Set WMS default extent to current canvas extent
|
||||
*/
|
||||
void pbnWMSExtCanvas_clicked();
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
void pbnWMSAddSRS_clicked();
|
||||
void pbnWMSRemoveSRS_clicked();
|
||||
void pbnWMSSetUsedSRS_clicked();
|
||||
|
||||
/**
|
||||
* Slots to link WMS CRS list to WMTS Grids tree view
|
||||
*/
|
||||
void lwWmsRowsInserted( const QModelIndex &parent, int first, int last );
|
||||
void lwWmsRowsRemoved( const QModelIndex &parent, int first, int last );
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
void mAddWMSPrintLayoutButton_clicked();
|
||||
void mRemoveWMSPrintLayoutButton_clicked();
|
||||
void mAddLayerRestrictionButton_clicked();
|
||||
@ -139,6 +153,8 @@ class APP_EXPORT QgsProjectProperties : public QgsOptionsDialogBase, private Ui:
|
||||
* Slot to link WMTS checkboxes in tree widget
|
||||
*/
|
||||
void twWmtsItemChanged( QTreeWidgetItem *item, int column );
|
||||
void twWmtsGridItemDoubleClicked( QTreeWidgetItem *item, int column );
|
||||
void twWmtsGridItemChanged( QTreeWidgetItem *item, int column );
|
||||
|
||||
/**
|
||||
* Slot to link WFS checkboxes
|
||||
@ -223,6 +239,8 @@ class APP_EXPORT QgsProjectProperties : public QgsOptionsDialogBase, private Ui:
|
||||
|
||||
//! populate WMTS tree
|
||||
void populateWmtsTree( const QgsLayerTreeGroup *treeGroup, QgsTreeWidgetItem *treeItem );
|
||||
//! add WMTS Grid definition based on CRS
|
||||
void addWmtsGrid( const QString &crsStr );
|
||||
//! Check OWS configuration
|
||||
void checkOWS( QgsLayerTreeGroup *treeGroup, QStringList &owsNames, QStringList &encodingMessages );
|
||||
|
||||
|
@ -30,17 +30,16 @@ namespace QgsWmts
|
||||
{
|
||||
namespace
|
||||
{
|
||||
QMap< QgsUnitTypes::DistanceUnit, double> populateInchesPerUnit();
|
||||
QMap< QString, tileMatrixInfo> populateTileMatrixInfoMap();
|
||||
QMap< QString, tileMatrixInfo> populateFixedTileMatrixInfoMap();
|
||||
|
||||
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;
|
||||
// Constant
|
||||
int tileSize = 256;
|
||||
double POINTS_TO_M = 2.83464567 / 10000.0;
|
||||
|
||||
QMap< QString, tileMatrixInfo> tileMatrixInfoMap = populateTileMatrixInfoMap();
|
||||
QMap< QString, tileMatrixInfo> fixedTileMatrixInfoMap = populateFixedTileMatrixInfoMap();
|
||||
QMap< QString, tileMatrixInfo> calculatedTileMatrixInfoMap; // for project without WMTSGrids configuration
|
||||
}
|
||||
|
||||
QString implementationVersion()
|
||||
@ -75,10 +74,15 @@ namespace QgsWmts
|
||||
return href;
|
||||
}
|
||||
|
||||
tileMatrixInfo getTileMatrixInfo( const QString &crsStr, const QgsProject *project )
|
||||
tileMatrixInfo calculateTileMatrixInfo( const QString &crsStr, const QgsProject *project )
|
||||
{
|
||||
if ( tileMatrixInfoMap.contains( crsStr ) )
|
||||
return tileMatrixInfoMap[crsStr];
|
||||
// Does the CRS have fixed tile matrices
|
||||
if ( fixedTileMatrixInfoMap.contains( crsStr ) )
|
||||
return fixedTileMatrixInfoMap[crsStr];
|
||||
|
||||
// Does the CRS have already calculated tile matrices
|
||||
if ( calculatedTileMatrixInfoMap.contains( crsStr ) )
|
||||
return calculatedTileMatrixInfoMap[crsStr];
|
||||
|
||||
tileMatrixInfo tmi;
|
||||
tmi.ref = crsStr;
|
||||
@ -98,18 +102,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
|
||||
@ -128,45 +133,53 @@ 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;
|
||||
|
||||
tileMatrixInfoMap[crsStr] = tmi;
|
||||
calculatedTileMatrixInfoMap[crsStr] = tmi;
|
||||
|
||||
return tmi;
|
||||
}
|
||||
|
||||
tileMatrixSetDef getTileMatrixSet( tileMatrixInfo tmi, double minScale )
|
||||
tileMatrixSetDef calculateTileMatrixSet( tileMatrixInfo tmi, double minScale )
|
||||
{
|
||||
QList< tileMatrixDef > tileMatrixList;
|
||||
double scaleDenominator = tmi.scaleDenominator;
|
||||
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;
|
||||
@ -214,10 +227,113 @@ namespace QgsWmts
|
||||
return scale;
|
||||
}
|
||||
|
||||
QList< tileMatrixSetDef > getTileMatrixSetList( const QgsProject *project )
|
||||
QList< tileMatrixSetDef > getTileMatrixSetList( const QgsProject *project, const QString &tms_ref )
|
||||
{
|
||||
QList< tileMatrixSetDef > tmsList;
|
||||
|
||||
bool gridsDefined = false;
|
||||
QStringList wmtsGridList = project->readListEntry( QStringLiteral( "WMTSGrids" ), QStringLiteral( "CRS" ), QStringList(), &gridsDefined );
|
||||
if ( gridsDefined )
|
||||
{
|
||||
if ( !tms_ref.isEmpty() && !wmtsGridList.contains( tms_ref ) )
|
||||
{
|
||||
throw QgsRequestNotWellFormedException( QStringLiteral( "TileMatrixSet is unknown" ) );
|
||||
}
|
||||
|
||||
QStringList wmtsGridConfigList = project->readListEntry( QStringLiteral( "WMTSGrids" ), QStringLiteral( "Config" ) );
|
||||
for ( const QString &c : wmtsGridConfigList )
|
||||
{
|
||||
QStringList config = c.split( ',' );
|
||||
QString crsStr = config[0];
|
||||
if ( !tms_ref.isEmpty() && tms_ref != crsStr )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
tileMatrixInfo tmi;
|
||||
double fixedTop = 0.0;
|
||||
double fixedLeft = 0.0;
|
||||
double resolution = -1.0;
|
||||
int col = -1;
|
||||
int row = -1;
|
||||
// Does the CRS have fixed tile matrices
|
||||
if ( fixedTileMatrixInfoMap.contains( crsStr ) )
|
||||
{
|
||||
tmi = fixedTileMatrixInfoMap[crsStr];
|
||||
// Calculate resolution based on scale denominator
|
||||
resolution = POINTS_TO_M * tmi.scaleDenominator / QgsUnitTypes::fromUnitToUnitFactor( tmi.unit, QgsUnitTypes::DistanceMeters );
|
||||
// Get fixed corner
|
||||
QgsRectangle extent = tmi.extent;
|
||||
fixedTop = extent.yMaximum();
|
||||
fixedLeft = extent.xMinimum();
|
||||
// Get numbers of column and row for the resolution to cover the extent
|
||||
col = std::ceil( ( extent.xMaximum() - extent.xMinimum() ) / ( tileSize * resolution ) );
|
||||
row = std::ceil( ( extent.yMaximum() - extent.yMinimum() ) / ( tileSize * resolution ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
tmi.ref = crsStr;
|
||||
|
||||
fixedTop = QVariant( config[1] ).toDouble();
|
||||
fixedLeft = QVariant( config[2] ).toDouble();
|
||||
double minScale = QVariant( config[3] ).toDouble();
|
||||
|
||||
tmi.scaleDenominator = minScale;
|
||||
|
||||
QgsCoordinateReferenceSystem crs = QgsCoordinateReferenceSystem::fromOgcWmsCrs( crsStr );
|
||||
tmi.unit = crs.mapUnits();
|
||||
|
||||
QgsCoordinateTransform crsTransform( QgsCoordinateReferenceSystem::fromOgcWmsCrs( GEO_EPSG_CRS_AUTHID ), crs, project );
|
||||
try
|
||||
{
|
||||
// firstly transform CRS bounds expressed in WGS84 to CRS
|
||||
QgsRectangle extent = crsTransform.transformBoundingBox( crs.bounds() );
|
||||
// Calculate resolution based on scale denominator
|
||||
resolution = POINTS_TO_M * minScale / QgsUnitTypes::fromUnitToUnitFactor( tmi.unit, QgsUnitTypes::DistanceMeters );
|
||||
// Get numbers of column and row for the resolution to cover the extent
|
||||
col = std::ceil( ( extent.xMaximum() - extent.xMinimum() ) / ( tileSize * resolution ) );
|
||||
row = std::ceil( ( extent.yMaximum() - extent.yMinimum() ) / ( tileSize * resolution ) );
|
||||
// Calculate extent
|
||||
double bottom = fixedTop - row * tileSize * resolution;
|
||||
double right = fixedLeft + col * tileSize * resolution;
|
||||
tmi.extent = QgsRectangle( fixedLeft, bottom, right, fixedTop );
|
||||
}
|
||||
catch ( QgsCsException &cse )
|
||||
{
|
||||
Q_UNUSED( cse );
|
||||
continue;
|
||||
}
|
||||
}
|
||||
// get lastLevel
|
||||
tmi.lastLevel = QVariant( config[4] ).toInt();
|
||||
|
||||
QList< tileMatrixDef > tileMatrixList;
|
||||
for ( int i = 0; i <= tmi.lastLevel; ++i )
|
||||
{
|
||||
double scale = tmi.scaleDenominator / std::pow( 2, i );
|
||||
double res = resolution / std::pow( 2, i );
|
||||
|
||||
tileMatrixDef tm;
|
||||
tm.resolution = res;
|
||||
tm.scaleDenominator = scale;
|
||||
tm.col = col * std::pow( 2, i );
|
||||
tm.row = row * std::pow( 2, i );
|
||||
tm.left = fixedLeft;
|
||||
tm.top = fixedTop;
|
||||
tileMatrixList.append( tm );
|
||||
}
|
||||
|
||||
tileMatrixSetDef tms;
|
||||
tms.ref = tmi.ref;
|
||||
tms.extent = tmi.extent;
|
||||
tms.unit = tmi.unit;
|
||||
tms.tileMatrixList = tileMatrixList;
|
||||
|
||||
tmsList.append( tms );
|
||||
}
|
||||
return tmsList;
|
||||
}
|
||||
|
||||
double minScale = project->readNumEntry( QStringLiteral( "WMTSMinScale" ), QStringLiteral( "/" ), -1.0 );
|
||||
if ( minScale == -1.0 )
|
||||
{
|
||||
@ -225,12 +341,20 @@ namespace QgsWmts
|
||||
}
|
||||
|
||||
QStringList crsList = QgsServerProjectUtils::wmsOutputCrsList( *project );
|
||||
if ( !tms_ref.isEmpty() && !crsList.contains( tms_ref ) )
|
||||
{
|
||||
throw QgsRequestNotWellFormedException( QStringLiteral( "TileMatrixSet is unknown" ) );
|
||||
}
|
||||
for ( const QString &crsStr : crsList )
|
||||
{
|
||||
tileMatrixInfo tmi = getTileMatrixInfo( crsStr, project );
|
||||
if ( !tms_ref.isEmpty() && tms_ref != crsStr )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
tileMatrixInfo tmi = calculateTileMatrixInfo( crsStr, project );
|
||||
if ( tmi.scaleDenominator > 0.0 )
|
||||
{
|
||||
tmsList.append( getTileMatrixSet( tmi, minScale ) );
|
||||
tmsList.append( calculateTileMatrixSet( tmi, minScale ) );
|
||||
}
|
||||
}
|
||||
|
||||
@ -243,7 +367,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" ) );
|
||||
@ -348,15 +471,18 @@ namespace QgsWmts
|
||||
queryable = true;
|
||||
}
|
||||
|
||||
double lMaxScale = l->maximumScale();
|
||||
if ( lMaxScale > 0.0 && lMaxScale > maxScale )
|
||||
if ( l->hasScaleBasedVisibility() )
|
||||
{
|
||||
maxScale = lMaxScale;
|
||||
}
|
||||
double lMinScale = l->minimumScale();
|
||||
if ( lMinScale > 0.0 && ( minScale == 0.0 || lMinScale < minScale ) )
|
||||
{
|
||||
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;
|
||||
@ -421,8 +547,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 = 0.0;
|
||||
pLayer.minScale = 0.0;
|
||||
}
|
||||
|
||||
wmtsLayers.append( pLayer );
|
||||
}
|
||||
@ -439,7 +573,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
|
||||
{
|
||||
@ -471,10 +604,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;
|
||||
}
|
||||
@ -577,21 +710,19 @@ namespace QgsWmts
|
||||
throw QgsRequestNotWellFormedException( QStringLiteral( "TileMatrixSet is mandatory" ) );
|
||||
}
|
||||
|
||||
// verifying TileMatricSet value
|
||||
QStringList crsList = QgsServerProjectUtils::wmsOutputCrsList( *project );
|
||||
if ( !crsList.contains( tms_ref ) )
|
||||
// verifying TileMatrixSet value
|
||||
QList< tileMatrixSetDef > tmsList = getTileMatrixSetList( project, tms_ref );
|
||||
if ( tmsList.isEmpty() )
|
||||
{
|
||||
throw QgsRequestNotWellFormedException( QStringLiteral( "TileMatrixSet is unknown" ) );
|
||||
}
|
||||
tileMatrixSetDef tms = tmsList[0];
|
||||
if ( tms.ref != tms_ref )
|
||||
{
|
||||
throw QgsRequestNotWellFormedException( QStringLiteral( "TileMatrixSet is unknown" ) );
|
||||
}
|
||||
|
||||
tileMatrixInfo tmi = getTileMatrixInfo( tms_ref, project );
|
||||
if ( tmi.scaleDenominator == 0.0 )
|
||||
{
|
||||
throw QgsRequestNotWellFormedException( QStringLiteral( "TileMatrixSet is unknown" ) );
|
||||
}
|
||||
tileMatrixSetDef tms = getTileMatrixSet( tmi, getProjectMinScale( project ) );
|
||||
|
||||
//difining TileMatrix idx
|
||||
//defining TileMatrix idx
|
||||
int tm_idx = params.tileMatrixAsInt();
|
||||
//read TileMatrix
|
||||
if ( tm_idx < 0 || tms.tileMatrixList.count() < tm_idx )
|
||||
@ -616,13 +747,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" )
|
||||
{
|
||||
@ -666,22 +795,7 @@ 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> populateFixedTileMatrixInfoMap()
|
||||
{
|
||||
QMap< QString, tileMatrixInfo> m;
|
||||
|
||||
|
@ -41,9 +41,11 @@ namespace QgsWmts
|
||||
|
||||
QgsRectangle extent;
|
||||
|
||||
QgsUnitTypes::DistanceUnit unit = QgsUnitTypes::DistanceMeters;
|
||||
|
||||
double scaleDenominator = 0.0;
|
||||
|
||||
QgsUnitTypes::DistanceUnit unit;
|
||||
int lastLevel = -1;
|
||||
};
|
||||
|
||||
struct tileMatrixDef
|
||||
@ -124,10 +126,10 @@ namespace QgsWmts
|
||||
const QString GML_NAMESPACE = QStringLiteral( "http://www.opengis.net/gml" );
|
||||
const QString OWS_NAMESPACE = QStringLiteral( "http://www.opengis.net/ows/1.1" );
|
||||
|
||||
tileMatrixInfo getTileMatrixInfo( const QString &crsStr, const QgsProject *project );
|
||||
tileMatrixSetDef getTileMatrixSet( tileMatrixInfo tmi, double minScale );
|
||||
tileMatrixInfo calculateTileMatrixInfo( const QString &crsStr, const QgsProject *project );
|
||||
tileMatrixSetDef calculateTileMatrixSet( tileMatrixInfo tmi, double minScale );
|
||||
double getProjectMinScale( const QgsProject *project );
|
||||
QList< tileMatrixSetDef > getTileMatrixSetList( const QgsProject *project );
|
||||
QList< tileMatrixSetDef > getTileMatrixSetList( const QgsProject *project, const QString &tms_ref = QString() );
|
||||
|
||||
QList< layerDef > getWmtsLayerList( QgsServerInterface *serverIface, const QgsProject *project );
|
||||
tileMatrixSetLinkDef getLayerTileMatrixSetLink( const layerDef layer, const tileMatrixSetDef tms, const QgsProject *project );
|
||||
|
@ -236,7 +236,7 @@
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>2</number>
|
||||
<number>8</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="mProjOptsGeneral">
|
||||
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||
@ -265,8 +265,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>680</width>
|
||||
<height>883</height>
|
||||
<width>590</width>
|
||||
<height>782</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_8">
|
||||
@ -281,7 +281,7 @@
|
||||
<property name="title">
|
||||
<string>General Settings</string>
|
||||
</property>
|
||||
<property name="syncGroup" stdset="0">
|
||||
<property name="syncGroup">
|
||||
<string notr="true">projgeneral</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_26">
|
||||
@ -546,7 +546,7 @@
|
||||
<property name="title">
|
||||
<string>Measurements</string>
|
||||
</property>
|
||||
<property name="syncGroup" stdset="0">
|
||||
<property name="syncGroup">
|
||||
<string notr="true">projgeneral</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayoutMeasureTool">
|
||||
@ -615,7 +615,7 @@
|
||||
<property name="title">
|
||||
<string>Coordinate Display</string>
|
||||
</property>
|
||||
<property name="syncGroup" stdset="0">
|
||||
<property name="syncGroup">
|
||||
<string notr="true">projgeneral</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_18">
|
||||
@ -705,7 +705,7 @@
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="syncGroup" stdset="0">
|
||||
<property name="syncGroup">
|
||||
<string notr="true">projgeneral</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_7">
|
||||
@ -863,8 +863,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>694</width>
|
||||
<height>778</height>
|
||||
<width>603</width>
|
||||
<height>161</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_7">
|
||||
@ -938,8 +938,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>291</width>
|
||||
<height>615</height>
|
||||
<width>290</width>
|
||||
<height>552</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_12">
|
||||
@ -948,7 +948,7 @@
|
||||
<property name="title">
|
||||
<string>Default Symbols</string>
|
||||
</property>
|
||||
<property name="syncGroup" stdset="0">
|
||||
<property name="syncGroup">
|
||||
<string notr="true">projstyles</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_11">
|
||||
@ -1175,7 +1175,7 @@
|
||||
<property name="title">
|
||||
<string>Options</string>
|
||||
</property>
|
||||
<property name="syncGroup" stdset="0">
|
||||
<property name="syncGroup">
|
||||
<string notr="true">projstyles</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_18">
|
||||
@ -1189,7 +1189,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QgsOpacityWidget" name="mDefaultOpacityWidget" native="true">
|
||||
<widget class="QgsOpacityWidget" name="mDefaultOpacityWidget">
|
||||
<property name="focusPolicy">
|
||||
<enum>Qt::StrongFocus</enum>
|
||||
</property>
|
||||
@ -1514,8 +1514,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>159</width>
|
||||
<height>49</height>
|
||||
<width>168</width>
|
||||
<height>54</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_17">
|
||||
@ -1575,9 +1575,9 @@
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>632</width>
|
||||
<height>2867</height>
|
||||
<y>-1198</y>
|
||||
<width>671</width>
|
||||
<height>2647</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_13">
|
||||
@ -1598,13 +1598,13 @@
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="collapsed" stdset="0">
|
||||
<property name="collapsed">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="syncGroup" stdset="0">
|
||||
<property name="syncGroup">
|
||||
<string notr="true">projowsserver</string>
|
||||
</property>
|
||||
<property name="saveCollapsedState" stdset="0">
|
||||
<property name="saveCollapsedState">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_6">
|
||||
@ -1841,7 +1841,7 @@
|
||||
<property name="title">
|
||||
<string>WMS capabilities</string>
|
||||
</property>
|
||||
<property name="syncGroup" stdset="0">
|
||||
<property name="syncGroup">
|
||||
<string notr="true">projowsserver</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_13">
|
||||
@ -1856,10 +1856,10 @@
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="collapsed" stdset="0">
|
||||
<property name="collapsed">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="saveCollapsedState" stdset="0">
|
||||
<property name="saveCollapsedState">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
@ -1965,10 +1965,10 @@
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="collapsed" stdset="0">
|
||||
<property name="collapsed">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="saveCollapsedState" stdset="0">
|
||||
<property name="saveCollapsedState">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_5">
|
||||
@ -2021,10 +2021,10 @@
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="collapsed" stdset="0">
|
||||
<property name="collapsed">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="saveCollapsedState" stdset="0">
|
||||
<property name="saveCollapsedState">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_10">
|
||||
@ -2086,10 +2086,10 @@
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="collapsed" stdset="0">
|
||||
<property name="collapsed">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="saveCollapsedState" stdset="0">
|
||||
<property name="saveCollapsedState">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
@ -2448,37 +2448,7 @@
|
||||
<string>WMTS capabilities</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_20">
|
||||
<item row="0" column="0">
|
||||
<widget class="QTreeWidget" name="twWmtsLayers">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Layer</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Published</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>PNG</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>JPEG</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<item row="3" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_16">
|
||||
<item>
|
||||
<widget class="QLabel" name="mWMTSMinScaleLabel">
|
||||
@ -2502,7 +2472,7 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<item row="4" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_15">
|
||||
<item>
|
||||
<widget class="QLabel" name="mWMTSUrlLabel">
|
||||
@ -2516,6 +2486,101 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_17">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="vlWmtsLayers">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_31">
|
||||
<property name="text">
|
||||
<string>Published layers</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTreeWidget" name="twWmtsLayers">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="MinimumExpanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Layer</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Published</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>PNG</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>JPEG</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="vlWmtsGrids">
|
||||
<item>
|
||||
<widget class="QLabel" name="label_32">
|
||||
<property name="text">
|
||||
<string>Grids</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTreeWidget" name="twWmtsGrids">
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>CRS</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Published</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Top</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Left</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Min. scale</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Last level</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Max. scale</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
@ -2530,7 +2595,7 @@
|
||||
<property name="title">
|
||||
<string>WFS capabilities (also influences DXF export)</string>
|
||||
</property>
|
||||
<property name="syncGroup" stdset="0">
|
||||
<property name="syncGroup">
|
||||
<string notr="true">projowsserver</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_8">
|
||||
@ -2616,7 +2681,7 @@
|
||||
<property name="title">
|
||||
<string>WCS capabilities</string>
|
||||
</property>
|
||||
<property name="syncGroup" stdset="0">
|
||||
<property name="syncGroup">
|
||||
<string notr="true">projowsserver</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_9">
|
||||
@ -2809,6 +2874,23 @@
|
||||
<header>qgscollapsiblegroupbox.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsColorButton</class>
|
||||
<extends>QToolButton</extends>
|
||||
<header>qgscolorbutton.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsFilterLineEdit</class>
|
||||
<extends>QLineEdit</extends>
|
||||
<header>qgsfilterlineedit.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsOpacityWidget</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>qgsopacitywidget.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsScrollArea</class>
|
||||
<extends>QScrollArea</extends>
|
||||
@ -2821,23 +2903,6 @@
|
||||
<header location="global">qgsvariableeditorwidget.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsFilterLineEdit</class>
|
||||
<extends>QLineEdit</extends>
|
||||
<header>qgsfilterlineedit.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsColorButton</class>
|
||||
<extends>QToolButton</extends>
|
||||
<header>qgscolorbutton.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsOpacityWidget</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>qgsopacitywidget.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>QgsColorSchemeList</class>
|
||||
<extends>QWidget</extends>
|
||||
@ -2966,7 +3031,6 @@
|
||||
<tabstop>mMaxWidthLineEdit</tabstop>
|
||||
<tabstop>mMaxHeightLineEdit</tabstop>
|
||||
<tabstop>mWMSImageQualitySpinBox</tabstop>
|
||||
<tabstop>twWmtsLayers</tabstop>
|
||||
<tabstop>mWMTSMinScaleLineEdit</tabstop>
|
||||
<tabstop>mWMTSUrlLineEdit</tabstop>
|
||||
<tabstop>twWFSLayers</tabstop>
|
||||
|
@ -34,6 +34,7 @@ from qgis.PyQt.QtCore import QSize
|
||||
import osgeo.gdal # NOQA
|
||||
|
||||
from test_qgsserver import QgsServerTestBase
|
||||
from qgis.core import QgsProject
|
||||
|
||||
# Strip path and content length because path may vary
|
||||
RE_STRIP_UNCHECKABLE = b'MAP=[^"]+|Content-Length: \d+|timeStamp="[^"]+"'
|
||||
@ -66,7 +67,35 @@ class TestQgsServerWMTS(QgsServerTestBase):
|
||||
reference_name = 'wmts_' + request.lower()
|
||||
|
||||
reference_name += '.txt'
|
||||
reference_path = self.testdata_path + reference_name
|
||||
|
||||
self.store_reference(reference_path, response)
|
||||
f = open(reference_path, 'rb')
|
||||
expected = f.read()
|
||||
f.close()
|
||||
response = re.sub(RE_STRIP_UNCHECKABLE, b'', response)
|
||||
expected = re.sub(RE_STRIP_UNCHECKABLE, b'', expected)
|
||||
|
||||
self.assertXMLEqual(response, expected, msg="request %s failed.\n Query: %s" % (query_string, request))
|
||||
|
||||
def wmts_request_compare_project(self, project, request, version='', extra_query_string='', reference_base_name=None):
|
||||
query_string = 'https://www.qgis.org/?SERVICE=WMTS&REQUEST=%s' % (request)
|
||||
if version:
|
||||
query_string += '&VERSION=%s' % version
|
||||
|
||||
if extra_query_string:
|
||||
query_string += '&%s' % extra_query_string
|
||||
|
||||
header, body = self._execute_request_project(query_string, project)
|
||||
self.assert_headers(header, body)
|
||||
response = header + body
|
||||
|
||||
if reference_base_name is not None:
|
||||
reference_name = reference_base_name
|
||||
else:
|
||||
reference_name = 'wmts_' + request.lower()
|
||||
|
||||
reference_name += '.txt'
|
||||
reference_path = self.testdata_path + reference_name
|
||||
|
||||
self.store_reference(reference_path, response)
|
||||
@ -281,6 +310,22 @@ class TestQgsServerWMTS(QgsServerTestBase):
|
||||
err = b"TileMatrixSet is unknown" in r
|
||||
self.assertTrue(err)
|
||||
|
||||
def test_wmts_config(self):
|
||||
projectPath = self.projectGroupsPath
|
||||
assert os.path.exists(projectPath), "Project file not found: " + projectPath
|
||||
|
||||
project = QgsProject()
|
||||
project.read(projectPath)
|
||||
self.wmts_request_compare_project(project, 'GetCapabilities', reference_base_name='wmts_getcapabilities_config')
|
||||
|
||||
self.assertTrue(project.removeEntry('WMTSGrids', 'Config'))
|
||||
self.assertTrue(project.removeEntry('WMTSGrids', 'CRS'))
|
||||
self.wmts_request_compare_project(project, 'GetCapabilities', reference_base_name='wmts_getcapabilities_config')
|
||||
|
||||
self.assertTrue(project.writeEntry('WMTSGrids', 'Config', ('EPSG:3857,20037508.342789248,-20037508.342789248,559082264.0287179,20',)))
|
||||
self.assertTrue(project.writeEntry('WMTSGrids', 'CRS', ('EPSG:3857',)))
|
||||
self.wmts_request_compare_project(project, 'GetCapabilities', reference_base_name='wmts_getcapabilities_config_3857')
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
760
tests/testdata/qgis_server/wmts_getcapabilities.txt
vendored
760
tests/testdata/qgis_server/wmts_getcapabilities.txt
vendored
@ -1,7 +1,7 @@
|
||||
|
||||
Content-Length: 45681
|
||||
Content-Type: text/xml; charset=utf-8
|
||||
|
||||
<Capabilities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd" xmlns="http://www.opengis.net/wmts/1.0" version="1.0.0" xmlns:gml="http://www.opengis.net/gml" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<Capabilities xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns="http://www.opengis.net/wmts/1.0" xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd" version="1.0.0" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<ows:ServiceIdentification>
|
||||
<ows:ServiceType>OGC WMTS</ows:ServiceType>
|
||||
<ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>
|
||||
@ -20,21 +20,21 @@ Content-Type: text/xml; charset=utf-8
|
||||
<ows:Operation name="GetCapabilities">
|
||||
<ows:DCP>
|
||||
<ows:HTTP>
|
||||
<ows:Get xlink:href="?"/>
|
||||
<ows:Get xlink:href="?MAP=/home/dhont/3liz_dev/QGIS/qgis_rldhont/tests/testdata/qgis_server_accesscontrol/project_groups.qgs"/>
|
||||
</ows:HTTP>
|
||||
</ows:DCP>
|
||||
</ows:Operation>
|
||||
<ows:Operation name="GetTile">
|
||||
<ows:DCP>
|
||||
<ows:HTTP>
|
||||
<ows:Get xlink:href="?"/>
|
||||
<ows:Get xlink:href="?MAP=/home/dhont/3liz_dev/QGIS/qgis_rldhont/tests/testdata/qgis_server_accesscontrol/project_groups.qgs"/>
|
||||
</ows:HTTP>
|
||||
</ows:DCP>
|
||||
</ows:Operation>
|
||||
<ows:Operation name="GetFeatureInfo">
|
||||
<ows:DCP>
|
||||
<ows:HTTP>
|
||||
<ows:Get xlink:href="?"/>
|
||||
<ows:Get xlink:href="?MAP=/home/dhont/3liz_dev/QGIS/qgis_rldhont/tests/testdata/qgis_server_accesscontrol/project_groups.qgs"/>
|
||||
</ows:HTTP>
|
||||
</ows:DCP>
|
||||
</ows:Operation>
|
||||
@ -105,107 +105,107 @@ Content-Type: text/xml; charset=utf-8
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>6</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>63</MaxTileCol>
|
||||
<MaxTileCol>62</MaxTileCol>
|
||||
<MinTileRow>1</MinTileRow>
|
||||
<MaxTileRow>49</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>7</TileMatrix>
|
||||
<MinTileCol>1</MinTileCol>
|
||||
<MaxTileCol>127</MaxTileCol>
|
||||
<MaxTileCol>125</MaxTileCol>
|
||||
<MinTileRow>2</MinTileRow>
|
||||
<MaxTileRow>99</MaxTileRow>
|
||||
<MaxTileRow>98</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>8</TileMatrix>
|
||||
<MinTileCol>3</MinTileCol>
|
||||
<MaxTileCol>254</MaxTileCol>
|
||||
<MaxTileCol>251</MaxTileCol>
|
||||
<MinTileRow>5</MinTileRow>
|
||||
<MaxTileRow>198</MaxTileRow>
|
||||
<MaxTileRow>196</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>9</TileMatrix>
|
||||
<MinTileCol>7</MinTileCol>
|
||||
<MaxTileCol>509</MaxTileCol>
|
||||
<MaxTileCol>502</MaxTileCol>
|
||||
<MinTileRow>11</MinTileRow>
|
||||
<MaxTileRow>397</MaxTileRow>
|
||||
<MaxTileRow>392</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>10</TileMatrix>
|
||||
<MinTileCol>14</MinTileCol>
|
||||
<MaxTileCol>1018</MaxTileCol>
|
||||
<MaxTileCol>1005</MaxTileCol>
|
||||
<MinTileRow>22</MinTileRow>
|
||||
<MaxTileRow>794</MaxTileRow>
|
||||
<MaxTileRow>784</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>11</TileMatrix>
|
||||
<MinTileCol>29</MinTileCol>
|
||||
<MaxTileCol>2036</MaxTileCol>
|
||||
<MaxTileCol>2011</MaxTileCol>
|
||||
<MinTileRow>45</MinTileRow>
|
||||
<MaxTileRow>1588</MaxTileRow>
|
||||
<MaxTileRow>1569</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>12</TileMatrix>
|
||||
<MinTileCol>59</MinTileCol>
|
||||
<MaxTileCol>4072</MaxTileCol>
|
||||
<MinTileRow>91</MinTileRow>
|
||||
<MaxTileRow>3177</MaxTileRow>
|
||||
<MinTileCol>58</MinTileCol>
|
||||
<MaxTileCol>4022</MaxTileCol>
|
||||
<MinTileRow>90</MinTileRow>
|
||||
<MaxTileRow>3139</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>13</TileMatrix>
|
||||
<MinTileCol>119</MinTileCol>
|
||||
<MaxTileCol>8144</MaxTileCol>
|
||||
<MinTileRow>182</MinTileRow>
|
||||
<MaxTileRow>6355</MaxTileRow>
|
||||
<MinTileCol>117</MinTileCol>
|
||||
<MaxTileCol>8045</MaxTileCol>
|
||||
<MinTileRow>180</MinTileRow>
|
||||
<MaxTileRow>6278</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>14</TileMatrix>
|
||||
<MinTileCol>238</MinTileCol>
|
||||
<MaxTileCol>16289</MaxTileCol>
|
||||
<MinTileRow>365</MinTileRow>
|
||||
<MaxTileRow>12711</MaxTileRow>
|
||||
<MinTileCol>235</MinTileCol>
|
||||
<MaxTileCol>16090</MaxTileCol>
|
||||
<MinTileRow>360</MinTileRow>
|
||||
<MaxTileRow>12556</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>15</TileMatrix>
|
||||
<MinTileCol>476</MinTileCol>
|
||||
<MaxTileCol>32579</MaxTileCol>
|
||||
<MinTileRow>730</MinTileRow>
|
||||
<MaxTileRow>25423</MaxTileRow>
|
||||
<MinTileCol>470</MinTileCol>
|
||||
<MaxTileCol>32181</MaxTileCol>
|
||||
<MinTileRow>721</MinTileRow>
|
||||
<MaxTileRow>25112</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>16</TileMatrix>
|
||||
<MinTileCol>952</MinTileCol>
|
||||
<MaxTileCol>65159</MaxTileCol>
|
||||
<MinTileRow>1461</MinTileRow>
|
||||
<MaxTileRow>50846</MaxTileRow>
|
||||
<MinTileCol>941</MinTileCol>
|
||||
<MaxTileCol>64362</MaxTileCol>
|
||||
<MinTileRow>1443</MinTileRow>
|
||||
<MaxTileRow>50225</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>17</TileMatrix>
|
||||
<MinTileCol>1905</MinTileCol>
|
||||
<MaxTileCol>130318</MaxTileCol>
|
||||
<MinTileRow>2923</MinTileRow>
|
||||
<MaxTileRow>101693</MaxTileRow>
|
||||
<MinTileCol>1882</MinTileCol>
|
||||
<MaxTileCol>128725</MaxTileCol>
|
||||
<MinTileRow>2887</MinTileRow>
|
||||
<MaxTileRow>100450</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>18</TileMatrix>
|
||||
<MinTileCol>3810</MinTileCol>
|
||||
<MaxTileCol>260637</MaxTileCol>
|
||||
<MinTileRow>5846</MinTileRow>
|
||||
<MaxTileRow>203386</MaxTileRow>
|
||||
<MinTileCol>3764</MinTileCol>
|
||||
<MaxTileCol>257451</MaxTileCol>
|
||||
<MinTileRow>5774</MinTileRow>
|
||||
<MaxTileRow>200900</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>19</TileMatrix>
|
||||
<MinTileCol>7621</MinTileCol>
|
||||
<MaxTileCol>521274</MaxTileCol>
|
||||
<MinTileRow>11692</MinTileRow>
|
||||
<MaxTileRow>406772</MaxTileRow>
|
||||
<MinTileCol>7528</MinTileCol>
|
||||
<MaxTileCol>514903</MaxTileCol>
|
||||
<MinTileRow>11549</MinTileRow>
|
||||
<MaxTileRow>401801</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>20</TileMatrix>
|
||||
<MinTileCol>15243</MinTileCol>
|
||||
<MaxTileCol>1042549</MaxTileCol>
|
||||
<MinTileRow>23384</MinTileRow>
|
||||
<MaxTileRow>813545</MaxTileRow>
|
||||
<MinTileCol>15057</MinTileCol>
|
||||
<MaxTileCol>1029806</MaxTileCol>
|
||||
<MinTileRow>23099</MinTileRow>
|
||||
<MaxTileRow>803602</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
</TileMatrixSetLimits>
|
||||
</TileMatrixSetLink>
|
||||
@ -250,107 +250,107 @@ Content-Type: text/xml; charset=utf-8
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>5</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>63</MaxTileCol>
|
||||
<MinTileRow>1</MinTileRow>
|
||||
<MaxTileCol>62</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>28</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>6</TileMatrix>
|
||||
<MinTileCol>1</MinTileCol>
|
||||
<MaxTileCol>127</MaxTileCol>
|
||||
<MinTileRow>2</MinTileRow>
|
||||
<MaxTileCol>125</MaxTileCol>
|
||||
<MinTileRow>1</MinTileRow>
|
||||
<MaxTileRow>56</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>7</TileMatrix>
|
||||
<MinTileCol>3</MinTileCol>
|
||||
<MaxTileCol>254</MaxTileCol>
|
||||
<MinTileRow>4</MinTileRow>
|
||||
<MaxTileRow>113</MaxTileRow>
|
||||
<MaxTileCol>251</MaxTileCol>
|
||||
<MinTileRow>3</MinTileRow>
|
||||
<MaxTileRow>112</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>8</TileMatrix>
|
||||
<MinTileCol>7</MinTileCol>
|
||||
<MaxTileCol>508</MaxTileCol>
|
||||
<MinTileRow>8</MinTileRow>
|
||||
<MaxTileRow>227</MaxTileRow>
|
||||
<MaxTileCol>502</MaxTileCol>
|
||||
<MinTileRow>7</MinTileRow>
|
||||
<MaxTileRow>224</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>9</TileMatrix>
|
||||
<MinTileCol>14</MinTileCol>
|
||||
<MaxTileCol>1016</MaxTileCol>
|
||||
<MinTileRow>16</MinTileRow>
|
||||
<MaxTileRow>454</MaxTileRow>
|
||||
<MaxTileCol>1005</MaxTileCol>
|
||||
<MinTileRow>15</MinTileRow>
|
||||
<MaxTileRow>449</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>10</TileMatrix>
|
||||
<MinTileCol>29</MinTileCol>
|
||||
<MaxTileCol>2032</MaxTileCol>
|
||||
<MinTileRow>32</MinTileRow>
|
||||
<MaxTileRow>908</MaxTileRow>
|
||||
<MaxTileCol>2011</MaxTileCol>
|
||||
<MinTileRow>31</MinTileRow>
|
||||
<MaxTileRow>898</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>11</TileMatrix>
|
||||
<MinTileCol>59</MinTileCol>
|
||||
<MaxTileCol>4065</MaxTileCol>
|
||||
<MinTileRow>64</MinTileRow>
|
||||
<MaxTileRow>1816</MaxTileRow>
|
||||
<MinTileCol>58</MinTileCol>
|
||||
<MaxTileCol>4022</MaxTileCol>
|
||||
<MinTileRow>63</MinTileRow>
|
||||
<MaxTileRow>1797</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>12</TileMatrix>
|
||||
<MinTileCol>118</MinTileCol>
|
||||
<MaxTileCol>8130</MaxTileCol>
|
||||
<MinTileRow>129</MinTileRow>
|
||||
<MaxTileRow>3633</MaxTileRow>
|
||||
<MinTileCol>117</MinTileCol>
|
||||
<MaxTileCol>8045</MaxTileCol>
|
||||
<MinTileRow>127</MinTileRow>
|
||||
<MaxTileRow>3595</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>13</TileMatrix>
|
||||
<MinTileCol>237</MinTileCol>
|
||||
<MaxTileCol>16260</MaxTileCol>
|
||||
<MinTileRow>258</MinTileRow>
|
||||
<MaxTileRow>7266</MaxTileRow>
|
||||
<MinTileCol>235</MinTileCol>
|
||||
<MaxTileCol>16090</MaxTileCol>
|
||||
<MinTileRow>255</MinTileRow>
|
||||
<MaxTileRow>7190</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>14</TileMatrix>
|
||||
<MinTileCol>475</MinTileCol>
|
||||
<MaxTileCol>32520</MaxTileCol>
|
||||
<MinTileRow>517</MinTileRow>
|
||||
<MaxTileRow>14533</MaxTileRow>
|
||||
<MinTileCol>470</MinTileCol>
|
||||
<MaxTileCol>32181</MaxTileCol>
|
||||
<MinTileRow>511</MinTileRow>
|
||||
<MaxTileRow>14381</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>15</TileMatrix>
|
||||
<MinTileCol>951</MinTileCol>
|
||||
<MaxTileCol>65041</MaxTileCol>
|
||||
<MinTileRow>1034</MinTileRow>
|
||||
<MaxTileRow>29066</MaxTileRow>
|
||||
<MinTileCol>941</MinTileCol>
|
||||
<MaxTileCol>64362</MaxTileCol>
|
||||
<MinTileRow>1023</MinTileRow>
|
||||
<MaxTileRow>28763</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>16</TileMatrix>
|
||||
<MinTileCol>1902</MinTileCol>
|
||||
<MaxTileCol>130083</MaxTileCol>
|
||||
<MinTileRow>2068</MinTileRow>
|
||||
<MaxTileRow>58133</MaxTileRow>
|
||||
<MinTileCol>1882</MinTileCol>
|
||||
<MaxTileCol>128725</MaxTileCol>
|
||||
<MinTileRow>2047</MinTileRow>
|
||||
<MaxTileRow>57527</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>17</TileMatrix>
|
||||
<MinTileCol>3804</MinTileCol>
|
||||
<MaxTileCol>260167</MaxTileCol>
|
||||
<MinTileRow>4137</MinTileRow>
|
||||
<MaxTileRow>116267</MaxTileRow>
|
||||
<MinTileCol>3764</MinTileCol>
|
||||
<MaxTileCol>257451</MaxTileCol>
|
||||
<MinTileRow>4094</MinTileRow>
|
||||
<MaxTileRow>115054</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>18</TileMatrix>
|
||||
<MinTileCol>7608</MinTileCol>
|
||||
<MaxTileCol>520335</MaxTileCol>
|
||||
<MinTileRow>8274</MinTileRow>
|
||||
<MaxTileRow>232535</MaxTileRow>
|
||||
<MinTileCol>7528</MinTileCol>
|
||||
<MaxTileCol>514903</MaxTileCol>
|
||||
<MinTileRow>8188</MinTileRow>
|
||||
<MaxTileRow>230108</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>19</TileMatrix>
|
||||
<MinTileCol>15216</MinTileCol>
|
||||
<MaxTileCol>1040671</MaxTileCol>
|
||||
<MinTileRow>16549</MinTileRow>
|
||||
<MaxTileRow>465071</MaxTileRow>
|
||||
<MinTileCol>15057</MinTileCol>
|
||||
<MaxTileCol>1029806</MaxTileCol>
|
||||
<MinTileRow>16376</MinTileRow>
|
||||
<MaxTileRow>460216</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
</TileMatrixSetLimits>
|
||||
</TileMatrixSetLink>
|
||||
@ -398,7 +398,133 @@ Content-Type: text/xml; charset=utf-8
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>3</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>3</MaxTileRow>
|
||||
<MaxTileRow>2</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>3</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>7</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>5</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>4</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>15</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>11</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>5</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>31</MaxTileCol>
|
||||
<MinTileRow>1</MinTileRow>
|
||||
<MaxTileRow>23</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>6</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>63</MaxTileCol>
|
||||
<MinTileRow>2</MinTileRow>
|
||||
<MaxTileRow>47</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>7</TileMatrix>
|
||||
<MinTileCol>1</MinTileCol>
|
||||
<MaxTileCol>126</MaxTileCol>
|
||||
<MinTileRow>5</MinTileRow>
|
||||
<MaxTileRow>95</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>8</TileMatrix>
|
||||
<MinTileCol>2</MinTileCol>
|
||||
<MaxTileCol>252</MaxTileCol>
|
||||
<MinTileRow>10</MinTileRow>
|
||||
<MaxTileRow>191</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>9</TileMatrix>
|
||||
<MinTileCol>5</MinTileCol>
|
||||
<MaxTileCol>504</MaxTileCol>
|
||||
<MinTileRow>20</MinTileRow>
|
||||
<MaxTileRow>383</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>10</TileMatrix>
|
||||
<MinTileCol>10</MinTileCol>
|
||||
<MaxTileCol>1009</MaxTileCol>
|
||||
<MinTileRow>40</MinTileRow>
|
||||
<MaxTileRow>766</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>11</TileMatrix>
|
||||
<MinTileCol>21</MinTileCol>
|
||||
<MaxTileCol>2019</MaxTileCol>
|
||||
<MinTileRow>81</MinTileRow>
|
||||
<MaxTileRow>1532</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>12</TileMatrix>
|
||||
<MinTileCol>42</MinTileCol>
|
||||
<MaxTileCol>4039</MaxTileCol>
|
||||
<MinTileRow>163</MinTileRow>
|
||||
<MaxTileRow>3065</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>13</TileMatrix>
|
||||
<MinTileCol>84</MinTileCol>
|
||||
<MaxTileCol>8078</MaxTileCol>
|
||||
<MinTileRow>327</MinTileRow>
|
||||
<MaxTileRow>6131</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>14</TileMatrix>
|
||||
<MinTileCol>168</MinTileCol>
|
||||
<MaxTileCol>16157</MaxTileCol>
|
||||
<MinTileRow>654</MinTileRow>
|
||||
<MaxTileRow>12262</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>15</TileMatrix>
|
||||
<MinTileCol>337</MinTileCol>
|
||||
<MaxTileCol>32314</MaxTileCol>
|
||||
<MinTileRow>1309</MinTileRow>
|
||||
<MaxTileRow>24524</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>16</TileMatrix>
|
||||
<MinTileCol>674</MinTileCol>
|
||||
<MaxTileCol>64629</MaxTileCol>
|
||||
<MinTileRow>2619</MinTileRow>
|
||||
<MaxTileRow>49049</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>17</TileMatrix>
|
||||
<MinTileCol>1349</MinTileCol>
|
||||
<MaxTileCol>129258</MaxTileCol>
|
||||
<MinTileRow>5239</MinTileRow>
|
||||
<MaxTileRow>98098</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>18</TileMatrix>
|
||||
<MinTileCol>2698</MinTileCol>
|
||||
<MaxTileCol>258517</MaxTileCol>
|
||||
<MinTileRow>10478</MinTileRow>
|
||||
<MaxTileRow>196197</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>19</TileMatrix>
|
||||
<MinTileCol>5396</MinTileCol>
|
||||
<MaxTileCol>517035</MaxTileCol>
|
||||
<MinTileRow>20956</MinTileRow>
|
||||
<MaxTileRow>392394</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>20</TileMatrix>
|
||||
<MinTileCol>10793</MinTileCol>
|
||||
<MaxTileCol>1034070</MaxTileCol>
|
||||
<MinTileRow>41912</MinTileRow>
|
||||
<MaxTileRow>784789</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
</TileMatrixSetLimits>
|
||||
</TileMatrixSetLink>
|
||||
@ -419,6 +545,132 @@ Content-Type: text/xml; charset=utf-8
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>1</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>2</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>7</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>3</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>3</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>15</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>6</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>4</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>31</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>13</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>5</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>63</MaxTileCol>
|
||||
<MinTileRow>1</MinTileRow>
|
||||
<MaxTileRow>27</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>6</TileMatrix>
|
||||
<MinTileCol>1</MinTileCol>
|
||||
<MaxTileCol>126</MaxTileCol>
|
||||
<MinTileRow>2</MinTileRow>
|
||||
<MaxTileRow>55</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>7</TileMatrix>
|
||||
<MinTileCol>2</MinTileCol>
|
||||
<MaxTileCol>252</MaxTileCol>
|
||||
<MinTileRow>4</MinTileRow>
|
||||
<MaxTileRow>110</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>8</TileMatrix>
|
||||
<MinTileCol>5</MinTileCol>
|
||||
<MaxTileCol>504</MaxTileCol>
|
||||
<MinTileRow>8</MinTileRow>
|
||||
<MaxTileRow>221</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>9</TileMatrix>
|
||||
<MinTileCol>10</MinTileCol>
|
||||
<MaxTileCol>1009</MaxTileCol>
|
||||
<MinTileRow>17</MinTileRow>
|
||||
<MaxTileRow>442</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>10</TileMatrix>
|
||||
<MinTileCol>21</MinTileCol>
|
||||
<MaxTileCol>2019</MaxTileCol>
|
||||
<MinTileRow>35</MinTileRow>
|
||||
<MaxTileRow>885</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>11</TileMatrix>
|
||||
<MinTileCol>42</MinTileCol>
|
||||
<MaxTileCol>4039</MaxTileCol>
|
||||
<MinTileRow>71</MinTileRow>
|
||||
<MaxTileRow>1771</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>12</TileMatrix>
|
||||
<MinTileCol>84</MinTileCol>
|
||||
<MaxTileCol>8078</MaxTileCol>
|
||||
<MinTileRow>143</MinTileRow>
|
||||
<MaxTileRow>3542</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>13</TileMatrix>
|
||||
<MinTileCol>168</MinTileCol>
|
||||
<MaxTileCol>16157</MaxTileCol>
|
||||
<MinTileRow>286</MinTileRow>
|
||||
<MaxTileRow>7084</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>14</TileMatrix>
|
||||
<MinTileCol>337</MinTileCol>
|
||||
<MaxTileCol>32314</MaxTileCol>
|
||||
<MinTileRow>573</MinTileRow>
|
||||
<MaxTileRow>14169</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>15</TileMatrix>
|
||||
<MinTileCol>674</MinTileCol>
|
||||
<MaxTileCol>64629</MaxTileCol>
|
||||
<MinTileRow>1147</MinTileRow>
|
||||
<MaxTileRow>28338</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>16</TileMatrix>
|
||||
<MinTileCol>1349</MinTileCol>
|
||||
<MaxTileCol>129258</MaxTileCol>
|
||||
<MinTileRow>2294</MinTileRow>
|
||||
<MaxTileRow>56676</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>17</TileMatrix>
|
||||
<MinTileCol>2698</MinTileCol>
|
||||
<MaxTileCol>258517</MaxTileCol>
|
||||
<MinTileRow>4588</MinTileRow>
|
||||
<MaxTileRow>113353</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>18</TileMatrix>
|
||||
<MinTileCol>5396</MinTileCol>
|
||||
<MaxTileCol>517035</MaxTileCol>
|
||||
<MinTileRow>9176</MinTileRow>
|
||||
<MaxTileRow>226706</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>19</TileMatrix>
|
||||
<MinTileCol>10793</MinTileCol>
|
||||
<MaxTileCol>1034070</MaxTileCol>
|
||||
<MinTileRow>18352</MinTileRow>
|
||||
<MaxTileRow>453412</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
</TileMatrixSetLimits>
|
||||
</TileMatrixSetLink>
|
||||
</Layer>
|
||||
@ -457,14 +709,140 @@ Content-Type: text/xml; charset=utf-8
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>1</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>1</MaxTileRow>
|
||||
<MaxTileRow>0</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>2</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>3</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>2</MaxTileRow>
|
||||
<MaxTileRow>1</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>3</TileMatrix>
|
||||
<MinTileCol>1</MinTileCol>
|
||||
<MaxTileCol>6</MaxTileCol>
|
||||
<MinTileRow>1</MinTileRow>
|
||||
<MaxTileRow>3</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>4</TileMatrix>
|
||||
<MinTileCol>2</MinTileCol>
|
||||
<MaxTileCol>12</MaxTileCol>
|
||||
<MinTileRow>3</MinTileRow>
|
||||
<MaxTileRow>7</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>5</TileMatrix>
|
||||
<MinTileCol>4</MinTileCol>
|
||||
<MaxTileCol>24</MaxTileCol>
|
||||
<MinTileRow>7</MinTileRow>
|
||||
<MaxTileRow>15</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>6</TileMatrix>
|
||||
<MinTileCol>8</MinTileCol>
|
||||
<MaxTileCol>49</MaxTileCol>
|
||||
<MinTileRow>14</MinTileRow>
|
||||
<MaxTileRow>31</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>7</TileMatrix>
|
||||
<MinTileCol>16</MinTileCol>
|
||||
<MaxTileCol>99</MaxTileCol>
|
||||
<MinTileRow>28</MinTileRow>
|
||||
<MaxTileRow>63</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>8</TileMatrix>
|
||||
<MinTileCol>33</MinTileCol>
|
||||
<MaxTileCol>198</MaxTileCol>
|
||||
<MinTileRow>57</MinTileRow>
|
||||
<MaxTileRow>127</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>9</TileMatrix>
|
||||
<MinTileCol>66</MinTileCol>
|
||||
<MaxTileCol>396</MaxTileCol>
|
||||
<MinTileRow>115</MinTileRow>
|
||||
<MaxTileRow>254</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>10</TileMatrix>
|
||||
<MinTileCol>133</MinTileCol>
|
||||
<MaxTileCol>792</MaxTileCol>
|
||||
<MinTileRow>230</MinTileRow>
|
||||
<MaxTileRow>508</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>11</TileMatrix>
|
||||
<MinTileCol>267</MinTileCol>
|
||||
<MaxTileCol>1584</MaxTileCol>
|
||||
<MinTileRow>460</MinTileRow>
|
||||
<MaxTileRow>1017</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>12</TileMatrix>
|
||||
<MinTileCol>534</MinTileCol>
|
||||
<MaxTileCol>3168</MaxTileCol>
|
||||
<MinTileRow>921</MinTileRow>
|
||||
<MaxTileRow>2034</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>13</TileMatrix>
|
||||
<MinTileCol>1068</MinTileCol>
|
||||
<MaxTileCol>6336</MaxTileCol>
|
||||
<MinTileRow>1842</MinTileRow>
|
||||
<MaxTileRow>4068</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>14</TileMatrix>
|
||||
<MinTileCol>2136</MinTileCol>
|
||||
<MaxTileCol>12672</MaxTileCol>
|
||||
<MinTileRow>3684</MinTileRow>
|
||||
<MaxTileRow>8137</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>15</TileMatrix>
|
||||
<MinTileCol>4273</MinTileCol>
|
||||
<MaxTileCol>25344</MaxTileCol>
|
||||
<MinTileRow>7368</MinTileRow>
|
||||
<MaxTileRow>16274</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>16</TileMatrix>
|
||||
<MinTileCol>8547</MinTileCol>
|
||||
<MaxTileCol>50689</MaxTileCol>
|
||||
<MinTileRow>14736</MinTileRow>
|
||||
<MaxTileRow>32548</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>17</TileMatrix>
|
||||
<MinTileCol>17094</MinTileCol>
|
||||
<MaxTileCol>101378</MaxTileCol>
|
||||
<MinTileRow>29473</MinTileRow>
|
||||
<MaxTileRow>65097</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>18</TileMatrix>
|
||||
<MinTileCol>34188</MinTileCol>
|
||||
<MaxTileCol>202756</MaxTileCol>
|
||||
<MinTileRow>58947</MinTileRow>
|
||||
<MaxTileRow>130194</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>19</TileMatrix>
|
||||
<MinTileCol>68377</MinTileCol>
|
||||
<MaxTileCol>405512</MaxTileCol>
|
||||
<MinTileRow>117895</MinTileRow>
|
||||
<MaxTileRow>260388</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>20</TileMatrix>
|
||||
<MinTileCol>136755</MinTileCol>
|
||||
<MaxTileCol>811025</MaxTileCol>
|
||||
<MinTileRow>235791</MinTileRow>
|
||||
<MaxTileRow>520776</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
</TileMatrixSetLimits>
|
||||
</TileMatrixSetLink>
|
||||
@ -483,8 +861,134 @@ Content-Type: text/xml; charset=utf-8
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>3</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>0</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>2</TileMatrix>
|
||||
<MinTileCol>1</MinTileCol>
|
||||
<MaxTileCol>6</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>1</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>3</TileMatrix>
|
||||
<MinTileCol>2</MinTileCol>
|
||||
<MaxTileCol>12</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>3</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>4</TileMatrix>
|
||||
<MinTileCol>4</MinTileCol>
|
||||
<MaxTileCol>24</MaxTileCol>
|
||||
<MinTileRow>1</MinTileRow>
|
||||
<MaxTileRow>7</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>5</TileMatrix>
|
||||
<MinTileCol>8</MinTileCol>
|
||||
<MaxTileCol>49</MaxTileCol>
|
||||
<MinTileRow>3</MinTileRow>
|
||||
<MaxTileRow>15</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>6</TileMatrix>
|
||||
<MinTileCol>16</MinTileCol>
|
||||
<MaxTileCol>99</MaxTileCol>
|
||||
<MinTileRow>7</MinTileRow>
|
||||
<MaxTileRow>31</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>7</TileMatrix>
|
||||
<MinTileCol>33</MinTileCol>
|
||||
<MaxTileCol>198</MaxTileCol>
|
||||
<MinTileRow>14</MinTileRow>
|
||||
<MaxTileRow>63</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>8</TileMatrix>
|
||||
<MinTileCol>66</MinTileCol>
|
||||
<MaxTileCol>396</MaxTileCol>
|
||||
<MinTileRow>28</MinTileRow>
|
||||
<MaxTileRow>127</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>9</TileMatrix>
|
||||
<MinTileCol>133</MinTileCol>
|
||||
<MaxTileCol>792</MaxTileCol>
|
||||
<MinTileRow>57</MinTileRow>
|
||||
<MaxTileRow>255</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>10</TileMatrix>
|
||||
<MinTileCol>267</MinTileCol>
|
||||
<MaxTileCol>1584</MaxTileCol>
|
||||
<MinTileRow>115</MinTileRow>
|
||||
<MaxTileRow>511</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>11</TileMatrix>
|
||||
<MinTileCol>534</MinTileCol>
|
||||
<MaxTileCol>3168</MaxTileCol>
|
||||
<MinTileRow>230</MinTileRow>
|
||||
<MaxTileRow>1022</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>12</TileMatrix>
|
||||
<MinTileCol>1068</MinTileCol>
|
||||
<MaxTileCol>6336</MaxTileCol>
|
||||
<MinTileRow>460</MinTileRow>
|
||||
<MaxTileRow>2045</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>13</TileMatrix>
|
||||
<MinTileCol>2136</MinTileCol>
|
||||
<MaxTileCol>12672</MaxTileCol>
|
||||
<MinTileRow>920</MinTileRow>
|
||||
<MaxTileRow>4091</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>14</TileMatrix>
|
||||
<MinTileCol>4273</MinTileCol>
|
||||
<MaxTileCol>25344</MaxTileCol>
|
||||
<MinTileRow>1841</MinTileRow>
|
||||
<MaxTileRow>8182</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>15</TileMatrix>
|
||||
<MinTileCol>8547</MinTileCol>
|
||||
<MaxTileCol>50689</MaxTileCol>
|
||||
<MinTileRow>3682</MinTileRow>
|
||||
<MaxTileRow>16364</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>16</TileMatrix>
|
||||
<MinTileCol>17094</MinTileCol>
|
||||
<MaxTileCol>101378</MaxTileCol>
|
||||
<MinTileRow>7365</MinTileRow>
|
||||
<MaxTileRow>32729</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>17</TileMatrix>
|
||||
<MinTileCol>34188</MinTileCol>
|
||||
<MaxTileCol>202756</MaxTileCol>
|
||||
<MinTileRow>14730</MinTileRow>
|
||||
<MaxTileRow>65459</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>18</TileMatrix>
|
||||
<MinTileCol>68377</MinTileCol>
|
||||
<MaxTileCol>405512</MaxTileCol>
|
||||
<MinTileRow>29460</MinTileRow>
|
||||
<MaxTileRow>130918</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>19</TileMatrix>
|
||||
<MinTileCol>136755</MinTileCol>
|
||||
<MaxTileCol>811025</MaxTileCol>
|
||||
<MinTileRow>58921</MinTileRow>
|
||||
<MaxTileRow>261836</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
</TileMatrixSetLimits>
|
||||
</TileMatrixSetLink>
|
||||
</Layer>
|
||||
@ -771,7 +1275,7 @@ Content-Type: text/xml; charset=utf-8
|
||||
<TopLeftCorner>-180 90</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>1023</MatrixWidth>
|
||||
<MatrixWidth>1024</MatrixWidth>
|
||||
<MatrixHeight>512</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
@ -780,8 +1284,8 @@ Content-Type: text/xml; charset=utf-8
|
||||
<TopLeftCorner>-180 90</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>2045</MatrixWidth>
|
||||
<MatrixHeight>1023</MatrixHeight>
|
||||
<MatrixWidth>2048</MatrixWidth>
|
||||
<MatrixHeight>1024</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>11</ows:Identifier>
|
||||
@ -789,8 +1293,8 @@ Content-Type: text/xml; charset=utf-8
|
||||
<TopLeftCorner>-180 90</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>4089</MatrixWidth>
|
||||
<MatrixHeight>2045</MatrixHeight>
|
||||
<MatrixWidth>4096</MatrixWidth>
|
||||
<MatrixHeight>2048</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>12</ows:Identifier>
|
||||
@ -798,8 +1302,8 @@ Content-Type: text/xml; charset=utf-8
|
||||
<TopLeftCorner>-180 90</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>8178</MatrixWidth>
|
||||
<MatrixHeight>4089</MatrixHeight>
|
||||
<MatrixWidth>8192</MatrixWidth>
|
||||
<MatrixHeight>4096</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>13</ows:Identifier>
|
||||
@ -807,8 +1311,8 @@ Content-Type: text/xml; charset=utf-8
|
||||
<TopLeftCorner>-180 90</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>16355</MatrixWidth>
|
||||
<MatrixHeight>8178</MatrixHeight>
|
||||
<MatrixWidth>16384</MatrixWidth>
|
||||
<MatrixHeight>8192</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>14</ows:Identifier>
|
||||
@ -816,8 +1320,8 @@ Content-Type: text/xml; charset=utf-8
|
||||
<TopLeftCorner>-180 90</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>32709</MatrixWidth>
|
||||
<MatrixHeight>16355</MatrixHeight>
|
||||
<MatrixWidth>32768</MatrixWidth>
|
||||
<MatrixHeight>16384</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>15</ows:Identifier>
|
||||
@ -825,8 +1329,8 @@ Content-Type: text/xml; charset=utf-8
|
||||
<TopLeftCorner>-180 90</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>65418</MatrixWidth>
|
||||
<MatrixHeight>32709</MatrixHeight>
|
||||
<MatrixWidth>65536</MatrixWidth>
|
||||
<MatrixHeight>32768</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>16</ows:Identifier>
|
||||
@ -834,8 +1338,8 @@ Content-Type: text/xml; charset=utf-8
|
||||
<TopLeftCorner>-180 90</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>130836</MatrixWidth>
|
||||
<MatrixHeight>65418</MatrixHeight>
|
||||
<MatrixWidth>131072</MatrixWidth>
|
||||
<MatrixHeight>65536</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>17</ows:Identifier>
|
||||
@ -843,8 +1347,8 @@ Content-Type: text/xml; charset=utf-8
|
||||
<TopLeftCorner>-180 90</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>261672</MatrixWidth>
|
||||
<MatrixHeight>130836</MatrixHeight>
|
||||
<MatrixWidth>262144</MatrixWidth>
|
||||
<MatrixHeight>131072</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>18</ows:Identifier>
|
||||
@ -852,8 +1356,8 @@ Content-Type: text/xml; charset=utf-8
|
||||
<TopLeftCorner>-180 90</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>523344</MatrixWidth>
|
||||
<MatrixHeight>261672</MatrixHeight>
|
||||
<MatrixWidth>524288</MatrixWidth>
|
||||
<MatrixHeight>262144</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>19</ows:Identifier>
|
||||
@ -861,8 +1365,8 @@ Content-Type: text/xml; charset=utf-8
|
||||
<TopLeftCorner>-180 90</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>1046688</MatrixWidth>
|
||||
<MatrixHeight>523344</MatrixHeight>
|
||||
<MatrixWidth>1048576</MatrixWidth>
|
||||
<MatrixHeight>524288</MatrixHeight>
|
||||
</TileMatrix>
|
||||
</TileMatrixSet>
|
||||
</Contents>
|
||||
|
1373
tests/testdata/qgis_server/wmts_getcapabilities_config.txt
vendored
Normal file
1373
tests/testdata/qgis_server/wmts_getcapabilities_config.txt
vendored
Normal file
File diff suppressed because it is too large
Load Diff
754
tests/testdata/qgis_server/wmts_getcapabilities_config_3857.txt
vendored
Normal file
754
tests/testdata/qgis_server/wmts_getcapabilities_config_3857.txt
vendored
Normal file
@ -0,0 +1,754 @@
|
||||
Content-Length: 45435
|
||||
Content-Type: text/xml; charset=utf-8
|
||||
|
||||
<Capabilities xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns="http://www.opengis.net/wmts/1.0" xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd" version="1.0.0" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<ows:ServiceIdentification>
|
||||
<ows:ServiceType>OGC WMTS</ows:ServiceType>
|
||||
<ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>
|
||||
<ows:Title>QGIS Server test</ows:Title>
|
||||
<ows:Abstract><![CDATA[Simple test app.]]></ows:Abstract>
|
||||
<ows:Fees>conditions unknown</ows:Fees>
|
||||
<ows:AccessConstraints>None</ows:AccessConstraints>
|
||||
</ows:ServiceIdentification>
|
||||
<ows:ServiceProvider>
|
||||
<ows:ProviderName>QGIS</ows:ProviderName>
|
||||
<ows:ServiceContact>
|
||||
<ows:IndividualName>Stéphane Brunner</ows:IndividualName>
|
||||
</ows:ServiceContact>
|
||||
</ows:ServiceProvider>
|
||||
<ows:OperationsMetadata>
|
||||
<ows:Operation name="GetCapabilities">
|
||||
<ows:DCP>
|
||||
<ows:HTTP>
|
||||
<ows:Get xlink:href="https://www.qgis.org/"/>
|
||||
</ows:HTTP>
|
||||
</ows:DCP>
|
||||
</ows:Operation>
|
||||
<ows:Operation name="GetTile">
|
||||
<ows:DCP>
|
||||
<ows:HTTP>
|
||||
<ows:Get xlink:href="https://www.qgis.org/"/>
|
||||
</ows:HTTP>
|
||||
</ows:DCP>
|
||||
</ows:Operation>
|
||||
<ows:Operation name="GetFeatureInfo">
|
||||
<ows:DCP>
|
||||
<ows:HTTP>
|
||||
<ows:Get xlink:href="https://www.qgis.org/"/>
|
||||
</ows:HTTP>
|
||||
</ows:DCP>
|
||||
</ows:Operation>
|
||||
</ows:OperationsMetadata>
|
||||
<Contents>
|
||||
<Layer>
|
||||
<ows:Identifier>QGIS Server Hello World</ows:Identifier>
|
||||
<ows:Title>QGIS Server Hello World</ows:Title>
|
||||
<ows:Abstract>QGIS Server Hello World</ows:Abstract>
|
||||
<ows:WGS84BoundingBox>
|
||||
<LowerCorner>-174.766573 -69.957838</LowerCorner>
|
||||
<UpperCorner>177.930819 84.307876</UpperCorner>
|
||||
</ows:WGS84BoundingBox>
|
||||
<ows:BoundingBox crs="EPSG:3857">
|
||||
<LowerCorner>-19454925.898459 -11055006.822989</LowerCorner>
|
||||
<UpperCorner>19807168.136881 19143772.793601</UpperCorner>
|
||||
</ows:BoundingBox>
|
||||
<Style isDefault="true">
|
||||
<ows:Identifier>default</ows:Identifier>
|
||||
<ows:Title>default</ows:Title>
|
||||
</Style>
|
||||
<Format>image/png</Format>
|
||||
<TileMatrixSetLink>
|
||||
<TileMatrixSet>EPSG:3857</TileMatrixSet>
|
||||
<TileMatrixSetLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>0</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>0</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>0</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>1</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>1</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>1</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>2</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>3</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>3</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>3</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>7</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>6</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>4</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>15</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>12</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>5</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>31</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>24</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>6</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>62</MaxTileCol>
|
||||
<MinTileRow>1</MinTileRow>
|
||||
<MaxTileRow>49</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>7</TileMatrix>
|
||||
<MinTileCol>1</MinTileCol>
|
||||
<MaxTileCol>125</MaxTileCol>
|
||||
<MinTileRow>2</MinTileRow>
|
||||
<MaxTileRow>98</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>8</TileMatrix>
|
||||
<MinTileCol>3</MinTileCol>
|
||||
<MaxTileCol>251</MaxTileCol>
|
||||
<MinTileRow>5</MinTileRow>
|
||||
<MaxTileRow>196</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>9</TileMatrix>
|
||||
<MinTileCol>7</MinTileCol>
|
||||
<MaxTileCol>502</MaxTileCol>
|
||||
<MinTileRow>11</MinTileRow>
|
||||
<MaxTileRow>392</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>10</TileMatrix>
|
||||
<MinTileCol>14</MinTileCol>
|
||||
<MaxTileCol>1005</MaxTileCol>
|
||||
<MinTileRow>22</MinTileRow>
|
||||
<MaxTileRow>784</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>11</TileMatrix>
|
||||
<MinTileCol>29</MinTileCol>
|
||||
<MaxTileCol>2011</MaxTileCol>
|
||||
<MinTileRow>45</MinTileRow>
|
||||
<MaxTileRow>1569</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>12</TileMatrix>
|
||||
<MinTileCol>58</MinTileCol>
|
||||
<MaxTileCol>4022</MaxTileCol>
|
||||
<MinTileRow>90</MinTileRow>
|
||||
<MaxTileRow>3139</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>13</TileMatrix>
|
||||
<MinTileCol>117</MinTileCol>
|
||||
<MaxTileCol>8045</MaxTileCol>
|
||||
<MinTileRow>180</MinTileRow>
|
||||
<MaxTileRow>6278</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>14</TileMatrix>
|
||||
<MinTileCol>235</MinTileCol>
|
||||
<MaxTileCol>16090</MaxTileCol>
|
||||
<MinTileRow>360</MinTileRow>
|
||||
<MaxTileRow>12556</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>15</TileMatrix>
|
||||
<MinTileCol>470</MinTileCol>
|
||||
<MaxTileCol>32181</MaxTileCol>
|
||||
<MinTileRow>721</MinTileRow>
|
||||
<MaxTileRow>25112</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>16</TileMatrix>
|
||||
<MinTileCol>941</MinTileCol>
|
||||
<MaxTileCol>64362</MaxTileCol>
|
||||
<MinTileRow>1443</MinTileRow>
|
||||
<MaxTileRow>50225</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>17</TileMatrix>
|
||||
<MinTileCol>1882</MinTileCol>
|
||||
<MaxTileCol>128725</MaxTileCol>
|
||||
<MinTileRow>2887</MinTileRow>
|
||||
<MaxTileRow>100450</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>18</TileMatrix>
|
||||
<MinTileCol>3764</MinTileCol>
|
||||
<MaxTileCol>257451</MaxTileCol>
|
||||
<MinTileRow>5774</MinTileRow>
|
||||
<MaxTileRow>200900</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>19</TileMatrix>
|
||||
<MinTileCol>7528</MinTileCol>
|
||||
<MaxTileCol>514903</MaxTileCol>
|
||||
<MinTileRow>11549</MinTileRow>
|
||||
<MaxTileRow>401801</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>20</TileMatrix>
|
||||
<MinTileCol>15057</MinTileCol>
|
||||
<MaxTileCol>1029806</MaxTileCol>
|
||||
<MinTileRow>23099</MinTileRow>
|
||||
<MaxTileRow>803602</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
</TileMatrixSetLimits>
|
||||
</TileMatrixSetLink>
|
||||
</Layer>
|
||||
<Layer>
|
||||
<ows:Identifier>CountryGroup</ows:Identifier>
|
||||
<ows:Title>CountryGroup</ows:Title>
|
||||
<ows:WGS84BoundingBox>
|
||||
<LowerCorner>-176.248495 -67.592996</LowerCorner>
|
||||
<UpperCorner>179.412741 83.621086</UpperCorner>
|
||||
</ows:WGS84BoundingBox>
|
||||
<ows:BoundingBox crs="EPSG:3857">
|
||||
<LowerCorner>-19619892.68012 -10327100.342322</LowerCorner>
|
||||
<UpperCorner>19972134.918542 18415866.312934</UpperCorner>
|
||||
</ows:BoundingBox>
|
||||
<Style isDefault="true">
|
||||
<ows:Identifier>default</ows:Identifier>
|
||||
<ows:Title>default</ows:Title>
|
||||
</Style>
|
||||
<Format>image/png</Format>
|
||||
<InfoFormat>text/plain</InfoFormat>
|
||||
<InfoFormat>text/html</InfoFormat>
|
||||
<InfoFormat>text/xml</InfoFormat>
|
||||
<InfoFormat>application/vnd.ogc.gml</InfoFormat>
|
||||
<InfoFormat>application/vnd.ogc.gml/3.1.1</InfoFormat>
|
||||
<TileMatrixSetLink>
|
||||
<TileMatrixSet>EPSG:3857</TileMatrixSet>
|
||||
<TileMatrixSetLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>0</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>0</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>0</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>1</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>1</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>1</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>2</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>3</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>2</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>3</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>7</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>5</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>4</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>15</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>11</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>5</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>31</MaxTileCol>
|
||||
<MinTileRow>1</MinTileRow>
|
||||
<MaxTileRow>23</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>6</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>63</MaxTileCol>
|
||||
<MinTileRow>2</MinTileRow>
|
||||
<MaxTileRow>47</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>7</TileMatrix>
|
||||
<MinTileCol>1</MinTileCol>
|
||||
<MaxTileCol>126</MaxTileCol>
|
||||
<MinTileRow>5</MinTileRow>
|
||||
<MaxTileRow>95</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>8</TileMatrix>
|
||||
<MinTileCol>2</MinTileCol>
|
||||
<MaxTileCol>252</MaxTileCol>
|
||||
<MinTileRow>10</MinTileRow>
|
||||
<MaxTileRow>191</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>9</TileMatrix>
|
||||
<MinTileCol>5</MinTileCol>
|
||||
<MaxTileCol>504</MaxTileCol>
|
||||
<MinTileRow>20</MinTileRow>
|
||||
<MaxTileRow>383</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>10</TileMatrix>
|
||||
<MinTileCol>10</MinTileCol>
|
||||
<MaxTileCol>1009</MaxTileCol>
|
||||
<MinTileRow>40</MinTileRow>
|
||||
<MaxTileRow>766</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>11</TileMatrix>
|
||||
<MinTileCol>21</MinTileCol>
|
||||
<MaxTileCol>2019</MaxTileCol>
|
||||
<MinTileRow>81</MinTileRow>
|
||||
<MaxTileRow>1532</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>12</TileMatrix>
|
||||
<MinTileCol>42</MinTileCol>
|
||||
<MaxTileCol>4039</MaxTileCol>
|
||||
<MinTileRow>163</MinTileRow>
|
||||
<MaxTileRow>3065</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>13</TileMatrix>
|
||||
<MinTileCol>84</MinTileCol>
|
||||
<MaxTileCol>8078</MaxTileCol>
|
||||
<MinTileRow>327</MinTileRow>
|
||||
<MaxTileRow>6131</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>14</TileMatrix>
|
||||
<MinTileCol>168</MinTileCol>
|
||||
<MaxTileCol>16157</MaxTileCol>
|
||||
<MinTileRow>654</MinTileRow>
|
||||
<MaxTileRow>12262</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>15</TileMatrix>
|
||||
<MinTileCol>337</MinTileCol>
|
||||
<MaxTileCol>32314</MaxTileCol>
|
||||
<MinTileRow>1309</MinTileRow>
|
||||
<MaxTileRow>24524</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>16</TileMatrix>
|
||||
<MinTileCol>674</MinTileCol>
|
||||
<MaxTileCol>64629</MaxTileCol>
|
||||
<MinTileRow>2619</MinTileRow>
|
||||
<MaxTileRow>49049</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>17</TileMatrix>
|
||||
<MinTileCol>1349</MinTileCol>
|
||||
<MaxTileCol>129258</MaxTileCol>
|
||||
<MinTileRow>5239</MinTileRow>
|
||||
<MaxTileRow>98098</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>18</TileMatrix>
|
||||
<MinTileCol>2698</MinTileCol>
|
||||
<MaxTileCol>258517</MaxTileCol>
|
||||
<MinTileRow>10478</MinTileRow>
|
||||
<MaxTileRow>196197</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>19</TileMatrix>
|
||||
<MinTileCol>5396</MinTileCol>
|
||||
<MaxTileCol>517035</MaxTileCol>
|
||||
<MinTileRow>20956</MinTileRow>
|
||||
<MaxTileRow>392394</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>20</TileMatrix>
|
||||
<MinTileCol>10793</MinTileCol>
|
||||
<MaxTileCol>1034070</MaxTileCol>
|
||||
<MinTileRow>41912</MinTileRow>
|
||||
<MaxTileRow>784789</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
</TileMatrixSetLimits>
|
||||
</TileMatrixSetLink>
|
||||
</Layer>
|
||||
<Layer>
|
||||
<ows:Identifier>Hello</ows:Identifier>
|
||||
<ows:WGS84BoundingBox>
|
||||
<LowerCorner>-132.467818 -1.006739</LowerCorner>
|
||||
<UpperCorner>101.888717 69.520496</UpperCorner>
|
||||
</ows:WGS84BoundingBox>
|
||||
<ows:BoundingBox crs="EPSG:3857">
|
||||
<LowerCorner>-14746250.075131 -112075.428077</LowerCorner>
|
||||
<UpperCorner>11342200.077197 10914413.714128</UpperCorner>
|
||||
</ows:BoundingBox>
|
||||
<Style isDefault="true">
|
||||
<ows:Identifier>default</ows:Identifier>
|
||||
<ows:Title>default</ows:Title>
|
||||
</Style>
|
||||
<Format>image/png</Format>
|
||||
<InfoFormat>text/plain</InfoFormat>
|
||||
<InfoFormat>text/html</InfoFormat>
|
||||
<InfoFormat>text/xml</InfoFormat>
|
||||
<InfoFormat>application/vnd.ogc.gml</InfoFormat>
|
||||
<InfoFormat>application/vnd.ogc.gml/3.1.1</InfoFormat>
|
||||
<TileMatrixSetLink>
|
||||
<TileMatrixSet>EPSG:3857</TileMatrixSet>
|
||||
<TileMatrixSetLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>0</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>0</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>0</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>1</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>1</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>0</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>2</TileMatrix>
|
||||
<MinTileCol>0</MinTileCol>
|
||||
<MaxTileCol>3</MaxTileCol>
|
||||
<MinTileRow>0</MinTileRow>
|
||||
<MaxTileRow>1</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>3</TileMatrix>
|
||||
<MinTileCol>1</MinTileCol>
|
||||
<MaxTileCol>6</MaxTileCol>
|
||||
<MinTileRow>1</MinTileRow>
|
||||
<MaxTileRow>3</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>4</TileMatrix>
|
||||
<MinTileCol>2</MinTileCol>
|
||||
<MaxTileCol>12</MaxTileCol>
|
||||
<MinTileRow>3</MinTileRow>
|
||||
<MaxTileRow>7</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>5</TileMatrix>
|
||||
<MinTileCol>4</MinTileCol>
|
||||
<MaxTileCol>24</MaxTileCol>
|
||||
<MinTileRow>7</MinTileRow>
|
||||
<MaxTileRow>15</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>6</TileMatrix>
|
||||
<MinTileCol>8</MinTileCol>
|
||||
<MaxTileCol>49</MaxTileCol>
|
||||
<MinTileRow>14</MinTileRow>
|
||||
<MaxTileRow>31</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>7</TileMatrix>
|
||||
<MinTileCol>16</MinTileCol>
|
||||
<MaxTileCol>99</MaxTileCol>
|
||||
<MinTileRow>28</MinTileRow>
|
||||
<MaxTileRow>63</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>8</TileMatrix>
|
||||
<MinTileCol>33</MinTileCol>
|
||||
<MaxTileCol>198</MaxTileCol>
|
||||
<MinTileRow>57</MinTileRow>
|
||||
<MaxTileRow>127</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>9</TileMatrix>
|
||||
<MinTileCol>66</MinTileCol>
|
||||
<MaxTileCol>396</MaxTileCol>
|
||||
<MinTileRow>115</MinTileRow>
|
||||
<MaxTileRow>254</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>10</TileMatrix>
|
||||
<MinTileCol>133</MinTileCol>
|
||||
<MaxTileCol>792</MaxTileCol>
|
||||
<MinTileRow>230</MinTileRow>
|
||||
<MaxTileRow>508</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>11</TileMatrix>
|
||||
<MinTileCol>267</MinTileCol>
|
||||
<MaxTileCol>1584</MaxTileCol>
|
||||
<MinTileRow>460</MinTileRow>
|
||||
<MaxTileRow>1017</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>12</TileMatrix>
|
||||
<MinTileCol>534</MinTileCol>
|
||||
<MaxTileCol>3168</MaxTileCol>
|
||||
<MinTileRow>921</MinTileRow>
|
||||
<MaxTileRow>2034</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>13</TileMatrix>
|
||||
<MinTileCol>1068</MinTileCol>
|
||||
<MaxTileCol>6336</MaxTileCol>
|
||||
<MinTileRow>1842</MinTileRow>
|
||||
<MaxTileRow>4068</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>14</TileMatrix>
|
||||
<MinTileCol>2136</MinTileCol>
|
||||
<MaxTileCol>12672</MaxTileCol>
|
||||
<MinTileRow>3684</MinTileRow>
|
||||
<MaxTileRow>8137</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>15</TileMatrix>
|
||||
<MinTileCol>4273</MinTileCol>
|
||||
<MaxTileCol>25344</MaxTileCol>
|
||||
<MinTileRow>7368</MinTileRow>
|
||||
<MaxTileRow>16274</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>16</TileMatrix>
|
||||
<MinTileCol>8547</MinTileCol>
|
||||
<MaxTileCol>50689</MaxTileCol>
|
||||
<MinTileRow>14736</MinTileRow>
|
||||
<MaxTileRow>32548</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>17</TileMatrix>
|
||||
<MinTileCol>17094</MinTileCol>
|
||||
<MaxTileCol>101378</MaxTileCol>
|
||||
<MinTileRow>29473</MinTileRow>
|
||||
<MaxTileRow>65097</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>18</TileMatrix>
|
||||
<MinTileCol>34188</MinTileCol>
|
||||
<MaxTileCol>202756</MaxTileCol>
|
||||
<MinTileRow>58947</MinTileRow>
|
||||
<MaxTileRow>130194</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>19</TileMatrix>
|
||||
<MinTileCol>68377</MinTileCol>
|
||||
<MaxTileCol>405512</MaxTileCol>
|
||||
<MinTileRow>117895</MinTileRow>
|
||||
<MaxTileRow>260388</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
<TileMatrixLimits>
|
||||
<TileMatrix>20</TileMatrix>
|
||||
<MinTileCol>136755</MinTileCol>
|
||||
<MaxTileCol>811025</MaxTileCol>
|
||||
<MinTileRow>235791</MinTileRow>
|
||||
<MaxTileRow>520776</MaxTileRow>
|
||||
</TileMatrixLimits>
|
||||
</TileMatrixSetLimits>
|
||||
</TileMatrixSetLink>
|
||||
</Layer>
|
||||
<TileMatrixSet>
|
||||
<ows:Identifier>EPSG:3857</ows:Identifier>
|
||||
<ows:SupportedCRS>EPSG:3857</ows:SupportedCRS>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>0</ows:Identifier>
|
||||
<ScaleDenominator>559082264.028718</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>1</MatrixWidth>
|
||||
<MatrixHeight>1</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>1</ows:Identifier>
|
||||
<ScaleDenominator>279541132.014359</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>2</MatrixWidth>
|
||||
<MatrixHeight>2</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>2</ows:Identifier>
|
||||
<ScaleDenominator>139770566.007179</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>4</MatrixWidth>
|
||||
<MatrixHeight>4</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>3</ows:Identifier>
|
||||
<ScaleDenominator>69885283.00359</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>8</MatrixWidth>
|
||||
<MatrixHeight>8</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>4</ows:Identifier>
|
||||
<ScaleDenominator>34942641.501795</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>16</MatrixWidth>
|
||||
<MatrixHeight>16</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>5</ows:Identifier>
|
||||
<ScaleDenominator>17471320.750897</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>32</MatrixWidth>
|
||||
<MatrixHeight>32</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>6</ows:Identifier>
|
||||
<ScaleDenominator>8735660.375449</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>64</MatrixWidth>
|
||||
<MatrixHeight>64</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>7</ows:Identifier>
|
||||
<ScaleDenominator>4367830.187724</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>128</MatrixWidth>
|
||||
<MatrixHeight>128</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>8</ows:Identifier>
|
||||
<ScaleDenominator>2183915.093862</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>256</MatrixWidth>
|
||||
<MatrixHeight>256</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>9</ows:Identifier>
|
||||
<ScaleDenominator>1091957.546931</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>512</MatrixWidth>
|
||||
<MatrixHeight>512</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>10</ows:Identifier>
|
||||
<ScaleDenominator>545978.773466</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>1024</MatrixWidth>
|
||||
<MatrixHeight>1024</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>11</ows:Identifier>
|
||||
<ScaleDenominator>272989.386733</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>2048</MatrixWidth>
|
||||
<MatrixHeight>2048</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>12</ows:Identifier>
|
||||
<ScaleDenominator>136494.693366</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>4096</MatrixWidth>
|
||||
<MatrixHeight>4096</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>13</ows:Identifier>
|
||||
<ScaleDenominator>68247.346683</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>8192</MatrixWidth>
|
||||
<MatrixHeight>8192</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>14</ows:Identifier>
|
||||
<ScaleDenominator>34123.673342</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>16384</MatrixWidth>
|
||||
<MatrixHeight>16384</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>15</ows:Identifier>
|
||||
<ScaleDenominator>17061.836671</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>32768</MatrixWidth>
|
||||
<MatrixHeight>32768</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>16</ows:Identifier>
|
||||
<ScaleDenominator>8530.918335</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>65536</MatrixWidth>
|
||||
<MatrixHeight>65536</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>17</ows:Identifier>
|
||||
<ScaleDenominator>4265.459168</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>131072</MatrixWidth>
|
||||
<MatrixHeight>131072</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>18</ows:Identifier>
|
||||
<ScaleDenominator>2132.729584</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>262144</MatrixWidth>
|
||||
<MatrixHeight>262144</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>19</ows:Identifier>
|
||||
<ScaleDenominator>1066.364792</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>524288</MatrixWidth>
|
||||
<MatrixHeight>524288</MatrixHeight>
|
||||
</TileMatrix>
|
||||
<TileMatrix>
|
||||
<ows:Identifier>20</ows:Identifier>
|
||||
<ScaleDenominator>533.182396</ScaleDenominator>
|
||||
<TopLeftCorner>-20037508.342789 20037508.342789</TopLeftCorner>
|
||||
<TileWidth>256</TileWidth>
|
||||
<TileHeight>256</TileHeight>
|
||||
<MatrixWidth>1048576</MatrixWidth>
|
||||
<MatrixHeight>1048576</MatrixHeight>
|
||||
</TileMatrix>
|
||||
</TileMatrixSet>
|
||||
</Contents>
|
||||
</Capabilities>
|
@ -1,5 +1,5 @@
|
||||
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
|
||||
<qgis projectname="QGIS Server Hello World" version="3.3.0-Master">
|
||||
<qgis projectname="QGIS Server Hello World" version="3.5.0-Master">
|
||||
<homePath path=""/>
|
||||
<title>QGIS Server Hello World</title>
|
||||
<autotransaction active="0"/>
|
||||
@ -80,19 +80,19 @@
|
||||
<item>Country_Diagrams_208edc6e_7828_426b_a7d8_c2383f10761d</item>
|
||||
</custom-order>
|
||||
</layer-tree-group>
|
||||
<snapping-settings intersection-snapping="0" tolerance="40" unit="1" type="1" mode="3" enabled="1">
|
||||
<snapping-settings enabled="1" intersection-snapping="0" mode="3" unit="1" tolerance="40" type="1">
|
||||
<individual-layer-settings>
|
||||
<layer-setting id="Hello_SubsetString_copy20160222085231770" tolerance="0" type="1" enabled="1" units="2"/>
|
||||
<layer-setting id="hello20131022151106574" tolerance="40" type="1" enabled="1" units="1"/>
|
||||
<layer-setting id="Hello_copy20150804164427541" tolerance="0" type="1" enabled="1" units="2"/>
|
||||
<layer-setting id="points20150803121107046" tolerance="0" type="1" enabled="1" units="2"/>
|
||||
<layer-setting id="Country_Diagrams_208edc6e_7828_426b_a7d8_c2383f10761d" tolerance="12" type="1" enabled="1" units="1"/>
|
||||
<layer-setting id="Hello_Project_SubsetString_copy20160223113949592" tolerance="0" type="1" enabled="1" units="2"/>
|
||||
<layer-setting id="Country_copy20161127151800736" tolerance="0" type="1" enabled="1" units="2"/>
|
||||
<layer-setting id="Country_Labels_67649087_4e95_4483_9c32_a9e14b8360db" tolerance="12" type="1" enabled="1" units="1"/>
|
||||
<layer-setting id="Country_07a7a712_8bf3_4cb0_abde_58338f73a4b2" tolerance="12" type="1" enabled="1" units="1"/>
|
||||
<layer-setting id="country20131022151106556" tolerance="40" type="1" enabled="1" units="1"/>
|
||||
<layer-setting id="country20170328164317226" tolerance="0" type="1" enabled="0" units="2"/>
|
||||
<layer-setting enabled="1" units="2" id="Hello_Project_SubsetString_copy20160223113949592" tolerance="0" type="1"/>
|
||||
<layer-setting enabled="1" units="1" id="Country_Diagrams_208edc6e_7828_426b_a7d8_c2383f10761d" tolerance="12" type="1"/>
|
||||
<layer-setting enabled="1" units="1" id="country20131022151106556" tolerance="40" type="1"/>
|
||||
<layer-setting enabled="1" units="1" id="Country_Labels_67649087_4e95_4483_9c32_a9e14b8360db" tolerance="12" type="1"/>
|
||||
<layer-setting enabled="0" units="2" id="country20170328164317226" tolerance="0" type="1"/>
|
||||
<layer-setting enabled="1" units="2" id="points20150803121107046" tolerance="0" type="1"/>
|
||||
<layer-setting enabled="1" units="2" id="Hello_SubsetString_copy20160222085231770" tolerance="0" type="1"/>
|
||||
<layer-setting enabled="1" units="1" id="hello20131022151106574" tolerance="40" type="1"/>
|
||||
<layer-setting enabled="1" units="2" id="Hello_copy20150804164427541" tolerance="0" type="1"/>
|
||||
<layer-setting enabled="1" units="2" id="Country_copy20161127151800736" tolerance="0" type="1"/>
|
||||
<layer-setting enabled="1" units="1" id="Country_07a7a712_8bf3_4cb0_abde_58338f73a4b2" tolerance="12" type="1"/>
|
||||
</individual-layer-settings>
|
||||
</snapping-settings>
|
||||
<relations/>
|
||||
@ -119,6 +119,7 @@
|
||||
</destinationsrs>
|
||||
<rendermaptile>0</rendermaptile>
|
||||
</mapcanvas>
|
||||
<projectModels/>
|
||||
<legend updateDrawingOrder="true">
|
||||
<legendlayer name="db_point" showFeatureCount="0" drawingOrder="-1" open="true" checked="Qt::Checked">
|
||||
<filegroup open="true" hidden="false">
|
||||
@ -732,7 +733,12 @@
|
||||
</map-layer-style>
|
||||
</map-layer-style-manager>
|
||||
<auxiliaryLayer/>
|
||||
<renderer-v2 symbollevels="0" enableorderby="0" type="singleSymbol" forceraster="0">
|
||||
<flags>
|
||||
<Identifiable>1</Identifiable>
|
||||
<Removable>1</Removable>
|
||||
<Searchable>1</Searchable>
|
||||
</flags>
|
||||
<renderer-v2 symbollevels="0" forceraster="0" enableorderby="0" type="singleSymbol">
|
||||
<symbols>
|
||||
<symbol name="0" alpha="1" type="fill" clip_to_extent="1">
|
||||
<layer locked="0" class="SimpleFill" enabled="1" pass="0">
|
||||
@ -819,6 +825,10 @@
|
||||
</Option>
|
||||
</properties>
|
||||
</DiagramLayerSettings>
|
||||
<geometryOptions removeDuplicateNodes="0" geometryPrecision="0">
|
||||
<activeChecks/>
|
||||
<checkConfiguration/>
|
||||
</geometryOptions>
|
||||
<fieldConfiguration>
|
||||
<field name="pk">
|
||||
<editWidget type="">
|
||||
@ -939,7 +949,12 @@
|
||||
<map-layer-style name="default"/>
|
||||
</map-layer-style-manager>
|
||||
<auxiliaryLayer/>
|
||||
<renderer-v2 symbollevels="0" enableorderby="0" type="singleSymbol" forceraster="0">
|
||||
<flags>
|
||||
<Identifiable>1</Identifiable>
|
||||
<Removable>1</Removable>
|
||||
<Searchable>1</Searchable>
|
||||
</flags>
|
||||
<renderer-v2 symbollevels="0" forceraster="0" enableorderby="0" type="singleSymbol">
|
||||
<symbols>
|
||||
<symbol name="0" alpha="1" type="fill" clip_to_extent="1">
|
||||
<layer locked="0" class="SimpleFill" enabled="1" pass="0">
|
||||
@ -991,6 +1006,10 @@
|
||||
</Option>
|
||||
</properties>
|
||||
</DiagramLayerSettings>
|
||||
<geometryOptions removeDuplicateNodes="0" geometryPrecision="0">
|
||||
<activeChecks/>
|
||||
<checkConfiguration/>
|
||||
</geometryOptions>
|
||||
<fieldConfiguration>
|
||||
<field name="pk">
|
||||
<editWidget type="TextEdit">
|
||||
@ -1053,8 +1072,8 @@ An example follows:
|
||||
from qgis.PyQt.QtWidgets import QWidget
|
||||
|
||||
def my_form_open(dialog, layer, feature):
|
||||
geom = feature.geometry()
|
||||
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||
geom = feature.geometry()
|
||||
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||
]]></editforminitcode>
|
||||
<featformsuppress>0</featformsuppress>
|
||||
<editorlayout>generatedlayout</editorlayout>
|
||||
@ -1415,8 +1434,8 @@ An example follows:
|
||||
from qgis.PyQt.QtWidgets import QWidget
|
||||
|
||||
def my_form_open(dialog, layer, feature):
|
||||
geom = feature.geometry()
|
||||
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||
geom = feature.geometry()
|
||||
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||
]]></editforminitcode>
|
||||
<featformsuppress>0</featformsuppress>
|
||||
<editorlayout>generatedlayout</editorlayout>
|
||||
@ -1437,6 +1456,11 @@ def my_form_open(dialog, layer, feature):
|
||||
<map-layer-style name="default"/>
|
||||
</map-layer-style-manager>
|
||||
<auxiliaryLayer/>
|
||||
<flags>
|
||||
<Identifiable>1</Identifiable>
|
||||
<Removable>1</Removable>
|
||||
<Searchable>1</Searchable>
|
||||
</flags>
|
||||
<renderer-v2 symbollevels="0" enableorderby="0" type="singleSymbol" forceraster="0">
|
||||
<symbols>
|
||||
<symbol name="0" alpha="1" type="fill" clip_to_extent="1">
|
||||
@ -1590,8 +1614,8 @@ An example follows:
|
||||
from qgis.PyQt.QtWidgets import QWidget
|
||||
|
||||
def my_form_open(dialog, layer, feature):
|
||||
geom = feature.geometry()
|
||||
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||
geom = feature.geometry()
|
||||
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||
]]></editforminitcode>
|
||||
<featformsuppress>0</featformsuppress>
|
||||
<editorlayout>generatedlayout</editorlayout>
|
||||
@ -1955,8 +1979,8 @@ An example follows:
|
||||
from qgis.PyQt.QtWidgets import QWidget
|
||||
|
||||
def my_form_open(dialog, layer, feature):
|
||||
geom = feature.geometry()
|
||||
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||
geom = feature.geometry()
|
||||
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||
]]></editforminitcode>
|
||||
<featformsuppress>0</featformsuppress>
|
||||
<editorlayout>generatedlayout</editorlayout>
|
||||
@ -1977,6 +2001,11 @@ def my_form_open(dialog, layer, feature):
|
||||
<map-layer-style name="default"/>
|
||||
</map-layer-style-manager>
|
||||
<auxiliaryLayer/>
|
||||
<flags>
|
||||
<Identifiable>1</Identifiable>
|
||||
<Removable>1</Removable>
|
||||
<Searchable>1</Searchable>
|
||||
</flags>
|
||||
<renderer-v2 symbollevels="0" enableorderby="0" type="singleSymbol" forceraster="0">
|
||||
<symbols>
|
||||
<symbol name="0" alpha="1" type="fill" clip_to_extent="1">
|
||||
@ -2130,8 +2159,8 @@ An example follows:
|
||||
from qgis.PyQt.QtWidgets import QWidget
|
||||
|
||||
def my_form_open(dialog, layer, feature):
|
||||
geom = feature.geometry()
|
||||
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||
geom = feature.geometry()
|
||||
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||
]]></editforminitcode>
|
||||
<featformsuppress>0</featformsuppress>
|
||||
<editorlayout>generatedlayout</editorlayout>
|
||||
@ -2208,6 +2237,11 @@ def my_form_open(dialog, layer, feature):
|
||||
<map-layer-style name="default"/>
|
||||
</map-layer-style-manager>
|
||||
<auxiliaryLayer/>
|
||||
<flags>
|
||||
<Identifiable>1</Identifiable>
|
||||
<Removable>1</Removable>
|
||||
<Searchable>1</Searchable>
|
||||
</flags>
|
||||
<renderer-v2 symbollevels="0" enableorderby="0" type="singleSymbol" forceraster="0">
|
||||
<symbols>
|
||||
<symbol name="0" alpha="1" type="fill" clip_to_extent="1">
|
||||
@ -2352,8 +2386,8 @@ An example follows:
|
||||
from PyQt4.QtGui import QWidget
|
||||
|
||||
def my_form_open(dialog, layer, feature):
|
||||
geom = feature.geometry()
|
||||
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||
geom = feature.geometry()
|
||||
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||
]]></editforminitcode>
|
||||
<featformsuppress>0</featformsuppress>
|
||||
<editorlayout>generatedlayout</editorlayout>
|
||||
@ -2437,6 +2471,11 @@ def my_form_open(dialog, layer, feature):
|
||||
<map-layer-style name="default"/>
|
||||
</map-layer-style-manager>
|
||||
<auxiliaryLayer/>
|
||||
<flags>
|
||||
<Identifiable>1</Identifiable>
|
||||
<Removable>1</Removable>
|
||||
<Searchable>1</Searchable>
|
||||
</flags>
|
||||
<renderer-v2 symbollevels="0" enableorderby="0" type="singleSymbol" forceraster="0">
|
||||
<symbols>
|
||||
<symbol name="0" alpha="1" type="fill" clip_to_extent="1">
|
||||
@ -2576,8 +2615,8 @@ An example follows:
|
||||
from PyQt4.QtGui import QWidget
|
||||
|
||||
def my_form_open(dialog, layer, feature):
|
||||
geom = feature.geometry()
|
||||
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||
geom = feature.geometry()
|
||||
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||
]]></editforminitcode>
|
||||
<featformsuppress>0</featformsuppress>
|
||||
<editorlayout>generatedlayout</editorlayout>
|
||||
@ -2661,6 +2700,11 @@ def my_form_open(dialog, layer, feature):
|
||||
<map-layer-style name="default"/>
|
||||
</map-layer-style-manager>
|
||||
<auxiliaryLayer/>
|
||||
<flags>
|
||||
<Identifiable>1</Identifiable>
|
||||
<Removable>1</Removable>
|
||||
<Searchable>1</Searchable>
|
||||
</flags>
|
||||
<renderer-v2 symbollevels="0" enableorderby="0" type="singleSymbol" forceraster="0">
|
||||
<symbols>
|
||||
<symbol name="0" alpha="1" type="fill" clip_to_extent="1">
|
||||
@ -2800,8 +2844,8 @@ An example follows:
|
||||
from PyQt4.QtGui import QWidget
|
||||
|
||||
def my_form_open(dialog, layer, feature):
|
||||
geom = feature.geometry()
|
||||
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||
geom = feature.geometry()
|
||||
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||
]]></editforminitcode>
|
||||
<featformsuppress>0</featformsuppress>
|
||||
<editorlayout>generatedlayout</editorlayout>
|
||||
@ -3370,6 +3414,11 @@ def my_form_open(dialog, layer, feature):
|
||||
</map-layer-style>
|
||||
</map-layer-style-manager>
|
||||
<auxiliaryLayer/>
|
||||
<flags>
|
||||
<Identifiable>1</Identifiable>
|
||||
<Removable>1</Removable>
|
||||
<Searchable>1</Searchable>
|
||||
</flags>
|
||||
<renderer-v2 symbollevels="0" enableorderby="0" type="singleSymbol" forceraster="0">
|
||||
<symbols>
|
||||
<symbol name="0" alpha="1" type="fill" clip_to_extent="1">
|
||||
@ -3577,7 +3626,12 @@ def my_form_open(dialog, layer, feature):
|
||||
<map-layer-style name="default"/>
|
||||
</map-layer-style-manager>
|
||||
<auxiliaryLayer/>
|
||||
<renderer-v2 symbollevels="0" enableorderby="0" type="singleSymbol" forceraster="0">
|
||||
<flags>
|
||||
<Identifiable>1</Identifiable>
|
||||
<Removable>1</Removable>
|
||||
<Searchable>1</Searchable>
|
||||
</flags>
|
||||
<renderer-v2 symbollevels="0" forceraster="0" enableorderby="0" type="singleSymbol">
|
||||
<symbols>
|
||||
<symbol name="0" alpha="1" type="fill" clip_to_extent="1">
|
||||
<layer locked="0" class="SimpleFill" enabled="1" pass="0">
|
||||
@ -3691,8 +3745,8 @@ An example follows:
|
||||
from qgis.PyQt.QtWidgets import QWidget
|
||||
|
||||
def my_form_open(dialog, layer, feature):
|
||||
geom = feature.geometry()
|
||||
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||
geom = feature.geometry()
|
||||
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||
]]></editforminitcode>
|
||||
<featformsuppress>0</featformsuppress>
|
||||
<editorlayout>generatedlayout</editorlayout>
|
||||
@ -3848,6 +3902,11 @@ def my_form_open(dialog, layer, feature):
|
||||
<map-layer-style name="default"/>
|
||||
</map-layer-style-manager>
|
||||
<auxiliaryLayer/>
|
||||
<flags>
|
||||
<Identifiable>1</Identifiable>
|
||||
<Removable>1</Removable>
|
||||
<Searchable>1</Searchable>
|
||||
</flags>
|
||||
<renderer-v2 symbollevels="0" enableorderby="0" type="singleSymbol" forceraster="0">
|
||||
<symbols>
|
||||
<symbol name="0" alpha="1" type="fill" clip_to_extent="1">
|
||||
@ -4053,6 +4112,11 @@ def my_form_open(dialog, layer, feature):
|
||||
<map-layer-style name="default"/>
|
||||
</map-layer-style-manager>
|
||||
<auxiliaryLayer/>
|
||||
<flags>
|
||||
<Identifiable>1</Identifiable>
|
||||
<Removable>1</Removable>
|
||||
<Searchable>1</Searchable>
|
||||
</flags>
|
||||
<renderer-v2 symbollevels="0" enableorderby="0" type="singleSymbol" forceraster="0">
|
||||
<symbols>
|
||||
<symbol name="0" alpha="1" type="marker" clip_to_extent="1">
|
||||
@ -4385,6 +4449,16 @@ def my_form_open(dialog, layer, feature):
|
||||
<Group type="QStringList"/>
|
||||
<Layer type="QStringList"/>
|
||||
</WMTSJpegLayers>
|
||||
<WMTSGrids>
|
||||
<Config type="QStringList">
|
||||
<value>EPSG:3857,20037508.342789248,-20037508.342789248,559082264.0287179,20</value>
|
||||
<value>EPSG:4326,90,-180,279541132.0143589,19</value>
|
||||
</Config>
|
||||
<CRS type="QStringList">
|
||||
<value>EPSG:3857</value>
|
||||
<value>EPSG:4326</value>
|
||||
</CRS>
|
||||
</WMTSGrids>
|
||||
</properties>
|
||||
<visibility-presets/>
|
||||
<transformContext/>
|
||||
@ -4510,6 +4584,7 @@ def my_form_open(dialog, layer, feature):
|
||||
<prop k="offset" v="0"/>
|
||||
<prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<prop k="offset_unit" v="MM"/>
|
||||
<prop k="ring_filter" v="0"/>
|
||||
<prop k="use_custom_dash" v="0"/>
|
||||
<prop k="width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||
<data_defined_properties>
|
||||
|
Loading…
x
Reference in New Issue
Block a user