From 5f4fc78be534561dcfb2840e3bd23fcc83fc6bce Mon Sep 17 00:00:00 2001 From: emvr Date: Sat, 13 Jun 2026 16:00:32 +0100 Subject: [PATCH 01/15] Update introduction.rst --- docs/general-intro/introduction.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/general-intro/introduction.rst b/docs/general-intro/introduction.rst index dea3b66f3..cca78104c 100644 --- a/docs/general-intro/introduction.rst +++ b/docs/general-intro/introduction.rst @@ -19,7 +19,7 @@ pgRouting: `Basic`_ and `Advanced`_. Basic ------------------------------------------------------------------------------- -will demonstrate the routing functionality by +This level will demonstrate the routing functionality by providing examples using |osm-web| road network data from @PGR_WORKSHOP_CITY@. Covering topics from how to prepare the data, making routing queries, understanding the results, up to writing a custom 'plpgsql' function that can be From dc7ee9987a147be67241f00b218217355278d4dc Mon Sep 17 00:00:00 2001 From: emvr Date: Sat, 13 Jun 2026 16:14:27 +0100 Subject: [PATCH 02/15] update introduction.rst A few more changes at the Developers and Presenters section. --- docs/general-intro/introduction.rst | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/general-intro/introduction.rst b/docs/general-intro/introduction.rst index cca78104c..5d22e04fb 100644 --- a/docs/general-intro/introduction.rst +++ b/docs/general-intro/introduction.rst @@ -30,11 +30,11 @@ integrated with other FOSS tools. * Importing |osm-web| road network data. * Using pgRouting algorithms. * Writing advanced queries. -* Writing a custom PostgreSQL stored procedure in `plpgsql` +* Writing a custom PostgreSQL stored procedure in `plpgsql`. .. rubric:: Prerequisites -* Workshop level: basic. +* Workshop level: basic * Previous knowledge: SQL (PostgreSQL, PostGIS) * Equipments: `OSGeoLive `__ (@OSGeoLive_VERSION@) @@ -47,7 +47,7 @@ section covers several graph problems that can be solved using pgRouting. .. rubric:: Prerequisites -* Workshop level: Advanced. +* Workshop level: Advanced * Previous knowledge: SQL (PostgreSQL, PostGIS, pgRouting) * Equipments: `OSGeoLive `__ (@OSGeoLive_VERSION@) @@ -66,16 +66,16 @@ Aknowledments :width: 200 :target: https://www.erosion.dev/ -.. rubric:: Developers & presenters of @WORKSHOP_AREA@ workshop: +.. rubric:: Developers & Presenters of @WORKSHOP_AREA@ workshop: -* *Vicky Vergara* Is a freelance developer from Mexico. She's the core developer - of pgRouting project and GSoC Mentor. OSGeo Charter member. +* *Vicky Vergara* is a freelance developer from Mexico. She is the core developer + of the pgRouting project and a GSoC Mentor. She also serves as an OSGeo Charter member. -* *Ramón Ríos* Is a freelance developer from Mexico. Lead engenieer for - ParkUpFront +* *Ramón Ríos* is a freelance developer from Mexico. He is the Lead Engineer for + ParkUpFront. -.. rubric:: Past and present tutors and developers +.. rubric:: Past and present tutors and developers: Daniel Kastl, José Ríos, @@ -87,7 +87,7 @@ Ramón Ríos, Rohith Reddy, Vicky Vergara -.. rubric:: Past and present supporters +.. rubric:: Past and present supporters: Georepublic, Paragon Corporation From e9cc9614938972c4191f50c1df63fe5d3238f2ae Mon Sep 17 00:00:00 2001 From: emvr Date: Sat, 13 Jun 2026 16:16:09 +0100 Subject: [PATCH 03/15] Update introduction.rst --- docs/general-intro/introduction.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/general-intro/introduction.rst b/docs/general-intro/introduction.rst index 5d22e04fb..7e1fc4c00 100644 --- a/docs/general-intro/introduction.rst +++ b/docs/general-intro/introduction.rst @@ -66,7 +66,7 @@ Aknowledments :width: 200 :target: https://www.erosion.dev/ -.. rubric:: Developers & Presenters of @WORKSHOP_AREA@ workshop: +.. rubric:: Developers & presenters of @WORKSHOP_AREA@ workshop: * *Vicky Vergara* is a freelance developer from Mexico. She is the core developer of the pgRouting project and a GSoC Mentor. She also serves as an OSGeo Charter member. From d883a18b6cba757ca44ecff1926a23b04616b597 Mon Sep 17 00:00:00 2001 From: emvr Date: Sat, 13 Jun 2026 16:30:29 +0100 Subject: [PATCH 04/15] Update osgeolive.rst --- docs/general-intro/osgeolive.rst | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/general-intro/osgeolive.rst b/docs/general-intro/osgeolive.rst index c8da8f7e8..0f3822c9f 100644 --- a/docs/general-intro/osgeolive.rst +++ b/docs/general-intro/osgeolive.rst @@ -91,20 +91,20 @@ Open the Virtual Box Click on ``New`` and fill with the following information -* **Name** OSGeoLive @OSGeoLive_VERSION@ -* **Type** Linux -* **Version** Ubuntu (64-bit) -* **Memory size** 4096 -* **Hard disk** Create a virtual hard disk now +* **Name**: OSGeoLive @OSGeoLive_VERSION@ +* **Type**: Linux +* **Version**: Ubuntu (64-bit) +* **Memory size**: 4096 +* **Hard disk**: Create a virtual hard disk now .. image:: /images/osgeolive/createVirtualMachine.png Click on ``Create`` and fill with the following information -* **File location** Choose a suitable location for the Virtual Hard Disk -* **File size** 10.0GB -* **Hard disk file type** VDI (VirtualBox Disk image) -* **Storage on physical hard disk** Dynamically allocated +* **File location**: Choose a suitable location for the Virtual Hard Disk +* **File size**: 10.0GB +* **Hard disk file type**: VDI (VirtualBox Disk image) +* **Storage on physical hard disk**: Dynamically allocated .. image:: /images/osgeolive/createVirtualHardDisk.png @@ -114,15 +114,15 @@ Install OSGeoLive's ISO On Storage it reads: :Controller: IDE -:IDE Secondary Device 0: [Optical Drive] empty +:IDE Secondary Device 0: [Optical Drive] Empty .. image:: /images/osgeolive/afterCreateVM.png -Choose ``Storage`` from the virtual box traits and clink on ``Empty`` +Choose ``Storage`` from the virtual box traits and click on ``Empty`` .. image:: /images/osgeolive/storageWithEmpty.png -Click on the small disk icon and select **Choose/Create a Virtual Disk** +Click on the small disk icon and select ``Choose/Create a Virtual Optical Disk`` .. image:: /images/osgeolive/chooseVirtualDisk.png @@ -130,7 +130,7 @@ Navigate to the location where the ISO was installed .. image:: /images/osgeolive/chooseOSGeoLiveISO.png -Instead of empty, now it has the ISO installed +Instead of ``Empty`` now it has the ISO installed .. image:: /images/osgeolive/withISOinstalled.png @@ -145,7 +145,7 @@ The installation now reads: Start OSGeoLive ............................................................................... -Click on ``Start`` button, and click on ``capture``, to capture the mouse +Click on ``Start`` button and then on ``capture`` button to capture the mouse movements .. image:: /images/osgeolive/captureMouse.png From 43048b89a938527a5e464919afd4b583b39448c4 Mon Sep 17 00:00:00 2001 From: emvr Date: Sat, 13 Jun 2026 21:49:09 +0100 Subject: [PATCH 05/15] Update overview.rst --- docs/general-intro/overview.rst | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/docs/general-intro/overview.rst b/docs/general-intro/overview.rst index e8e1ace48..c0213164c 100644 --- a/docs/general-intro/overview.rst +++ b/docs/general-intro/overview.rst @@ -15,8 +15,8 @@ Software and Data Overview :target: https://www.osgeo.org/ -This workshop use several free and open source software for geospatial tools. -Most of the free and open source software for geospatial tools that are related to +This workshop uses several free and open source softwares for geospatial tools. +Most of these softwares are related to other open source software projects. Here we mention the most important ones. .. contents:: Chapter Contents @@ -52,18 +52,17 @@ Some of the pgRouting library core features are: * `Bi-directional A* `__ * `Traveling Salesperson Problem `__ * `Driving Distance `__ -* many more!!! +* `and many more `_ -pgRouting is an Open Source Software, available under the GPLv2 license and is -supported and maintained by a the pgRouting community. +pgRouting is an open source software available under the GPLv2 license and is +supported and maintained by the pgRouting community. -pgRouting is a part of `OSGeo Community Projects +`pgRouting `_ is part of `OSGeo Community Projects `__ of the `OSGeo Foundation `__ and included on `OSGeoLive `__. -:Website: https://pgrouting.org -:OSGeoLive: https://live.osgeo.org/en/overview/pgrouting_overview.html +:Check it out on OSGeoLive: https://live.osgeo.org/en/overview/pgrouting_overview.html osm2pgrouting Overview From a3583d8b6b01c8aba8832c3214c733ee8a29a666 Mon Sep 17 00:00:00 2001 From: emvr Date: Sat, 13 Jun 2026 22:14:46 +0100 Subject: [PATCH 06/15] Update overview.rst --- docs/general-intro/overview.rst | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/docs/general-intro/overview.rst b/docs/general-intro/overview.rst index c0213164c..39ef4f9b6 100644 --- a/docs/general-intro/overview.rst +++ b/docs/general-intro/overview.rst @@ -58,8 +58,8 @@ pgRouting is an open source software available under the GPLv2 license and is supported and maintained by the pgRouting community. `pgRouting `_ is part of `OSGeo Community Projects -`__ of the `OSGeo -Foundation `__ and included on `OSGeoLive +`__ under `OSGeo +Foundation `__. It is included on `OSGeoLive `__. :Check it out on OSGeoLive: https://live.osgeo.org/en/overview/pgrouting_overview.html @@ -90,6 +90,13 @@ OpenStreetMap Overview :align: center :target: https://www.openstreetmap.org +OpenStreetMap (OSM) is dedicated to creating and providing free, +unrestricted global geographic data. Unlike traditional maps that +impose legal or technical limitations, OSM eliminates the data silos +that restrict creative and productive use, enabling developers and +researchers to leverage spatial data in innovative ways. + +--`OSM Press Wiki `_ "OpenStreetMap (OSM) is dedicated to creating and providing geographic data, such as street maps, worldwide, for free. Most maps considered "free" actually From 87893e5e45bc7466e42579d9239f6becd91dbaaa Mon Sep 17 00:00:00 2001 From: emvr Date: Sun, 14 Jun 2026 07:49:29 +0100 Subject: [PATCH 07/15] Update overview.rst --- docs/general-intro/overview.rst | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/docs/general-intro/overview.rst b/docs/general-intro/overview.rst index 39ef4f9b6..1470da739 100644 --- a/docs/general-intro/overview.rst +++ b/docs/general-intro/overview.rst @@ -90,23 +90,15 @@ OpenStreetMap Overview :align: center :target: https://www.openstreetmap.org -OpenStreetMap (OSM) is dedicated to creating and providing free, -unrestricted global geographic data. Unlike traditional maps that -impose legal or technical limitations, OSM eliminates the data silos -that restrict creative and productive use, enabling developers and -researchers to leverage spatial data in innovative ways. + OpenStreetMap (OSM) is dedicated to creating and providing geographic + data, such as street maps, worldwide, for free. Most maps considered + 'free' actually have legal or technical restrictions on their use. + These restrictions hold back anyone from using them in creative, + productive or unexpected ways, and make every map a silo of data and effort. ---`OSM Press Wiki `_ + -- `Source: OSM Press Wiki `_ -"OpenStreetMap (OSM) is dedicated to creating and providing geographic data, -such as street maps, worldwide, for free. Most maps considered "free" actually -have legal or technical restrictions on their use. These restrictions hold back -anyone from using them in creative, productive or unexpected ways, and make -every map a silo of data and effort." - -(Source: https://wiki.openstreetmap.org/wiki/Press) - -OpenStreetMap is an adequate data source for pgRouting, because it has no +OpenStreetMap is an incredible data source for pgRouting because it has no technical restrictions in terms of processing the data. Data availability still varies from country to country, but the worldwide coverage is improving day by day. From 7fb4ee5b9b01548f7e03754eee2f34be08fb9a95 Mon Sep 17 00:00:00 2001 From: emvr Date: Sun, 14 Jun 2026 08:01:22 +0100 Subject: [PATCH 08/15] Update data.rst --- docs/basic/data.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/basic/data.rst b/docs/basic/data.rst index 54a90e859..e5b05359c 100644 --- a/docs/basic/data.rst +++ b/docs/basic/data.rst @@ -40,7 +40,7 @@ Information about installing OSGeoLive can be found on Create a pgRouting compatible database ------------------------------------------------------------------------------- -.. note:: Depending on the postgres configuration :code:`-U ` is needed on +.. note:: Depending on the Postgres configuration :code:`-U ` is needed on :code:`psql` commands .. literalinclude:: ../scripts/get_data/process_osgeolive_data.sh From 0e18b4321b4d171a759b9f4f17405984a0d1be71 Mon Sep 17 00:00:00 2001 From: emvr Date: Sun, 14 Jun 2026 08:08:30 +0100 Subject: [PATCH 09/15] Update data.rst --- docs/basic/data.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/basic/data.rst b/docs/basic/data.rst index e5b05359c..6d63d9d12 100644 --- a/docs/basic/data.rst +++ b/docs/basic/data.rst @@ -95,8 +95,8 @@ due to changes since @DATE_OF_DATA@. BBOX="@PGR_WORKSHOP_CITY_BBOX@" wget --progress=dot:mega -O "$CITY.osm" "http://www.overpass-api.de/api/xapi?*[bbox=\$\{BBOX\}][@meta]" -More information about how to download OpenStreetMap data can be found in -https://wiki.openstreetmap.org/wiki/Downloading_data +More information about how to download OpenStreetMap data can be found +`here `_. An alternative for very large areas is to use the download services of `Geofabrik `_. From 92a1dc3e329af2a08d1f4d4dab65ad6ba8a99c7b Mon Sep 17 00:00:00 2001 From: emvr Date: Sun, 14 Jun 2026 08:43:00 +0100 Subject: [PATCH 10/15] Update graphs.rst --- docs/basic/graphs.rst | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/basic/graphs.rst b/docs/basic/graphs.rst index 6246380da..68d183733 100644 --- a/docs/basic/graphs.rst +++ b/docs/basic/graphs.rst @@ -17,7 +17,7 @@ Graphs .. contents:: Chapter Contents -Different application require different graphs. This chapter covers how to +Different applications require different graphs. This chapter covers how to discard disconnected segments and different approaches to create graphs. pgRouting functions in this chapter @@ -29,10 +29,10 @@ pgRouting functions in this chapter The graph requirements =============================================================================== -In this chapter there are three graph requirements. It consists on three graphs -based on a **fully connected** graph derived from ``ways``: two for different types -of vehicles and one for pedestrian, the source and the target in all of them are -based on the ``source`` and ``target``. +This chapter requires the creation of three distinct routing graphs derived from +``ways``. These consist of two vehicle-specific graphs and one pedestrian +graph, all of which utilize the standard ``source`` and ``target`` to determine +routing paths. The description of the graphs: @@ -56,7 +56,7 @@ The description of the graphs: - Pedestrians: - Walk on the whole @PGR_WORKSHOP_CITY@ area. - - Can only use pedestrian only ways: + - Can only use pedestrian-only ways: - `pedestrian`, `steps`, `footway`, `path`, `cycleway` @@ -68,7 +68,7 @@ Configuration from osm2pgrouting When dealing with data, being aware of what kind of data is being used can improve results. -* Vehicles can not circulate on pedestrian ways +* Vehicles cannot circulate on pedestrian ways .. image:: images/graphs/pedestrian_only_roads.png :scale: 25% @@ -96,7 +96,7 @@ additional table: ``configuration``. | -In the image above there is a detail of the ``tag_id`` of the roads. +In the image above, there is a detail of the ``tag_id`` of the roads. .. rubric:: The `OSM highway `__ types: @@ -110,7 +110,7 @@ In the image above there is a detail of the ``tag_id`` of the roads. .. literalinclude:: ../scripts/basic/graphs/configuration_contents.txt -Also, on the ``ways`` table there is a column that can be used to ``JOIN`` with the ``configuration`` table. +Also, on the ``ways`` table, there is a column that can be used to ``JOIN`` with the ``configuration`` table. .. rubric:: The configuration types in the @PGR_WORKSHOP_CITY@ data From 4c63d38f55e3793d5c6b99ea47c4f11047398221 Mon Sep 17 00:00:00 2001 From: emvr Date: Sun, 14 Jun 2026 08:52:28 +0100 Subject: [PATCH 11/15] Update pedestrian.rst --- docs/basic/pedestrian.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/basic/pedestrian.rst b/docs/basic/pedestrian.rst index 254fabddd..5341387f0 100644 --- a/docs/basic/pedestrian.rst +++ b/docs/basic/pedestrian.rst @@ -28,7 +28,7 @@ pgRouting functions in this chapter pgr_dijkstra ------------------------------------------------------------------------------- -Dijkstra algorithm was the first algorithm implemented in pgRouting. It doesn't +Dijkstra algorithm was the first algorithm implemented in pgRouting. It does not require other attributes than the identifiers ``id``, ``source`` and ``target`` and the weights ``cost`` and ``reverse_cost``. From e445522b42126aa6802e1ac9ddc56027d674935d Mon Sep 17 00:00:00 2001 From: emvr Date: Sun, 14 Jun 2026 08:59:23 +0100 Subject: [PATCH 12/15] Update pedestrian.rst --- docs/basic/pedestrian.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/basic/pedestrian.rst b/docs/basic/pedestrian.rst index 5341387f0..e268db38a 100644 --- a/docs/basic/pedestrian.rst +++ b/docs/basic/pedestrian.rst @@ -14,7 +14,7 @@ Pedestrian Routing :scale: 25% :align: center -**pgRouting** was first called *pgDijkstra*, because it implemented only shortest +**pgRouting** was first called *pgDijkstra* because it implemented only shortest path search with *Dijkstra* algorithm. Later other functions were added and the library was renamed to pgRouting. From a6fedfe4d0b612f9944ec0c34007c69dad096158 Mon Sep 17 00:00:00 2001 From: emvr Date: Sun, 14 Jun 2026 09:33:44 +0100 Subject: [PATCH 13/15] Update vehicle.rst --- docs/basic/vehicle.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/basic/vehicle.rst b/docs/basic/vehicle.rst index 27902bfd5..5a07eec80 100644 --- a/docs/basic/vehicle.rst +++ b/docs/basic/vehicle.rst @@ -15,7 +15,7 @@ Vehicle Routing :scale: 25% :align: center -Routing, is not limited to pedestrians and most of the time is used for routing vehicles. +Routing is not limited to pedestrians and most of the time is also used for routing vehicles. .. contents:: Chapter Contents @@ -33,7 +33,7 @@ A query for vehicle routing generally differs from routing for pedestrians: * Euros * Pesos * Dollars - * CO\ :sub:`2`\ emissions + * CO\ :sub:`2`\ emissions * Wear and tear on the vehicle, etc. * The ``reverse_cost`` attribute must be taken into account on two way streets. From 29270af25b7d6149dedbf0736a45cb87838bbce8 Mon Sep 17 00:00:00 2001 From: emvr Date: Sun, 14 Jun 2026 09:47:13 +0100 Subject: [PATCH 14/15] Update sql_function.rst --- docs/basic/sql_function.rst | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/docs/basic/sql_function.rst b/docs/basic/sql_function.rst index 2aa414699..d7ef251d9 100644 --- a/docs/basic/sql_function.rst +++ b/docs/basic/sql_function.rst @@ -17,14 +17,12 @@ SQL function .. contents:: Chapter Contents -pgRouting functions provide `low level` interface. +While pgRouting functions provide a low-level interface, developing for a higher-level +application requires these requirements to be represented directly in the SQL queries. +As these SQL queries get more complex, it is desirable to store them in PostgreSQL +stored procedures or functions. Stored procedures or functions are an effective way +to wrap application logic, in this case, related to routing logic and requirements. -When developing for a `higher level` application, -the requirements need to be represented in the SQL queries. -As these SQL queries get more complex, it is desirable to store them in postgreSQL -stored procedures or functions. -Stored procedures or functions are an effective way to wrap application logic, in this case, -related to routing logic and requirements. The function requirements =============================================================================== @@ -132,7 +130,7 @@ Geometry handling =============================================================================== From pgRouting point of view, the geometry is part of the additional -information, needed on the results for an application. Therefore ``JOIN`` the +information needed on the results for an application. Therefore ``JOIN`` the results with other tables that contain the geometry and for further processing with PostGIS functions. From a85a945b14cb43115c5f49d39ed242fb63dd18ed Mon Sep 17 00:00:00 2001 From: emvr Date: Sun, 14 Jun 2026 09:59:36 +0100 Subject: [PATCH 15/15] Update withPoints.rst --- docs/basic/withPoints.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/basic/withPoints.rst b/docs/basic/withPoints.rst index 222eec895..16983733b 100644 --- a/docs/basic/withPoints.rst +++ b/docs/basic/withPoints.rst @@ -14,10 +14,10 @@ Routing using points :width: 250pt :align: center -Other kind of functions are `pl/pgsql -`__. As the applications -requirements become more complex, building queries and storing queries in a -variable becomes necessary + +For more advanced requirements, you can utilize `PL/pgSQL `_. As application logic grows more complex, using PL/pgSQL +to dynamically construct SQL queries and execute them using internal variables becomes necessary. + pgRouting functions in this chapter