Create QGIS projects from database schemas or Interlis models
Using modelbaker library 1.4.2
ini
for the Extra Meta Attribute File in https://github.com/opengisch/QgisModelBaker/pull/778
--sqlColAsText
when importing schema without constraints in https://github.com/opengisch/QgisModelBakerLibrary/pull/51
Using modelbaker library 1.4.1
This release brings support of map themes, layer styles, custom variables and print layouts in the UsabILIty Hub Toppings.
ili2db configurations are defined in the metaconfiguration file.
[ch.ehi.ili2db]
defaultSrsCode = 2056
smart2Inheritance = true
strokeArcs = false
importTid = true
ili2db will be called like this:
ili2db --metaConfig ilidata:metconfigId --schemaimport
Some parameters are automatically set in the background when ili2db is called by the Model Baker (like --coalesceCatalogueRef --createEnumTabs --createNumChecks --createUnique --createFk --createFkIdx --coalesceMultiSurface --coalesceMultiLine --coalesceMultiPoint --coalesceArray --beautifyEnumDispName --createGeomIdx --createMetaInfo --expandMultilingual --createTypeConstraint --createEnumTabsWithId --createTidCol --importTid
), and others can be configured by the user in the input mask of the Model Baker (like --smart1Inheritance
/--smart2Inheritance
, --createBasketCol
, --strokeArcs
, --iliMetaAttrs
(for ini
/toml
), --preScript
and --postScript
or --models
). In addition, the relevant metaconfiguration file is passed to ili2db. But parameters passed directly to ili2db override the configurations of the passed metaconfiguration file.
The Model Baker reads the ili2db parameters from the metaconfiguration file. The parameters that can be set via the input mask of the Model Baker are loaded from the metaconfiguration file into the input mask. The user can now customize them. The Model Baker now passes the metaconfiguration file and the parameters from the input mask (whether customized or not) to ili2db. So if the parameters were listed in the metaconfiguration file but then disabled in the input mask, they will be passed to ili2db as false
.
Changes are marked visually in the input mask for ili2db Options:
The parameters set by the Model Baker in the background are still set. But they can be overridden in the metaconfiguration file. However, if in the metaconfiguration file such parameters are not mentioned, then they are also not overridden with false
.
Exception is the setting to consider only the metaconfiguration file. If this is set, then only the parameters configured in the metaconfiguration file should be set and no others (Exception from the exception is --models
and --sqlEnableNull
on "Run withouth constraints"):
[CONFIGURATION]
qgis.modelbaker.metaConfigParamsOnly = True
When this parameter is set the Advanced Options and CRS settings are disabled in the input mask.
Be aware that the UsabILIty Hub Repository (located at http://models.opengis.ch) is not found by ili2db what means that when using qgis.modelbaker.metaConfigParamsOnly
toppingfiles referenced in metaconfig file with ilidata:
should not be located there. Other repositories (like e.g. from the cantons) can be used without any restrictions. Still you can add http://models.opengis.ch as a directory in the Model Baker Settings.
This feature has been financed by the canton of Schaffhausen
Using new ili2db version 4.10.0
Using modelbaker library 1.4.0
Using modelbaker library 1.3.8
Using modelbaker library 1.3.8
This release brings support of map themes, layer styles, custom variables and print layouts in the UsabILIty Hub Toppings.
A qmlstylefile
is stored for each style ("default" style is keeped in the root):
layertree:
- Street:
tablename: street
geometrycolumn: geometry
checked: true
expanded: true
qmlstylefile: ilidata:layerstyle_street_qml_001
styles:
french:
qmlstylefile: ilidata:layerstyle_street_french_qml_001
robot:
qmlstylefile: ilidata:layerstyle_street_robot_qml_001
- Park:
tablename: park
geometrycolumn: geometry
checked: false
expanded: true
qmlstylefile: ilidata:layerstyle_park_qml_001
provider: ogr
uri: /home/freddy/qgis_projects/bakery/cityandcity.gpkg|layername=park
The mapthemes are stored in this struture.
mapthemes:
"French Theme":
Street:
style: french
visible: true
expanded: true
Park:
style: default
visible: false
expanded: true
"Robot Theme":
Street:
style: robot
expanded_items:
[
"{f6c29bf7-af28-4d88-8092-ee9568ac731f}",
"{fc48a8d7-d774-46c7-97c7-74ecde13a3ec}",
]
checked_items:
[
"{f6c29bf7-af28-4d88-8092-ee9568ac731f}",
"{dc726dd5-d0d7-4275-be02-f6916df4fa29}",
]
Park:
style: default
visible: true
expanded: false
Other_Layers_Group:
group: true
checked: true
expanded: false
Other_Layers_Group/SubGroup:
group: true
checked: true
expanded: false
Subgroups are separated with /
.
variables:
"first_variable": "This is a test value."
"Another_Variable": "2"
layouts:
"Layout One":
templatefile: "../layouttemplate/freddys_qgis_project_layout_one.qpt"
"Layout Three":
templatefile: "../layouttemplate/freddys_qgis_project_layout_three.qpt"
The print layouts are exported as template files qpt
and loaded according the name.
The Map Themes, the Variables and the Print Layout are parsed from the project. There is a minimal configuration option to decide what should be considered.
The layer styles are exported automatically considering the general category setting per layer. The export configuration per style (like categories) is not yet supported by in the GUI. See: https://github.com/opengisch/QgisModelBaker/issues/766
settHasCheckedStateInfo(True)
is not available in the PyQGIS API, what makes it impossible to control the checked state of a group. See https://github.com/qgis/QGIS/pull/33099#pullrequestreview-326635863
This feature has been financed by the cantons of Schaffhausen and Solothurn
Using ili2db version 4.9.0
Using modelbaker library 1.3.7
Using modelbaker library 1.3.5
Using modelbaker library 1.3.4
Using modelbaker library 1.3.4
Using modelbaker library 1.3.4