mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-06 00:07:29 -04:00
Fixes #45872 : resolveReference after we load/create embedded group
This commit is contained in:
parent
1d306402d5
commit
5db95e3a4d
@ -13607,52 +13607,61 @@ void QgisApp::addMapLayer( QgsMapLayer *mapLayer )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void QgisApp::embedLayers()
|
void QgisApp::embedLayers()
|
||||||
{
|
{
|
||||||
//dialog to select groups/layers from other project files
|
//dialog to select groups/layers from other project files
|
||||||
QgsProjectLayerGroupDialog d( this );
|
QgsProjectLayerGroupDialog d( this );
|
||||||
if ( d.exec() == QDialog::Accepted && d.isValid() )
|
if ( d.exec() == QDialog::Accepted && d.isValid() )
|
||||||
{
|
{
|
||||||
QgsCanvasRefreshBlocker refreshBlocker;
|
addEmbeddedItems( d.selectedProjectFile(), d.selectedGroups(), d.selectedLayerIds() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
QString projectFile = d.selectedProjectFile();
|
void QgisApp::addEmbeddedItems( const QString &projectFile, const QStringList &groups, const QStringList &layerIds )
|
||||||
|
{
|
||||||
|
QgsCanvasRefreshBlocker refreshBlocker;
|
||||||
|
|
||||||
//groups
|
//groups
|
||||||
QStringList groups = d.selectedGroups();
|
QStringList::const_iterator groupIt = groups.constBegin();
|
||||||
QStringList::const_iterator groupIt = groups.constBegin();
|
for ( ; groupIt != groups.constEnd(); ++groupIt )
|
||||||
for ( ; groupIt != groups.constEnd(); ++groupIt )
|
{
|
||||||
|
QgsLayerTreeGroup *newGroup = QgsProject::instance()->createEmbeddedGroup( *groupIt, projectFile, QStringList() );
|
||||||
|
|
||||||
|
if ( newGroup )
|
||||||
|
QgsProject::instance()->layerTreeRoot()->addChildNode( newGroup );
|
||||||
|
}
|
||||||
|
|
||||||
|
//layer ids
|
||||||
|
QList<QDomNode> brokenNodes;
|
||||||
|
|
||||||
|
// resolve dependencies
|
||||||
|
QgsLayerDefinition::DependencySorter depSorter( projectFile );
|
||||||
|
QStringList sortedIds = depSorter.sortedLayerIds();
|
||||||
|
const auto constSortedIds = sortedIds;
|
||||||
|
for ( const QString &id : constSortedIds )
|
||||||
|
{
|
||||||
|
const auto constLayerIds = layerIds;
|
||||||
|
for ( const QString &selId : constLayerIds )
|
||||||
{
|
{
|
||||||
QgsLayerTreeGroup *newGroup = QgsProject::instance()->createEmbeddedGroup( *groupIt, projectFile, QStringList() );
|
if ( selId == id )
|
||||||
|
QgsProject::instance()->createEmbeddedLayer( selId, projectFile, brokenNodes );
|
||||||
if ( newGroup )
|
|
||||||
QgsProject::instance()->layerTreeRoot()->addChildNode( newGroup );
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//layer ids
|
// fix broken relations and dependencies
|
||||||
QList<QDomNode> brokenNodes;
|
for ( const QString &id : constSortedIds )
|
||||||
|
{
|
||||||
|
QgsVectorLayer *vlayer = qobject_cast<QgsVectorLayer *>( QgsProject::instance()->mapLayer( id ) );
|
||||||
|
if ( vlayer )
|
||||||
|
vectorLayerStyleLoaded( vlayer, QgsMapLayer::AllStyleCategories );
|
||||||
|
}
|
||||||
|
|
||||||
// resolve dependencies
|
// Resolve references to other layers
|
||||||
QgsLayerDefinition::DependencySorter depSorter( projectFile );
|
QMap<QString, QgsMapLayer *> layers = QgsProject::instance()->mapLayers();
|
||||||
QStringList sortedIds = depSorter.sortedLayerIds();
|
for ( QMap<QString, QgsMapLayer *>::iterator it = layers.begin(); it != layers.end(); ++it )
|
||||||
QStringList layerIds = d.selectedLayerIds();
|
{
|
||||||
const auto constSortedIds = sortedIds;
|
it.value()->resolveReferences( QgsProject::instance() );
|
||||||
for ( const QString &id : constSortedIds )
|
|
||||||
{
|
|
||||||
const auto constLayerIds = layerIds;
|
|
||||||
for ( const QString &selId : constLayerIds )
|
|
||||||
{
|
|
||||||
if ( selId == id )
|
|
||||||
QgsProject::instance()->createEmbeddedLayer( selId, projectFile, brokenNodes );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// fix broken relations and dependencies
|
|
||||||
for ( const QString &id : constSortedIds )
|
|
||||||
{
|
|
||||||
QgsVectorLayer *vlayer = qobject_cast<QgsVectorLayer *>( QgsProject::instance()->mapLayer( id ) );
|
|
||||||
if ( vlayer )
|
|
||||||
vectorLayerStyleLoaded( vlayer, QgsMapLayer::AllStyleCategories );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1558,8 +1558,17 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow
|
|||||||
void showMeshCalculator();
|
void showMeshCalculator();
|
||||||
//! Open dialog to align raster layers
|
//! Open dialog to align raster layers
|
||||||
void showAlignRasterTool();
|
void showAlignRasterTool();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Called whenever user wants to embed layers
|
||||||
|
*/
|
||||||
void embedLayers();
|
void embedLayers();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Embed \a groups and \a layerIds items from \a projectFile
|
||||||
|
*/
|
||||||
|
void addEmbeddedItems( const QString &projectFile, const QStringList &groups, const QStringList &layerIds );
|
||||||
|
|
||||||
//! Creates a new map canvas view
|
//! Creates a new map canvas view
|
||||||
void newMapCanvas();
|
void newMapCanvas();
|
||||||
//! Creates a new 3D map canvas view
|
//! Creates a new 3D map canvas view
|
||||||
@ -2733,6 +2742,7 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow
|
|||||||
friend class QgsCanvasRefreshBlocker;
|
friend class QgsCanvasRefreshBlocker;
|
||||||
|
|
||||||
friend class TestQgisAppPython;
|
friend class TestQgisAppPython;
|
||||||
|
friend class TestQgisApp;
|
||||||
friend class QgisAppInterface;
|
friend class QgisAppInterface;
|
||||||
friend class QgsAppScreenShots;
|
friend class QgsAppScreenShots;
|
||||||
};
|
};
|
||||||
|
@ -1640,6 +1640,10 @@ bool QgsProject::readProjectFile( const QString &filename, QgsProject::ReadFlags
|
|||||||
mMainAnnotationLayer->readLayerXml( doc->documentElement().firstChildElement( QStringLiteral( "main-annotation-layer" ) ), context );
|
mMainAnnotationLayer->readLayerXml( doc->documentElement().firstChildElement( QStringLiteral( "main-annotation-layer" ) ), context );
|
||||||
mMainAnnotationLayer->setTransformContext( mTransformContext );
|
mMainAnnotationLayer->setTransformContext( mTransformContext );
|
||||||
|
|
||||||
|
// load embedded groups and layers
|
||||||
|
profile.switchTask( tr( "Loading embedded layers" ) );
|
||||||
|
loadEmbeddedNodes( mRootGroup, flags );
|
||||||
|
|
||||||
// Resolve references to other layers
|
// Resolve references to other layers
|
||||||
// Needs to be done here once all dependent layers are loaded
|
// Needs to be done here once all dependent layers are loaded
|
||||||
profile.switchTask( tr( "Resolving layer references" ) );
|
profile.switchTask( tr( "Resolving layer references" ) );
|
||||||
@ -1651,10 +1655,6 @@ bool QgsProject::readProjectFile( const QString &filename, QgsProject::ReadFlags
|
|||||||
|
|
||||||
mLayerTreeRegistryBridge->setEnabled( true );
|
mLayerTreeRegistryBridge->setEnabled( true );
|
||||||
|
|
||||||
// load embedded groups and layers
|
|
||||||
profile.switchTask( tr( "Loading embedded layers" ) );
|
|
||||||
loadEmbeddedNodes( mRootGroup, flags );
|
|
||||||
|
|
||||||
// now that layers are loaded, we can resolve layer tree's references to the layers
|
// now that layers are loaded, we can resolve layer tree's references to the layers
|
||||||
profile.switchTask( tr( "Resolving references" ) );
|
profile.switchTask( tr( "Resolving references" ) );
|
||||||
mRootGroup->resolveReferences( this );
|
mRootGroup->resolveReferences( this );
|
||||||
|
@ -42,6 +42,7 @@ class TestQgisApp : public QObject
|
|||||||
void addVectorLayerGeopackageSingleLayer();
|
void addVectorLayerGeopackageSingleLayer();
|
||||||
void addVectorLayerGeopackageSingleLayerAlreadyLayername();
|
void addVectorLayerGeopackageSingleLayerAlreadyLayername();
|
||||||
void addVectorLayerInvalid();
|
void addVectorLayerInvalid();
|
||||||
|
void addEmbeddedGroup();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QgisApp *mQgisApp = nullptr;
|
QgisApp *mQgisApp = nullptr;
|
||||||
@ -137,5 +138,22 @@ void TestQgisApp::addVectorLayerInvalid()
|
|||||||
QVERIFY( !layer );
|
QVERIFY( !layer );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TestQgisApp::addEmbeddedGroup()
|
||||||
|
{
|
||||||
|
const QString projectPath = QString( TEST_DATA_DIR ) + QStringLiteral( "/embedded_groups/joins1.qgs" );
|
||||||
|
|
||||||
|
QCOMPARE( QgsProject::instance()->layers<QgsVectorLayer *>().count(), 0 );
|
||||||
|
|
||||||
|
mQgisApp->addEmbeddedItems( projectPath, QStringList() << QStringLiteral( "GROUP" ), QStringList() );
|
||||||
|
|
||||||
|
QgsVectorLayer *vl = QgsProject::instance()->mapLayer<QgsVectorLayer *>( QStringLiteral( "polys_with_id_32002f94_eebe_40a5_a182_44198ba1bc5a" ) );
|
||||||
|
QCOMPARE( vl->fields().count(), 5 );
|
||||||
|
|
||||||
|
// cleanup
|
||||||
|
QgsProject::instance()->clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
QGSTEST_MAIN( TestQgisApp )
|
QGSTEST_MAIN( TestQgisApp )
|
||||||
#include "testqgisapp.moc"
|
#include "testqgisapp.moc"
|
||||||
|
@ -59,6 +59,7 @@ class TestQgsProject : public QObject
|
|||||||
void testAttachmentsQgs();
|
void testAttachmentsQgs();
|
||||||
void testAttachmentsQgz();
|
void testAttachmentsQgz();
|
||||||
void testAttachmentIdentifier();
|
void testAttachmentIdentifier();
|
||||||
|
void testEmbeddedGroupWithJoins();
|
||||||
};
|
};
|
||||||
|
|
||||||
void TestQgsProject::init()
|
void TestQgsProject::init()
|
||||||
@ -906,5 +907,18 @@ void TestQgsProject::testAttachmentIdentifier()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void TestQgsProject::testEmbeddedGroupWithJoins()
|
||||||
|
{
|
||||||
|
const QString projectPath = QString( TEST_DATA_DIR ) + QStringLiteral( "/embedded_groups/joins2.qgz" );
|
||||||
|
QgsProject p;
|
||||||
|
p.read( projectPath );
|
||||||
|
|
||||||
|
QCOMPARE( p.layers<QgsVectorLayer *>().count(), 2 );
|
||||||
|
|
||||||
|
QgsVectorLayer *vl = p.mapLayer<QgsVectorLayer *>( QStringLiteral( "polys_with_id_32002f94_eebe_40a5_a182_44198ba1bc5a" ) );
|
||||||
|
QCOMPARE( vl->fields().count(), 5 );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
QGSTEST_MAIN( TestQgsProject )
|
QGSTEST_MAIN( TestQgsProject )
|
||||||
#include "testqgsproject.moc"
|
#include "testqgsproject.moc"
|
||||||
|
823
tests/testdata/embedded_groups/joins1.qgs
vendored
Normal file
823
tests/testdata/embedded_groups/joins1.qgs
vendored
Normal file
@ -0,0 +1,823 @@
|
|||||||
|
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
|
||||||
|
<qgis projectname="" version="3.23.0-Master" saveUserFull="Julien Cabieces" saveDateTime="2021-12-08T09:10:24" saveUser="julien">
|
||||||
|
<homePath path=""/>
|
||||||
|
<title></title>
|
||||||
|
<autotransaction active="0"/>
|
||||||
|
<evaluateDefaultValues active="0"/>
|
||||||
|
<trust active="0"/>
|
||||||
|
<projectCrs>
|
||||||
|
<spatialrefsys>
|
||||||
|
<wkt>GEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]]</wkt>
|
||||||
|
<proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
|
||||||
|
<srsid>3452</srsid>
|
||||||
|
<srid>4326</srid>
|
||||||
|
<authid>EPSG:4326</authid>
|
||||||
|
<description>WGS 84</description>
|
||||||
|
<projectionacronym>longlat</projectionacronym>
|
||||||
|
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
|
||||||
|
<geographicflag>true</geographicflag>
|
||||||
|
</spatialrefsys>
|
||||||
|
</projectCrs>
|
||||||
|
<layer-tree-group>
|
||||||
|
<customproperties>
|
||||||
|
<Option/>
|
||||||
|
</customproperties>
|
||||||
|
<layer-tree-group groupLayer="" expanded="1" name="GROUP" checked="Qt::Checked">
|
||||||
|
<customproperties>
|
||||||
|
<Option/>
|
||||||
|
</customproperties>
|
||||||
|
<layer-tree-layer source="../polys_with_id.shp" legend_exp="" patch_size="0,0" providerKey="ogr" expanded="1" name="polys_with_id" id="polys_with_id_32002f94_eebe_40a5_a182_44198ba1bc5a" checked="Qt::Checked" legend_split_behavior="0">
|
||||||
|
<customproperties>
|
||||||
|
<Option/>
|
||||||
|
</customproperties>
|
||||||
|
</layer-tree-layer>
|
||||||
|
<layer-tree-layer source="../polys_overlapping_with_id.shp" legend_exp="" patch_size="0,0" providerKey="ogr" expanded="1" name="polys_overlapping_with_id" id="polys_overlapping_with_id_3c22a7a0_06b3_4ff5_a2f8_332bafa241bd" checked="Qt::Checked" legend_split_behavior="0">
|
||||||
|
<customproperties>
|
||||||
|
<Option/>
|
||||||
|
</customproperties>
|
||||||
|
</layer-tree-layer>
|
||||||
|
</layer-tree-group>
|
||||||
|
<custom-order enabled="0">
|
||||||
|
<item>polys_with_id_32002f94_eebe_40a5_a182_44198ba1bc5a</item>
|
||||||
|
<item>polys_overlapping_with_id_3c22a7a0_06b3_4ff5_a2f8_332bafa241bd</item>
|
||||||
|
</custom-order>
|
||||||
|
</layer-tree-group>
|
||||||
|
<snapping-settings intersection-snapping="0" scaleDependencyMode="0" maxScale="0" enabled="0" tolerance="0" unit="2" self-snapping="0" type="1" minScale="0" mode="2">
|
||||||
|
<individual-layer-settings>
|
||||||
|
<layer-setting maxScale="0" enabled="1" tolerance="0" id="polys_overlapping_with_id_3c22a7a0_06b3_4ff5_a2f8_332bafa241bd" type="1" minScale="0" units="2"/>
|
||||||
|
<layer-setting maxScale="0" enabled="1" tolerance="0" id="polys_with_id_32002f94_eebe_40a5_a182_44198ba1bc5a" type="1" minScale="0" units="2"/>
|
||||||
|
</individual-layer-settings>
|
||||||
|
</snapping-settings>
|
||||||
|
<relations/>
|
||||||
|
<polymorphicRelations/>
|
||||||
|
<mapcanvas name="theMapCanvas" annotationsVisible="1">
|
||||||
|
<units>degrees</units>
|
||||||
|
<extent>
|
||||||
|
<xmin>-119.80118356386469713</xmin>
|
||||||
|
<ymin>23.95241214538275187</ymin>
|
||||||
|
<xmax>-82.91169073314071625</xmax>
|
||||||
|
<ymax>47.28163022407258609</ymax>
|
||||||
|
</extent>
|
||||||
|
<rotation>0</rotation>
|
||||||
|
<destinationsrs>
|
||||||
|
<spatialrefsys>
|
||||||
|
<wkt>GEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]]</wkt>
|
||||||
|
<proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
|
||||||
|
<srsid>3452</srsid>
|
||||||
|
<srid>4326</srid>
|
||||||
|
<authid>EPSG:4326</authid>
|
||||||
|
<description>WGS 84</description>
|
||||||
|
<projectionacronym>longlat</projectionacronym>
|
||||||
|
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
|
||||||
|
<geographicflag>true</geographicflag>
|
||||||
|
</spatialrefsys>
|
||||||
|
</destinationsrs>
|
||||||
|
<rendermaptile>0</rendermaptile>
|
||||||
|
<expressionContextScope/>
|
||||||
|
</mapcanvas>
|
||||||
|
<projectModels/>
|
||||||
|
<legend updateDrawingOrder="true">
|
||||||
|
<legendgroup open="true" name="GROUP" checked="Qt::Checked">
|
||||||
|
<legendlayer showFeatureCount="0" drawingOrder="-1" open="true" name="polys_with_id" checked="Qt::Checked">
|
||||||
|
<filegroup open="true" hidden="false">
|
||||||
|
<legendlayerfile visible="1" isInOverview="0" layerid="polys_with_id_32002f94_eebe_40a5_a182_44198ba1bc5a"/>
|
||||||
|
</filegroup>
|
||||||
|
</legendlayer>
|
||||||
|
<legendlayer showFeatureCount="0" drawingOrder="-1" open="true" name="polys_overlapping_with_id" checked="Qt::Checked">
|
||||||
|
<filegroup open="true" hidden="false">
|
||||||
|
<legendlayerfile visible="1" isInOverview="0" layerid="polys_overlapping_with_id_3c22a7a0_06b3_4ff5_a2f8_332bafa241bd"/>
|
||||||
|
</filegroup>
|
||||||
|
</legendlayer>
|
||||||
|
</legendgroup>
|
||||||
|
</legend>
|
||||||
|
<mapViewDocks/>
|
||||||
|
<main-annotation-layer autoRefreshEnabled="0" autoRefreshTime="0" type="annotation" legendPlaceholderImage="" refreshOnNotifyEnabled="0" refreshOnNotifyMessage="">
|
||||||
|
<id>Annotations_d365fe16_031e_4beb_8157_5b1a54d7f109</id>
|
||||||
|
<datasource></datasource>
|
||||||
|
<keywordList>
|
||||||
|
<value></value>
|
||||||
|
</keywordList>
|
||||||
|
<layername></layername>
|
||||||
|
<srs>
|
||||||
|
<spatialrefsys>
|
||||||
|
<wkt></wkt>
|
||||||
|
<proj4></proj4>
|
||||||
|
<srsid>0</srsid>
|
||||||
|
<srid>0</srid>
|
||||||
|
<authid></authid>
|
||||||
|
<description></description>
|
||||||
|
<projectionacronym></projectionacronym>
|
||||||
|
<ellipsoidacronym></ellipsoidacronym>
|
||||||
|
<geographicflag>false</geographicflag>
|
||||||
|
</spatialrefsys>
|
||||||
|
</srs>
|
||||||
|
<resourceMetadata>
|
||||||
|
<identifier></identifier>
|
||||||
|
<parentidentifier></parentidentifier>
|
||||||
|
<language></language>
|
||||||
|
<type></type>
|
||||||
|
<title></title>
|
||||||
|
<abstract></abstract>
|
||||||
|
<links/>
|
||||||
|
<fees></fees>
|
||||||
|
<encoding></encoding>
|
||||||
|
<crs>
|
||||||
|
<spatialrefsys>
|
||||||
|
<wkt></wkt>
|
||||||
|
<proj4></proj4>
|
||||||
|
<srsid>0</srsid>
|
||||||
|
<srid>0</srid>
|
||||||
|
<authid></authid>
|
||||||
|
<description></description>
|
||||||
|
<projectionacronym></projectionacronym>
|
||||||
|
<ellipsoidacronym></ellipsoidacronym>
|
||||||
|
<geographicflag>false</geographicflag>
|
||||||
|
</spatialrefsys>
|
||||||
|
</crs>
|
||||||
|
<extent/>
|
||||||
|
</resourceMetadata>
|
||||||
|
<items/>
|
||||||
|
<layerOpacity>1</layerOpacity>
|
||||||
|
<blendMode>0</blendMode>
|
||||||
|
<paintEffect/>
|
||||||
|
</main-annotation-layer>
|
||||||
|
<projectlayers>
|
||||||
|
<maplayer refreshOnNotifyMessage="" simplifyLocal="1" type="vector" refreshOnNotifyEnabled="0" simplifyMaxScale="1" symbologyReferenceScale="-1" styleCategories="AllStyleCategories" labelsEnabled="1" wkbType="MultiPolygon" simplifyDrawingHints="1" legendPlaceholderImage="" simplifyDrawingTol="1" geometry="Polygon" simplifyAlgorithm="0" maxScale="0" autoRefreshEnabled="0" hasScaleBasedVisibilityFlag="0" readOnly="0" autoRefreshTime="0" minScale="100000000">
|
||||||
|
<extent>
|
||||||
|
<xmin>-118.92286230599032137</xmin>
|
||||||
|
<ymin>24.50786971868489061</ymin>
|
||||||
|
<xmax>-83.79001199101509201</xmax>
|
||||||
|
<ymax>46.72617265077044379</ymax>
|
||||||
|
</extent>
|
||||||
|
<wgs84extent>
|
||||||
|
<xmin>-118.92286230599032137</xmin>
|
||||||
|
<ymin>24.50786971868489061</ymin>
|
||||||
|
<xmax>-83.79001199101509201</xmax>
|
||||||
|
<ymax>46.72617265077044379</ymax>
|
||||||
|
</wgs84extent>
|
||||||
|
<id>polys_overlapping_with_id_3c22a7a0_06b3_4ff5_a2f8_332bafa241bd</id>
|
||||||
|
<datasource>../polys_overlapping_with_id.shp</datasource>
|
||||||
|
<keywordList>
|
||||||
|
<value></value>
|
||||||
|
</keywordList>
|
||||||
|
<layername>polys_overlapping_with_id</layername>
|
||||||
|
<srs>
|
||||||
|
<spatialrefsys>
|
||||||
|
<wkt>GEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]]</wkt>
|
||||||
|
<proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
|
||||||
|
<srsid>3452</srsid>
|
||||||
|
<srid>4326</srid>
|
||||||
|
<authid>EPSG:4326</authid>
|
||||||
|
<description>WGS 84</description>
|
||||||
|
<projectionacronym>longlat</projectionacronym>
|
||||||
|
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
|
||||||
|
<geographicflag>true</geographicflag>
|
||||||
|
</spatialrefsys>
|
||||||
|
</srs>
|
||||||
|
<resourceMetadata>
|
||||||
|
<identifier></identifier>
|
||||||
|
<parentidentifier></parentidentifier>
|
||||||
|
<language></language>
|
||||||
|
<type>dataset</type>
|
||||||
|
<title></title>
|
||||||
|
<abstract></abstract>
|
||||||
|
<links/>
|
||||||
|
<fees></fees>
|
||||||
|
<encoding></encoding>
|
||||||
|
<crs>
|
||||||
|
<spatialrefsys>
|
||||||
|
<wkt></wkt>
|
||||||
|
<proj4></proj4>
|
||||||
|
<srsid>0</srsid>
|
||||||
|
<srid>0</srid>
|
||||||
|
<authid></authid>
|
||||||
|
<description></description>
|
||||||
|
<projectionacronym></projectionacronym>
|
||||||
|
<ellipsoidacronym></ellipsoidacronym>
|
||||||
|
<geographicflag>false</geographicflag>
|
||||||
|
</spatialrefsys>
|
||||||
|
</crs>
|
||||||
|
<extent/>
|
||||||
|
</resourceMetadata>
|
||||||
|
<provider encoding="UTF-8">ogr</provider>
|
||||||
|
<vectorjoins/>
|
||||||
|
<layerDependencies/>
|
||||||
|
<dataDependencies/>
|
||||||
|
<expressionfields/>
|
||||||
|
<map-layer-style-manager current="défaut">
|
||||||
|
<map-layer-style name="défaut"/>
|
||||||
|
</map-layer-style-manager>
|
||||||
|
<auxiliaryLayer/>
|
||||||
|
<metadataUrls/>
|
||||||
|
<flags>
|
||||||
|
<Identifiable>1</Identifiable>
|
||||||
|
<Removable>1</Removable>
|
||||||
|
<Searchable>1</Searchable>
|
||||||
|
<Private>0</Private>
|
||||||
|
</flags>
|
||||||
|
<temporal startExpression="" endExpression="" fixedDuration="0" enabled="0" limitMode="0" durationUnit="min" startField="" accumulate="0" endField="" durationField="" mode="0">
|
||||||
|
<fixedRange>
|
||||||
|
<start></start>
|
||||||
|
<end></end>
|
||||||
|
</fixedRange>
|
||||||
|
</temporal>
|
||||||
|
<renderer-v2 referencescale="-1" enableorderby="0" symbollevels="0" forceraster="0" type="singleSymbol">
|
||||||
|
<symbols>
|
||||||
|
<symbol force_rhr="0" clip_to_extent="1" name="0" type="fill" alpha="1">
|
||||||
|
<data_defined_properties>
|
||||||
|
<Option type="Map">
|
||||||
|
<Option value="" name="name" type="QString"/>
|
||||||
|
<Option name="properties"/>
|
||||||
|
<Option value="collection" name="type" type="QString"/>
|
||||||
|
</Option>
|
||||||
|
</data_defined_properties>
|
||||||
|
<layer locked="0" enabled="1" class="SimpleFill" pass="0">
|
||||||
|
<Option type="Map">
|
||||||
|
<Option value="3x:0,0,0,0,0,0" name="border_width_map_unit_scale" type="QString"/>
|
||||||
|
<Option value="190,178,151,255" name="color" type="QString"/>
|
||||||
|
<Option value="bevel" name="joinstyle" type="QString"/>
|
||||||
|
<Option value="0,0" name="offset" type="QString"/>
|
||||||
|
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
|
||||||
|
<Option value="MM" name="offset_unit" type="QString"/>
|
||||||
|
<Option value="35,35,35,255" name="outline_color" type="QString"/>
|
||||||
|
<Option value="solid" name="outline_style" type="QString"/>
|
||||||
|
<Option value="0.26" name="outline_width" type="QString"/>
|
||||||
|
<Option value="MM" name="outline_width_unit" type="QString"/>
|
||||||
|
<Option value="solid" name="style" type="QString"/>
|
||||||
|
</Option>
|
||||||
|
<prop k="border_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||||
|
<prop k="color" v="190,178,151,255"/>
|
||||||
|
<prop k="joinstyle" v="bevel"/>
|
||||||
|
<prop k="offset" v="0,0"/>
|
||||||
|
<prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||||
|
<prop k="offset_unit" v="MM"/>
|
||||||
|
<prop k="outline_color" v="35,35,35,255"/>
|
||||||
|
<prop k="outline_style" v="solid"/>
|
||||||
|
<prop k="outline_width" v="0.26"/>
|
||||||
|
<prop k="outline_width_unit" v="MM"/>
|
||||||
|
<prop k="style" v="solid"/>
|
||||||
|
<data_defined_properties>
|
||||||
|
<Option type="Map">
|
||||||
|
<Option value="" name="name" type="QString"/>
|
||||||
|
<Option name="properties"/>
|
||||||
|
<Option value="collection" name="type" type="QString"/>
|
||||||
|
</Option>
|
||||||
|
</data_defined_properties>
|
||||||
|
</layer>
|
||||||
|
</symbol>
|
||||||
|
</symbols>
|
||||||
|
<rotation/>
|
||||||
|
<sizescale/>
|
||||||
|
</renderer-v2>
|
||||||
|
<customproperties>
|
||||||
|
<Option/>
|
||||||
|
</customproperties>
|
||||||
|
<blendMode>0</blendMode>
|
||||||
|
<featureBlendMode>0</featureBlendMode>
|
||||||
|
<layerOpacity>1</layerOpacity>
|
||||||
|
<geometryOptions removeDuplicateNodes="0" geometryPrecision="0">
|
||||||
|
<activeChecks/>
|
||||||
|
<checkConfiguration/>
|
||||||
|
</geometryOptions>
|
||||||
|
<legend showLabelLegend="0" type="default-vector"/>
|
||||||
|
<referencedLayers/>
|
||||||
|
<fieldConfiguration>
|
||||||
|
<field configurationFlags="None" name="Name">
|
||||||
|
<editWidget type="">
|
||||||
|
<config>
|
||||||
|
<Option/>
|
||||||
|
</config>
|
||||||
|
</editWidget>
|
||||||
|
</field>
|
||||||
|
<field configurationFlags="None" name="Value">
|
||||||
|
<editWidget type="">
|
||||||
|
<config>
|
||||||
|
<Option/>
|
||||||
|
</config>
|
||||||
|
</editWidget>
|
||||||
|
</field>
|
||||||
|
<field configurationFlags="None" name="id">
|
||||||
|
<editWidget type="">
|
||||||
|
<config>
|
||||||
|
<Option/>
|
||||||
|
</config>
|
||||||
|
</editWidget>
|
||||||
|
</field>
|
||||||
|
</fieldConfiguration>
|
||||||
|
<aliases>
|
||||||
|
<alias field="Name" index="0" name=""/>
|
||||||
|
<alias field="Value" index="1" name=""/>
|
||||||
|
<alias field="id" index="2" name=""/>
|
||||||
|
</aliases>
|
||||||
|
<defaults>
|
||||||
|
<default field="Name" expression="" applyOnUpdate="0"/>
|
||||||
|
<default field="Value" expression="" applyOnUpdate="0"/>
|
||||||
|
<default field="id" expression="" applyOnUpdate="0"/>
|
||||||
|
</defaults>
|
||||||
|
<constraints>
|
||||||
|
<constraint field="Name" notnull_strength="0" unique_strength="0" constraints="0" exp_strength="0"/>
|
||||||
|
<constraint field="Value" notnull_strength="0" unique_strength="0" constraints="0" exp_strength="0"/>
|
||||||
|
<constraint field="id" notnull_strength="0" unique_strength="0" constraints="0" exp_strength="0"/>
|
||||||
|
</constraints>
|
||||||
|
<constraintExpressions>
|
||||||
|
<constraint field="Name" desc="" exp=""/>
|
||||||
|
<constraint field="Value" desc="" exp=""/>
|
||||||
|
<constraint field="id" desc="" exp=""/>
|
||||||
|
</constraintExpressions>
|
||||||
|
<expressionfields/>
|
||||||
|
<attributeactions>
|
||||||
|
<defaultAction key="Canvas" value="{00000000-0000-0000-0000-000000000000}"/>
|
||||||
|
</attributeactions>
|
||||||
|
<attributetableconfig sortOrder="0" sortExpression="" actionWidgetStyle="dropDown">
|
||||||
|
<columns>
|
||||||
|
<column width="-1" hidden="0" name="Name" type="field"/>
|
||||||
|
<column width="271" hidden="0" name="Value" type="field"/>
|
||||||
|
<column width="-1" hidden="0" name="id" type="field"/>
|
||||||
|
<column width="-1" hidden="1" type="actions"/>
|
||||||
|
</columns>
|
||||||
|
</attributetableconfig>
|
||||||
|
<conditionalstyles>
|
||||||
|
<rowstyles/>
|
||||||
|
<fieldstyles/>
|
||||||
|
</conditionalstyles>
|
||||||
|
<storedexpressions/>
|
||||||
|
<editform tolerant="1"></editform>
|
||||||
|
<editforminit/>
|
||||||
|
<editforminitcodesource>0</editforminitcodesource>
|
||||||
|
<editforminitfilepath></editforminitfilepath>
|
||||||
|
<editforminitcode><![CDATA[]]></editforminitcode>
|
||||||
|
<featformsuppress>0</featformsuppress>
|
||||||
|
<editorlayout>generatedlayout</editorlayout>
|
||||||
|
<editable/>
|
||||||
|
<labelOnTop/>
|
||||||
|
<reuseLastValue/>
|
||||||
|
<dataDefinedFieldProperties/>
|
||||||
|
<widgets/>
|
||||||
|
<previewExpression>"Name"</previewExpression>
|
||||||
|
<mapTip></mapTip>
|
||||||
|
</maplayer>
|
||||||
|
<maplayer refreshOnNotifyMessage="" simplifyLocal="1" type="vector" refreshOnNotifyEnabled="0" simplifyMaxScale="1" symbologyReferenceScale="-1" styleCategories="AllStyleCategories" labelsEnabled="1" wkbType="MultiPolygon" simplifyDrawingHints="1" legendPlaceholderImage="" simplifyDrawingTol="1" geometry="Polygon" simplifyAlgorithm="0" maxScale="0" autoRefreshEnabled="0" hasScaleBasedVisibilityFlag="0" readOnly="0" autoRefreshTime="0" minScale="100000000">
|
||||||
|
<extent>
|
||||||
|
<xmin>-118.92286230599032137</xmin>
|
||||||
|
<ymin>24.50786971868489061</ymin>
|
||||||
|
<xmax>-83.79001199101509201</xmax>
|
||||||
|
<ymax>46.72617265077044379</ymax>
|
||||||
|
</extent>
|
||||||
|
<wgs84extent>
|
||||||
|
<xmin>-118.92286230599032137</xmin>
|
||||||
|
<ymin>24.50786971868489061</ymin>
|
||||||
|
<xmax>-83.79001199101509201</xmax>
|
||||||
|
<ymax>46.72617265077044379</ymax>
|
||||||
|
</wgs84extent>
|
||||||
|
<id>polys_with_id_32002f94_eebe_40a5_a182_44198ba1bc5a</id>
|
||||||
|
<datasource>../polys_with_id.shp</datasource>
|
||||||
|
<keywordList>
|
||||||
|
<value></value>
|
||||||
|
</keywordList>
|
||||||
|
<layername>polys_with_id</layername>
|
||||||
|
<srs>
|
||||||
|
<spatialrefsys>
|
||||||
|
<wkt>GEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]]</wkt>
|
||||||
|
<proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
|
||||||
|
<srsid>3452</srsid>
|
||||||
|
<srid>4326</srid>
|
||||||
|
<authid>EPSG:4326</authid>
|
||||||
|
<description>WGS 84</description>
|
||||||
|
<projectionacronym>longlat</projectionacronym>
|
||||||
|
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
|
||||||
|
<geographicflag>true</geographicflag>
|
||||||
|
</spatialrefsys>
|
||||||
|
</srs>
|
||||||
|
<resourceMetadata>
|
||||||
|
<identifier></identifier>
|
||||||
|
<parentidentifier></parentidentifier>
|
||||||
|
<language></language>
|
||||||
|
<type>dataset</type>
|
||||||
|
<title></title>
|
||||||
|
<abstract></abstract>
|
||||||
|
<links/>
|
||||||
|
<fees></fees>
|
||||||
|
<encoding></encoding>
|
||||||
|
<crs>
|
||||||
|
<spatialrefsys>
|
||||||
|
<wkt></wkt>
|
||||||
|
<proj4></proj4>
|
||||||
|
<srsid>0</srsid>
|
||||||
|
<srid>0</srid>
|
||||||
|
<authid></authid>
|
||||||
|
<description></description>
|
||||||
|
<projectionacronym></projectionacronym>
|
||||||
|
<ellipsoidacronym></ellipsoidacronym>
|
||||||
|
<geographicflag>false</geographicflag>
|
||||||
|
</spatialrefsys>
|
||||||
|
</crs>
|
||||||
|
<extent/>
|
||||||
|
</resourceMetadata>
|
||||||
|
<provider encoding="UTF-8">ogr</provider>
|
||||||
|
<vectorjoins>
|
||||||
|
<join joinLayerId="polys_overlapping_with_id_3c22a7a0_06b3_4ff5_a2f8_332bafa241bd" joinFieldName="id" cascadedDelete="0" dynamicForm="0" memoryCache="1" targetFieldName="id" editable="0" upsertOnEdit="0"/>
|
||||||
|
</vectorjoins>
|
||||||
|
<layerDependencies/>
|
||||||
|
<dataDependencies/>
|
||||||
|
<expressionfields/>
|
||||||
|
<map-layer-style-manager current="défaut">
|
||||||
|
<map-layer-style name="défaut"/>
|
||||||
|
</map-layer-style-manager>
|
||||||
|
<auxiliaryLayer/>
|
||||||
|
<metadataUrls/>
|
||||||
|
<flags>
|
||||||
|
<Identifiable>1</Identifiable>
|
||||||
|
<Removable>1</Removable>
|
||||||
|
<Searchable>1</Searchable>
|
||||||
|
<Private>0</Private>
|
||||||
|
</flags>
|
||||||
|
<temporal startExpression="" endExpression="" fixedDuration="0" enabled="0" limitMode="0" durationUnit="min" startField="" accumulate="0" endField="" durationField="" mode="0">
|
||||||
|
<fixedRange>
|
||||||
|
<start></start>
|
||||||
|
<end></end>
|
||||||
|
</fixedRange>
|
||||||
|
</temporal>
|
||||||
|
<renderer-v2 referencescale="-1" enableorderby="0" symbollevels="0" forceraster="0" type="singleSymbol">
|
||||||
|
<symbols>
|
||||||
|
<symbol force_rhr="0" clip_to_extent="1" name="0" type="fill" alpha="1">
|
||||||
|
<data_defined_properties>
|
||||||
|
<Option type="Map">
|
||||||
|
<Option value="" name="name" type="QString"/>
|
||||||
|
<Option name="properties"/>
|
||||||
|
<Option value="collection" name="type" type="QString"/>
|
||||||
|
</Option>
|
||||||
|
</data_defined_properties>
|
||||||
|
<layer locked="0" enabled="1" class="SimpleFill" pass="0">
|
||||||
|
<Option type="Map">
|
||||||
|
<Option value="3x:0,0,0,0,0,0" name="border_width_map_unit_scale" type="QString"/>
|
||||||
|
<Option value="196,60,57,255" name="color" type="QString"/>
|
||||||
|
<Option value="bevel" name="joinstyle" type="QString"/>
|
||||||
|
<Option value="0,0" name="offset" type="QString"/>
|
||||||
|
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
|
||||||
|
<Option value="MM" name="offset_unit" type="QString"/>
|
||||||
|
<Option value="35,35,35,255" name="outline_color" type="QString"/>
|
||||||
|
<Option value="solid" name="outline_style" type="QString"/>
|
||||||
|
<Option value="0.26" name="outline_width" type="QString"/>
|
||||||
|
<Option value="MM" name="outline_width_unit" type="QString"/>
|
||||||
|
<Option value="solid" name="style" type="QString"/>
|
||||||
|
</Option>
|
||||||
|
<prop k="border_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||||
|
<prop k="color" v="196,60,57,255"/>
|
||||||
|
<prop k="joinstyle" v="bevel"/>
|
||||||
|
<prop k="offset" v="0,0"/>
|
||||||
|
<prop k="offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||||
|
<prop k="offset_unit" v="MM"/>
|
||||||
|
<prop k="outline_color" v="35,35,35,255"/>
|
||||||
|
<prop k="outline_style" v="solid"/>
|
||||||
|
<prop k="outline_width" v="0.26"/>
|
||||||
|
<prop k="outline_width_unit" v="MM"/>
|
||||||
|
<prop k="style" v="solid"/>
|
||||||
|
<data_defined_properties>
|
||||||
|
<Option type="Map">
|
||||||
|
<Option value="" name="name" type="QString"/>
|
||||||
|
<Option name="properties"/>
|
||||||
|
<Option value="collection" name="type" type="QString"/>
|
||||||
|
</Option>
|
||||||
|
</data_defined_properties>
|
||||||
|
</layer>
|
||||||
|
</symbol>
|
||||||
|
</symbols>
|
||||||
|
<rotation/>
|
||||||
|
<sizescale/>
|
||||||
|
</renderer-v2>
|
||||||
|
<customproperties>
|
||||||
|
<Option type="Map">
|
||||||
|
<Option name="dualview/previewExpressions" type="List">
|
||||||
|
<Option value="Name" type="QString"/>
|
||||||
|
</Option>
|
||||||
|
<Option value="0" name="embeddedWidgets/count" type="QString"/>
|
||||||
|
<Option name="variableNames"/>
|
||||||
|
<Option name="variableValues"/>
|
||||||
|
</Option>
|
||||||
|
</customproperties>
|
||||||
|
<blendMode>0</blendMode>
|
||||||
|
<featureBlendMode>0</featureBlendMode>
|
||||||
|
<layerOpacity>1</layerOpacity>
|
||||||
|
<SingleCategoryDiagramRenderer diagramType="Histogram" attributeLegend="1">
|
||||||
|
<DiagramCategory height="15" spacingUnit="MM" minScaleDenominator="0" showAxis="0" enabled="0" scaleDependency="Area" labelPlacementMethod="XHeight" sizeScale="3x:0,0,0,0,0,0" sizeType="MM" minimumSize="0" penWidth="0" width="15" penAlpha="255" penColor="#000000" backgroundColor="#ffffff" direction="1" scaleBasedVisibility="0" lineSizeType="MM" opacity="1" rotationOffset="270" backgroundAlpha="255" spacing="0" lineSizeScale="3x:0,0,0,0,0,0" barWidth="5" maxScaleDenominator="1e+08" diagramOrientation="Up" spacingUnitScale="3x:0,0,0,0,0,0">
|
||||||
|
<fontProperties description="Sans Serif,9,-1,5,50,0,0,0,0,0" style=""/>
|
||||||
|
<attribute field="" label="" color="#000000"/>
|
||||||
|
<axisSymbol>
|
||||||
|
<symbol force_rhr="0" clip_to_extent="1" name="" type="line" alpha="1">
|
||||||
|
<data_defined_properties>
|
||||||
|
<Option type="Map">
|
||||||
|
<Option value="" name="name" type="QString"/>
|
||||||
|
<Option name="properties"/>
|
||||||
|
<Option value="collection" name="type" type="QString"/>
|
||||||
|
</Option>
|
||||||
|
</data_defined_properties>
|
||||||
|
<layer locked="0" enabled="1" class="SimpleLine" pass="0">
|
||||||
|
<Option type="Map">
|
||||||
|
<Option value="0" name="align_dash_pattern" type="QString"/>
|
||||||
|
<Option value="square" name="capstyle" type="QString"/>
|
||||||
|
<Option value="5;2" name="customdash" type="QString"/>
|
||||||
|
<Option value="3x:0,0,0,0,0,0" name="customdash_map_unit_scale" type="QString"/>
|
||||||
|
<Option value="MM" name="customdash_unit" type="QString"/>
|
||||||
|
<Option value="0" name="dash_pattern_offset" type="QString"/>
|
||||||
|
<Option value="3x:0,0,0,0,0,0" name="dash_pattern_offset_map_unit_scale" type="QString"/>
|
||||||
|
<Option value="MM" name="dash_pattern_offset_unit" type="QString"/>
|
||||||
|
<Option value="0" name="draw_inside_polygon" type="QString"/>
|
||||||
|
<Option value="bevel" name="joinstyle" type="QString"/>
|
||||||
|
<Option value="35,35,35,255" name="line_color" type="QString"/>
|
||||||
|
<Option value="solid" name="line_style" type="QString"/>
|
||||||
|
<Option value="0.26" name="line_width" type="QString"/>
|
||||||
|
<Option value="MM" name="line_width_unit" type="QString"/>
|
||||||
|
<Option value="0" name="offset" type="QString"/>
|
||||||
|
<Option value="3x:0,0,0,0,0,0" name="offset_map_unit_scale" type="QString"/>
|
||||||
|
<Option value="MM" name="offset_unit" type="QString"/>
|
||||||
|
<Option value="0" name="ring_filter" type="QString"/>
|
||||||
|
<Option value="0" name="trim_distance_end" type="QString"/>
|
||||||
|
<Option value="3x:0,0,0,0,0,0" name="trim_distance_end_map_unit_scale" type="QString"/>
|
||||||
|
<Option value="MM" name="trim_distance_end_unit" type="QString"/>
|
||||||
|
<Option value="0" name="trim_distance_start" type="QString"/>
|
||||||
|
<Option value="3x:0,0,0,0,0,0" name="trim_distance_start_map_unit_scale" type="QString"/>
|
||||||
|
<Option value="MM" name="trim_distance_start_unit" type="QString"/>
|
||||||
|
<Option value="0" name="tweak_dash_pattern_on_corners" type="QString"/>
|
||||||
|
<Option value="0" name="use_custom_dash" type="QString"/>
|
||||||
|
<Option value="3x:0,0,0,0,0,0" name="width_map_unit_scale" type="QString"/>
|
||||||
|
</Option>
|
||||||
|
<prop k="align_dash_pattern" v="0"/>
|
||||||
|
<prop k="capstyle" v="square"/>
|
||||||
|
<prop k="customdash" v="5;2"/>
|
||||||
|
<prop k="customdash_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||||
|
<prop k="customdash_unit" v="MM"/>
|
||||||
|
<prop k="dash_pattern_offset" v="0"/>
|
||||||
|
<prop k="dash_pattern_offset_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||||
|
<prop k="dash_pattern_offset_unit" v="MM"/>
|
||||||
|
<prop k="draw_inside_polygon" v="0"/>
|
||||||
|
<prop k="joinstyle" v="bevel"/>
|
||||||
|
<prop k="line_color" v="35,35,35,255"/>
|
||||||
|
<prop k="line_style" v="solid"/>
|
||||||
|
<prop k="line_width" v="0.26"/>
|
||||||
|
<prop k="line_width_unit" v="MM"/>
|
||||||
|
<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="trim_distance_end" v="0"/>
|
||||||
|
<prop k="trim_distance_end_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||||
|
<prop k="trim_distance_end_unit" v="MM"/>
|
||||||
|
<prop k="trim_distance_start" v="0"/>
|
||||||
|
<prop k="trim_distance_start_map_unit_scale" v="3x:0,0,0,0,0,0"/>
|
||||||
|
<prop k="trim_distance_start_unit" v="MM"/>
|
||||||
|
<prop k="tweak_dash_pattern_on_corners" 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>
|
||||||
|
<Option type="Map">
|
||||||
|
<Option value="" name="name" type="QString"/>
|
||||||
|
<Option name="properties"/>
|
||||||
|
<Option value="collection" name="type" type="QString"/>
|
||||||
|
</Option>
|
||||||
|
</data_defined_properties>
|
||||||
|
</layer>
|
||||||
|
</symbol>
|
||||||
|
</axisSymbol>
|
||||||
|
</DiagramCategory>
|
||||||
|
</SingleCategoryDiagramRenderer>
|
||||||
|
<DiagramLayerSettings dist="0" showAll="1" zIndex="0" placement="0" linePlacementFlags="18" obstacle="0" priority="0">
|
||||||
|
<properties>
|
||||||
|
<Option type="Map">
|
||||||
|
<Option value="" name="name" type="QString"/>
|
||||||
|
<Option name="properties"/>
|
||||||
|
<Option value="collection" name="type" type="QString"/>
|
||||||
|
</Option>
|
||||||
|
</properties>
|
||||||
|
</DiagramLayerSettings>
|
||||||
|
<geometryOptions removeDuplicateNodes="0" geometryPrecision="0">
|
||||||
|
<activeChecks/>
|
||||||
|
<checkConfiguration/>
|
||||||
|
</geometryOptions>
|
||||||
|
<legend showLabelLegend="0" type="default-vector"/>
|
||||||
|
<referencedLayers/>
|
||||||
|
<fieldConfiguration>
|
||||||
|
<field configurationFlags="None" name="Name">
|
||||||
|
<editWidget type="TextEdit">
|
||||||
|
<config>
|
||||||
|
<Option/>
|
||||||
|
</config>
|
||||||
|
</editWidget>
|
||||||
|
</field>
|
||||||
|
<field configurationFlags="None" name="Value">
|
||||||
|
<editWidget type="Range">
|
||||||
|
<config>
|
||||||
|
<Option/>
|
||||||
|
</config>
|
||||||
|
</editWidget>
|
||||||
|
</field>
|
||||||
|
<field configurationFlags="None" name="id">
|
||||||
|
<editWidget type="Range">
|
||||||
|
<config>
|
||||||
|
<Option/>
|
||||||
|
</config>
|
||||||
|
</editWidget>
|
||||||
|
</field>
|
||||||
|
<field configurationFlags="None" name="polys_overlapping_with_id_Name">
|
||||||
|
<editWidget type="TextEdit">
|
||||||
|
<config>
|
||||||
|
<Option/>
|
||||||
|
</config>
|
||||||
|
</editWidget>
|
||||||
|
</field>
|
||||||
|
<field configurationFlags="None" name="polys_overlapping_with_id_Value">
|
||||||
|
<editWidget type="Range">
|
||||||
|
<config>
|
||||||
|
<Option/>
|
||||||
|
</config>
|
||||||
|
</editWidget>
|
||||||
|
</field>
|
||||||
|
</fieldConfiguration>
|
||||||
|
<aliases>
|
||||||
|
<alias field="Name" index="0" name=""/>
|
||||||
|
<alias field="Value" index="1" name=""/>
|
||||||
|
<alias field="id" index="2" name=""/>
|
||||||
|
<alias field="polys_overlapping_with_id_Name" index="3" name=""/>
|
||||||
|
<alias field="polys_overlapping_with_id_Value" index="4" name=""/>
|
||||||
|
</aliases>
|
||||||
|
<defaults>
|
||||||
|
<default field="Name" expression="" applyOnUpdate="0"/>
|
||||||
|
<default field="Value" expression="" applyOnUpdate="0"/>
|
||||||
|
<default field="id" expression="" applyOnUpdate="0"/>
|
||||||
|
<default field="polys_overlapping_with_id_Name" expression="" applyOnUpdate="0"/>
|
||||||
|
<default field="polys_overlapping_with_id_Value" expression="" applyOnUpdate="0"/>
|
||||||
|
</defaults>
|
||||||
|
<constraints>
|
||||||
|
<constraint field="Name" notnull_strength="0" unique_strength="0" constraints="0" exp_strength="0"/>
|
||||||
|
<constraint field="Value" notnull_strength="0" unique_strength="0" constraints="0" exp_strength="0"/>
|
||||||
|
<constraint field="id" notnull_strength="0" unique_strength="0" constraints="0" exp_strength="0"/>
|
||||||
|
<constraint field="polys_overlapping_with_id_Name" notnull_strength="0" unique_strength="0" constraints="0" exp_strength="0"/>
|
||||||
|
<constraint field="polys_overlapping_with_id_Value" notnull_strength="0" unique_strength="0" constraints="0" exp_strength="0"/>
|
||||||
|
</constraints>
|
||||||
|
<constraintExpressions>
|
||||||
|
<constraint field="Name" desc="" exp=""/>
|
||||||
|
<constraint field="Value" desc="" exp=""/>
|
||||||
|
<constraint field="id" desc="" exp=""/>
|
||||||
|
<constraint field="polys_overlapping_with_id_Name" desc="" exp=""/>
|
||||||
|
<constraint field="polys_overlapping_with_id_Value" desc="" exp=""/>
|
||||||
|
</constraintExpressions>
|
||||||
|
<expressionfields/>
|
||||||
|
<attributeactions>
|
||||||
|
<defaultAction key="Canvas" value="{00000000-0000-0000-0000-000000000000}"/>
|
||||||
|
</attributeactions>
|
||||||
|
<attributetableconfig sortOrder="0" sortExpression="" actionWidgetStyle="dropDown">
|
||||||
|
<columns>
|
||||||
|
<column width="-1" hidden="0" name="Name" type="field"/>
|
||||||
|
<column width="-1" hidden="0" name="Value" type="field"/>
|
||||||
|
<column width="-1" hidden="0" name="id" type="field"/>
|
||||||
|
<column width="-1" hidden="1" type="actions"/>
|
||||||
|
<column width="-1" hidden="0" name="polys_overlapping_with_id_Name" type="field"/>
|
||||||
|
<column width="329" hidden="0" name="polys_overlapping_with_id_Value" type="field"/>
|
||||||
|
</columns>
|
||||||
|
</attributetableconfig>
|
||||||
|
<conditionalstyles>
|
||||||
|
<rowstyles/>
|
||||||
|
<fieldstyles/>
|
||||||
|
</conditionalstyles>
|
||||||
|
<storedexpressions/>
|
||||||
|
<editform tolerant="1"></editform>
|
||||||
|
<editforminit/>
|
||||||
|
<editforminitcodesource>0</editforminitcodesource>
|
||||||
|
<editforminitfilepath></editforminitfilepath>
|
||||||
|
<editforminitcode><![CDATA[# -*- coding: utf-8 -*-
|
||||||
|
"""
|
||||||
|
QGIS forms can have a Python function that is called when the form is
|
||||||
|
opened.
|
||||||
|
|
||||||
|
Use this function to add extra logic to your forms.
|
||||||
|
|
||||||
|
Enter the name of the function in the "Python Init function"
|
||||||
|
field.
|
||||||
|
An example follows:
|
||||||
|
"""
|
||||||
|
from qgis.PyQt.QtWidgets import QWidget
|
||||||
|
|
||||||
|
def my_form_open(dialog, layer, feature):
|
||||||
|
geom = feature.geometry()
|
||||||
|
control = dialog.findChild(QWidget, "MyLineEdit")
|
||||||
|
]]></editforminitcode>
|
||||||
|
<featformsuppress>0</featformsuppress>
|
||||||
|
<editorlayout>generatedlayout</editorlayout>
|
||||||
|
<editable/>
|
||||||
|
<labelOnTop/>
|
||||||
|
<reuseLastValue/>
|
||||||
|
<dataDefinedFieldProperties/>
|
||||||
|
<widgets/>
|
||||||
|
<previewExpression>Name</previewExpression>
|
||||||
|
<mapTip></mapTip>
|
||||||
|
</maplayer>
|
||||||
|
</projectlayers>
|
||||||
|
<layerorder>
|
||||||
|
<layer id="polys_with_id_32002f94_eebe_40a5_a182_44198ba1bc5a"/>
|
||||||
|
<layer id="polys_overlapping_with_id_3c22a7a0_06b3_4ff5_a2f8_332bafa241bd"/>
|
||||||
|
</layerorder>
|
||||||
|
<properties>
|
||||||
|
<Digitizing>
|
||||||
|
<AvoidIntersectionsMode type="int">2</AvoidIntersectionsMode>
|
||||||
|
</Digitizing>
|
||||||
|
<Gui>
|
||||||
|
<CanvasColorBluePart type="int">255</CanvasColorBluePart>
|
||||||
|
<CanvasColorGreenPart type="int">255</CanvasColorGreenPart>
|
||||||
|
<CanvasColorRedPart type="int">255</CanvasColorRedPart>
|
||||||
|
<SelectionColorAlphaPart type="int">255</SelectionColorAlphaPart>
|
||||||
|
<SelectionColorBluePart type="int">0</SelectionColorBluePart>
|
||||||
|
<SelectionColorGreenPart type="int">255</SelectionColorGreenPart>
|
||||||
|
<SelectionColorRedPart type="int">255</SelectionColorRedPart>
|
||||||
|
</Gui>
|
||||||
|
<Legend>
|
||||||
|
<filterByMap type="bool">false</filterByMap>
|
||||||
|
</Legend>
|
||||||
|
<Measurement>
|
||||||
|
<AreaUnits type="QString"></AreaUnits>
|
||||||
|
<DistanceUnits type="QString"></DistanceUnits>
|
||||||
|
</Measurement>
|
||||||
|
<PAL>
|
||||||
|
<CandidatesLine type="int">50</CandidatesLine>
|
||||||
|
<CandidatesLinePerCM type="double">5</CandidatesLinePerCM>
|
||||||
|
<CandidatesPoint type="int">16</CandidatesPoint>
|
||||||
|
<CandidatesPolygon type="int">30</CandidatesPolygon>
|
||||||
|
<CandidatesPolygonPerCM type="double">2.5</CandidatesPolygonPerCM>
|
||||||
|
<DrawOutlineLabels type="bool">true</DrawOutlineLabels>
|
||||||
|
<DrawRectOnly type="bool">false</DrawRectOnly>
|
||||||
|
<DrawUnplaced type="bool">false</DrawUnplaced>
|
||||||
|
<PlacementEngineVersion type="int">0</PlacementEngineVersion>
|
||||||
|
<SearchMethod type="int">0</SearchMethod>
|
||||||
|
<ShowingAllLabels type="bool">false</ShowingAllLabels>
|
||||||
|
<ShowingCandidates type="bool">false</ShowingCandidates>
|
||||||
|
<ShowingPartialsLabels type="bool">true</ShowingPartialsLabels>
|
||||||
|
<TextFormat type="int">0</TextFormat>
|
||||||
|
<UnplacedColor type="QString">255,0,0,255</UnplacedColor>
|
||||||
|
</PAL>
|
||||||
|
<Paths>
|
||||||
|
<Absolute type="bool">false</Absolute>
|
||||||
|
</Paths>
|
||||||
|
<PositionPrecision>
|
||||||
|
<Automatic type="bool">true</Automatic>
|
||||||
|
<DecimalPlaces type="int">2</DecimalPlaces>
|
||||||
|
</PositionPrecision>
|
||||||
|
<SpatialRefSys>
|
||||||
|
<ProjectCRSID type="int">3452</ProjectCRSID>
|
||||||
|
<ProjectCRSProj4String type="QString">+proj=longlat +datum=WGS84 +no_defs</ProjectCRSProj4String>
|
||||||
|
<ProjectCrs type="QString">EPSG:4326</ProjectCrs>
|
||||||
|
<ProjectionsEnabled type="int">1</ProjectionsEnabled>
|
||||||
|
</SpatialRefSys>
|
||||||
|
</properties>
|
||||||
|
<dataDefinedServerProperties>
|
||||||
|
<Option type="Map">
|
||||||
|
<Option value="" name="name" type="QString"/>
|
||||||
|
<Option name="properties"/>
|
||||||
|
<Option value="collection" name="type" type="QString"/>
|
||||||
|
</Option>
|
||||||
|
</dataDefinedServerProperties>
|
||||||
|
<visibility-presets/>
|
||||||
|
<transformContext/>
|
||||||
|
<projectMetadata>
|
||||||
|
<identifier></identifier>
|
||||||
|
<parentidentifier></parentidentifier>
|
||||||
|
<language></language>
|
||||||
|
<type></type>
|
||||||
|
<title></title>
|
||||||
|
<abstract></abstract>
|
||||||
|
<links/>
|
||||||
|
<author></author>
|
||||||
|
<creation></creation>
|
||||||
|
</projectMetadata>
|
||||||
|
<Annotations/>
|
||||||
|
<Layouts/>
|
||||||
|
<Bookmarks/>
|
||||||
|
<ProjectViewSettings UseProjectScales="0">
|
||||||
|
<Scales/>
|
||||||
|
<DefaultViewExtent xmin="-123.51279691427851049" ymin="23.95241214538275187" xmax="-79.2000773827269029" ymax="47.28163022407258609">
|
||||||
|
<spatialrefsys>
|
||||||
|
<wkt>GEOGCRS["WGS 84",DATUM["World Geodetic System 1984",ELLIPSOID["WGS 84",6378137,298.257223563,LENGTHUNIT["metre",1]]],PRIMEM["Greenwich",0,ANGLEUNIT["degree",0.0174532925199433]],CS[ellipsoidal,2],AXIS["geodetic latitude (Lat)",north,ORDER[1],ANGLEUNIT["degree",0.0174532925199433]],AXIS["geodetic longitude (Lon)",east,ORDER[2],ANGLEUNIT["degree",0.0174532925199433]],USAGE[SCOPE["Horizontal component of 3D system."],AREA["World."],BBOX[-90,-180,90,180]],ID["EPSG",4326]]</wkt>
|
||||||
|
<proj4>+proj=longlat +datum=WGS84 +no_defs</proj4>
|
||||||
|
<srsid>3452</srsid>
|
||||||
|
<srid>4326</srid>
|
||||||
|
<authid>EPSG:4326</authid>
|
||||||
|
<description>WGS 84</description>
|
||||||
|
<projectionacronym>longlat</projectionacronym>
|
||||||
|
<ellipsoidacronym>EPSG:7030</ellipsoidacronym>
|
||||||
|
<geographicflag>true</geographicflag>
|
||||||
|
</spatialrefsys>
|
||||||
|
</DefaultViewExtent>
|
||||||
|
</ProjectViewSettings>
|
||||||
|
<ProjectTimeSettings cumulativeTemporalRange="0" timeStep="1" timeStepUnit="h" frameRate="1"/>
|
||||||
|
<ProjectDisplaySettings>
|
||||||
|
<BearingFormat id="bearing">
|
||||||
|
<Option type="Map">
|
||||||
|
<Option value="" name="decimal_separator" type="QChar"/>
|
||||||
|
<Option value="6" name="decimals" type="int"/>
|
||||||
|
<Option value="0" name="direction_format" type="int"/>
|
||||||
|
<Option value="0" name="rounding_type" type="int"/>
|
||||||
|
<Option value="false" name="show_plus" type="bool"/>
|
||||||
|
<Option value="true" name="show_thousand_separator" type="bool"/>
|
||||||
|
<Option value="false" name="show_trailing_zeros" type="bool"/>
|
||||||
|
<Option value="" name="thousand_separator" type="QChar"/>
|
||||||
|
</Option>
|
||||||
|
</BearingFormat>
|
||||||
|
</ProjectDisplaySettings>
|
||||||
|
</qgis>
|
BIN
tests/testdata/embedded_groups/joins2.qgz
vendored
Normal file
BIN
tests/testdata/embedded_groups/joins2.qgz
vendored
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user