Add rule-based and categorized styles to the bad layers test

This commit is contained in:
Alessandro Pasotti 2018-11-06 10:27:07 +01:00
parent c8b26771cf
commit ba3ccca2dd
3 changed files with 319 additions and 172 deletions

View File

@ -233,9 +233,6 @@ class TestQgsProjectBadLayers(unittest.TestCase):
options = QgsDataProvider.ProviderOptions()
temp_dir = QTemporaryDir()
p = QgsProject.instance()
project_path = os.path.join(temp_dir.path(), 'good_layers_test.qgs')
copyfile(os.path.join(TEST_DATA_DIR, 'projects', 'good_layers_test.qgs'), project_path)
copyfile(os.path.join(TEST_DATA_DIR, 'projects', 'bad_layers_test.gpkg'), os.path.join(temp_dir.path(), 'bad_layers_test.gpkg'))
for f in (
'bad_layer_raster_test.tfw',
'bad_layer_raster_test.tiff',
@ -244,6 +241,7 @@ class TestQgsProjectBadLayers(unittest.TestCase):
'good_layers_test.qgs'):
copyfile(os.path.join(TEST_DATA_DIR, 'projects', f), os.path.join(temp_dir.path(), f))
project_path = os.path.join(temp_dir.path(), 'good_layers_test.qgs')
p = QgsProject().instance()
self.assertTrue(p.read(project_path))
self.assertEqual(p.count(), 3)

Binary file not shown.

View File

