mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-05 00:09:32 -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()
|
||||
{
|
||||
//dialog to select groups/layers from other project files
|
||||
QgsProjectLayerGroupDialog d( this );
|
||||
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
|
||||
QStringList groups = d.selectedGroups();
|
||||
QStringList::const_iterator groupIt = groups.constBegin();
|
||||
for ( ; groupIt != groups.constEnd(); ++groupIt )
|
||||
//groups
|
||||
QStringList::const_iterator groupIt = groups.constBegin();
|
||||
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 ( newGroup )
|
||||
QgsProject::instance()->layerTreeRoot()->addChildNode( newGroup );
|
||||
if ( selId == id )
|
||||
QgsProject::instance()->createEmbeddedLayer( selId, projectFile, brokenNodes );
|
||||
}
|
||||
}
|
||||
|
||||
//layer ids
|
||||
QList<QDomNode> 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 );
|
||||
}
|
||||
|
||||
// resolve dependencies
|
||||
QgsLayerDefinition::DependencySorter depSorter( projectFile );
|
||||
QStringList sortedIds = depSorter.sortedLayerIds();
|
||||
QStringList layerIds = d.selectedLayerIds();
|
||||
const auto constSortedIds = sortedIds;
|
||||
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 );
|
||||
}
|
||||
// Resolve references to other layers
|
||||
QMap<QString, QgsMapLayer *> layers = QgsProject::instance()->mapLayers();
|
||||
for ( QMap<QString, QgsMapLayer *>::iterator it = layers.begin(); it != layers.end(); ++it )
|
||||
{
|
||||
it.value()->resolveReferences( QgsProject::instance() );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1558,8 +1558,17 @@ class APP_EXPORT QgisApp : public QMainWindow, private Ui::MainWindow
|
||||
void showMeshCalculator();
|
||||
//! Open dialog to align raster layers
|
||||
void showAlignRasterTool();
|
||||
|
||||
/**
|
||||
* Called whenever user wants to embed layers
|
||||
*/
|
||||
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
|
||||
void newMapCanvas();
|
||||
//! 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 TestQgisAppPython;
|
||||
friend class TestQgisApp;
|
||||
friend class QgisAppInterface;
|
||||
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->setTransformContext( mTransformContext );
|
||||
|
||||
// load embedded groups and layers
|
||||
profile.switchTask( tr( "Loading embedded layers" ) );
|
||||
loadEmbeddedNodes( mRootGroup, flags );
|
||||
|
||||
// Resolve references to other layers
|
||||
// Needs to be done here once all dependent layers are loaded
|
||||
profile.switchTask( tr( "Resolving layer references" ) );
|
||||
@ -1651,10 +1655,6 @@ bool QgsProject::readProjectFile( const QString &filename, QgsProject::ReadFlags
|
||||
|
||||
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
|
||||
profile.switchTask( tr( "Resolving references" ) );
|
||||
mRootGroup->resolveReferences( this );
|
||||
|
@ -42,6 +42,7 @@ class TestQgisApp : public QObject
|
||||
void addVectorLayerGeopackageSingleLayer();
|
||||
void addVectorLayerGeopackageSingleLayerAlreadyLayername();
|
||||
void addVectorLayerInvalid();
|
||||
void addEmbeddedGroup();
|
||||
|
||||
private:
|
||||
QgisApp *mQgisApp = nullptr;
|
||||
@ -137,5 +138,22 @@ void TestQgisApp::addVectorLayerInvalid()
|
||||
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 )
|
||||
#include "testqgisapp.moc"
|
||||
|
@ -59,6 +59,7 @@ class TestQgsProject : public QObject
|
||||
void testAttachmentsQgs();
|
||||
void testAttachmentsQgz();
|
||||
void testAttachmentIdentifier();
|
||||
void testEmbeddedGroupWithJoins();
|
||||
};
|
||||
|
||||
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 )
|
||||
#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