Changelog#
Unreleased#
Upgrade notes
- Run the algorithm
Upgrade database structureto upgrade the database (migration 44)
Added#
- Road graph checks: new algorithms
Check the road graphandFix the road graph issues, SQL functionscheck_graphandfix_graph_issue, and tableglossary_graph_checklisting the checks and their default options, to find the issues of the road graph, for example after an import, and fix them in an editing session (migrationupgrade_to_44.sql) - Road graph checks: the layers created by the algorithm
Check the road graphhave actions to fix an issue with a right click (Fix this issue,Choose the fix of this issue…), or to select its edges, a style showing the fixed issues in grey, and the fieldsfix_statusandfix_messagestoring the result of the fixes - Road graph checks - G01: edges crossing or touching each other without being split by a node.
The edges touching each other are fixed by a node splitting them, and the edges crossing each other
by a node or by the field
no_intersection_cutting(bridge, tunnel), chosen for each issue - Road graph checks - G02: edges ending near another edge without being connected to it (T junction), fixed by extending the edge to the other edge, which is split there
- Road graph checks - G03: nodes close to each other, fixed by merging them
- Road graph checks - G04: useless nodes, without edge or between two edges of the same road, fixed by deleting the node, which merges the two edges
- Road graph checks - G05: edges in the opposite direction of their road, found with the order of the markers or the direction of the neighbour edges, fixed by reversing them
- Road graph checks - G06: roads with branches, i.e. more than two edges of the road at a node, for example ramps using the code of the road, to fix manually
- Road graph checks - G07: parallel edges of the same road, for example two carriageways using the same road code, to fix manually
- Road graph checks - G08: short edges, except near the roundabouts, fixed by removing the edge and merging its nodes
- Road graph checks - G09: first marker of a road not at the start of the road, fixed by moving the marker to the start of the road when it is less than 1 m from it
- Road graph checks - G10: markers not in the order of the road, far from the road, or on an edge without reference, to fix manually
Fixed#
- Edges: when an edge is created or modified, its start and end points use the closest node less than 50 cm from them, instead of the node with the lowest id. Before, modifying any vertex of an edge could connect it to another node close to its start or end node
- Edges: reversing the geometry of an edge, for example with the QGIS tool
Reverse Line, now swaps its start and end nodes, and calculates again its previous and next edges and the references of its road. Before, the change was ignored, because the geometry was considered unchanged. The migration repairs the edges already reversed - Edges: when the end point of an edge is moved to another node, its old end node is deleted if no edge uses it anymore, like its old start node. Before, it was left without edge
- Nodes: when a node is created or moved less than 50 cm from another node, the two nodes are merged, and the edge linking them, if any, is deleted. Before, this edge was left as a loop on the node
0.6.4 - 2026-11-12#
Summary#
Highlights
- Managed objects: the split and merge of lines in Lizmap now give the right references, even for lines drawn in the opposite direction of the road, and the lines connected to an edited line stay connected
- Security: the
SECURITY DEFINERfunctions set theirsearch_path, and the read-only functions work even if thesearch_pathof the caller does not containpublic
Upgrade notes
- Run the algorithm
Upgrade database structureto upgrade the database (migration 43)
Added#
- SQL: new trigger function
update_managed_object_linked_geometries: when the geometry of a managed line is updated, the lines of the same table and road which were connected to its start or end are shortened or extended to stay connected. Their references, and cumulative distances, follow the new references of the line, and their geometry is calculated again from them. The functionadd_managed_objects_triggerscreates this triggertrg_update_managed_object_linked_geometrieson the line tables, and now returns one line per trigger with its name (migrationupgrade_to_43.sql)
Changed#
- Lizmap: in the form
Create the geometry from referencesof the editing panel, the fieldsOffsetandSideare hidden by default: click onOffsetto display them - Lizmap: the button
Merge two linesof the popup no longer requires the right to delete features, but the rights to create features and modify the geometry. The editing rights needed to display the buttonsSplit a line at a pointandMerge two linescan be changed with the new constantsROAD_SPLIT_NEEDED_RIGHTSandROAD_MERGE_NEEDED_RIGHTSof the scriptroad_network.js - SQL: merge of two managed object lines (Lizmap action
merge_selected_lines): the merged feature is now the feature chosen first, with its field values, instead of the feature with the lowest start references. Its references, and its cumulative distances if the table has these fields, are calculated from the merged line in the direction of the road, even if the table has no trigger calculating them (migrationupgrade_to_43.sql) - SQL: the functions called from outside the plugin which only read data (
get_reference_from_point,get_road_point_from_reference,get_road_substring_from_references,get_managed_object_geometry_from_references,get_snapped_line_from_track,get_road_sections_from_snapped_line,get_spatial_road) and the trigger functioncalculate_managed_object_referencesnow set theirsearch_pathtopublic: they work even if thesearch_pathof the caller does not contain the schemapublic, where PostGIS is installed (migrationupgrade_to_43.sql) - SQL: security: the
SECURITY DEFINERfunctionscopy_data_to_editing_session,drop_editing_sessionandtoggle_foreign_key_constraintsnow set theirsearch_pathtopublic, pg_temp, andmerge_editing_session_dataprefixes the objects of the production schema (migrationupgrade_to_43.sql)
Fixed#
- SQL: split of a managed object line by a point (Lizmap action
split_line_by_point): for a line drawn in the opposite direction of the road, each part could get the references of the other part, or start after its end. The two parts now follow the direction of the road, like the geometries calculated from the references, and their four references, and their cumulative distances if the table has these fields, are calculated in the direction of the road (migrationupgrade_to_43.sql) - SQL: the trigger calculating the references of the managed objects (
trg_calculate_managed_object_references) gave a start reference greater than the end reference for a line drawn in the opposite direction of the road. They are now inverted, like in the algorithmUpdate managed objects from the road graph - Lizmap: in the form
Create the geometry from referencesof the editing panel, the start and end references of a line drawn in the opposite direction of the road were displayed in the drawing order. They are now ordered in the direction of the road, like the geometry created from them
0.6.3 - 2026-10-30#
Summary#
Highlights
- Performance: merging an editing session is much faster on long roads: only the managed objects which may be impacted by the modifications are updated, for example 0.4 s instead of 13 s for a new crossroad
- Fixes: more precise cumulative distances (to the centimeter), and the managed lines are no longer shortened by 1 cm at each merge
Upgrade notes
- Run the algorithm
Upgrade database structureto upgrade the database (migration 42). It calculates again the references of all the edges, which can take a few minutes on a large road graph - Optionally, run the algorithm
Update managed objects from the road graphon each managed table to correct their cumulative distances
Changed#
- SQL: faster merge of the editing sessions: only the managed objects which may be impacted
by the modifications are updated (near the modified edges, downstream of them if the road geometry has changed,
or near a modified marker), instead of all the objects of the modified roads.
For example on a road of 118 km with 1,250 objects: 0.4 s instead of 13 s for a new crossroad,
and 5 s instead of 13 s for a realigned edge (migration
upgrade_to_42.sql)
Fixed#
- SQL: the cumulative distances greater than 10 km were rounded to 10 cm (1 m above 100 km),
for the edges and the managed objects. The migration calculates again the references of all the edges
(about 17 s for the 7,809 edges of the demo data). The managed objects are corrected when they are updated,
or with the algorithm
Update managed objects from the road graph - SQL: the managed lines with the update policy
geometrywere shortened by 1 cm at each merge - SQL: a managed object whose geometry cannot be calculated from its references no longer cancels the merge: it is not updated, and a warning is displayed
- SQL: the list of the last updated managed objects (
last_updated_objects_ids) is emptied when a merge does not update any object: it still contained the objects of the previous merge - Tools panel: the references displayed on click or on hover now show the marker
0, and the abscissa, offset or cumulative distance0, instead of an empty field
0.6.2 - 2026-10-30#
Summary#
Highlights
- Performance: editing long roads is much faster, for example adding an edge crossing a road of 135 edges takes about 0.6 s instead of 8 to 13 s
- Docs: new explanation of the impacts of the modifications on the references, with a diagram
Upgrade notes
- Run the algorithm
Upgrade database structureto upgrade the database (migration 41)
Changed#
- SQL: faster editing of long roads: the references of a road are no longer calculated several times
for one modification, and splitting an edge only calculates the references of its two parts.
For example on a road of 135 edges, adding a crossing edge takes about 0.6 s instead of 8 to 13 s
(migration
upgrade_to_41.sql) - Docs: in the page
Road graph editing, explain the impacts of the modifications of the edges and markers on the references, upstream and downstream, with a diagram - Docs: in the page
Road graph editing, warn against editing directly the production schemaroad_graph, and explain how to correct the whole road graph after a first import with an editing session covering all the data
0.6.1 - 2026-10-29#
Summary#
Highlights
- GPS tracks: new Processing algorithm to get the road sections followed by the lines of a layer, for example GPS tracks, with their start and end references
- Performance: modifying a field of the edges is much faster
Upgrade notes
- Run the algorithm
Upgrade database structureto upgrade the database (migration 40)
Added#
- Processing: new algorithm
Get road sections from a line (GPS track)in the groupLinear referencing, which snaps the lines of a layer, for example GPS tracks, on the road graph, and creates a layer with the sections of the roads they follow, with their start and end references
Changed#
- SQL: performance of the edges updates: the references of an updated edge are not calculated anymore
by the trigger
before_edge_insert_or_updatewhen they are calculated again just after for the whole road, or when only another field of the edge has been modified. For example, modifying a field of all the edges of a road is a few hundred times faster (migrationupgrade_to_40.sql) - SQL: new function
road_graph.get_or_create_edge_node, used by the triggerbefore_edge_insert_or_updateto get or create the start and end nodes of an edge, instead of duplicated code
Fixed#
- SQL: the search of the next edge of an edge could fail if two edges of the same road started at the same node
0.6.0 - 2026-10-28#
Summary#
Highlights
- GPS tracks: snap a GPS track, for example from a GPX file, on the road graph, and get the references of each road it follows (new SQL functions)
- Performance: the calculation of the references is about 9 times faster for the edges, and about 3.5 times faster for the managed objects
- Road graph editing: the field
no_intersection_cuttingis respected by all the trigger functions, drawing an edge across a highway interchange no longer hangs, and no orphan node is created anymore - Managed objects: new functions to add the reference fields and the triggers calculating the references, materialized view of the last updated objects, and fixed split of a line by a point in Lizmap
- Documentation: reorganized and completed: Processing algorithms, tables and fields, functions examples, demo database, toolbar and panels, training plan
Upgrade notes
- Run the algorithm
Upgrade database structureto upgrade the database (migrations 31 to 39) - The editing schema
editing_sessionis renamedroad_graph_editing: recreate the QGIS administration project with the algorithmCreate database local interface, or update the data sources of the existing projects - The Python code of the layer actions is now stored in the plugin: the plugin must be installed and activated to use the actions of the administration project
Added#
- SQL: add the function
road_graph.add_managed_object_reference_fieldswhich adds to a managed object table the reference fields corresponding to its geometry type (migrationupgrade_to_39.sql) - SQL: add the function
road_graph.add_managed_objects_triggers()which creates the triggertrg_calculate_managed_object_referenceson every table listed inroad_graph.managed_objectswith the new columnadd_trigger_on_geom_changeset toTrue, if it does not already exist - SQL: add the materialized view
road_graph.vm_managed_objects, based on the viewv_managed_objectsand refreshed at the end of the functionmerge_editing_session_data. The QGIS administration project uses it instead of the viewv_managed_objects - SQL: add the functions
road_graph.get_snapped_line_from_trackwhich snaps an imprecise GPS track (for example from a GPX file) on the road graph edges, without zigzags between close roads, androad_graph.get_road_sections_from_snapped_linewhich returns the ordered list of the roads followed by the snapped line, with their start and end references (migrationupgrade_to_34.sql) - Docs: the
Databasemenu now contains the pagesUseful functions, which explains how to use these functions, andDatabase structure, which embeds the SchemaSpy documentation - Docs: explain the use of the field
no_intersection_cuttingin the pageRoad graph editing
Changed#
- Docs: reorganization and new content of the documentation:
new pages
Processing algorithmsandTables and fields, description of the toolbar and panels of the plugin, examples of the linear referencing functions, creation of a demo database, example of the impacts of a graph modification on the business data, the preparation of the business tables moved to the pageManaged objects, and a training plan in appendix - QGIS project: the Python code of the layer actions has been moved into the plugin
(module
roadnetwork/actions). The actions of the administration project now only callplugins['roadnetwork'].run_action(...):finalize_roundabout(layeredges copie),display_edited_data,create_editing_sessionanddrop_editing_session(layerediting_sessions) - Processing: remove the
Schema nameparameter from the algorithmsCreate database structureandUpgrade database structure: the plugin schema is alwaysroad_graph - SQL: rename the editing schema
editing_sessiontoroad_graph_editing(migrationupgrade_to_32.sql). The tableroad_graph.editing_sessionsand the functions*_editing_session*keep their names. The QGIS administration project and the plugin tools use the new schema name: QGIS projects created before must be recreated with the algorithmCreate database local interface, or their data sources updated
Fixed#
- Processing: in the algorithm
Update managed objects from the road graph, the optionPreserve start & end points when updating line geometrieshad no effect - QGIS: in the panel
RoadNetwork tools, pressingEnterin a field did not run the searchFind - QGIS: the error message of the tool
Get references under the cursorraised an error itself - Processing: the help of the algorithm
Merge editing session datawas the help of the algorithm cloning the data - SQL: the geometry of an editing session which status is not
createdcould still be modified by setting its status back tocreatedin the same query, or by removing it (migrationupgrade_to_38.sql) - Lizmap: in the references form of the road network panel, the button
Roadof the start references went to the end of the road instead of its start - SQL: split of a managed object linestring by a point (Lizmap action
split_line_by_point): the references were not updated when the table has no trigger calculating them. The first part now ends, and the second part starts, at the references of the cut point. A feature digitized in the opposite direction of the road can now also be split (migrationupgrade_to_37.sql) - SQL: drawing an edge across edges crossing without node (bridges, highway interchanges) never ended: the parts of each split edge created nodes at all their intersections, which were propagated to the edges crossing them, and so on. Only the intersections of the drawn edge are now cut
- SQL: when a new edge crossed several edges, a second node, not linked to any edge, could be created 10 cm away from a crossing node (rounding of the coordinates of the split parts)
- SQL: the edges with
no_intersection_cuttingset toTruewere still cut by the nodes located on them, for example a new edge with this value passing over an existing crossroad. They are now only cut when the start or end point of a created or moved edge is located on them, for example a new access road arriving in the middle of a highway edge (migrationupgrade_to_36.sql) - SQL: performance of the references calculation: the recalculation of the edges references
of all the roads (
update_edge_references) is about 9 times faster, with the same results. With the road cache, the previous marker is only searched among the markers of the road (all the markers of the database were read), and the edge order is stored in the cache instead of being calculated again for each point - SQL: performance of the update of the managed objects references (
update_table_references_from_geometries), about 3.5 times faster on long roads: the road cache can now contain several roads, and is built for the roads of the objects before calculating their references - SQL:
get_ordered_edgesreturned twice the edge of the roads having only one edge - SQL: when the first edge of a road is updated, for example when it is split by a new node,
do not create a marker
0if the road already has markers. Some roads do not start with the marker0(e.g. a road starting at the marker4 + 918): a wrong marker0was created, or the editing failed with the errorThe object geometry must intersect the editing session polygonif the start of the road was outside the editing session (migrationupgrade_to_33.sql) - SQL: the session variables
road.graph.*used by the topology triggers are set withSET LOCAL, so that their value cannot leak outside of the current transaction (migrationupgrade_to_33.sql) - SQL: remove the
SET search_path/RESET search_pathinside the functionsdrop_editing_session,editing_surveyandsplit_edge_by_node, which now use the quoted schema name"road_graph". The functionmerge_editing_session_datahas itssearch_pathset in its definition - Locator: remove the prefix
rr, which was ignored by QGIS (plugin prefixes must have at least 3 characters). The search is run without typing any prefix.
0.5.7 - 2026-10-22#
Added#
- SQL
- Add a trigger function to update a managed object table references on insert or update
To use it, the table must be configured in
road_graph.managed_objects. Then create the trigger with:1 2 3 4
CREATE TRIGGER trg_calculate_managed_object_references BEFORE INSERT OR UPDATE OF geom ON public.demo_painting FOR EACH ROW EXECUTE PROCEDURE road_graph.calculate_managed_object_references(); - Add functions
road_graph.merge_table_linestring_features&road_graph.split_table_linestring_feature_by_pointwhich are able to merge two features of the same table & split a feature by a given point - Docs - Lizmap Web Client Javascript & CSS files
- Add buttons to go to the start/end of the route
- Add a popup button to let the user split the linestring with the clicked point.
- QGIS Project: layer
Roads- Add expression basedroad_ordercolummn
Fixed#
- SQL -
road_graph.merge_editing_session_data: fix search_path not well resetted - Docs - Lizmap Web Client - Javascript:
- force the
road_codevalue to be used when creating geometries - use the
road_ordercolumn for the autocompletion data source
Changed#
- Docs - Schemaspy: add functions SQL definition
0.5.6 - 2026-09-29#
Fixed#
- Translation - Fix loading the language file
0.5.5 - 2026-09-29#
Fixed#
- Translation - Fix the path of the language files so that the French translation is correctly named and used by the plugin
Changed#
- Edges & markers:
- Add a new column id_source to keep the reference of the imported data identifier
- Update the QGIS administration template project accordingly
- Tests
- Import updated test data & update example files in the folder
roadnetwork/resources/import - Update all the Python tests with these new data
- Fix the test comparing edges data before & after we merge the editing session data
- Docs - Improve the Lizmap Web Client Javascript and CSS files containing
the tools to use the Road Graph PostgreSQL functions.
An example of the Lizmap JSON action file has also been added in
docs/media - SQL Function
road_graph.get_reference_from_point: use a 5m tolerance for getting the next edge references when the point is floating between two unconnected edges
0.5.4 - 2026-09-09#
Changed#
- Hover map tool - use QTimer to limit requests & fix bug with
editing_sessionslayer QGIS action - Get point reference - Use the next edge start marker & abscissa for calculating metrics for points located between two unconnected edges of the same road
- Tests - Add a make pull command to pull docker images
Added#
- SQL -
road_graph.get_road_substring_from_references: add new parameters to prepend and/or expand the closest edge geometry at the start and/or the end of the calculated road substring geometry.
0.5.3 - 2026-07-30#
Changed#
References & geometry calculation: be more tolerant for limit cases
- Function
road_graph.update_table_references_from_geometries: be more tolerant for roundabout & invert start & end result if needed - Function
road_graph.get_road_substring_from_references: Add information when raising exception to help find the problematic objects - Minor fixes: replace wrong usage of
editing_sessionschema in 2 functions
Fixed#
- SQL Function
road_graph.get_reference_from_point: fix exception occurring with distance calculation (PostGIS Bug)
0.5.2 - 2026-07-28#
Fixed#
- Import - SQL function
road_graph.import_data_from_template_tables: Fix error when importing more than one dataset. The function used the original dataidinstead of getting the sequence next value.
0.5.1 - 2026-07-28#
Fixed#
- SQl - function
road_graph.get_downstream_multilinestring_from_referenceFix wrong result when the closest edge substring from the given marker projected point to the end of the road. When the result isEMPTY(for example because the marker is exactly at the end of the edge), the function now returns a valid non-empty linestring (formed by the edge end point doubled)
0.5.0 - 2026-07-27#
Added#
- Add the support for other Coordinate References System (CRS) than
EPSG:2154 - Default CRS is still
EPSG:2154 - Add a new CRS input in the algorithms Create database structure
- Adapt the algorithms Upgrade database structure & Import data to use
the database SRID (taken from the
geometry_columnsPostGIS view)
0.4.11 - 2026-07-27#
Changed#
- SQL
road_graph.get_road_substring_from_references: Add specific calculations for roundabout. Control the values of start abscissa and end abscissa and set them to the beginning or end of the road to avoid errors.
0.4.10 - 2026-07-24#
Changed#
get_road_substring_from_references: adapt the start & end input values from the road markers:- always go to the end of the road when end marker code and/or end abscissa are bigger than possible
- if the start marker code is below the minimum code for the road, use the latter instead with a start abscissa of 0
-
update_table_references_from_geometries: Do not change the value of the columnroad_codeif no references have been found. -
Tests:
- Fix wrong database connection used for local tests && Improve documentation
- Fix the test
test_upgrade_from: start from version 1.
0.4.9 - 2026-07-22#
Changed#
- Edges editing - Replace field
z_levelbyno_intersection_cutting(boolean). This new field has been added as a way to prevent the trigger functions from automatically cutting the edges having this value set to True. It is useful when digitizing motorway access roads, edges located under a bridge, etc. You need to recreate your administration project to reflect this change - SQL - Improve the function
road_graph.toggle_foreign_key_constraintsso that the import and merge editing session algorithms can be used by non-superuser roles
0.4.8 - 2026-07-10#
Changed#
- Processing algorithm -
Update managed objects: . add an option to preserve the linestrings start & end positions. When using this option combined with the update policyUpdate geometries, the references of the existing geometries will be calculated for the start & end line nodes, and then the geometry will be updated from these new references. - SQL - Trigger function
road_graph.after_edge_insert_or_update(): do not create node at intersections for different z_level - QGIS admin project - Add the field
z_levelfor edges layers which - Plugin code: Use
psycopg2rather than f-string to build SQL queries. (This will allow the plugin to be pushed to QGIS official repository)
0.4.7 - 2026-07-06#
Added#
- Lizmap Web Client : add Javascript & CSS files to use with a RoadNetwork published project
Fixed#
- SQL fixes and improvements
road_graph.get_road_substring_from_references:- Check if the resulted geometry has the correct orientation and reverse it if needed
(the function
ST_OffsetCurvedoes not preserver orientation for MULTILINESTRINGS) - Change the precision rounding of generated geometries from
0.01to0.1 - Use default
0.0&rightvalues for features with empty columnsoffsetandside
- Check if the resulted geometry has the correct orientation and reverse it if needed
(the function
road_graph.update_managed_objects_on_graph_change: fix error when no object has been updated
Changed#
- Tests & CI - Improvements & update PostgreSQL version from 15 to 17
- Doc - Add draft concepts to translate
0.4.6 - 2026-07-02#
Fixed#
- Fix multiple misbehaviours of the SQL method
road_graph.update_managed_objects_on_graph_change: road_graph.update_table_references_from_geometries: fix error when managed objectroad_codedoes not existsroad_graph.update_table_references_from_geometries: Add an option to avoid setting the table object offset and side columnsroad_graph.update_managed_objects_on_graph_change: always recalculate start & end points references before updating geometries so that the beginning and end of the linestring geometry does not move
0.4.5 - 2026-06-24#
Fixed#
- SQL - Build MULTILINESTRING from start & end road references
(function
road_graph.get_road_substring_from_references): - fix bug during generation with unwanted intermediate
GEOMETRYCOLLECTION - ensure the produced
MULTILINESTRINGparts are correctly ordered New functionroad_graph.reorder_multilinestring_partswhich can be used inUPDATESQL scripts
0.4.4 - 2026-06-19#
Fixed#
- Update references from geometries
- Force to use the object
road_code - Set the objects references to
NULLif no references have been found around 50m
0.4.3 - 2026-06-16#
Fixed#
- Administration dock - Display the plugin schema version instead of the plugin version
- Algorithm "Update managed objects" - Fix the error when the feature geometry is empty
- SQL - Fix functions
update_table_references_from_geometries&get_merged_geom_from_table_and_ids get_merged_geom_from_table_and_ids: returnNULLif the given table of Ids is emptyupdate_table_references_from_geometries:- get the geometry column name instead of using hard-coded
geom - fix the wrong use of
mo.id: replaced by the name of the primary key field - fix the calculation of
MULTILINESTRINGend points (hack by getting the last part)
- get the geometry column name instead of using hard-coded
- QGIS admin project - Fix wrong data source for the layer
managed_objects
0.4.2 - 2026-06-15#
Changed#
- SQL & algorithm - Calculate references from geometries : do not use
columns
start_offset,start_side,end_offset,end_sidebut onlyoffset&sidefor linestrings (calculated from the start linestring node)
Fixed#
- Algorithm "Import data" (and related SQL function) - Do not add a marker 0 if a marker for this road is already within 1m of an existing marker
- Algorithm "Update managed objects" - Fix issues when updating references for a linestring
(fix function
road_graph.update_table_references_from_geometries) - SQL - Fix
NULLor0calculated references while creating an edge with only 2 nodes
0.4.1 - 2026-06-05#
Fixed#
- Fix the error occurring when updating managed objects references
when the objects had a
cumulativeattribute
Changed#
- Minor changes on the QGIS project
Tests#
- Test the function
road_graph.merge_editing_session_dataand the impact on the managed object geometries or references
0.4.0 - 2026-05-22#
Added#
- Import - Add SQL function & a new algorithm to import data from edges & markers template files
(See example files
source_edges.fgb&source_markers.fgbin plugin folder/resources/import/) - SQL & QGIS - Create a view
v_managed_objectsto see the MultiPolygon geometry of the last updated objects of each managed table.
0.3.3 - 2026-04-17#
Changed#
- Editing session - Update the managed objects when merging the editing session data
- Tests - Add more tests
Fixed#
- SQL - Avoid to cut edges at intersections outside the editing session polygon
- SQL - Separate methods to update geometries/references from the road graph
0.3.2 - 2026-04-12#
Fixed#
- SQL
- Fix the creation of roundabout by avoiding to insert edges which geometry already exists for another edge
- Fix error when deleting a node (wrong merge edges attempt)
0.3.1 - 2026-04-11#
Added#
- Locator : allow to use QGIS Locator bar (CTRL+K) with prefix
rrUsage :D30zoom to the full roadD30 3 150.5 10 left: zoom to the corresponding location (only some of the figures can be given)
Changed#
- Improve CI and packaging
0.3.0 - 2026-04-10#
Added#
- Processing
- Add algorithm allowing to update a layer references or geometries from the road graph
- Tests - Add test data & test some of the main features
Changed#
- Documentation
- SchemaSpy: add functions
- Fix schemaspy generation errors by using option
-t pgsql11
Fixed#
- Fix deletion of an edge ending on a roundabout marker 0
- Fix wrong geometry generation for road substring (roads & roundabouts)
- SQL - Make sure 90_GLOSSARY.sql is created even if no glossary table is found
0.2.0#
User interface:
- Toolbar
- Change map tool behaviour: the user now needs to click on the map to get the references under the cursor instead of a simple hover.
- add the shortcut
CTRL+MAJ+Kto activate/deactivate the map tool - New button to toggle the new tools dock
- New RoadNetwork tool QGIS panel:
- Visualize the references of the
road_graphand theediting_schemadatabase schemas data - Add an checkbox to allow displaying the references when the mouse pointer moves
- Add the possibility to search for a reference for the edited data:
change a value and click on the
Findbutton - Editing session - Add an action available with right-clic on the editing session polygon to let the user drop the editing session and all its related data
- Work in progress - Prepare functions for applying graph changes to external data
SQL functions improvements and fixes:
- Performance - Improve the calculation of a point reference, especially for big roads
- Edges - Correctly update references of the new & old road when changing an edge
road_codevalue - Fix wrong update of edges references when a new edge is added or its
previous_edge_idis changed - Markers - Fix an error when deleting a marker
- Nodes - Add logic to control actions when a node is manually deleted
CI
- Migrate Transifex tools from qgis-plugin-ci to qt-transifex
0.1.0 - 2026-01-09#
- First version of the plugin