@ -1,5 +1,5 @@
<!DOCTYPE qgis PUBLIC 'http://mrcc.com/qgis.dtd' 'SYSTEM'>
<qgis version="3.5.0-Master" projectname="">
<qgis projectname="" version="3.5.0-Master">
<homePath path=""/>
<title></title>
<autotransaction active="0"/>
@ -19,13 +19,13 @@
</projectCrs>
<layer-tree-group>
<customproperties/>
<layer-tree-layer providerKey="ogr" id="point_b_d23a7df9_c9d6_4b48_9162_5fc1a7db2b96" name="point_b" checked="Qt::Checked" source="./bad_layers_test.gpkg|layername=point_b" expanded="1">
<layer-tree-layer id="point_b_d23a7df9_c9d6_4b48_9162_5fc1a7db2b96" checked="Qt::Checked" expanded="1" source="./bad_layers_test.gpkg|layername=point_b" name="point_b" providerKey="ogr">
<customproperties/>
</layer-tree-layer>
<layer-tree-layer providerKey="ogr" id="point_a_e99cf1b1_e13e_44a8_b912_58505e7ac967" name="point_a" checked="Qt::Checked" source="./bad_layers_test.gpkg|layername=point_a" expanded="1">
<layer-tree-layer id="point_a_e99cf1b1_e13e_44a8_b912_58505e7ac967" checked="Qt::Checked" expanded="1" source="./bad_layers_test.gpkg|layername=point_a" name="point_a" providerKey="ogr">
<customproperties/>
</layer-tree-layer>
<layer-tree-layer providerKey="gdal" id="bad_layer_raster_test_18978e96_6781_4a5d_b0bc_474994ed231a" name="bad_layer_raster_test" checked="Qt::Checked" source="./bad_layer_raster_test.tiff" expanded="1">
<layer-tree-layer id="bad_layer_raster_test_18978e96_6781_4a5d_b0bc_474994ed231a" checked="Qt::Checked" expanded="1" source="./bad_layer_raster_test.tiff" name="bad_layer_raster_test" providerKey="gdal">
<customproperties/>
</layer-tree-layer>
<custom-order enabled="0">
@ -34,14 +34,14 @@
<item>bad_layer_raster_test_18978e96_6781_4a5d_b0bc_474994ed231a</item>
</custom-order>
</layer-tree-group>
<snapping-settings unit="1" enabled="0" mode="2" intersection-snapping="0" type="1" tolerance="12">
<snapping-settings enabled="0" mode="2" tolerance="12" type="1" intersection-snapping="0" unit="1">
<individual-layer-settings>
<layer-setting id="point_b_d23a7df9_c9d6_4b48_9162_5fc1a7db2b96" enabled="0" units="1" type="1" tolerance="12"/>
<layer-setting id="point_a_e99cf1b1_e13e_44a8_b912_58505e7ac967" enabled="0" units="1" type="1" tolerance="12"/>
<layer-setting id="point_a_e99cf1b1_e13e_44a8_b912_58505e7ac967" enabled="0" tolerance="12" units="1" type="1"/>
<layer-setting id="point_b_d23a7df9_c9d6_4b48_9162_5fc1a7db2b96" enabled="0" tolerance="12" units="1" type="1"/>
</individual-layer-settings>
</snapping-settings>
<relations>
<relation id="point_a_e9_point_b_ref_point_b_d2_fid" name="point a to b" strength="Association" referencingLayer="point_a_e99cf1b1_e13e_44a8_b912_58505e7ac967" referencedLayer="point_b_d23a7df9_c9d6_4b48_9162_5fc1a7db2b96">
<relation id="point_a_e9_point_b_ref_point_b_d2_fid" referencedLayer="point_b_d23a7df9_c9d6_4b48_9162_5fc1a7db2b96" name="point a to b" strength="Association" referencingLayer="point_a_e99cf1b1_e13e_44a8_b912_58505e7ac967">
<fieldRef referencingField="point_b_ref" referencedField="fid"/>
</relation>
</relations>
@ -70,26 +70,49 @@
</mapcanvas>
<projectModels/>
<legend updateDrawingOrder="true">
<legendlayer name="point_b" checked="Qt::Checked" drawingOrder="-1" showFeatureCount="0" open="true">
<legendlayer open="true" checked="Qt::Checked" name="point_b" drawingOrder="-1" showFeatureCount="0">
<filegroup open="true" hidden="false">
<legendlayerfile visible="1" layerid="point_b_d23a7df9_c9d6_4b48_9162_5fc1a7db2b96" isInOverview="0"/>
<legendlayerfile visible="1" isInOverview="0" layerid="point_b_d23a7df9_c9d6_4b48_9162_5fc1a7db2b96"/>
</filegroup>
</legendlayer>
<legendlayer name="point_a" checked="Qt::Checked" drawingOrder="-1" showFeatureCount="0" open="true">
<legendlayer open="true" checked="Qt::Checked" name="point_a" drawingOrder="-1" showFeatureCount="0">
<filegroup open="true" hidden="false">
<legendlayerfile visible="1" layerid="point_a_e99cf1b1_e13e_44a8_b912_58505e7ac967" isInOverview="0"/>
<legendlayerfile visible="1" isInOverview="0" layerid="point_a_e99cf1b1_e13e_44a8_b912_58505e7ac967"/>
</filegroup>
</legendlayer>
<legendlayer name="bad_layer_raster_test" checked="Qt::Checked" drawingOrder="-1" showFeatureCount="0" open="true">
<legendlayer open="true" checked="Qt::Checked" name="bad_layer_raster_test" drawingOrder="-1" showFeatureCount="0">
<filegroup open="true" hidden="false">
<legendlayerfile visible="1" layerid="bad_layer_raster_test_18978e96_6781_4a5d_b0bc_474994ed231a" isInOverview="0"/>
<legendlayerfile visible="1" isInOverview="0" layerid="bad_layer_raster_test_18978e96_6781_4a5d_b0bc_474994ed231a"/>
</filegroup>
</legendlayer>
</legend>
<mapViewDocks/>
<mapViewDocks3D/>
<mapcanvas name="mMapCanvas" annotationsVisible="1">
<units>degrees</units>
<extent>
<xmin>2.81828421961071651</xmin>
<ymin>41.9812628573046851</ymin>
<xmax>2.82010032075159867</xmax>
<ymax>41.9817810775760023</ymax>
</extent>
<rotation>0</rotation>
<destinationsrs>
<spatialrefsys>
<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>WGS84</ellipsoidacronym>
<geographicflag>true</geographicflag>
</spatialrefsys>
</destinationsrs>
<rendermaptile>0</rendermaptile>
</mapcanvas>
<projectlayers>
<maplayer autoRefreshTime="0" minScale="1e+8" autoRefreshEnabled="0" maxScale="0" refreshOnNotifyMessage="" hasScaleBasedVisibilityFlag="0" type="raster" refreshOnNotifyEnabled="0" styleCategories="AllStyleCategories">
<maplayer refreshOnNotifyEnabled="0" autoRefreshTime="0" hasScaleBasedVisibilityFlag="0" styleCategories="AllStyleCategories" type="raster" autoRefreshEnabled="0" refreshOnNotifyMessage="" maxScale="0" minScale="1e+8">
<extent>
<xmin>2.81828421999999978</xmin>
<ymin>41.98122895881507333</ymin>
@ -142,11 +165,11 @@
<description></description>
<projectionacronym></projectionacronym>
<ellipsoidacronym></ellipsoidacronym>
<geographicflag>true</geographicflag>
<geographicflag>false</geographicflag>
</spatialrefsys>
</crs>
<extent>
<spatial minz="0" maxx="0" maxy="0" dimensions="2" crs="" minx="0" miny="0" maxz="0"/>
<spatial crs="" maxx="0" maxz="0" minx="0" minz="0" miny="0" dimensions="2" maxy="0"/>
<temporal>
<period>
<start></start>
@ -171,13 +194,13 @@
<Searchable>1</Searchable>
</flags>
<customproperties>
<property value="false" key="WMSBackgroundLayer"/>
<property value="false" key="WMSPublishDataSourceUrl"/>
<property value="0" key="embeddedWidgets/count"/>
<property value="Value" key="identify/format"/>
<property key="WMSBackgroundLayer" value="false"/>
<property key="WMSPublishDataSourceUrl" value="false"/>
<property key="embeddedWidgets/count" value="0"/>
<property key="identify/format" value="Value"/>
</customproperties>
<pipe>
<rasterrenderer grayBand="1" opacity="1" alphaBand="4" gradient="BlackToWhite" type="singlebandgray">
<rasterrenderer alphaBand="4" gradient="BlackToWhite" type="singlebandgray" opacity="1" grayBand="1">
<rasterTransparency/>
<minMaxOrigin>
<limits>MinMax</limits>
@ -194,12 +217,12 @@
</contrastEnhancement>
</rasterrenderer>
<brightnesscontrast brightness="0" contrast="0"/>
<huesaturation colorizeGreen="128" colorizeStrength="100" colorizeBlue="128" saturation="0" colorizeRed="255" colorizeOn="0" grayscaleMode="0"/>
<huesaturation grayscaleMode="0" colorizeRed="255" saturation="0" colorizeGreen="128" colorizeBlue="128" colorizeOn="0" colorizeStrength="100"/>
<rasterresampler maxOversampling="2"/>
</pipe>
<blendMode>0</blendMode>
</maplayer>
<maplayer autoRefreshTime="0" geometry="Point" minScale="1e+8" labelsEnabled="0" autoRefreshEnabled="0" maxScale="0" refreshOnNotifyMessage="" simplifyAlgorithm="0" simplifyDrawingTol="1" simplifyMaxScale="1" hasScaleBasedVisibilityFlag="0" type="vector" simplifyDrawingHints="0" refreshOnNotifyEnabled="0" styleCategories="AllStyleCategories" readOnly="0" simplifyLocal="1">
<maplayer refreshOnNotifyEnabled="0" geometry="Point" simplifyDrawingHints="0" simplifyDrawingTol="1" autoRefreshTime="0" simplifyMaxScale="1" labelsEnabled="0" hasScaleBasedVisibilityFlag="0" readOnly="0" simplifyAlgorithm="0" styleCategories="AllStyleCategories" type="vector" autoRefreshEnabled="0" refreshOnNotifyMessage="" maxScale="0" simplifyLocal="1" minScale="1e+8">
<extent>
<xmin>2.81884431838989258</xmin>
<ymin>41.9814453125</ymin>
@ -256,7 +279,7 @@
</spatialrefsys>
</crs>
<extent>
<spatial minz="0" maxx="0" maxy="0" dimensions="2" crs="" minx="0" miny="0" maxz="0"/>
<spatial crs="" maxx="0" maxz="0" minx="0" minz="0" miny="0" dimensions="2" maxy="0"/>
<temporal>
<period>
<start></start>
@ -280,10 +303,104 @@
<Removable>1</Removable>
<Searchable>1</Searchable>
</flags>
<renderer-v2 forceraster="0" symbollevels="0" enableorderby="0" type="singleSymbol">
<renderer-v2 enableorderby="0" forceraster="0" symbollevels="0" attr="point_b_ref" type="categorizedSymbol">
<categories>
<category symbol="0" value="1" label="1" render="true"/>
<category symbol="1" value="2" label="2" render="true"/>
<category symbol="2" value="" label="" render="true"/>
</categories>
<symbols>
<symbol alpha="1" name="0" clip_to_extent="1" type="marker">
<layer locked="0" pass="0" enabled="1" class="SimpleMarker">
<symbol name="0" type="marker" clip_to_extent="1" alpha="1">
<layer class="SimpleMarker" enabled="1" locked="0" pass="0">
<prop k="angle" v="0"/>
<prop k="color" v="230,133,101,255"/>
<prop k="horizontal_anchor_point" v="1"/>
<prop k="joinstyle" v="bevel"/>
<prop k="name" v="diamond"/>
<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="128,17,25,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0.4"/>
<prop k="outline_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="scale_method" v="diameter"/>
<prop k="size" v="4.4"/>
<prop k="size_map_unit_scale" v="3x:0,0,0,0,0,0"/>
<prop k="size_unit" v="MM"/>
<prop k="vertical_anchor_point" v="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>
</symbol>
<symbol name="1" type="marker" clip_to_extent="1" alpha="1">
<layer class="SimpleMarker" enabled="1" locked="0" pass="0">
<prop k="angle" v="0"/>
<prop k="color" v="139,232,163,255"/>
<prop k="horizontal_anchor_point" v="1"/>
<prop k="joinstyle" v="bevel"/>
<prop k="name" v="diamond"/>
<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="128,17,25,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0.4"/>
<prop k="outline_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="scale_method" v="diameter"/>
<prop k="size" v="4.4"/>
<prop k="size_map_unit_scale" v="3x:0,0,0,0,0,0"/>
<prop k="size_unit" v="MM"/>
<prop k="vertical_anchor_point" v="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>
</symbol>
<symbol name="2" type="marker" clip_to_extent="1" alpha="1">
<layer class="SimpleMarker" enabled="1" locked="0" pass="0">
<prop k="angle" v="0"/>
<prop k="color" v="95,59,203,255"/>
<prop k="horizontal_anchor_point" v="1"/>
<prop k="joinstyle" v="bevel"/>
<prop k="name" v="diamond"/>
<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="128,17,25,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0.4"/>
<prop k="outline_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="scale_method" v="diameter"/>
<prop k="size" v="4.4"/>
<prop k="size_map_unit_scale" v="3x:0,0,0,0,0,0"/>
<prop k="size_unit" v="MM"/>
<prop k="vertical_anchor_point" v="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>
</symbol>
</symbols>
<source-symbol>
<symbol name="0" type="marker" clip_to_extent="1" alpha="1">
<layer class="SimpleMarker" enabled="1" locked="0" pass="0">
<prop k="angle" v="0"/>
<prop k="color" v="219,30,42,255"/>
<prop k="horizontal_anchor_point" v="1"/>
@ -311,25 +428,26 @@
</data_defined_properties>
</layer>
</symbol>
</symbols>
</source-symbol>
<colorramp name="[source]" type="randomcolors"/>
<rotation/>
<sizescale/>
</renderer-v2>
<customproperties>
<property value="0" key="embeddedWidgets/count"/>
<property key="embeddedWidgets/count" value="0"/>
<property key="variableNames"/>
<property key="variableValues"/>
</customproperties>
<blendMode>0</blendMode>
<featureBlendMode>0</featureBlendMode>
<layerOpacity>1</layerOpacity>
<SingleCategoryDiagramRenderer diagramType="Histogram" attributeLegend="1">
<DiagramCategory enabled="0" labelPlacementMethod="XHeight" lineSizeScale="3x:0,0,0,0,0,0" minimumSize="0" penAlpha="255" lineSizeType="MM" minScaleDenominator="0" sizeScale="3x:0,0,0,0,0,0" height="15" maxScaleDenominator="1e+8" opacity="1" barWidth="5" diagramOrientation="Up" width="15" scaleBasedVisibility="0" backgroundColor="#ffffff" scaleDependency="Area" sizeType="MM" rotationOffset="270" penColor="#000000" penWidth="0" backgroundAlpha="255">
<SingleCategoryDiagramRenderer attributeLegend="1" diagramType="Histogram">
<DiagramCategory diagramOrientation="Up" backgroundAlpha="255" penAlpha="255" labelPlacementMethod="XHeight" backgroundColor="#ffffff" scaleDependency="Area" enabled="0" scaleBasedVisibility="0" maxScaleDenominator="1e+8" penColor="#000000" sizeType="MM" minimumSize="0" height="15" rotationOffset="270" opacity="1" lineSizeScale="3x:0,0,0,0,0,0" barWidth="5" penWidth="0" sizeScale="3x:0,0,0,0,0,0" minScaleDenominator="0" lineSizeType="MM" width="15">
<fontProperties description="Noto Sans,9,-1,5,50,0,0,0,0,0" style=""/>
<attribute color="#000000" label="" field=""/>
<attribute field="" color="#000000" label=""/>
</DiagramCategory>
</SingleCategoryDiagramRenderer>
<DiagramLayerSettings priority="0" obstacle="0" placement="0" zIndex="0" showAll="1" linePlacementFlags="18" dist="0">
<DiagramLayerSettings linePlacementFlags="18" priority="0" zIndex="0" placement="0" dist="0" showAll="1" obstacle="0">
<properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
@ -375,9 +493,9 @@
</field>
</fieldConfiguration>
<aliases>
<alias index="0" name="" field="fid"/>
<alias index="1" name="" field="name"/>
<alias index="2" name="" field="point_b_ref"/>
<alias field="fid" name="" index="0"/>
<alias field="name" name="" index="1"/>
<alias field="point_b_ref" name="" index="2"/>
</aliases>
<excludeAttributesWMS/>
<excludeAttributesWFS/>
@ -387,25 +505,25 @@
<default applyOnUpdate="0" expression="" field="point_b_ref"/>
</defaults>
<constraints>
<constraint constraints="3" exp_strength="0" unique_strength="1" notnull_strength="1" field="fid"/>
<constraint constraints="0" exp_strength="0" unique_strength="0" notnull_strength="0" field="name"/>
<constraint constraints="0" exp_strength="0" unique_strength="0" notnull_strength="0" field="point_b_ref"/>
<constraint notnull_strength="1" field="fid" constraints="3" exp_strength="0" unique_strength="1"/>
<constraint notnull_strength="0" field="name" constraints="0" exp_strength="0" unique_strength="0"/>
<constraint notnull_strength="0" field="point_b_ref" constraints="0" exp_strength="0" unique_strength="0"/>
</constraints>
<constraintExpressions>
<constraint exp="" field="fid" desc=""/>
<constraint exp="" field="name" desc=""/>
<constraint exp="" field="point_b_ref" desc=""/>
<constraint field="fid" desc="" exp=""/>
<constraint field="name" desc="" exp=""/>
<constraint field="point_b_ref" desc="" exp=""/>
</constraintExpressions>
<expressionfields/>
<attributeactions>
<defaultAction value="{00000000-0000-0000-0000-000000000000}" key="Canvas"/>
<defaultAction key="Canvas" value="{00000000-0000-0000-0000-000000000000}"/>
</attributeactions>
<attributetableconfig actionWidgetStyle="dropDown" sortExpression="" sortOrder="0">
<attributetableconfig actionWidgetStyle="dropDown" sortOrder="0" sortExpression="">
<columns>
<column width="-1" name="fid" type="field" hidden="0"/>
<column width="-1" name="name" type="field" hidden="0"/>
<column width="-1" name="point_b_ref" type="field" hidden="0"/>
<column width="-1" type="actions" hidden="1"/>
<column hidden="0" name="fid" type="field" width="-1"/>
<column hidden="0" name="name" type="field" width="-1"/>
<column hidden="0" name="point_b_ref" type="field" width="-1"/>
<column hidden="1" type="actions" width="-1"/>
</columns>
</attributetableconfig>
<conditionalstyles>
@ -436,9 +554,9 @@ def my_form_open(dialog, layer, feature):
<featformsuppress>0</featformsuppress>
<editorlayout>generatedlayout</editorlayout>
<editable>
<field name="fid" editable="1"/>
<field name="name" editable="1"/>
<field name="point_b_ref" editable="1"/>
<field editable="1" name="fid"/>
<field editable="1" name="name"/>
<field editable="1" name="point_b_ref"/>
</editable>
<labelOnTop>
<field labelOnTop="0" name="fid"/>
@ -449,7 +567,7 @@ def my_form_open(dialog, layer, feature):
<previewExpression>fid</previewExpression>
<mapTip></mapTip>
</maplayer>
<maplayer autoRefreshTime="0" geometry="Point" minScale="1e+8" labelsEnabled="0" autoRefreshEnabled="0" maxScale="0" refreshOnNotifyMessage="" simplifyAlgorithm="0" simplifyDrawingTol="1" simplifyMaxScale="1" hasScaleBasedVisibilityFlag="0" type="vector" simplifyDrawingHints="0" refreshOnNotifyEnabled="0" styleCategories="AllStyleCategories" readOnly="0" simplifyLocal="1">
<maplayer refreshOnNotifyEnabled="0" geometry="Point" simplifyDrawingHints="0" simplifyDrawingTol="1" autoRefreshTime="0" simplifyMaxScale="1" labelsEnabled="0" hasScaleBasedVisibilityFlag="0" readOnly="0" simplifyAlgorithm="0" styleCategories="AllStyleCategories" type="vector" autoRefreshEnabled="0" refreshOnNotifyMessage="" maxScale="0" simplifyLocal="1" minScale="1e+8">
<extent>
<xmin>2.81895375251770108</xmin>
<ymin>41.98152542114257813</ymin>
@ -506,7 +624,7 @@ def my_form_open(dialog, layer, feature):
</spatialrefsys>
</crs>
<extent>
<spatial minz="0" maxx="0" maxy="0" dimensions="2" crs="" minx="0" miny="0" maxz="0"/>
<spatial crs="" maxx="0" maxz="0" minx="0" minz="0" miny="0" dimensions="2" maxy="0"/>
<temporal>
<period>
<start></start>
@ -530,15 +648,48 @@ def my_form_open(dialog, layer, feature):
<Removable>1</Removable>
<Searchable>1</Searchable>
</flags>
<renderer-v2 forceraster="0" symbollevels="0" enableorderby="0" type="singleSymbol">
<renderer-v2 enableorderby="0" forceraster="0" symbollevels="0" type="RuleRenderer">
<rules key="{b1cf0a6b-e0d2-42bc-812c-30466cca67f4}">
<rule symbol="0" key="{2389fe25-0632-42b5-8539-4650018ade4a}" filter=" &quot;name&quot; = 'point 1' "/>
<rule symbol="1" key="{a4ae7630-be28-42b6-8fb1-80e7ce782b7f}" filter=" &quot;name&quot; = 'point 2' "/>
</rules>
<symbols>
<symbol alpha="1" name="0" clip_to_extent="1" type="marker">
<layer locked="0" pass="0" enabled="1" class="SimpleMarker">
<symbol name="0" type="marker" clip_to_extent="1" alpha="1">
<layer class="SimpleMarker" enabled="1" locked="0" pass="0">
<prop k="angle" v="0"/>
<prop k="color" v="72,123,182,255"/>
<prop k="horizontal_anchor_point" v="1"/>
<prop k="joinstyle" v="bevel"/>
<prop k="name" v="triangle"/>
<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="50,87,128,255"/>
<prop k="outline_style" v="solid"/>
<prop k="outline_width" v="0.4"/>
<prop k="outline_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="scale_method" v="diameter"/>
<prop k="size" v="4"/>
<prop k="size_map_unit_scale" v="3x:0,0,0,0,0,0"/>
<prop k="size_unit" v="MM"/>
<prop k="vertical_anchor_point" v="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>
</symbol>
<symbol name="1" type="marker" clip_to_extent="1" alpha="1">
<layer class="SimpleMarker" enabled="1" locked="0" pass="0">
<prop k="angle" v="0"/>
<prop k="color" v="84,176,74,255"/>
<prop k="horizontal_anchor_point" v="1"/>
<prop k="joinstyle" v="bevel"/>
<prop k="name" v="diamond"/>
<prop k="name" v="triangle"/>
<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"/>
@ -548,7 +699,7 @@ def my_form_open(dialog, layer, feature):
<prop k="outline_width_map_unit_scale" v="3x:0,0,0,0,0,0"/>
<prop k="outline_width_unit" v="MM"/>
<prop k="scale_method" v="diameter"/>
<prop k="size" v="4.4"/>
<prop k="size" v="4"/>
<prop k="size_map_unit_scale" v="3x:0,0,0,0,0,0"/>
<prop k="size_unit" v="MM"/>
<prop k="vertical_anchor_point" v="1"/>
@ -562,24 +713,22 @@ def my_form_open(dialog, layer, feature):
</layer>
</symbol>
</symbols>
<rotation/>
<sizescale/>
</renderer-v2>
<customproperties>
<property value="0" key="embeddedWidgets/count"/>
<property key="embeddedWidgets/count" value="0"/>
<property key="variableNames"/>
<property key="variableValues"/>
</customproperties>
<blendMode>0</blendMode>
<featureBlendMode>0</featureBlendMode>
<layerOpacity>1</layerOpacity>
<SingleCategoryDiagramRenderer diagramType="Histogram" attributeLegend="1">
<DiagramCategory enabled="0" labelPlacementMethod="XHeight" lineSizeScale="3x:0,0,0,0,0,0" minimumSize="0" penAlpha="255" lineSizeType="MM" minScaleDenominator="0" sizeScale="3x:0,0,0,0,0,0" height="15" maxScaleDenominator="1e+8" opacity="1" barWidth="5" diagramOrientation="Up" width="15" scaleBasedVisibility="0" backgroundColor="#ffffff" scaleDependency="Area" sizeType="MM" rotationOffset="270" penColor="#000000" penWidth="0" backgroundAlpha="255">
<SingleCategoryDiagramRenderer attributeLegend="1" diagramType="Histogram">
<DiagramCategory diagramOrientation="Up" backgroundAlpha="255" penAlpha="255" labelPlacementMethod="XHeight" backgroundColor="#ffffff" scaleDependency="Area" enabled="0" scaleBasedVisibility="0" maxScaleDenominator="1e+8" penColor="#000000" sizeType="MM" minimumSize="0" height="15" rotationOffset="270" opacity="1" lineSizeScale="3x:0,0,0,0,0,0" barWidth="5" penWidth="0" sizeScale="3x:0,0,0,0,0,0" minScaleDenominator="0" lineSizeType="MM" width="15">
<fontProperties description="Noto Sans,9,-1,5,50,0,0,0,0,0" style=""/>
<attribute color="#000000" label="" field=""/>
<attribute field="" color="#000000" label=""/>
</DiagramCategory>
</SingleCategoryDiagramRenderer>
<DiagramLayerSettings priority="0" obstacle="0" placement="0" zIndex="0" showAll="1" linePlacementFlags="18" dist="0">
<DiagramLayerSettings linePlacementFlags="18" priority="0" zIndex="0" placement="0" dist="0" showAll="1" obstacle="0">
<properties>
<Option type="Map">
<Option value="" name="name" type="QString"/>
@ -609,8 +758,8 @@ def my_form_open(dialog, layer, feature):
</field>
</fieldConfiguration>
<aliases>
<alias index="0" name="" field="fid"/>
<alias index="1" name="" field="name"/>
<alias field="fid" name="" index="0"/>
<alias field="name" name="" index="1"/>
</aliases>
<excludeAttributesWMS/>
<excludeAttributesWFS/>
@ -619,22 +768,22 @@ def my_form_open(dialog, layer, feature):
<default applyOnUpdate="0" expression="" field="name"/>
</defaults>
<constraints>
<constraint constraints="3" exp_strength="0" unique_strength="1" notnull_strength="1" field="fid"/>
<constraint constraints="0" exp_strength="0" unique_strength="0" notnull_strength="0" field="name"/>
<constraint notnull_strength="1" field="fid" constraints="3" exp_strength="0" unique_strength="1"/>
<constraint notnull_strength="0" field="name" constraints="0" exp_strength="0" unique_strength="0"/>
</constraints>
<constraintExpressions>
<constraint exp="" field="fid" desc=""/>
<constraint exp="" field="name" desc=""/>
<constraint field="fid" desc="" exp=""/>
<constraint field="name" desc="" exp=""/>
</constraintExpressions>
<expressionfields/>
<attributeactions>
<defaultAction value="{00000000-0000-0000-0000-000000000000}" key="Canvas"/>
<defaultAction key="Canvas" value="{00000000-0000-0000-0000-000000000000}"/>
</attributeactions>
<attributetableconfig actionWidgetStyle="dropDown" sortExpression="" sortOrder="0">
<attributetableconfig actionWidgetStyle="dropDown" sortOrder="0" sortExpression="">
<columns>
<column width="-1" name="fid" type="field" hidden="0"/>
<column width="-1" name="name" type="field" hidden="0"/>
<column width="-1" type="actions" hidden="1"/>
<column hidden="0" name="fid" type="field" width="-1"/>
<column hidden="0" name="name" type="field" width="-1"/>
<column hidden="1" type="actions" width="-1"/>
</columns>
</attributetableconfig>
<conditionalstyles>
@ -665,8 +814,8 @@ def my_form_open(dialog, layer, feature):
<featformsuppress>0</featformsuppress>
<editorlayout>generatedlayout</editorlayout>
<editable>
<field name="fid" editable="1"/>
<field name="name" editable="1"/>
<field editable="1" name="fid"/>
<field editable="1" name="name"/>
</editable>
<labelOnTop>
<field labelOnTop="0" name="fid"/>
@ -689,100 +838,111 @@ def my_form_open(dialog, layer, feature):
<layer id="bad_layer_raster_test_18978e96_6781_4a5d_b0bc_474994ed231a"/>
</layerorder>
<properties>
<Macros>
<pythonCode type="QString"></pythonCode>
</Macros>
<WFSTLayers>
<Delete type="QStringList"/>
<Insert type="QStringList"/>
<Update type="QStringList"/>
</WFSTLayers>
<WMTSMinScale type="int">5000</WMTSMinScale>
<WMSAddWktGeometry type="bool">false</WMSAddWktGeometry>
<Legend>
<filterByMap type="bool">false</filterByMap>
</Legend>
<WFSLayers type="QStringList"/>
<WMSPrecision type="QString">8</WMSPrecision>
<WMTSUrl type="QString"></WMTSUrl>
<WMSFees type="QString">conditions unknown</WMSFees>
<PositionPrecision>
<Automatic type="bool">true</Automatic>
<DecimalPlaces type="int">2</DecimalPlaces>
<DegreeFormat type="QString">MU</DegreeFormat>
</PositionPrecision>
<WMSImageQuality type="int">90</WMSImageQuality>
<Measure>
<Ellipsoid type="QString">WGS84</Ellipsoid>
</Measure>
<SpatialRefSys>
<ProjectionsEnabled type="int">1</ProjectionsEnabled>
</SpatialRefSys>
<WMTSPngLayers>
<Layer type="QStringList"/>
<Project type="bool">false</Project>
<Group type="QStringList"/>
</WMTSPngLayers>
<WMSAccessConstraints type="QString">None</WMSAccessConstraints>
<WMSSegmentizeFeatureInfoGeometry type="bool">false</WMSSegmentizeFeatureInfoGeometry>
<WMSRequestDefinedDataSources type="bool">false</WMSRequestDefinedDataSources>
<WMSServiceCapabilities type="bool">false</WMSServiceCapabilities>
<WMSUrl type="QString"></WMSUrl>
<WCSLayers type="QStringList"/>
<WMSContactPerson type="QString"></WMSContactPerson>
<WFSUrl type="QString"></WFSUrl>
<WMSContactOrganization type="QString"></WMSContactOrganization>
<Identify>
<disabledLayers type="QStringList"/>
</Identify>
<DefaultStyles>
<Fill type="QString"></Fill>
<Line type="QString"></Line>
<Opacity type="double">1</Opacity>
<RandomColors type="bool">true</RandomColors>
<Marker type="QString"></Marker>
<ColorRamp type="QString"></ColorRamp>
</DefaultStyles>
<WMSKeywordList type="QStringList">
<value></value>
</WMSKeywordList>
<WFSUrl type="QString"></WFSUrl>
<WMTSJpegLayers>
<Layer type="QStringList"/>
<Project type="bool">false</Project>
<Group type="QStringList"/>
</WMTSJpegLayers>
<Measurement>
<DistanceUnits type="QString">meters</DistanceUnits>
<AreaUnits type="QString">m2</AreaUnits>
</Measurement>
<WMSUrl type="QString"></WMSUrl>
<WMSServiceAbstract type="QString"></WMSServiceAbstract>
<WFSTLayers>
<Delete type="QStringList"/>
<Update type="QStringList"/>
<Insert type="QStringList"/>
</WFSTLayers>
<WMSFees type="QString">conditions unknown</WMSFees>
<Macros>
<pythonCode type="QString"></pythonCode>
</Macros>
<WFSLayers type="QStringList"/>
<Gui>
<SelectionColorBluePart type="int">0</SelectionColorBluePart>
<SelectionColorAlphaPart type="int">255</SelectionColorAlphaPart>
<SelectionColorRedPart type="int">255</SelectionColorRedPart>
<SelectionColorGreenPart type="int">255</SelectionColorGreenPart>
<CanvasColorRedPart type="int">255</CanvasColorRedPart>
<CanvasColorGreenPart type="int">255</CanvasColorGreenPart>
<CanvasColorBluePart type="int">255</CanvasColorBluePart>
</Gui>
<WCSUrl type="QString"></WCSUrl>
<Legend>
<filterByMap type="bool">false</filterByMap>
</Legend>
<Paths>
<Absolute type="bool">false</Absolute>
</Paths>
<WMSServiceAbstract type="QString"></WMSServiceAbstract>
<WMSUseLayerIDs type="bool">false</WMSUseLayerIDs>
<WMSServiceTitle type="QString"></WMSServiceTitle>
<PAL>
<DrawOutlineLabels type="bool">true</DrawOutlineLabels>
<CandidatesPolygon type="int">30</CandidatesPolygon>
<ShowingPartialsLabels type="bool">true</ShowingPartialsLabels>
<CandidatesLine type="int">50</CandidatesLine>
<SearchMethod type="int">0</SearchMethod>
<CandidatesPoint type="int">16</CandidatesPoint>
<ShowingCandidates type="bool">false</ShowingCandidates>
<ShowingAllLabels type="bool">false</ShowingAllLabels>
<DrawRectOnly type="bool">false</DrawRectOnly>
</PAL>
<Measurement>
<AreaUnits type="QString">m2</AreaUnits>
<DistanceUnits type="QString">meters</DistanceUnits>
</Measurement>
<WMSOnlineResource type="QString"></WMSOnlineResource>
<WCSUrl type="QString"></WCSUrl>
<WMSContactPosition type="QString"></WMSContactPosition>
<SpatialRefSys>
<ProjectionsEnabled type="int">1</ProjectionsEnabled>
</SpatialRefSys>
<DefaultStyles>
<Line type="QString"></Line>
<Opacity type="double">1</Opacity>
<Fill type="QString"></Fill>
<ColorRamp type="QString"></ColorRamp>
<Marker type="QString"></Marker>
<RandomColors type="bool">true</RandomColors>
</DefaultStyles>
<WMTSJpegLayers>
<Layer type="QStringList"/>
<Group type="QStringList"/>
<Project type="bool">false</Project>
</WMTSJpegLayers>
<WMSKeywordList type="QStringList">
<value></value>
</WMSKeywordList>
<WMSServiceCapabilities type="bool">false</WMSServiceCapabilities>
<WMTSLayers>
<Layer type="QStringList"/>
<Project type="bool">false</Project>
<Group type="QStringList"/>
<Project type="bool">false</Project>
</WMTSLayers>
<WMTSUrl type="QString"></WMTSUrl>
<WMSRequestDefinedDataSources type="bool">false</WMSRequestDefinedDataSources>
<WMSContactPhone type="QString"></WMSContactPhone>
<Measure>
<Ellipsoid type="QString">WGS84</Ellipsoid>
</Measure>
<WMSContactMail type="QString"></WMSContactMail>
<WMSAccessConstraints type="QString">None</WMSAccessConstraints>
<WMSImageQuality type="int">90</WMSImageQuality>
<WMTSPngLayers>
<Layer type="QStringList"/>
<Group type="QStringList"/>
<Project type="bool">false</Project>
</WMTSPngLayers>
<WMSServiceTitle type="QString"></WMSServiceTitle>
<PositionPrecision>
<DegreeFormat type="QString">MU</DegreeFormat>
<DecimalPlaces type="int">2</DecimalPlaces>
<Automatic type="bool">true</Automatic>
</PositionPrecision>
<WMSUseLayerIDs type="bool">false</WMSUseLayerIDs>
<WMSContactPerson type="QString"></WMSContactPerson>
<WMSSegmentizeFeatureInfoGeometry type="bool">false</WMSSegmentizeFeatureInfoGeometry>
<WMTSMinScale type="int">5000</WMTSMinScale>
<WCSLayers type="QStringList"/>
<WMSPrecision type="QString">8</WMSPrecision>
<WMSAddWktGeometry type="bool">false</WMSAddWktGeometry>
<RequiredLayers>
<Layers type="QStringList"/>
</RequiredLayers>
<PAL>
<CandidatesLine type="int">50</CandidatesLine>
<DrawRectOnly type="bool">false</DrawRectOnly>
<CandidatesPoint type="int">16</CandidatesPoint>
<DrawOutlineLabels type="bool">true</DrawOutlineLabels>
<CandidatesPolygon type="int">30</CandidatesPolygon>
<SearchMethod type="int">0</SearchMethod>
<ShowingAllLabels type="bool">false</ShowingAllLabels>
<ShowingCandidates type="bool">false</ShowingCandidates>
<ShowingPartialsLabels type="bool">true</ShowingPartialsLabels>
</PAL>
<WMSOnlineResource type="QString"></WMSOnlineResource>
<Variables>
<variableNames type="QStringList">
<value>qgisce_catalog_autoload</value>
@ -793,17 +953,6 @@ def my_form_open(dialog, layer, feature):
<value>1.0</value>
</variableValues>
</Variables>
<WMSContactMail type="QString"></WMSContactMail>
<Gui>
<CanvasColorBluePart type="int">255</CanvasColorBluePart>
<SelectionColorAlphaPart type="int">255</SelectionColorAlphaPart>
<SelectionColorRedPart type="int">255</SelectionColorRedPart>
<CanvasColorGreenPart type="int">255</CanvasColorGreenPart>
<SelectionColorBluePart type="int">0</SelectionColorBluePart>
<SelectionColorGreenPart type="int">255</SelectionColorGreenPart>
<CanvasColorRedPart type="int">255</CanvasColorRedPart>
</Gui>
<WMSContactPosition type="QString"></WMSContactPosition>
</properties>
<visibility-presets/>
<transformContext/>