diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 000000000..203f3c889
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,6 @@
+version: 2
+updates:
+- package-ecosystem: "github-actions"
+ directory: "/"
+ schedule:
+ interval: "weekly"
diff --git a/tools/transifex/remove_obsolete_entries.sh b/.github/scripts/remove_obsolete_entries.sh
similarity index 89%
rename from tools/transifex/remove_obsolete_entries.sh
rename to .github/scripts/remove_obsolete_entries.sh
index c33ae4d98..8838341d5 100755
--- a/tools/transifex/remove_obsolete_entries.sh
+++ b/.github/scripts/remove_obsolete_entries.sh
@@ -7,7 +7,7 @@
# ------------------------------------------------------------------------------
# For all the chapter files
-for file in $(find locale/en -type f -name "*.po"); do
+for file in $(find locale -type f -name "*.po"); do
if grep -q '#~' $file; then
perl -pi -0777 -e 's/#~.*//s' $file
git add $file
diff --git a/.github/scripts/update_locale.sh b/.github/scripts/update_locale.sh
new file mode 100755
index 000000000..119704a59
--- /dev/null
+++ b/.github/scripts/update_locale.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+# ------------------------------------------------------------------------------
+# /*PGR-GNU*****************************************************************
+# File: update_locale.sh
+# Copyright (c) 2021 pgRouting developers
+# Mail: project@pgrouting.org
+# ------
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+# ********************************************************************PGR-GNU*/
+# ------------------------------------------------------------------------------
+
+DIR=$(git rev-parse --show-toplevel)
+
+pushd "${DIR}" > /dev/null || exit 1
+
+mkdir -p build
+pushd build > /dev/null || exit 1
+cmake -DLOCALE=ON ..
+
+make locale
+popd > /dev/null || exit 1
+
+# List all the files that needs to be committed in build/docs/locale_changes.txt
+awk '/^Update|^Create/{print $2}' build/docs/locale_changes.txt > build/docs/locale_changes_po.txt # .po files
+cp build/docs/locale_changes_po.txt build/docs/locale_changes_po_pot.txt
+perl -ne '/\/en\// && print' build/docs/locale_changes_po.txt | \
+ perl -pe 's/(.*)en\/LC_MESSAGES(.*)/$1pot$2t/' >> build/docs/locale_changes_po_pot.txt # .pot files
+
+# Do not create empty translation files
+git status locale/es --porcelain | awk 'match($1, "?"){print $2}' | xargs -r rm -rf
+git status locale/ja --porcelain | awk 'match($1, "?"){print $2}' | xargs -r rm -rf
+
+# Remove obsolete entries #~ from .po files
+bash .github/scripts/remove_obsolete_entries.sh
+
+cat build/docs/locale_changes_po_pot.txt | xargs -I {} sh -c "(ls {} >> /dev/null 2>&1 && git add {} )"
+
+popd > /dev/null || exit 1
diff --git a/.github/workflows/locale.yml b/.github/workflows/locale.yml
new file mode 100644
index 000000000..37db84c67
--- /dev/null
+++ b/.github/workflows/locale.yml
@@ -0,0 +1,98 @@
+name: Update Locale
+
+# This action runs:
+# - When this file changes
+# - When changes on documentation (doc)
+# - When is triggered manually
+
+on:
+ workflow_dispatch:
+ push:
+
+permissions:
+ contents: write
+
+jobs:
+ update-locale:
+ name: Update Locale
+ runs-on: ubuntu-latest
+
+ strategy:
+ fail-fast: false
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - name: Get postgres version
+ run: |
+ sudo service postgresql start
+ pgver=$(psql --version | grep -Po '(?<=psql \(PostgreSQL\) )[^;]+(?=\.\d+ \()')
+ echo "PGVER=${pgver}" >> $GITHUB_ENV
+ echo "PGIS=3" >> $GITHUB_ENV
+
+ - name: Extract branch name and commit hash
+ run: |
+ branch=${GITHUB_REF#refs/heads/}
+ git_hash=$(git rev-parse --short "$GITHUB_SHA")
+ echo "GIT_HASH=$git_hash" >> $GITHUB_ENV
+
+ - name: Add PostgreSQL APT repository
+ run: |
+ sudo apt-get install curl ca-certificates gnupg
+ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
+ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ \
+ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
+
+ - name: Install python
+ uses: actions/setup-python@v5
+ with:
+ python-version: '3.x'
+
+ - name: Install dependencies
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y osm2pgrouting \
+ postgresql-${PGVER}-postgis-${PGIS} \
+ postgresql-${PGVER}-postgis-${PGIS}-scripts \
+ postgresql-${PGVER}-pgrouting
+
+ python -m pip install --upgrade pip
+ pip install -r REQUIREMENTS.txt
+ pip list
+
+ - name: Configure
+ run: |
+ service postgresql status
+ sudo service postgresql start
+ service postgresql status
+ sudo -u postgres createdb -p ${POSTGRES_PORT} setup
+ sudo -u postgres psql -c 'CREATE ROLE "runner" SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN PASSWORD $$runner$$;' -d setup
+ echo :5432:*:runner:runner >> .pgpass
+ sudo -u postgres psql -c 'CREATE ROLE "user" SUPERUSER CREATEDB CREATEROLE INHERIT LOGIN PASSWORD $$user$$;' -d setup
+ echo :5432:*:user:user >> .pgpass
+ mkdir build
+ cd build
+ cmake -DLOCALE=ON ..
+ env:
+ POSTGRES_HOST: localhost
+ POSTGRES_PORT: 5432
+ POSTGRES_USER: postgres
+ POSTGRES_PASSWORD: postgres
+ POSTGRES_DB: setup
+
+ - name: Initialize mandatory git config
+ run: |
+ git config user.name "github-actions[bot]"
+ git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
+
+ - name: Update locale
+ run: |
+ bash .github/scripts/update_locale.sh
+
+ # Add the files, commit and push
+ git diff --staged --quiet || git commit -m "Update locale: commit ${{ env.GIT_HASH }}"
+ git restore . # Remove the unstaged changes before rebasing
+ git push
diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml
index 224e1ece7..baaa30ba9 100644
--- a/.github/workflows/ubuntu.yml
+++ b/.github/workflows/ubuntu.yml
@@ -11,7 +11,7 @@ jobs:
fail-fast: false
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Get postgres version
run: |
@@ -28,7 +28,7 @@ jobs:
$(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
- name: Install python
- uses: actions/setup-python@v4
+ uses: actions/setup-python@v5
with:
python-version: '3.x'
diff --git a/.github/workflows/locale-and-website.yml b/.github/workflows/website.yml
similarity index 74%
rename from .github/workflows/locale-and-website.yml
rename to .github/workflows/website.yml
index e20985cf1..a5d95114b 100644
--- a/.github/workflows/locale-and-website.yml
+++ b/.github/workflows/website.yml
@@ -1,15 +1,15 @@
-name: Update Locale and Website
+name: Update Website
on:
workflow_dispatch:
push:
branches:
- develop
- - un-challenge
+ - main
jobs:
update-documentation:
- name: Update Locale and Website
+ name: Update Website
runs-on: ubuntu-latest
strategy:
@@ -44,7 +44,7 @@ jobs:
$(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
- name: Install python
- uses: actions/setup-python@v4
+ uses: actions/setup-python@v5
with:
python-version: '3.x'
@@ -72,7 +72,7 @@ jobs:
echo :5432:*:user:user >> .pgpass
mkdir build
cd build
- cmake -DLOCALE=ON -DPGR_WORKSHOP=ON -DES=ON ..
+ cmake -DES=ON ..
env:
POSTGRES_HOST: localhost
POSTGRES_PORT: 5432
@@ -90,25 +90,6 @@ jobs:
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
- - name: Update locale
- if: github.ref == 'refs/heads/develop'
- run: |
- # List all the files that needs to be committed in build/docs/locale_changes.txt
- awk '/^Update|^Create/{print $2}' build/docs/locale_changes.txt > tmp && mv tmp build/docs/locale_changes.txt # .po files
- cat build/docs/locale_changes.txt | perl -pe 's/(.*)en\/LC_MESSAGES(.*)/$1pot$2t/' >> build/docs/locale_changes.txt # .pot files
- cat build/docs/locale_changes.txt
-
- # Remove obsolete entries #~ from .po files
- tools/transifex/remove_obsolete_entries.sh
-
- # Add the files, commit and push
- for line in `cat build/docs/locale_changes.txt`; do git add "$line"; done
- git diff --staged --quiet || git commit -m "Update locale: commit ${{ env.GIT_HASH }}"
- git fetch origin develop
- git restore . # Remove the unstaged changes before rebasing
- git rebase origin/develop
- git push origin develop
-
- name: Update Website
run: |
if [[ "${{ env.BRANCH }}" == "develop" ]]; then
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5cde57c09..a7689d95e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -20,19 +20,19 @@ set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
#---------------------------------------------
# Setting the version number
#---------------------------------------------
-set(WORKSHOP_AREA "FOSS4G Prizren")
-set(COPYRIGHT "2010-2023 pgRouting Developers")
-set(PGR_WORKSHOP_VERSION_MAJOR "2")
-set(PGR_WORKSHOP_VERSION_MINOR "9")
+set(PGR_WORKSHOP_CITY "Belém")
+set(WORKSHOP_AREA "FOSS4G ${PGR_WORKSHOP_CITY}")
+set(COPYRIGHT "2010-2024 pgRouting Developers")
+set(PGR_WORKSHOP_VERSION_MAJOR "3")
+set(PGR_WORKSHOP_VERSION_MINOR "0")
set(PGR_WORKSHOP_VERSION_PATCH "0")
-set(PGR_WORKSHOP_VERSION_DEV "")
+set(PGR_WORKSHOP_VERSION_DEV "-dev")
set(PGR_WORKSHOP_VERSION "${PGR_WORKSHOP_VERSION_MAJOR}.${PGR_WORKSHOP_VERSION_MINOR}")
set(PGR_WORKSHOP_RELEASE "${PGR_WORKSHOP_VERSION_MAJOR}.${PGR_WORKSHOP_VERSION_MINOR}.${PGR_WORKSHOP_VERSION_PATCH}${PGR_WORKSHOP_VERSION_DEV}")
set(PGR_WORKSHOP_NAME "pgRouting workshop")
-set(PGR_HTML_TITLE "Workshop - FOSS4G 2023 Prizren - Routing with pgRouting")
-set(PGR_HTML_SHORT_TITLE "Workshop - Prizren")
-set(OSGeoLive_VERSION "16.0")
-
+set(PGR_HTML_TITLE "Workshop - ${WORKSHOP_AREA} - Routing with pgRouting")
+set(PGR_HTML_SHORT_TITLE "Workshop - ${PGR_WORKSHOP_CITY}")
+set(OSGeoLive_VERSION "17")
#---------------------------------------------
# setting debug options
@@ -49,40 +49,41 @@ option(PGR_WORKSHOP_VERBOSE_DEBUG
#---------------------------------------------
# CONFIGURATION
#---------------------------------------------
-set(PGR_WORKSHOP_CITY "Prizren")
-set(PGR_WORKSHOP_CITY_FILE "Prizren_XK")
+set(PGR_WORKSHOP_CITY_FILE "BELEM_BR")
# https://github.com/OSGeo/OSGeoLive/blob/master/bin/install_osm.sh
# around line 117
-set(PGR_WORKSHOP_CITY_BBOX "21.1922265,42.0816364,20.2206175,42.6653875")
+set(PGR_WORKSHOP_CITY_BBOX "-48.52,-1.49,-48.4,-1.36")
# Make it smaller
-set(PGR_WORKSHOP_LITTLE_NET_BBOX "20.73,42.20891,20.76,42.23")
+set(PGR_WORKSHOP_LITTLE_NET_BBOX "-48.52,-1.46,-48.45,-1.41")
# Use git blame to get the date when the line was changed
-set(PGR_WORKSHOP_DOWNLOAD_DIR "workshop-2023")
-set(DATE_OF_DATA "March 2023")
+set(PGR_WORKSHOP_DOWNLOAD_DIR "workshop-2024")
+set(DATE_OF_DATA "Sep 2024")
+
+set(OSMID_1 "10982869752")
+set(OSMID_2 "11818739588")
+set(OSMID_3 "491465035")
+set(OSMID_4 "1069202329")
+set(OSMID_5 "5661895682")
-set(OSMID_1 "2385630446")
-set(OSMID_2 "1838481592")
-set(OSMID_3 "1840522495")
-set(OSMID_4 "6917727056")
-set(OSMID_5 "2385655026")
-# osm_id IN (6917727056, 2385655026, 1838481592, 1840522495, 2385630446)
+set(LAT1 "-1.422066")
+set(LON1 "-48.45665")
# 3->1: routes for vehicles with penalty & no penalty must be different
-set(PLACE_1 "Nadir Xhemali Danijolli")
-set(PLACE_2 "Qendra Sprotive")
-set(PLACE_3 "Kalaja e Prizrenit")
-set(PLACE_4 "Inovation and Training Park")
-set(PLACE_5 "Lidhja Shqiptare e Prizrenit")
+set(PLACE_1 "Hangar Convention Center")
+set(PLACE_2 "Instituto Federal do Pará, Campus Belém")
+set(PLACE_3 "Palacete Bolonha")
+set(PLACE_4 "Forte do Castelo")
+set(PLACE_5 "Estação das Docas")
-set(POINT1_LON "20.729354")
-set(POINT1_LAT "42.2151")
-set(POINT2_LON "20.7312")
-set(POINT2_LAT "42.2147")
+set(POINT1_LAT "-1.455829")
+set(POINT1_LON "-48.446044")
+set(POINT2_LAT "-1.453448")
+set(POINT2_LON "-48.447142")
# by chapters
set(CH7_PLACE_1 ${PLACE_5})
@@ -201,9 +202,6 @@ endforeach()
message(STATUS "PGR_WORKSHOP_DOC_TARGETS = ${PGR_WORKSHOP_DOC_TARGETS}")
-
-
-
#---------------------------------------------
#---------------------------------------------
#---------------------------------------------
@@ -223,7 +221,7 @@ message(STATUS "PGR_WORKSHOP_DOC_TARGETS = ${PGR_WORKSHOP_DOC_TARGETS}")
# TODO: figure out how to support this
# "el" "hu" "id" "zh")
#---------------------------------------------
-set(PGR_WORKSHOP_SUPPORTED_LANGUAGES "es")
+set(PGR_WORKSHOP_SUPPORTED_LANGUAGES "es" "ja")
set(PGR_WORKSHOP_ENGLISH "en")
#---------------------------------------------
@@ -233,72 +231,75 @@ option(ALL_LANG
"Set ON|OFF (default=OFF) to build all documentation supported languages
${PGR_WORKSHOP_SUPPORTED_LANGUAGES}" OFF)
- foreach(lang ${PGR_WORKSHOP_SUPPORTED_LANGUAGES})
- string(TOUPPER ${lang} val)
- option(${val}
- "Set ON|OFF (default=OFF) build ${lang} Documentation" OFF)
- endforeach()
+foreach(lang ${PGR_WORKSHOP_SUPPORTED_LANGUAGES})
+ string(TOUPPER ${lang} val)
+ option(${val}
+ "Set ON|OFF (default=OFF) build ${lang} Documentation" OFF)
+endforeach()
- #---------------------------------------------
- # Catching the language options to be build
- #---------------------------------------------
- list(APPEND PGR_WORKSHOP_BUILD_LANGUAGES ${PGR_WORKSHOP_ENGLISH})
+#---------------------------------------------
+# Catching the language options to be build
+#---------------------------------------------
+list(APPEND PGR_WORKSHOP_BUILD_LANGUAGES ${PGR_WORKSHOP_ENGLISH})
+foreach(lang ${PGR_WORKSHOP_SUPPORTED_LANGUAGES})
+ string(TOUPPER ${lang} opt)
+ if (${opt} OR ALL_LANG)
+ list(APPEND PGR_WORKSHOP_BUILD_LANGUAGES ${lang})
+ endif()
+endforeach()
+
+
+#---------------------------------------------
+# All languages po files are to be generated
+#---------------------------------------------
+set (SPHINXINTL_LANGUAGE ${PGR_WORKSHOP_ENGLISH})
+if(LOCALE)
foreach(lang ${PGR_WORKSHOP_SUPPORTED_LANGUAGES})
- string(TOUPPER ${lang} opt)
- if (${opt} OR ALL_LANG)
- list(APPEND PGR_WORKSHOP_BUILD_LANGUAGES ${lang})
- endif()
+ set(SPHINXINTL_LANGUAGE "${SPHINXINTL_LANGUAGE},${lang}")
endforeach()
+ set(PGR_WORKSHOP_LANGUAGES ${PGR_WORKSHOP_ENGLISH})
+endif()
- #---------------------------------------------
- # All languages po files are to be generated
- #---------------------------------------------
- set (SPHINXINTL_LANGUAGE ${PGR_WORKSHOP_ENGLISH})
- if(LOCALE)
- foreach(lang ${PGR_WORKSHOP_SUPPORTED_LANGUAGES})
- set(SPHINXINTL_LANGUAGE "${SPHINXINTL_LANGUAGE},${lang}")
- endforeach()
- set(PGR_WORKSHOP_LANGUAGES ${PGR_WORKSHOP_ENGLISH})
- endif()
+message(STATUS "SPHINXINTL_LANGUAGE ${SPHINXINTL_LANGUAGE}")
+
+
+#------------------------------------------
+# Used to generate the languages bar
+#------------------------------------------
+MACRO(INSERT_INTO_MAP _KEY _VALUE)
+ SET("LangMap_${_KEY}" "${_VALUE}")
+ENDMACRO(INSERT_INTO_MAP)
+INSERT_INTO_MAP("ca" "Català")
+INSERT_INTO_MAP("de" "Deutsch")
+INSERT_INTO_MAP("el" "Ελληνικά")
+INSERT_INTO_MAP("en" "English")
+INSERT_INTO_MAP("es" "Español")
+INSERT_INTO_MAP("fr" "Français")
+INSERT_INTO_MAP("fi" "Suomen kieli")
+INSERT_INTO_MAP("hu" "Hungarian")
+INSERT_INTO_MAP("id" "Bahasa Indonesia")
+INSERT_INTO_MAP("it" "Italiano")
+INSERT_INTO_MAP("ja" "日本語")
+INSERT_INTO_MAP("ko" "한국어")
+INSERT_INTO_MAP("pl" "Polski")
+INSERT_INTO_MAP("pt" "Portugus")
+INSERT_INTO_MAP("ru" "Русский")
+INSERT_INTO_MAP("zh" "中文")
+
+
+message(STATUS "PGR_WORKSHOP_BUILD_LANGUAGES = ${PGR_WORKSHOP_BUILD_LANGUAGES}")
+message(STATUS "SPHINXINTL_LANGUAGE = ${SPHINXINTL_LANGUAGE}")
+
+#---------------------------------------------
+#---------------------------------------------
+#---------------------------------------------
+
+# The list of projects to be documented
+
+#---------------------------------------------
+#---------------------------------------------
+#---------------------------------------------
- #------------------------------------------
- # Used to generate the languages bar
- #------------------------------------------
- MACRO(INSERT_INTO_MAP _KEY _VALUE)
- SET("LangMap_${_KEY}" "${_VALUE}")
- ENDMACRO(INSERT_INTO_MAP)
-
- INSERT_INTO_MAP("ca" "Català")
- INSERT_INTO_MAP("de" "Deutsch")
- INSERT_INTO_MAP("el" "Ελληνικά")
- INSERT_INTO_MAP("en" "English")
- INSERT_INTO_MAP("es" "Español")
- INSERT_INTO_MAP("fr" "Français")
- INSERT_INTO_MAP("fi" "Suomen kieli")
- INSERT_INTO_MAP("hu" "Hungarian")
- INSERT_INTO_MAP("id" "Bahasa Indonesia")
- INSERT_INTO_MAP("it" "Italiano")
- INSERT_INTO_MAP("ja" "日本語")
- INSERT_INTO_MAP("ko" "한국어")
- INSERT_INTO_MAP("pl" "Polski")
- INSERT_INTO_MAP("pt" "Portugus")
- INSERT_INTO_MAP("ru" "Русский")
- INSERT_INTO_MAP("zh" "中文")
-
-
- message(STATUS "PGR_WORKSHOP_BUILD_LANGUAGES = ${PGR_WORKSHOP_BUILD_LANGUAGES}")
- message(STATUS "SPHINXINTL_LANGUAGE = ${SPHINXINTL_LANGUAGE}")
-
- #---------------------------------------------
- #---------------------------------------------
- #---------------------------------------------
-
- # The list of projects to be documented
-
- #---------------------------------------------
- #---------------------------------------------
- #---------------------------------------------
-
- add_subdirectory(docs)
+add_subdirectory(docs)
diff --git a/REQUIREMENTS.txt b/REQUIREMENTS.txt
index e282dc06a..7f8bb9084 100644
--- a/REQUIREMENTS.txt
+++ b/REQUIREMENTS.txt
@@ -1,3 +1,4 @@
Sphinx>4.0.0
sphinx_bootstrap_theme>=0.4
-sphinx-intl[transifex]
+sphinx-intl
+sphinx-collapse
diff --git a/Readme.md b/Readme.md
index d5aba991e..d627d1510 100644
--- a/Readme.md
+++ b/Readme.md
@@ -21,9 +21,14 @@
### Build the workshop:
```bash
-cd docs
+dropdb city_routing
+mkdir build
+cd build
+cmake ..
make html
+cd ..
```
+
### Building PDF
Install prerequisite:
@@ -31,21 +36,11 @@ Install prerequisite:
sudo apt-get install texlive-latex-extra
```
-To build the documentation as PDF:
-
-```bash
-cd docs
-make latexpdf
-cd _build/latex/
-pdflatex -interaction=nonstopmode pgRoutingWorkshop.tex
-```
-
## License
This workshop is licensed under a [Creative Commons Attribution-Share Alike 3.0 License](http://creativecommons.org/licenses/by-sa/3.0/).
## Supported by
-* [Georepublic](https://georepublic.info)
-* [iMaptools](http://imaptools.com)
* [Paragon Corporation](https://www.paragoncorporation.com)
+* [erosion](https://www.erosion.dev)
diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt
index 21d055f20..49769e8a1 100644
--- a/docs/CMakeLists.txt
+++ b/docs/CMakeLists.txt
@@ -67,7 +67,7 @@ if (LOCALE)
"${CMAKE_CURRENT_BINARY_DIR}"
"${CMAKE_SOURCE_DIR}/locale/pot"
- COMMAND sphinx-intl update -d ${CMAKE_SOURCE_DIR}/locale -l en > locale_changes.txt
+ COMMAND sphinx-intl update -d ${CMAKE_SOURCE_DIR}/locale -l ${SPHINXINTL_LANGUAGE} > locale_changes.txt
DEPENDS "conf.py"
COMMENT "Generating POT & PO files ..."
@@ -86,7 +86,7 @@ foreach (target ${PGR_WORKSHOP_DOC_TARGETS})
foreach (lang ${PGR_WORKSHOP_BUILD_LANGUAGES})
if (lang STREQUAL "en")
- set(WARNINGS_TO_ERRORS "-W")
+ set(WARNINGS_TO_ERRORS "")
else()
set(WARNINGS_TO_ERRORS "")
endif()
diff --git a/docs/advanced/chapter-12.rst b/docs/advanced/chapter-12.rst
index 43d613d7b..cb181f34c 100644
--- a/docs/advanced/chapter-12.rst
+++ b/docs/advanced/chapter-12.rst
@@ -163,7 +163,9 @@ Also a new table containing the vertices information was created:
* Additional columns are for analyzing the topology.
Now we are ready for our first routing query with
-:ref:`basic/pedestrian:pgr_dijkstra`
+`pgr_dijkstra `__
+or any other pgRouting query.
+
Analyze and Adjust the Routing Network Topology
diff --git a/docs/appendix/appendix-2.rst b/docs/appendix/appendix-2.rst
index d627d6227..03a7c135d 100644
--- a/docs/appendix/appendix-2.rst
+++ b/docs/appendix/appendix-2.rst
@@ -52,7 +52,7 @@ To be up-to-date with changes and improvements
sudo apt-get update & sudo apt-get upgrade
To avoid permission denied errors for local users you can set connection method
-to ``trust`` in ``/etc/postgresql//main/pg_hba.conf`` and restart
+to ``trust`` in ``/etc/postgresql//main/pg_hba.conf`` and restart
PostgreSQL server with ``sudo service postgresql restart``.
Following the example with PostgreSQL 10:
diff --git a/docs/appendix/appendix-3.rst b/docs/appendix/appendix-3.rst
index 081566363..dd7525fe4 100644
--- a/docs/appendix/appendix-3.rst
+++ b/docs/appendix/appendix-3.rst
@@ -20,7 +20,7 @@ automatically and creates tables for feature types and road classes.
* Documentation: |osm2pgrouting-wiki|
.. note::
- There are some limitations, especially regarding the network size. The way to
+ There are some limitations, especially regarding the network size. The way to
handle large data sets is to current version of osm2pgrouting needs to load
all data into memory, which makes it fast but also requires a lot or memory
for large datasets. An alternative tool to osm2pgrouting without the network
diff --git a/docs/basic/CMakeLists.txt b/docs/basic/CMakeLists.txt
index fe6b03a95..973895bbc 100644
--- a/docs/basic/CMakeLists.txt
+++ b/docs/basic/CMakeLists.txt
@@ -9,9 +9,9 @@ set(PGR_WORKSHOP_FILES
data.rst
pedestrian.rst
vehicle.rst
+ graph_views.rst
sql_function.rst
plpgsql_function.rst
- appendix.rst
)
set(PGR_WORKSHOP_SUBDIRS
diff --git a/docs/basic/appendix.rst b/docs/basic/appendix.rst
deleted file mode 100644
index 96abe0205..000000000
--- a/docs/basic/appendix.rst
+++ /dev/null
@@ -1,321 +0,0 @@
-..
- ****************************************************************************
- pgRouting Workshop Manual
- Copyright(c) pgRouting Contributors
-
- This documentation is licensed under a Creative Commons Attribution-Share
- Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
- ****************************************************************************
-
-Appendix: Basic workshop solutions
-===============================================================================
-
-Solutions to :doc:`pedestrian`
--------------------------------------------------------------------------------
-
-**Exercise**: 1 (**Chapter:** Pedestrian)
-...............................................................................
-
-:ref:`basic/pedestrian:Exercise 1: Single pedestrian routing`
-
-.. literalinclude:: ../scripts/basic/chapter_5/exercise_5_1.txt
-
-
-**Exercise**: 2 (**Chapter:** Pedestrian)
-...............................................................................
-
-:ref:`basic/pedestrian:Exercise 2: Many Pedestrians going to the same destination`
-
-.. literalinclude:: ../scripts/basic/chapter_5/exercise_5_2.txt
-
-
-**Exercise**: 3 (**Chapter:** Pedestrian)
-...............................................................................
-
-:ref:`basic/pedestrian:Exercise 3: Many Pedestrians departing from the same location`
-
-.. literalinclude:: ../scripts/basic/chapter_5/exercise_5_3.txt
-
-
-**Exercise**: 4 (**Chapter:** Pedestrian)
-...............................................................................
-
-:ref:`basic/pedestrian:Exercise 4: Many Pedestrians going to different destinations`
-
-.. literalinclude:: ../scripts/basic/chapter_5/exercise_5_4.txt
-
-
-**Exercise**: 5 (**Chapter:** Pedestrian)
-...............................................................................
-
-:ref:`basic/pedestrian:Exercise 5: Time for many Pedestrians going to different destinations`
-
-.. literalinclude:: ../scripts/basic/chapter_5/exercise_5_5.txt
-
-
-**Exercise**: 6 (**Chapter:** Pedestrian)
-...............................................................................
-
-:ref:`basic/pedestrian:Exercise 6: Many Pedestrians going to different destinations summarizing the total costs per departure`
-
-.. literalinclude:: ../scripts/basic/chapter_5/exercise_5_6.txt
-
-
-Solutions to :doc:`vehicle`
--------------------------------------------------------------------------------
-
-**Exercise**: 1 (**Chapter:** Vehicle)
-...............................................................................
-
-:ref:`basic/vehicle:Exercise 1: Vehicle routing - going`
-
-.. literalinclude:: ../scripts/basic/chapter_6/section-6.1.1.txt
-
-
-**Exercise**: 2 (**Chapter:** Vehicle)
-...............................................................................
-
-:ref:`basic/vehicle:Exercise 2: Vehicle routing - returning`
-
-.. literalinclude:: ../scripts/basic/chapter_6/section-6.1.2.txt
-
-
-**Exercise**: 3 (**Chapter:** Vehicle)
-...............................................................................
-
-:ref:`basic/vehicle:Exercise 3: Vehicle routing when time is money`
-
-.. literalinclude:: ../scripts/basic/chapter_6/section-6.1.3.txt
-
-
-**Exercise**: 4 (**Chapter:** Vehicle)
-...............................................................................
-
-:ref:`basic/vehicle:Exercise 4: Vehicle routing without penalization`
-
-.. literalinclude:: ../scripts/basic/chapter_6/section-6.2.1.txt
-
-
-**Exercise**: 5 (**Chapter:** Vehicle)
-...............................................................................
-
-:ref:`basic/vehicle:Exercise 5: Vehicle routing with penalization`
-
-.. literalinclude:: ../scripts/basic/chapter_6/section-6.2.2-2.txt
-
-
-
-Solutions to :doc:`sql_function`
--------------------------------------------------------------------------------
-
-
-**Exercise**: 1 (**Chapter:** SQL)
-...............................................................................
-
-:ref:`basic/sql_function:Exercise 1: Creating a view for routing`
-
-.. literalinclude:: ../scripts/basic/chapter_7/exercise_7_1.txt
-
-
-**Exercise**: 2 (**Chapter:** SQL)
-...............................................................................
-
-:ref:`basic/sql_function:Exercise 2: Limiting the road network within an area`
-
-.. literalinclude:: ../scripts/basic/chapter_7/exercise_7_2.txt
-
-**Exercise**: 3 (**Chapter:** SQL)
-...............................................................................
-
-:ref:`basic/sql_function:Exercise 3: Creating a materialized view for routing pedestrians`
-
-.. literalinclude:: ../scripts/basic/chapter_7/exercise_7_3.txt
-
-
-**Exercise**: 4 (**Chapter:** SQL)
-...............................................................................
-
-:ref:`basic/sql_function:Exercise 4: Testing the views for routing`
-
-.. literalinclude:: ../scripts/basic/chapter_7/exercise_7_4.txt
-
-
-
-**Exercise**: 5 (**Chapter:** SQL)
-...............................................................................
-
-:ref:`basic/sql_function:Exercise 5: Get additional information`
-
-.. literalinclude:: ../scripts/basic/chapter_7/exercise_7_5.txt
-
-
-**Exercise**: 6 (**Chapter:** SQL)
-...............................................................................
-
-:ref:`basic/sql_function:Exercise 6: Route geometry (human readable)`
-
-.. literalinclude:: ../scripts/basic/chapter_7/exercise_7_6.txt
-
-
-**Exercise**: 7 (**Chapter:** SQL)
-...............................................................................
-
-:ref:`basic/sql_function:Exercise 7: Route geometry (binary format)`
-
-.. literalinclude:: ../scripts/basic/chapter_7/exercise_7_7.txt
-
-
-**Exercise**: 8 (**Chapter:** SQL)
-...............................................................................
-
-:ref:`basic/sql_function:Exercise 8: Route geometry directionality`
-
-.. literalinclude:: ../scripts/basic/chapter_7/exercise_7_8.txt
-
-
-**Exercise**: 9 (**Chapter:** SQL)
-...............................................................................
-
-:ref:`basic/sql_function:Exercise 9: Using the geometry`
-
-.. literalinclude:: ../scripts/basic/chapter_7/exercise_7_9.txt
-
-
-**Exercise**: 10 (**Chapter:** SQL)
-...............................................................................
-
-:ref:`basic/sql_function:Exercise 10: Function for an application`
-
-.. literalinclude:: ../scripts/basic/chapter_7/exercise_7_10.txt
-
-**Exercise**: 11 (**Chapter:** SQL)
-...............................................................................
-
-:ref:`basic/sql_function:Exercise 11: Using the function`
-
-.. literalinclude:: ../scripts/basic/chapter_7/exercise_7_11.txt
-
-
-Solutions to :doc:`plpgsql_function`
--------------------------------------------------------------------------------
-
-**Exercise**: 1 (**Chapter:** pl/pgsql)
-...............................................................................
-
-:ref:`basic/plpgsql_function:Exercise 1: Number of Vertices`
-
-For ``ways_vertices_pgr``:
-
-.. literalinclude:: ../scripts/basic/chapter_8/exercise_8_1_1.txt
-
-For ``vehicle_net``:
-
-.. literalinclude:: ../scripts/basic/chapter_8/exercise_8_1_2.txt
-
-For ``taxi_net``:
-
-.. literalinclude:: ../scripts/basic/chapter_8/exercise_8_1_3.txt
-
-For ``walk_net``:
-
-.. literalinclude:: ../scripts/basic/chapter_8/exercise_8_1_4.txt
-
-**Exercise**: 2 (**Chapter:** pl/pgsql)
-...............................................................................
-
-:ref:`basic/plpgsql_function:Exercise 2: Vertices on a table`
-
-For ``vehicle_net``:
-
-.. literalinclude:: ../scripts/basic/chapter_8/exercise_8_2_1.txt
-
-For ``taxi_net``:
-
-.. literalinclude:: ../scripts/basic/chapter_8/exercise_8_2_2.txt
-
-For ``walk_net``:
-
-.. literalinclude:: ../scripts/basic/chapter_8/exercise_8_2_3.txt
-
-
-**Exercise**: 3 (**Chapter:** pl/pgsql)
-...............................................................................
-
-:ref:`basic/plpgsql_function:Exercise 3: Nearest Vertex`
-
-For ``ways_vertices_pgr``:
-
-.. literalinclude:: ../scripts/basic/chapter_8/exercise_8_3_1.txt
-
-For ``vehicle_net_vertices_pgr``:
-
-.. literalinclude:: ../scripts/basic/chapter_8/exercise_8_3_2.txt
-
-For ``taxi_net_vertices_pgr``:
-
-.. literalinclude:: ../scripts/basic/chapter_8/exercise_8_3_3.txt
-
-For ``walk_net_vertices_pgr``:
-
-.. literalinclude:: ../scripts/basic/chapter_8/exercise_8_3_4.txt
-
-
-**Exercise**: 4 (**Chapter:** pl/pgsql)
-...............................................................................
-
-:ref:`basic/plpgsql_function:Exercise 4: Nearest vertex function`
-
-.. literalinclude:: ../scripts/basic/chapter_8/exercise_8_4.txt
-
-**Exercise**: 5 (**Chapter:** pl/pgsql)
-...............................................................................
-
-:ref:`basic/plpgsql_function:Exercise 5: Test nearest vertex function`
-
-For ``ways_vertices_pgr``:
-
-.. literalinclude:: ../scripts/basic/chapter_8/exercise_8_5_1.txt
-
-For ``vehicle_net_vertices_pgr``:
-
-.. literalinclude:: ../scripts/basic/chapter_8/exercise_8_5_2.txt
-
-For ``taxi_net_vertices_pgr``:
-
-.. literalinclude:: ../scripts/basic/chapter_8/exercise_8_5_3.txt
-
-For ``walk_net_vertices_pgr``:
-
-.. literalinclude:: ../scripts/basic/chapter_8/exercise_8_5_4.txt
-
-
-**Exercise**: 6 (**Chapter:** pl/pgsql)
-...............................................................................
-
-:ref:`basic/plpgsql_function:Exercise 6: Creating the main function`
-
-.. literalinclude:: ../scripts/basic/chapter_8/exercise_8_6.txt
-
-**Exercise**: 7 (**Chapter:** pl/pgsql)
-...............................................................................
-
-:ref:`basic/plpgsql_function:Exercise 7: Using the main function`
-
-For ``vehicle_net``
-
-.. literalinclude:: ../scripts/basic/chapter_8/exercise_8_7_1.txt
-
-For ``taxi_net``
-
-* The ``WARNING`` message:
-
-.. literalinclude:: ../scripts/basic/chapter_8/warnings.txt
- :start-after: WARNING
-
-* The query results:
-
-.. literalinclude:: ../scripts/basic/chapter_8/exercise_8_7_2.txt
-
-For ``walk_net``
-
-.. literalinclude:: ../scripts/basic/chapter_8/exercise_8_7_3.txt
diff --git a/docs/basic/data.rst b/docs/basic/data.rst
index d138b3849..cbc1c4520 100644
--- a/docs/basic/data.rst
+++ b/docs/basic/data.rst
@@ -27,21 +27,26 @@ pgRouting is installed as extension. This requires:
* PostgreSQL
* PostGIS
-These requirements are met on OSGeoLive. When the required software is installed, open a terminal window by pressing :code:`ctrl-alt-t` and follow the instructions.
-Information about installing OSGeoLive can be found on :doc:`../general-intro/osgeolive`.
+These requirements are met on OSGeoLive. When the required software is
+installed, open a terminal window by pressing :code:`ctrl-alt-t` and follow the
+instructions.
-.. note:: If OSGeoLive is not being used, please refer to the chapter's appendix to set up the user ``user``.
+Information about installing OSGeoLive can be found on
+:doc:`../general-intro/osgeolive`.
+
+.. note:: If OSGeoLive is not being used, please refer to the chapter's appendix
+ to set up the user ``user``.
Create a pgRouting compatible database
-------------------------------------------------------------------------------
-.. note:: Depending on the postgres configuration :code:`-U ` is needed on :code:`psql` commands
+.. note:: Depending on the postgres configuration :code:`-U ` is needed on
+ :code:`psql` commands
.. literalinclude:: ../scripts/get_data/process_osgeolive_data.sh
:start-after: 4.1.1 from-here
:end-before: 4.1.1 to-here
:language: bash
- :linenos:
.. Note:: To exit the database use ``\q``
@@ -60,7 +65,7 @@ Getting the data
Option 1) When using OSGeoLive
...............................................................................
-OSGeoLive comes with osm data from the city of @PGR_WORKSHOP_CITY@.
+OSGeoLive comes with OSM data from the city of @PGR_WORKSHOP_CITY@.
.. code-block:: bash
@@ -76,7 +81,6 @@ The exact same data can be found on the OSGeoLive download page.
:start-after: 4.2.2 from-here
:end-before: 4.2.2 to-here
:language: bash
- :linenos:
Option 3) Download using Overpass XAPI
...............................................................................
@@ -103,7 +107,7 @@ Upload data to the database
The next step is to run ``osm2pgrouting`` converter, which is a command line
tool that inserts the data in the database, "ready" to be used with pgRouting.
-Additional information about ``osm2pgrouting`` can be found at the :ref:`osm2pgrouting`
+Additional information about ``osm2pgrouting`` can be found at the :doc:`../appendix/appendix-3`
For this step:
@@ -120,16 +124,25 @@ Run the osm2pgrouting converter
:start-after: 4.3.1 from-here
:end-before: 4.3.1 to-here
:language: bash
- :linenos:
.. note:: Depending on the osm2pgrouting version `-W password` is needed
.. rubric:: Output:
-.. literalinclude:: ../scripts/get_data/process_osgeolive_data.sh
+.. literalinclude:: ../scripts/get_data/process_osgeolive_data.txt
:start-after: 4.3.1 from-here
:end-before: 4.3.1 to-here
- :linenos:
+
+.. rubric: Clean up
+
+.. literalinclude:: ../scripts/get_data/process_osgeolive_data.sh
+ :start-after: remove_faulty_ways_start
+ :end-before: remove_faulty_ways_end
+
+.. literalinclude:: ../scripts/get_data/process_osgeolive_data.txt
+ :start-after: remove_faulty_ways_start
+ :end-before: remove_faulty_ways_end
+
Tables on the database
-------------------------------------------------------------------------------
@@ -137,7 +150,6 @@ Tables on the database
.. literalinclude:: ../scripts/basic/chapter_4/section-4.3.2.sh
:start-after: 4.3.2 from-here
:end-before: 4.3.2 to-here
- :language: bash
If everything went well the result should look like this:
diff --git a/docs/basic/graph_views.rst b/docs/basic/graph_views.rst
new file mode 100644
index 000000000..9417aa80a
--- /dev/null
+++ b/docs/basic/graph_views.rst
@@ -0,0 +1,623 @@
+..
+ ****************************************************************************
+ pgRouting Workshop Manual
+ Copyright(c) pgRouting Contributors
+
+ This documentation is licensed under a Creative Commons Attribution-Share
+ Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
+ ****************************************************************************
+
+
+Graph views
+###############################################################################
+
+.. image:: images/chapter5/route.png
+ :scale: 25%
+ :align: center
+
+.. contents:: Chapter Contents
+
+Different application require different graphs. This chapter covers how to
+discard disconnected segments and different approaches to create graphs.
+
+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_osm`` and ``target_osm``.
+
+The description of the graphs:
+
+- Particular vehicle:
+
+ - Circulate on the whole @PGR_WORKSHOP_CITY@ area.
+
+ - Do not use `steps`, `footway`, `path`, `cycleway`.
+
+ - Speed is the default speed from OSM information.
+
+- Taxi vehicle:
+
+ - Circulate on a smaller area:
+
+ - Bounding box: ``(@PGR_WORKSHOP_LITTLE_NET_BBOX@)``
+ - Do not use `steps`, `footway`, `path`, `cycleway`.
+
+ - Speed is 10% slower than that of the particular vehicles.
+
+- Pedestrians:
+
+ - Walk on the whole @PGR_WORKSHOP_CITY@ area.
+ - Can not walk on exclusive vehicle ways
+
+ - `motorways` and on `primary` segments.
+
+ - The speed is ``2 mts/sec``.
+
+pgr_extractVertices
+================================================================================
+
+``pgr_extractVertices`` compute the connected components of an undirected
+graph using a Depth First Search approach. A connected component of an
+undirected graph is a set of vertices that are all reachable from each other.
+
+.. rubric:: Signature summary
+
+.. code-block:: sql
+
+ pgr_extractVertices(Edges SQL, [dryrun])
+
+ RETURNS SETOF (id, in_edges, out_edges, x, y, geom)
+ OR EMTPY SET
+
+Description of the function can be found in `pgr_extractVertices
+`__
+
+Exercise 1: Create a vertices table
+-------------------------------------------------------------------------------
+
+.. rubric:: Problem
+
+Create the vertices table corresponding to the edges in ``ways``.
+
+.. rubric:: Solution
+
+- A graph consists of a set of vertices and a set of edges.
+- In this case, the ``ways`` table is a set of edges.
+- In order to make use of all the graph functions from pgRouting, it is required
+ have the set of vertices defined.
+- From the requirements, the graph is going to be based on OSM identifiers.
+
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :emphasize-lines: 3
+ :start-after: create_vertices.txt
+ :end-before: vertices_description.txt
+
+.. collapse:: Number of inserted records
+
+ .. literalinclude:: ../scripts/basic/chapter_7/create_vertices.txt
+
+Reviewing the description of the vertices table
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :start-after: vertices_description.txt
+ :end-before: selected_rows.txt
+
+.. collapse:: Description
+
+ .. literalinclude:: ../scripts/basic/chapter_7/vertices_description.txt
+
+Inspecting the information on the vertices table
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :start-after: selected_rows.txt
+ :end-before: fill_columns_1.txt
+
+.. collapse:: Data on table
+
+ .. literalinclude:: ../scripts/basic/chapter_7/selected_rows.txt
+
+
+Exercise 2: Fill up other columns in the vertices table
+-------------------------------------------------------------------------------
+
+.. rubric:: Problem
+
+Fill up geometry information on the vertices table.
+
+.. rubric:: Solution
+
+Count the number of rows that need to be filled up.
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :start-after: fill_columns_1.txt
+ :end-before: fill_columns_2.txt
+
+.. collapse:: Number of rows with empty geometry
+
+ .. literalinclude:: ../scripts/basic/chapter_7/fill_columns_1.txt
+
+* Update the ``geom`` columns based on the ``source_osm`` column
+ from ``ways`` table.
+* Use the start point of the geometry.
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :start-after: fill_columns_2.txt
+ :end-before: fill_columns_3.txt
+
+.. collapse:: Number of updated records
+
+ .. literalinclude:: ../scripts/basic/chapter_7/fill_columns_2.txt
+
+Not expecting to be done due to the fact that some vertices are only dead ends.
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :start-after: fill_columns_3.txt
+ :end-before: fill_columns_4.txt
+
+.. collapse:: Numbers of records that need update
+
+ .. literalinclude:: ../scripts/basic/chapter_7/fill_columns_3.txt
+
+* Update the ``geom`` columns based on the ``target_osm`` column
+ from ``ways`` table.
+* Use the end point of the geometry.
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :start-after: fill_columns_4.txt
+ :end-before: fill_columns_5.txt
+
+.. collapse:: Number of updated records
+
+ .. literalinclude:: ../scripts/basic/chapter_7/fill_columns_4.txt
+
+Expecting to be done, that is the geometry column should not have a ``NULL``
+value.
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :start-after: fill_columns_5.txt
+ :end-before: fill_columns_6.txt
+
+.. collapse:: Count should be 0
+
+ .. literalinclude:: ../scripts/basic/chapter_7/fill_columns_5.txt
+
+Update the ``x`` and ``y`` columns based on the ``geom`` column.
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :start-after: fill_columns_6.txt
+ :end-before: set_components1.txt
+
+.. collapse:: Number of updated records
+
+ .. literalinclude:: ../scripts/basic/chapter_7/fill_columns_6.txt
+
+
+pgr_connectedComponents
+================================================================================
+
+``pgr_connectedComponents`` compute the connected components of an undirected
+graph using a Depth First Search approach. A connected component of an
+undirected graph is a set of vertices that are all reachable from each other.
+
+.. rubric:: Signature summary
+
+.. code-block:: sql
+
+ pgr_connectedComponents(edges_sql)
+
+ RETURNS SET OF (seq, component, node)
+ OR EMPTY SET
+
+Description of the function can be found in `pgr_connectedComponents
+`__
+
+
+Exercise 3: Set components on edges and vertices tables
+-------------------------------------------------------------------------------
+
+.. rubric:: Problem
+
+Get the information about the graph components.
+
+.. rubric:: Solution
+
+Create additional columns on the edges and vertices tables.
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :start-after: set_components1.txt
+ :end-before: set_components2.txt
+
+.. collapse:: Message about creation of columns
+
+ .. literalinclude:: ../scripts/basic/chapter_7/set_components1.txt
+
+- Use the ``pgr_connectedComponents`` to fill up the vertices table.
+
+ - Use the results to store the component numbers on the vertices table.
+ (**line 1**)
+ - Use the OSM identifiers of the vertices. (**lines 4-5**)
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :emphasize-lines: 1, 4-5
+ :start-after: set_components2.txt
+ :end-before: set_components3.txt
+
+.. collapse:: Number of updated records
+
+ .. literalinclude:: ../scripts/basic/chapter_7/set_components2.txt
+
+- Update the edges table with based on the component number of the vertex
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :start-after: set_components3.txt
+ :end-before: see_components1.txt
+
+.. collapse:: Number of updated records
+
+ .. literalinclude:: ../scripts/basic/chapter_7/set_components3.txt
+
+
+Exercise 4: Inspect the components
+-------------------------------------------------------------------------------
+
+.. rubric:: Problem
+
+Answer the following questions:
+
+#. How many components are in the vertices table?
+#. How many components are in the edges table?
+#. List the 10 components with more edges.
+#. Get the component with the maximum number of edges.
+
+.. rubric:: Solution
+
+1. How many components are in the vertices table?
+
+Count the distinct components.
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :start-after: see_components1.txt
+ :end-before: see_components2.txt
+
+.. collapse:: Number of components on vertex table
+
+ .. literalinclude:: ../scripts/basic/chapter_7/see_components1.txt
+
+2. How many components are in the edges table?
+
+Count the distinct components.
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :start-after: see_components2.txt
+ :end-before: see_components3.txt
+
+.. collapse:: Number of components on edge table
+
+ .. literalinclude:: ../scripts/basic/chapter_7/see_components2.txt
+
+3. List the 10 components with more edges.
+
+* Count number of rows grouped by component. (**line 1**)
+* Inverse order to display the top 10. (**line 2**)
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :start-after: see_components3.txt
+ :end-before: see_components4.txt
+
+.. collapse:: Top 10 components
+
+ .. literalinclude:: ../scripts/basic/chapter_7/see_components3.txt
+
+4. Get the component with the maximum number of edges.
+
+* Use the query from last question to get the maximum count
+* Get the component that matches the maximum value.
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :start-after: see_components4.txt
+ :end-before: create_vehicle_net1.txt
+
+.. collapse:: Component with maxmum edge count
+
+ .. literalinclude:: ../scripts/basic/chapter_7/see_components4.txt
+
+
+
+Preparing the graphs
+================================================================================
+
+Exercise 5: Creating a view for routing
+-------------------------------------------------------------------------------
+
+.. image:: images/chapter7/vehicle_net.png
+ :scale: 25%
+ :alt: View of roads for vehicles
+
+.. rubric:: Problem
+
+- Create a view with minimal amount of information for processing the particular vehicles.
+- Use the OSM identifiers on the vertices.
+- Routing `cost` and `reverse_cost` in terms of seconds for routing calculations.
+- Exclude `steps`, `footway`, `path`, `cycleway` segments.
+- Data needed in the view for further processing.
+
+ - `name` The name of the segment.
+ - `length_m` The length in meters rename to ``length``.
+ - `the_geom` The geometry rename to ``geom``.
+
+- Verify the number of edges was reduced.
+
+.. rubric:: Solution
+
+Creating the view:
+
+- If you need to reconstruct the view, first drop it using the command on **line
+ 1**.
+- Get the component with maximum number of edges (**lines 6-10**)
+- The `source` and `target` requirements for the function are to be with OSM
+ identifiers. (line **14**)
+- The ``cost`` and ``reverse_cost`` are in terms of seconds. (line **15**)
+- The additional parameters ``length_m`` and ``the_geom`` are renamed, ``name``
+ is also included. (line **16**)
+- ``JOIN`` with the `configuration`:
+
+ - Exclude `steps`, `footway`, `path`, `cycleway`. (line **18**)
+
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :emphasize-lines: 6-10,14-16,18
+ :start-after: create_vehicle_net1.txt
+ :end-before: create_vehicle_net2.txt
+
+.. collapse:: Response of command
+
+ .. literalinclude:: ../scripts/basic/chapter_7/create_vehicle_net1.txt
+
+Verification:
+
+Count the rows on the original ``ways`` and on ``vehicle_net``.
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :start-after: create_vehicle_net2.txt
+ :end-before: create_vehicle_net3.txt
+
+.. collapse:: Row count results
+
+ .. literalinclude:: ../scripts/basic/chapter_7/create_vehicle_net2.txt
+
+Get the description of the view
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :start-after: create_vehicle_net3.txt
+ :end-before: create_taxi_net1.txt
+
+.. collapse:: The view description
+
+ .. literalinclude:: ../scripts/basic/chapter_7/create_vehicle_net3.txt
+
+
+Exercise 6: Limiting the road network within an area
+-------------------------------------------------------------------------------
+
+.. image:: images/chapter7/taxi_net.png
+ :scale: 25%
+ :alt: View of smaller set of roads for vehicles
+
+.. rubric:: Problem
+
+* Create a view ``taxi_net`` for the `taxi`:
+
+ * The taxi can only circulate inside this Bounding Box: ``(@PGR_WORKSHOP_LITTLE_NET_BBOX@)``
+ * The taxi speed is 10% slower than the particular vehicle.
+
+* Verify the reduced number of road segments.
+
+.. rubric:: Solution
+
+Creating the view:
+
+* Adjust the taxi's ``cost`` and ``reverse_cost`` to be 10% slower than of the
+ particular vehicle. (line **7**)
+* The graph for the taxi is a subset of the ``vehicle_net`` graph. (line **9**)
+* Can only circulate inside the bounding box:
+ ``(@PGR_WORKSHOP_LITTLE_NET_BBOX@)``. (line **10**)
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :emphasize-lines: 7,9,10
+ :start-after: create_taxi_net1.txt
+ :end-before: create_taxi_net2.txt
+
+.. collapse:: Response of command
+
+ .. literalinclude:: ../scripts/basic/chapter_7/create_taxi_net1.txt
+
+
+Count the rows on ``taxi_net``.
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :start-after: create_taxi_net2.txt
+ :end-before: create_taxi_net3.txt
+
+.. collapse:: Row count results
+
+ .. literalinclude:: ../scripts/basic/chapter_7/create_taxi_net2.txt
+
+Get the description.
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :start-after: create_taxi_net3.txt
+ :end-before: create_walk_net1.txt
+
+.. collapse:: The view description
+
+ .. literalinclude:: ../scripts/basic/chapter_7/create_taxi_net3.txt
+
+Exercise 7: Creating a materialized view for routing pedestrians
+-------------------------------------------------------------------------------
+
+.. image:: images/chapter7/walk_net.png
+ :scale: 25%
+ :alt: View of roads for pedestrians
+
+.. rubric:: Problem
+
+- Create a materialized view with minimal amount of information for processing pedestrians.
+- Routing `cost` and `reverse_cost` will be on seconds for routing calculations.
+
+ - The speed is ``2 mts/sec``.
+
+- Exclude `motorway` , `primary` and `secondary` segments.
+- Data needed in the view for further processing.
+
+ - `length_m` The length in meters.
+ - `the_geom` The geometry.
+
+- Verify the number of edges was reduced.
+
+.. rubric:: Solution
+
+- Creating the view:
+
+ - Similar to `Exercise 5: Creating a view for routing`_:
+
+ - The ``cost`` and ``reverse_cost`` are in terms of seconds with speed of ``2 mts/sec``. (line **7**)
+ - Exclude `motorway`, `primary` and `secondary` . (line **11**)
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :emphasize-lines: 7, 11
+ :start-after: create_walk_net1.txt
+ :end-before: create_walk_net2.txt
+
+.. collapse:: Response of command
+
+ .. literalinclude:: ../scripts/basic/chapter_7/create_walk_net1.txt
+
+
+Count the rows on the view ``walk_net``.
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :start-after: create_walk_net2.txt
+ :end-before: create_walk_net3.txt
+
+.. collapse:: Row count results
+
+ .. literalinclude:: ../scripts/basic/chapter_7/create_walk_net2.txt
+
+Get the description.
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :start-after: create_walk_net3.txt
+ :end-before: test_view1.txt
+
+.. collapse:: The view description
+
+ .. literalinclude:: ../scripts/basic/chapter_7/create_walk_net3.txt
+
+
+Exercise 8: Testing the views for routing
+-------------------------------------------------------------------------------
+
+.. image:: images/chapter7/ch7-e3.png
+ :scale: 25%
+ :alt: From the |ch7_place_1| to the |ch7_place_2|
+
+.. rubric:: Problem
+
+* Test the created views
+
+In particular:
+
+* From the |ch7_place_1| to the "|ch7_place_2| using the OSM identifier
+* the views to be tested are:
+
+ * ``vehicle_net``
+ * ``taxi_net``
+ * ``walk_net``
+
+* Only show the following results, as the other columns are to be ignored on the function.
+
+ * ``seq``
+ * ``edge`` with the name ``id``
+ * ``cost`` with the name: ``seconds``
+
+.. rubric:: Solution
+
+* In general
+
+ * The departure is |ch7_place_1| with OSM identifier |ch7_osmid_1|.
+ * The destination is |ch7_place_2| with OSM identifier |ch7_osmid_2|.
+
+For ``vehicle_net``:
+
+* ``vehicle_net`` is used.
+* Selection of the columns with the corresponding names are on line **1**.
+* The view is prepared with the column names that pgRouting use.
+
+ * There is no need to rename columns. (line **3**)
+
+* The OSM identifiers of the departure and destination are used. (line **4**)
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :linenos:
+ :emphasize-lines: 1,3,4
+ :start-after: test_view1.txt
+ :end-before: test_view2.txt
+
+.. collapse:: Query resultes
+
+ .. literalinclude:: ../scripts/basic/chapter_7/test_view1.txt
+
+For ``taxi_net``:
+
+* Similar as the previous one but with ``taxi_net``. (line **3**)
+* The results give the same route as with ``vehicle_net`` but ``cost`` is
+ higher.
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :emphasize-lines: 3
+ :start-after: test_view2.txt
+ :end-before: test_view3.txt
+
+.. collapse:: Query resultes
+
+ .. literalinclude:: ../scripts/basic/chapter_7/test_view2.txt
+
+For ``walk_net``:
+
+* Similar as the previous one but with ``walk_net``. (line **3**)
+* The results give a different route than of the vehicles.
+
+ .. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :emphasize-lines: 3
+ :start-after: test_view3.txt
+ :end-before: exercise_7_5.txt
+
+.. collapse:: Query resultes
+
+ .. literalinclude:: ../scripts/basic/chapter_7/test_view3.txt
diff --git a/docs/basic/images/chapter5/CMakeLists.txt b/docs/basic/images/chapter5/CMakeLists.txt
index b22d79baf..d53fc7eda 100644
--- a/docs/basic/images/chapter5/CMakeLists.txt
+++ b/docs/basic/images/chapter5/CMakeLists.txt
@@ -3,10 +3,11 @@
# Files
#---------------------
set(PGR_WORKSHOP_IMG_FILES
- pedestrian-route1.png
- pedestrian-route2.png
- pedestrian-route4.png
- pedestrian-route5.png
+ pedestrian_combinations.png
+ pedestrian_route1.png
+ pedestrian_route2.png
+ pedestrian_route4.png
+ pedestrian_route5.png
route.png
)
diff --git a/docs/basic/images/chapter5/pedestrian-route1.png b/docs/basic/images/chapter5/pedestrian-route1.png
deleted file mode 100644
index feba195dc..000000000
Binary files a/docs/basic/images/chapter5/pedestrian-route1.png and /dev/null differ
diff --git a/docs/basic/images/chapter5/pedestrian-route2.png b/docs/basic/images/chapter5/pedestrian-route2.png
deleted file mode 100644
index c9fae9379..000000000
Binary files a/docs/basic/images/chapter5/pedestrian-route2.png and /dev/null differ
diff --git a/docs/basic/images/chapter5/pedestrian-route4.png b/docs/basic/images/chapter5/pedestrian-route4.png
deleted file mode 100644
index cdbeb5288..000000000
Binary files a/docs/basic/images/chapter5/pedestrian-route4.png and /dev/null differ
diff --git a/docs/basic/images/chapter5/pedestrian-route5.png b/docs/basic/images/chapter5/pedestrian-route5.png
deleted file mode 100644
index f58a15386..000000000
Binary files a/docs/basic/images/chapter5/pedestrian-route5.png and /dev/null differ
diff --git a/docs/basic/images/chapter5/pedestrian_combinations.png b/docs/basic/images/chapter5/pedestrian_combinations.png
new file mode 100644
index 000000000..fe569fa87
Binary files /dev/null and b/docs/basic/images/chapter5/pedestrian_combinations.png differ
diff --git a/docs/basic/images/chapter5/pedestrian_route1.png b/docs/basic/images/chapter5/pedestrian_route1.png
new file mode 100644
index 000000000..ab38e08ee
Binary files /dev/null and b/docs/basic/images/chapter5/pedestrian_route1.png differ
diff --git a/docs/basic/images/chapter5/pedestrian_route2.png b/docs/basic/images/chapter5/pedestrian_route2.png
new file mode 100644
index 000000000..a0674e7b8
Binary files /dev/null and b/docs/basic/images/chapter5/pedestrian_route2.png differ
diff --git a/docs/basic/images/chapter5/pedestrian_route4.png b/docs/basic/images/chapter5/pedestrian_route4.png
new file mode 100644
index 000000000..76540d6b5
Binary files /dev/null and b/docs/basic/images/chapter5/pedestrian_route4.png differ
diff --git a/docs/basic/images/chapter5/pedestrian_route5.png b/docs/basic/images/chapter5/pedestrian_route5.png
new file mode 100644
index 000000000..78bfb6007
Binary files /dev/null and b/docs/basic/images/chapter5/pedestrian_route5.png differ
diff --git a/docs/basic/images/chapter5/route.png b/docs/basic/images/chapter5/route.png
index 5d5fa7318..918ce0b35 100644
Binary files a/docs/basic/images/chapter5/route.png and b/docs/basic/images/chapter5/route.png differ
diff --git a/docs/basic/images/chapter6/CMakeLists.txt b/docs/basic/images/chapter6/CMakeLists.txt
index 60261b789..9660f6705 100644
--- a/docs/basic/images/chapter6/CMakeLists.txt
+++ b/docs/basic/images/chapter6/CMakeLists.txt
@@ -6,8 +6,8 @@ set(PGR_WORKSHOP_IMG_FILES
ad11.png
ad7.png
ad8.png
- detailofroute9.png
- pedestrian-only-roads.png
+ route_using_pedestrian.png
+ pedestrian_only_roads.png
)
diff --git a/docs/basic/images/chapter6/ad11.png b/docs/basic/images/chapter6/ad11.png
index 2a976155f..292491f22 100644
Binary files a/docs/basic/images/chapter6/ad11.png and b/docs/basic/images/chapter6/ad11.png differ
diff --git a/docs/basic/images/chapter6/ad7.png b/docs/basic/images/chapter6/ad7.png
index 78ed3576e..eef046f83 100644
Binary files a/docs/basic/images/chapter6/ad7.png and b/docs/basic/images/chapter6/ad7.png differ
diff --git a/docs/basic/images/chapter6/ad8.png b/docs/basic/images/chapter6/ad8.png
index 1a4ef27c6..45074ea09 100644
Binary files a/docs/basic/images/chapter6/ad8.png and b/docs/basic/images/chapter6/ad8.png differ
diff --git a/docs/basic/images/chapter6/detailofroute9.png b/docs/basic/images/chapter6/detailofroute9.png
deleted file mode 100644
index b213d571e..000000000
Binary files a/docs/basic/images/chapter6/detailofroute9.png and /dev/null differ
diff --git a/docs/basic/images/chapter6/pedestrian-only-roads.png b/docs/basic/images/chapter6/pedestrian-only-roads.png
deleted file mode 100644
index 1a4c75b4f..000000000
Binary files a/docs/basic/images/chapter6/pedestrian-only-roads.png and /dev/null differ
diff --git a/docs/basic/images/chapter6/pedestrian_only_roads.png b/docs/basic/images/chapter6/pedestrian_only_roads.png
new file mode 100644
index 000000000..76d060cb9
Binary files /dev/null and b/docs/basic/images/chapter6/pedestrian_only_roads.png differ
diff --git a/docs/basic/images/chapter6/route_using_pedestrian.png b/docs/basic/images/chapter6/route_using_pedestrian.png
new file mode 100644
index 000000000..425157183
Binary files /dev/null and b/docs/basic/images/chapter6/route_using_pedestrian.png differ
diff --git a/docs/basic/images/chapter7/CMakeLists.txt b/docs/basic/images/chapter7/CMakeLists.txt
index fae4e045e..3069ae2a3 100644
--- a/docs/basic/images/chapter7/CMakeLists.txt
+++ b/docs/basic/images/chapter7/CMakeLists.txt
@@ -3,8 +3,6 @@
# Files
#---------------------
set(PGR_WORKSHOP_IMG_FILES
- ch7-e1.png
- ch7-e2.png
ch7-e3.png
ch7-e4.png
ch7-e5.png
@@ -12,6 +10,9 @@ set(PGR_WORKSHOP_IMG_FILES
ch7-e7.png
ch7-e8-1.png
ch7-e8.png
+ vehicle_net.png
+ walk_net.png
+ taxi_net.png
)
diff --git a/docs/basic/images/chapter7/ch7-e1.png b/docs/basic/images/chapter7/ch7-e1.png
deleted file mode 100644
index d36fa567d..000000000
Binary files a/docs/basic/images/chapter7/ch7-e1.png and /dev/null differ
diff --git a/docs/basic/images/chapter7/ch7-e2.png b/docs/basic/images/chapter7/ch7-e2.png
deleted file mode 100644
index 44523719b..000000000
Binary files a/docs/basic/images/chapter7/ch7-e2.png and /dev/null differ
diff --git a/docs/basic/images/chapter7/ch7-e4.png b/docs/basic/images/chapter7/ch7-e4.png
index e4e62138c..355e03825 100644
Binary files a/docs/basic/images/chapter7/ch7-e4.png and b/docs/basic/images/chapter7/ch7-e4.png differ
diff --git a/docs/basic/images/chapter7/ch7-e6.png b/docs/basic/images/chapter7/ch7-e6.png
index 27209f711..b51e26fde 100644
Binary files a/docs/basic/images/chapter7/ch7-e6.png and b/docs/basic/images/chapter7/ch7-e6.png differ
diff --git a/docs/basic/images/chapter7/ch7-e8.png b/docs/basic/images/chapter7/ch7-e8.png
index dfe32813b..c53961fa3 100644
Binary files a/docs/basic/images/chapter7/ch7-e8.png and b/docs/basic/images/chapter7/ch7-e8.png differ
diff --git a/docs/basic/images/chapter7/taxi_net.png b/docs/basic/images/chapter7/taxi_net.png
new file mode 100644
index 000000000..933a5879f
Binary files /dev/null and b/docs/basic/images/chapter7/taxi_net.png differ
diff --git a/docs/basic/images/chapter7/vehicle_net.png b/docs/basic/images/chapter7/vehicle_net.png
new file mode 100644
index 000000000..984b6816b
Binary files /dev/null and b/docs/basic/images/chapter7/vehicle_net.png differ
diff --git a/docs/basic/images/chapter7/walk-net.png b/docs/basic/images/chapter7/walk-net.png
deleted file mode 100644
index 8ee8c826c..000000000
Binary files a/docs/basic/images/chapter7/walk-net.png and /dev/null differ
diff --git a/docs/basic/images/chapter7/walk_net.png b/docs/basic/images/chapter7/walk_net.png
new file mode 100644
index 000000000..a1ab93789
Binary files /dev/null and b/docs/basic/images/chapter7/walk_net.png differ
diff --git a/docs/basic/pedestrian.rst b/docs/basic/pedestrian.rst
index 89ed6b3a7..b17b49eca 100644
--- a/docs/basic/pedestrian.rst
+++ b/docs/basic/pedestrian.rst
@@ -25,8 +25,8 @@ pgr_dijkstra
-------------------------------------------------------------------------------
Dijkstra algorithm was the first algorithm implemented in pgRouting. It doesn't
-require other attributes than the identifiers ``id``, ``source`` and ``target`` and the weights ``cost``
-and ``reverse_cost``.
+require other attributes than the identifiers ``id``, ``source`` and ``target``
+and the weights ``cost`` and ``reverse_cost``.
You can specify when to consider the graph as `directed
`__ or undirected.
@@ -41,11 +41,11 @@ You can specify when to consider the graph as `directed
pgr_dijkstra(Edges SQL, start_vids, end_vids [, directed])
pgr_dijkstra(Edges SQL, Combinations SQL [, directed])
- RETURNS SET OF (seq, path_seq [, start_vid] [, end_vid], node, edge, cost, agg_cost)
+ RETURNS SET OF (seq, path_seq, start_vid, end_vid, node, edge, cost, agg_cost)
OR EMPTY SET
-Description of the parameters can be found in `pgr_dijkstra
-`__.
+Description of the function can be found in `pgr_dijkstra
+`__.
.. note::
* Many pgRouting functions have ``sql::text`` as one of their arguments. While
@@ -62,7 +62,7 @@ Description of the parameters can be found in `pgr_dijkstra
The assignment of the vertices identifiers on the source and target columns may
be different, the following exercises will use the results of this query.
For the workshop, some locations near of the FOSS4G event are going to be used.
-These locations are within this area https://www.openstreetmap.org#map=15/-34.5847/-58.3970
+These locations are within this area https://www.openstreetmap.org/#map=14/-1.44228/-48.46069
* |osmid_1| |place_1|
* |osmid_2| |place_2|
@@ -83,12 +83,10 @@ Get the vertex identifiers
:language: sql
:start-after: exercise_5_0.txt
:end-before: exercise_5_1.txt
- :linenos:
|
.. literalinclude:: ../scripts/basic/chapter_5/exercise_5_0.txt
- :linenos:
* |osmid_1| |place_1| (|id_1|)
* |osmid_2| |place_2| (|id_2|)
@@ -113,9 +111,9 @@ Exercise 1: Single pedestrian routing
* from "|place_1|"
* to "|place_3|".
-* Calculate routes with costs in *osm2pgRouting* `length` default units.
+* Calculate routes with costs in *osm2pgRouting* ``length`` default units.
-.. image:: images/chapter5/pedestrian-route1.png
+.. image:: images/chapter5/pedestrian_route1.png
:scale: 25%
:alt: From the |place_1| to the |place_3|
@@ -131,12 +129,11 @@ Exercise 1: Single pedestrian routing
:language: sql
:start-after: exercise_5_1.txt
:end-before: exercise_5_2.txt
- :linenos:
:emphasize-lines: 3-7
-|
+.. collapse:: Query results
-:ref:`basic/appendix:**Exercise**: 1 (**Chapter:** Pedestrian)`
+ .. literalinclude:: ../scripts/basic/chapter_5/exercise_5_1.txt
.. note::
* The returned cost attribute represents the cost specified in the
@@ -158,7 +155,7 @@ Exercise 2: Many Pedestrians going to the same destination
* Calculate routes with costs in *osm2pgRouting* ``length_m`` which is in meters.
-.. image:: images/chapter5/pedestrian-route2.png
+.. image:: images/chapter5/pedestrian_route2.png
:scale: 25%
:alt: From |place_1| and |place_2| to |place_3|
@@ -172,13 +169,11 @@ Exercise 2: Many Pedestrians going to the same destination
:language: sql
:start-after: exercise_5_2.txt
:end-before: exercise_5_3.txt
- :linenos:
- :emphasize-lines: 9
-
-|
+ :emphasize-lines: 6, 9
-:ref:`basic/appendix:**Exercise**: 2 (**Chapter:** Pedestrian)`
+.. collapse:: Query results
+ .. literalinclude:: ../scripts/basic/chapter_5/exercise_5_2.txt
Exercise 3: Many Pedestrians departing from the same location
...............................................................................
@@ -192,7 +187,7 @@ Exercise 3: Many Pedestrians departing from the same location
* Calculate routes with costs in seconds.
-.. image:: images/chapter5/pedestrian-route2.png
+.. image:: images/chapter5/pedestrian_route2.png
:scale: 25%
.. rubric:: Solution:
@@ -205,10 +200,11 @@ Exercise 3: Many Pedestrians departing from the same location
:language: sql
:start-after: exercise_5_3.txt
:end-before: exercise_5_4.txt
- :linenos:
- :emphasize-lines: 10
+ :emphasize-lines: 6, 9, 10
-:ref:`basic/appendix:**Exercise**: 3 (**Chapter:** Pedestrian)`
+.. collapse:: Query results
+
+ .. literalinclude:: ../scripts/basic/chapter_5/exercise_5_3.txt
Exercise 4: Many Pedestrians going to different destinations
@@ -223,7 +219,7 @@ Exercise 4: Many Pedestrians going to different destinations
* Calculate routes with costs in minutes.
-.. image:: images/chapter5/pedestrian-route4.png
+.. image:: images/chapter5/pedestrian_route4.png
:scale: 25%
.. rubric:: Solution:
@@ -237,15 +233,45 @@ Exercise 4: Many Pedestrians going to different destinations
:language: sql
:start-after: exercise_5_4.txt
:end-before: exercise_5_5.txt
- :linenos:
- :emphasize-lines: 9-10
+ :emphasize-lines: 6, 9-10
-|
+.. collapse:: Query results
-:ref:`basic/appendix:**Exercise**: 4 (**Chapter:** Pedestrian)`
+ .. literalinclude:: ../scripts/basic/chapter_5/exercise_5_4.txt
.. note:: .. include:: ../scripts/basic/chapter_5/note_1.txt
+Exercise 5: Combination of routes
+...............................................................................
+
+.. rubric:: Problem:
+
+* Walking
+
+ * First pedestrian goes from "|place_1|" to "|place_4|"
+ * Second pedestrian goes from "|place_2|" to "|place_5|"
+
+* Calculate routes with costs in minutes.
+
+.. image:: images/chapter5/pedestrian_combinations.png
+ :scale: 25%
+
+.. rubric:: Solution:
+
+* First pedestrian departs from |id_1| and the destination is |id_4| (line **11**).
+* Second pedestrian departs from |id_2| and the destination is |id_5| (line **12**).
+* The cost to be in minutes, with a walking speed ``s = 1.3 m/s`` and ``t = d/s``
+
+.. literalinclude:: ../scripts/basic/chapter_5/all_exercises_5.sql
+ :language: sql
+ :start-after: exercise_5_5.txt
+ :end-before: exercise_5_6.txt
+ :emphasize-lines: 11-12
+
+.. collapse:: Query results
+
+ .. literalinclude:: ../scripts/basic/chapter_5/exercise_5_5.txt
+
pgr_dijkstraCost
-------------------------------------------------------------------------------
@@ -269,7 +295,7 @@ Description of the parameters can be found in `pgr_dijkstraCost
`__
-Exercise 5: Time for many Pedestrians going to different destinations
+Exercise 6: Time for many Pedestrians going to different destinations
...................................................................................................
.. rubric:: Problem:
@@ -281,32 +307,31 @@ Exercise 5: Time for many Pedestrians going to different destinations
* Get only the cost in minutes.
-.. image:: images/chapter5/pedestrian-route5.png
+.. image:: images/chapter5/pedestrian_route5.png
:scale: 25%
:alt: From the hotels to the |place_4| and |place_5|
.. rubric:: Solution:
-* The pedestrians depart from |id_1| and |id_2| (line **10**).
-* The pedestrians want to go to destinations |id_4| and |id_5| (line **11**).
-* The cost to be in minutes, with a walking speed ``s = 1.3 m/s`` and ``t = d/s`` (line **7**).
+* The pedestrians depart from |id_1| and |id_2| (line **9**).
+* The pedestrians want to go to destinations |id_4| and |id_5| (line **10**).
+* The cost to be in minutes, with a walking speed ``s = 1.3 m/s`` and ``t = d/s`` (line **6**).
* Result as aggregated costs.
.. literalinclude:: ../scripts/basic/chapter_5/all_exercises_5.sql
:language: sql
- :start-after: exercise_5_5.txt
- :end-before: exercise_5_6.txt
- :linenos:
+ :start-after: exercise_5_6.txt
+ :end-before: exercise_5_7.txt
:emphasize-lines: 2
-|
+.. collapse:: Query results
-:ref:`basic/appendix:**Exercise**: 5 (**Chapter:** Pedestrian)`
+ .. literalinclude:: ../scripts/basic/chapter_5/exercise_5_6.txt
Compare with `Exercise 4: Many Pedestrians going to different destinations`_ 's note.
-Exercise 6: Many Pedestrians going to different destinations summarizing the total costs per departure
+Exercise 7: Many Pedestrians going to different destinations summarizing the total costs per departure
...........................................................................................................
.. rubric:: Problem:
@@ -320,22 +345,19 @@ Exercise 6: Many Pedestrians going to different destinations summarizing the tot
.. rubric:: Solution:
-* The pedestrians depart from |id_1| and |id_2| (line **10**).
-* The pedestrians want to go to destinations |id_4| and |id_5| (line **11**).
-* The cost to be in minutes, with a walking speed s = 1.3 m/s and t = d/s (line **7**).
+* The pedestrians depart from |id_1| and |id_2| (line **9**).
+* The pedestrians want to go to destinations |id_4| and |id_5| (line **10**).
+* The cost to be in minutes, with a walking speed s = 1.3 m/s and t = d/s (line **6**).
* Result adds the costs per destination.
.. literalinclude:: ../scripts/basic/chapter_5/all_exercises_5.sql
:language: sql
- :start-after: exercise_5_6.txt
+ :start-after: exercise_5_7.txt
:end-before: note_1.txt
- :linenos:
:emphasize-lines: 13-14
-|
+.. collapse:: Query results
-:ref:`basic/appendix:**Exercise**: 6 (**Chapter:** Pedestrian)`
+ .. literalinclude:: ../scripts/basic/chapter_5/exercise_5_7.txt
.. note:: .. include:: ../scripts/basic/chapter_5/note_2.txt
-
-
diff --git a/docs/basic/plpgsql_function.rst b/docs/basic/plpgsql_function.rst
index 13b5ee0d0..0156716dd 100644
--- a/docs/basic/plpgsql_function.rst
+++ b/docs/basic/plpgsql_function.rst
@@ -14,8 +14,9 @@ pl/pgsql function
:width: 250pt
:align: center
-Other kind of functions are `pl/pgsql `__.
-As the applications requirements become more complex, using wrappers of previously defined functions
+Other kind of functions are `pl/pgsql
+`__. As the applications
+requirements become more complex, using wrappers of previously defined functions
becomes necessary for clarity.
.. contents:: Chapter contents
@@ -27,38 +28,39 @@ Requirements for routing from A to B
* Create a function ``wrk_fromAtoB`` that allows routing from 2 geometries.
* The function takes latitude/longitude points as input parameters.
-* Returns a route that includes a geometry so that if can be displayed, for example, in QGIS.
+* Returns a route that includes a geometry so that if can be displayed, for example, in QGIS.
* Will also return some other attributes.
The detailed description:
.. rubric:: Input parameters
-============ ========== ===
-Column type Description
-============ ========== ===
-edges_subset REGCLASS Edge table name identifier.
-lat1 NUMERIC The latitude of the `departure` point.
-lon1 NUMERIC The longitude of the `departure` point.
-lat2 NUMERIC The latitude of the `destination` point.
-lon2 NUMERIC The longitude of the `destination` point.
-do_debug BOOLEAN Flag to create a ``WARNING`` with the query that is been executed
-============ ========== ===
+================ ========== ================================================
+Parameter type Description
+================ ========== ================================================
+``edges_subset`` REGCLASS Edge table name identifier.
+``lat1`` NUMERIC The latitude of the `departure` point.
+``lon1`` NUMERIC The longitude of the `departure` point.
+``lat2`` NUMERIC The latitude of the `destination` point.
+``lon2`` NUMERIC The longitude of the `destination` point.
+``do_debug`` BOOLEAN Flag to create a ``WARNING`` with the query that
+ is been executed
+================ ========== ================================================
.. rubric:: Output columns
-============= =================================================
-Column Description
-============= =================================================
-*seq* For ordering purposes.
-*gid* The edge identifier that can be used to JOIN the results to the ``ways`` table.
-*name* The street name.
-*azimuth* Between start and end node of an edge.
-*length* In meters.
-*minutes* Minutes taken to traverse the segment.
-*route_geom* The road geometry with corrected directionality.
-============= =================================================
+================= =================================================
+Column Description
+================= =================================================
+``seq`` For ordering purposes.
+``gid`` The edge identifier that can be used to JOIN the results to the ``ways`` table.
+``name`` The street name.
+``azimuth`` Between start and end node of an edge.
+``length`` In meters.
+``minutes`` Minutes taken to traverse the segment.
+``route_geom`` The road geometry with corrected directionality.
+================= =================================================
For this chapter, the following points will be used for testing.
@@ -66,220 +68,95 @@ For this chapter, the following points will be used for testing.
* (lat,lon) = (@POINT1_LAT@, @POINT1_LON@)
* (lat,lon) = (@POINT2_LAT@, @POINT2_LON@)
-Saving this information on a table:
-
-* The ``X`` value of a geometry is the longitude.
-* The ``Y`` value of a geometry is the latitude.
-* Natural language to form the point is ``(latitude, longitude)``.
-* For geometry processing to form the point is ``(longitude, latitude)``.
-* lines **4** and **6** show the inverse order of the (lat,lon) pairs.
-
-.. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
- :language: sql
- :linenos:
- :emphasize-lines: 4,6
- :end-before: exercise_8_1_1.txt
-
-
-The Vertex Table
+The Vertices Table
===============================================================================
Graphs have a `set of edges` and a `set of vertices` associated to it.
+The views need their vertices table.
-`osm2pgrouting` provides the `ways_vertices_pgr` table which is associated with
-the `ways` table.
-
-When a subset of `edges` is used like in ``vehicle_net`` or in ``taxi_net``,
-the set of vertices associated to each one must be used in order to, for example,
-locate the nearest vertex to a lat/lon location.
-
-Exercise 1: Number of vertices
--------------------------------------------------------------------------------
-
-.. rubric:: Problem
-
-* Calculate the number of vertices in a graph.
-
-Depending on the graph calculate the number of vertices of:
-
-* ``ways``
-* ``vehicle_net``
-* ``taxi_net``
-* ``walk_net``
-
-.. rubric:: Solution
-
-* For ``ways``:
-
- * `osm2pgrouting` automatically created the ``ways_vertices_pgr`` table that contains
- all the vertices in ``ways`` table.
- * Using `aggregate function `__
- ``count``. (line **1**)
- * Count all the rows of ``ways_vertices_pgr`` table. (line **2**)
-
- .. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
- :language: sql
- :linenos:
- :emphasize-lines: 1-2
- :start-after: exercise_8_1_1.txt
- :end-before: exercise_8_1_2.txt
-
-* For ``vehicle_net``:
-
- * Extract the vertices identifiers of the ``source`` column. (line **3**)
- * Extract the vertices identifiers of the ``target`` column. (line **8**)
- * `UNION `__ both results (line **6**)
-
- .. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
- :language: sql
- :linenos:
- :emphasize-lines: 3,6,8
- :start-after: exercise_8_1_2.txt
- :end-before: exercise_8_1_3.txt
-
-
-* For ``taxi_net``:
-
- * Similar solution as in previous query but on ``taxi_net``. (lines **4** and **9**)
-
- .. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
- :language: sql
- :linenos:
- :emphasize-lines: 4, 9
- :start-after: exercise_8_1_3.txt
- :end-before: exercise_8_1_4.txt
-
-* For ``walk_net``:
-
- * Similar solution as in previous query but on ``walk_net``. (lines **4** and **9**)
-
- .. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
- :language: sql
- :linenos:
- :emphasize-lines: 4, 9
- :start-after: exercise_8_1_4.txt
- :end-before: exercise_8_2_1.txt
-
-|
-
-:ref:`basic/appendix:**Exercise**: 1 (**Chapter:** pl/pgsql)`
-
-Exercise 2: Vertices on a table
+Exercise 1: Create vertices table
-------------------------------------------------------------------------------
.. rubric:: Problem
-* Create a vertices table.
-* Follow the suffix naming ``_vertices_pgr``.
-
-Depending on the graph create a vertices table of:
+* Create a vertices table for the views:
-* ``ways``
-* ``vehicle_net``
-* ``taxi_net``
-* ``walk_net``
-
-The vertices table should contain:
-
-========= =====
-Column Description
-========= =====
-osm_id OSM Identifier of the vertex.
-the_geom The geometry of the vertex.
-========= =====
+ * ``vehicle_net``
+ * ``taxi_net``
+ * ``walk_net``
.. rubric:: Solution
-* For ``ways``:
- * `osm2pgrouting` automatically created the ``ways_vertices_pgr`` table that contains
- all the vertices in ``ways`` table.
- * The vertices are already on a table.
- * The table suffix follows is as requested.
- * There is no need to create a table.
- * The source and target columns are in terms of ``id`` column of ``ways_vertices_pgr``
-
-* For ``vehicle_net``:
+* Use ``pgr_extractVertices`` (explained in :doc:`graph_views`) to create the
+ vertices table
+* ``JOIN`` the vertices table with ``ways_vertices`` (created in
+ :doc:`graph_views`) to get the ``x``, ``y``, ``geom`` information.
- * Using the query ``id_list`` from `Exercise 1: Number of vertices`_. (not highlighted lines **2** to **8**)
- * ``JOIN`` with ``ways_vertices_pgr`` that has the OSM identifier and the geometry information. (line **13**)
- * Extract the ``osm_id`` and ``the_geom``. (line **10**)
- * Save in table ``vehicle_net_vertices_pgr``. (line **11**)
- * The source and target columns values have the ``osm_id`` therefore the ``id`` column of ``vehicle_net_vertices_pgr``
- must also have the ``osm_id`` values
+For ``vehicle_net``:
- .. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
- :language: sql
- :linenos:
- :emphasize-lines: 10,11,13
- :start-after: exercise_8_2_1.txt
- :end-before: exercise_8_2_2.txt
+.. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
+ :language: sql
+ :emphasize-lines: 1,6
+ :start-after: views_vertices1.txt
+ :end-before: views_vertices2.txt
-* For ``taxi_net``:
+For ``taxi_net``:
- * Similar solution as in previous query but on ``taxi_net``. (lines **3**, **8** and **11**)
+.. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
+ :start-after: views_vertices2.txt
+ :end-before: views_vertices3.txt
- .. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
- :linenos:
- :emphasize-lines: 3,8,11
- :start-after: exercise_8_2_2.txt
- :end-before: exercise_8_2_3.txt
+For ``walk_net``:
-* For ``walk_net``:
+Modify the above queries to create the ``walk_net_vertices`` table.
- * Similar solution as in previous query but on ``taxi_net``. (lines **3**, **8** and **11**)
+.. collapse:: Answer
.. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
- :linenos:
- :emphasize-lines: 3,8,11
- :start-after: exercise_8_2_3.txt
+ :start-after: views_vertices3.txt
:end-before: exercise_8_3_1.txt
-|
+.. note:: It is left to the reader to remove disconected components on the views.
-:ref:`basic/appendix:**Exercise**: 2 (**Chapter:** pl/pgsql)`
+ See :doc:`graph_views`
Exercise 3: Nearest Vertex
-------------------------------------------------------------------------------
.. rubric:: Problem
-* Calculate the OSM identifier of the nearest vertex to a point.
+Calculate the (OSM) identifier of the nearest vertex to a point.
-In particular use the following (lat,lon) value: ``(@POINT1_LAT@, @POINT1_LON@)``.
+In particular use the following (lat, lon) value: ``(@POINT1_LAT@, @POINT1_LON@)``.
* calculate the nearest OSM identifier of the vertex to:
- * ``vehicle_net_vertices_pgr``
- * ``taxi_net_vertices_pgr``
- * ``walk_net_vertices_pgr``
-
-.. Note:: The ``ways`` and the ``ways_vertices_pgr`` tables are not used on the **final applications**
-
- The *net* views and *vertices* tables have been prepared in such a way that the ``AS`` statement is not needed any more
- on a pgRouting function.
+ * ``ways_vertices``
+ * ``vehicle_net_vertices``
+ * ``taxi_net_vertices``
+ * ``walk_net_vertices``
.. rubric:: Solution
-* For ``ways_vertices_pgr``:
+* Remember that the ``id`` has an OSM vertex identifier on the vertices tables.
+* Using the Postgis distance operator `<-> `__ to order by distance.
+* Get only the first row, to obtain the nearest identifier of the vertex.
- * Get the osm_id. (line **1**)
- * Using the distance operator `<-> `__ to order by distance. (line **3**)
- * Get only the first row, to obtain the nearest OSM identifier of the vertex. (line **4**)
+For ``ways_vertices``:
.. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
:language: sql
- :linenos:
- :emphasize-lines: 1,3,4
:start-after: exercise_8_3_1.txt
:end-before: exercise_8_3_2.txt
-* For ``vehicle_net_vertices_pgr``:
+.. collapse:: Query results
+
+ .. literalinclude:: ../scripts/basic/chapter_8/exercise_8_3_1.txt
- * Similar solution as in previous query but:
+For ``vehicle_net_vertices``:
- * Extracting the ``id`` columns. (line **1**)
- * On ``vehicle_net_vertices_pgr``. (line **2**)
+Modify the previous query.
.. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
:language: sql
@@ -288,31 +165,26 @@ In particular use the following (lat,lon) value: ``(@POINT1_LAT@, @POINT1_LON@)`
:start-after: exercise_8_3_2.txt
:end-before: exercise_8_3_3.txt
-* For ``taxi_net_vertices_pgr``:
+.. collapse:: Query results
- * Similar solution as in previous query but on ``taxi_net_vertices_pgr``. (line **2**)
+ .. literalinclude:: ../scripts/basic/chapter_8/exercise_8_3_2.txt
-.. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
- :language: sql
- :linenos:
- :emphasize-lines: 2
- :start-after: exercise_8_3_3.txt
- :end-before: exercise_8_3_4.txt
+For ``taxi_net_vertices``:
-* For ``walk_net_vertices_pgr``:
+Modify the previous query.
- * Similar solution as in previous query but on ``walk_net_vertices_pgr``. (line **2**)
+.. collapse:: Query results
-.. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
- :language: sql
- :linenos:
- :emphasize-lines: 2
- :start-after: exercise_8_3_4.txt
- :end-before: exercise_8_4.txt
+ .. literalinclude:: ../scripts/basic/chapter_8/exercise_8_3_3.txt
-|
+For ``walk_net_vertices``:
+
+Modify the previous query.
+
+.. collapse:: Query results
+
+ .. literalinclude:: ../scripts/basic/chapter_8/exercise_8_3_4.txt
-:ref:`basic/appendix:**Exercise**: 3 (**Chapter:** pl/pgsql)`
Exercise 4: Nearest vertex function
-------------------------------------------------------------------------------
@@ -322,7 +194,7 @@ Exercise 4: Nearest vertex function
When operations look similar for different tables, a function can be created.
* Create a function that calculates the OSM identifier of the nearest vertex to a point.
-* Function name: ``wrk_NearestOSM``.
+* Function name: ``wrk_nearest``.
* Needs to work only for the **final application** views and table.
@@ -346,27 +218,24 @@ BIGINT the OSM identifier that is nearest to (lat,lon).
.. rubric:: Solution
-* The function returns only one value. (line **5**)
-* Using `format `__ to build the query. (line **10**)
+* The function returns only one ``BIGINT`` value.
+* Using `format
+ `__
+ to build the query.
- * The structure of the query is similar to `Exercise 3: Nearest Vertex`_ solutions. (lines **12** to **16**)
- * ``%1$I`` for the table name identifier. (line **13**)
+ * The structure of the query is similar to `Exercise 3: Nearest Vertex`_
+ solutions.
+ * ``%1$I`` for the table name identifier.
* ``%2$s`` and ``%3$s`` for the latitude and longitude.
- * The point is formed with (lon/lat) ``(%3$s, %2$s)``. (line **15**)
-
- * The additional parameters of function ``format``, are the parameters of the function we are creating. (line **19**)
+ * The point is formed with (lon/lat) ``(%3$s, %2$s)``.
.. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
- :linenos:
- :emphasize-lines: 5, 10, 12-16, 19
+ :language: sql
+ :force:
:start-after: exercise_8_4.txt
:end-before: exercise_8_5_1.txt
-|
-
-:ref:`basic/appendix:**Exercise**: 4 (**Chapter:** pl/pgsql)`
-
Exercise 5: Test nearest vertex function
-------------------------------------------------------------------------------
@@ -377,7 +246,7 @@ Exercise 5: Test nearest vertex function
.. image:: images/chapter8/ch8-taxinet.png
:scale: 15%
- :alt: Nearest Vertex in taki network
+ :alt: Nearest Vertex in taxi network
.. image:: images/chapter8/ch8-walknet.png
:scale: 15%
@@ -385,9 +254,9 @@ Exercise 5: Test nearest vertex function
.. rubric:: Problem
-* Test the ``wrk_NearestOSM`` function.
+* Test the ``wrk_Nearest`` function.
-In particular use the following (lat,lon) values: ``(@POINT1_LAT@, @POINT1_LON@)``.
+Use the following (lat,lon) values: ``(@POINT1_LAT@, @POINT1_LON@)``.
* The point is the same as in `Exercise 3: Nearest Vertex`_ problem.
@@ -395,70 +264,62 @@ In particular use the following (lat,lon) values: ``(@POINT1_LAT@, @POINT1_LON@)
* calculate the nearest OSM identifier of the vertex to:
- * ``ways_vertices_pgr``
- * ``vehicle_net_vertices_pgr``
- * ``taxi_net_vertices_pgr``
- * ``walk_net_vertices_pgr``
+ * ``ways_vertices``
+ * ``vehicle_net_vertices``
+ * ``taxi_net_vertices``
+ * ``walk_net_vertices``
.. rubric:: Solution
-* For ``ways_vertices_pgr``:
+For ``ways_vertices``:
- * Use the function with ``ways_vertices_pgr`` as the ``vertex_table`` parameter. (line **2**)
- * Pass the (lat,lon) values as second and third parameters. (line **3**)
- * Using the function on the original data does not return the OSM identifier.
+* Use the function with ``ways_vertices`` as the ``vertex_table`` parameter.
+* Pass the (lat,lon) values as second and third parameters.
+* Using the function on the original data does not return the OSM identifier.
- The value stored in ``id`` column is not the OSM identifier.
+ The value stored in ``id`` column is not the OSM identifier.
- .. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
- :language: sql
- :linenos:
- :emphasize-lines: 2, 3
- :start-after: exercise_8_5_1.txt
- :end-before: exercise_8_5_2.txt
+.. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
+ :language: sql
+ :start-after: exercise_8_5_1.txt
+ :end-before: exercise_8_5_2.txt
-* For ``vehicles_net_vertices_pgr``:
+.. collapse:: Query results
- * Similar solution as in previous query but on ``vehicles_net_vertices_pgr``. (lines **2**)
+ .. literalinclude:: ../scripts/basic/chapter_8/exercise_8_5_1.txt
- .. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
- :language: sql
- :linenos:
- :emphasize-lines: 2
- :start-after: exercise_8_5_2.txt
- :end-before: exercise_8_5_3.txt
+For ``vehicles_net_vertices``:
-* For ``taxi_net_vertices_pgr``:
+* Modify the previous query.
- * Similar solution as in previous query but on ``taxi_net_vertices_pgr``. (lines **2**)
+.. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
+ :language: sql
+ :start-after: exercise_8_5_2.txt
+ :end-before: exercise_8_5_3.txt
- .. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
- :language: sql
- :linenos:
- :emphasize-lines: 2
- :start-after: exercise_8_5_3.txt
- :end-before: exercise_8_5_4.txt
+.. collapse:: Query results
-* For ``walk_net_vertices_pgr``:
+ .. literalinclude:: ../scripts/basic/chapter_8/exercise_8_5_2.txt
- * Similar solution as in previous query but on ``walk_net_vertices_pgr``. (lines **2**)
+For ``taxi_net_vertices``:
- .. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
- :language: sql
- :linenos:
- :emphasize-lines: 2
- :start-after: exercise_8_5_4.txt
- :end-before: exercise_8_6.txt
+* Modify the previous query.
-|
+.. collapse:: Query results
+
+ .. literalinclude:: ../scripts/basic/chapter_8/exercise_8_5_3.txt
-:ref:`basic/appendix:**Exercise**: 5 (**Chapter:** pl/pgsql)`
+For ``walk_net_vertices``:
+
+.. collapse:: Query results
+
+ .. literalinclude:: ../scripts/basic/chapter_8/exercise_8_5_4.txt
wrk_fromAtoB function
===============================================================================
-In this section, creation and testing the requiered function will be tackled.
+In this section, creation and testing the required function will be tackled.
Exercise 6: Creating the main function
@@ -468,25 +329,25 @@ Exercise 6: Creating the main function
* Create the function ``wrk_fromAtoB``.
* Follow the description given at `Requirements for routing from A to B`_.
-* Use specialized functions already created ``wrk_dijkstra`` and ``wrk_NearestOSM``.
+* Use specialized functions:
* ``wrk_NearestOSM`` created on `Exercise 4: Nearest vertex function`_.
* It receives the point in natural language format.
* Obtains the OSM identifier needed by ``wrk_dijkstra``.
- * ``wrk_dijkstra`` created on :ref:`basic/sql_function:Exercise 10: Function for an application`.
+ * ``wrk_dijkstra`` created in :doc:`sql_function`
.. rubric:: Solution
The function's signature:
-* The input parameters highlited on lines **2** to **5**.
-* The output columns are not higlighted on lines **7** to **13**.
-* The function returns a set of values. (line **15**)
+* The input parameters highlighted.
+* The output columns are not highlighted.
+* The function returns a set of values.
.. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
- :linenos:
+ :language: sql
:emphasize-lines: 2-5
:start-after: exercise_8_6.txt
:end-before: signature ends
@@ -495,41 +356,43 @@ The function's signature:
The function's body:
-* Call to the function ``wrk_dijkstra`` (line **8**)
+Call to the function ``wrk_dijkstra``
- * ``wrk_dijkstra`` obtains many of the result values
- * Parameters are passed on lines **9** to **13**.
- * The ``edges_subset``:
+* Using PostgreSQL ``format`` to make substitutions
- * First parameters of the ``format`` function is the table name. (line **16**)
- * Is passed as ``%1$I``. (line **9**)
+ * The first parameter is the string to be replaced
+ * The rest are the data parameters, are the strings use for replacement.
- * For the `departure` point:
+* ``wrk_dijkstra`` obtains the values for the output
+* The ``edges_subset`` value will replace ``%1$I``:
+* For the ``source`` and ``target``:
- * ``wrk_NearestOSM`` is used to find the OSM identifier. (line **10**)
+ * ``wrk_Nearest`` is used to find the identifier.
- * The vertices table name is formed with ``%1$I_vertices_pgr``. (line **11**)
- * Second and third parameters of the ``format`` function are ``%2$s``, ``%3$s``. (line **17**)
- * The latitude and longitude are given in natural language form. (line **12**)
+ * The vertices table name is formed with ``%1$I_vertices``.
- * For the `destination` point:
-
- * Similar query is constructed but with the destination information. (line **13**)
- * Fourth and fifth parameters of the ``format`` function. (line **18**)
+ * ``lat1``, ``lon1`` values will replace ``%2$s, %3$s`` respectively.
+ * ``lat2``, ``lon2`` values will replace ``%4$s, %5$s`` respectively.
* To get the constructed query in form of a warning:
- * The ``WARNING`` will be issued only when ``do_debug`` is true. (lines **20** to **22**)
+ * The ``WARNING`` will be issued only when ``do_debug`` is true.
+ * No output will be generated.
.. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
- :linenos:
- :emphasize-lines: 9-13, 16-18, 20-22
- :start-after: signature ends
- :end-before: exercise_8_7_1.txt
+ :language: sql
+ :force:
+ :emphasize-lines: 9-13, 16-18, 20-22
+ :start-after: signature ends
+ :end-before: exercise_8_7_1.txt
-|
+.. collapse:: The complete function
-:ref:`basic/appendix:**Exercise**: 6 (**Chapter:** pl/pgsql)`
+ .. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
+ :language: sql
+ :force:
+ :start-after: exercise_8_6.txt
+ :end-before: exercise_8_7_1.txt
Exercise 7: Using the main function
-------------------------------------------------------------------------------
@@ -563,44 +426,41 @@ Use ``wrk_fromAtoB``
.. rubric:: Solution
-* For ``vehicle_net``:
+For ``vehicle_net``:
- * The first parameter is the table name. (line **2**)
- * The next two parameters are the latitude and longitude of the departure point. (line **3**)
- * The next two parameters are the latitude and longitude of the destination point. (line **4**)
+* The first parameter is the table name.
+* The next two parameters are the latitude and longitude of the departure point.
+* The next two parameters are the latitude and longitude of the destination point.
- .. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
- :language: sql
- :linenos:
- :emphasize-lines: 2-4
- :start-after: exercise_8_7_1.txt
- :end-before: exercise_8_7_2.txt
+.. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
+ :language: sql
+ :start-after: exercise_8_7_1.txt
+ :end-before: exercise_8_7_2.txt
-* For ``taxi_net``:
+.. collapse:: Query results
- * Similar to previous solution, but with ``taxi_net`` (line **2**)
- * Adding ``true`` to get the query that is executed. (line **5**)
+ .. literalinclude:: ../scripts/basic/chapter_8/exercise_8_7_1.txt
- .. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
- :language: sql
- :linenos:
- :emphasize-lines: 2, 5
- :start-after: exercise_8_7_2.txt
- :end-before: exercise_8_7_3.txt
+For ``taxi_net``:
-* For ``walk_net``:
+* Do a dry run by adding ``true`` to get the query that is executed.
- * Similar to a previous solution, but with ``ways`` (line **4**)
- * Store results on a table. (line **2**)
- * Show the table contents using a ``SELECT`` clause (lines **8** and **9**).
+.. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
+ :language: sql
+ :start-after: exercise_8_7_2.txt
+ :end-before: exercise_8_7_3.txt
+.. collapse:: Query results
- .. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
- :language: sql
- :linenos:
- :emphasize-lines: 2, 3, 8-9
- :start-after: exercise_8_7_3.txt
- :end-before: \o
+ .. literalinclude:: ../scripts/basic/chapter_8/exercise_8_7_2.txt
+
+For ``walk_net``:
+
+.. literalinclude:: ../scripts/basic/chapter_8/all-sections-8.sql
+ :language: sql
+ :start-after: exercise_8_7_3.txt
+ :end-before: \o
-:ref:`basic/appendix:**Exercise**: 7 (**Chapter:** pl/pgsql)`
+.. collapse:: Query results
+ .. literalinclude:: ../scripts/basic/chapter_8/exercise_8_7_3.txt
diff --git a/docs/basic/sql_function.rst b/docs/basic/sql_function.rst
index 8627189ac..0754b8eba 100644
--- a/docs/basic/sql_function.rst
+++ b/docs/basic/sql_function.rst
@@ -29,41 +29,15 @@ related to routing logic and requirements.
The application requirements
===============================================================================
-In this chapter there are three requirements that follow the same logic. It consists on 2
-types of vehicles and the pedestrian routing:
-
-- Particular vehicle:
-
- - Circulate on the whole @PGR_WORKSHOP_CITY@ area.
- - Do not use `steps`, `footway`, `path`.
- - Speed is the default speed from OSM information.
-
-- Taxi vehicle:
-
- - Circulate on a smaller area near "|place_4|".
-
- - Bounding box: ``(@PGR_WORKSHOP_LITTLE_NET_BBOX@)``
- - Do not use `steps`, `footway`, `path`
-
- - Speed is 10% faster than the Particular vehicles.
-
-- Pedestrians:
-
- - Walk on the whole @PGR_WORKSHOP_CITY@ area.
- - Can not circulate on `motorways` and on `primary` segments.
- - The speed is ``2 mts/sec``.
-
A front end needs the following routing information:
- - seq - A unique identifier of the rows
- - gid - The segment's identifier
- - name - The segment's name
- - length - The segment's length
- - seconds - Number of seconds to traverse the segment
- - azimuth - The azimuth of the segment
- - route_geom - The routing geometry
- - route_readable - The geometry in human readable form.
-
-and it needs to work based on the graph, and the OSM identifiers of the vertices.
+ - ``seq`` - A unique identifier of the rows
+ - ``id`` - The segment's identifier
+ - ``name`` - The segment's name
+ - ``length`` - The segment's length
+ - ``seconds`` - Number of seconds to traverse the segment
+ - ``azimuth`` - The azimuth of the segment
+ - ``route_geom`` - The routing geometry
+ - ``route_readable`` - The geometry in human readable form.
.. rubric:: Design of the function
@@ -72,275 +46,42 @@ output columns:
.. rubric:: Input parameters
-============= ========= =================
-Name Type Description
-============= ========= =================
-edges_subset REGCLASS The table/view that is going to be used for processing
-source_osm BIGINT The OSM identifier of the `departure` location.
-target_osm BIGINT The OSM identifier of the `destination` location.
-============= ========= =================
+================= ========= =================
+Parameter Type Description
+================= ========= =================
+``edges_subset`` REGCLASS The table/view that is going to be used for processing
+``source_osm`` BIGINT The OSM identifier of the `departure` location.
+``target_osm`` BIGINT The OSM identifier of the `destination` location.
+================= ========= =================
.. rubric:: output columns
-=============== ========= =================
-Name Type Description
-=============== ========= =================
-seq INTEGER A unique number for each result row.
-id BIGINT The edge identifier.
-name TEXT The name of the segment.
-seconds FLOAT The number of seconds it takes to traverse the segment.
-azimuth FLOAT The azimuth of the segment.
-length_m FLOAT The leng in meters of the segment.
-route_readable TEXT The geometry in human readable form.
-route_geom geometry The geometry of the segment in the correct direction.
-=============== ========= =================
-
-Preparing processing graphs
-===============================================================================
-
-Exercise 1: Creating a view for routing
--------------------------------------------------------------------------------
-
-.. image:: images/chapter7/ch7-e1.png
- :scale: 25%
- :alt: View of roads for vehicles
-
-.. rubric:: Problem
-
-- Create a view with minimal amount of information for processing the particular vehicles.
-- Routing `cost` and `reverse_cost` will be on seconds for routing calculations.
-- Exclude `steps`, `footway`, `path` segments.
-- Data needed in the view for further prossesing.
-
- - `length_m` The length in meters.
- - `the_geom` The geometry.
-
-- Verify the number of edges was reduced.
-
-.. rubric:: Solution
-
-- Creating the view:
-
- - The `source` and `target` requirements for the function are to be with OSM
- identifiers. (line **6**)
-
- - The ``cost`` and ``reverse_cost`` are in terms of seconds. (line **7**)
- - The additional parameters `length_m` and `the_geom`. (line **8**)
- - ``JOIN`` with the `configuration`:
-
- - Exclude `steps`, `footway`, `path`. (line **11**)
-
- - If you need to reconstruct the view, first drop it using the command on line **1**.
-
- .. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
- :language: sql
- :linenos:
- :emphasize-lines: 6-8,11
- :start-after: exercise_7_1.txt
- :end-before: Verification1
-
-- Verification:
-
- - Count the rows on the original ``ways`` (line **1**)
- - Count the rows on the view ``vehicle_net`` (line **2**)
-
- .. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
- :language: sql
- :linenos:
- :start-after: Verification1
- :end-before: exercise_7_2.txt
-
-|
-
-:ref:`basic/appendix:**Exercise**: 1 (**Chapter:** SQL)`
-
-
-Exercise 2: Limiting the road network within an area
--------------------------------------------------------------------------------
-
-.. image:: images/chapter7/ch7-e2.png
- :scale: 25%
- :alt: View of smaller set of roads for vehicles
-
-.. rubric:: Problem
-
-* Create a view ``taxi_net`` for the `taxi`:
-
- * The taxi can only circulate inside this Bounding Box: ``(@PGR_WORKSHOP_LITTLE_NET_BBOX@)``
- * The taxi speed is 10% faster than the particular vehicle.
-
-* Verify the reduced number of road segments.
-
-.. rubric:: Solution
-
-* Creating the view:
-
- * The graph for the taxi is a subset of the ``vehicle_net`` graph. (line **9**)
- * Can only circulate inside the bounding box: ``(@PGR_WORKSHOP_LITTLE_NET_BBOX@)``. (line **10**)
- * Adjust the taxi's ``cost`` and ``reverse_cost`` to be 90% of the particular vehicle. (line **7**)
-
- .. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
- :language: sql
- :linenos:
- :emphasize-lines: 7,9,10
- :start-after: 7_2
- :end-before: Verification2
-
-- Verification:
-
- - Count the rows on the original ``taxi_net``
-
- .. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
- :language: sql
- :linenos:
- :start-after: Verification2
- :end-before: 7_3
-
-|
-
-:ref:`basic/appendix:**Exercise**: 2 (**Chapter:** SQL)`
-
-Exercise 3: Creating a materialized view for routing pedestrians
--------------------------------------------------------------------------------
-
-.. image:: images/chapter7/walk-net.png
- :scale: 25%
- :alt: View of roads for vehicles
-
-.. rubric:: Problem
-
-- Create a materialized view with minimal amount of information for processing pedestrians.
-- Routing `cost` and `reverse_cost` will be on seconds for routing calculations.
-
- - The speed is ``2 mts/sec``.
-
-- Exclude `motorway` , `primary` and `secondary` segments.
-- Data needed in the view for further prossesing.
-
- - `length_m` The length in meters.
- - `the_geom` The geometry.
-
-- Verify the number of edges was reduced.
-
-.. rubric:: Solution
-
-- Creating the view:
-
- - Similar to `Exercise 1: Creating a view for routing`_:
-
- - The ``cost`` and ``reverse_cost`` are in terms of seconds with speed of ``2 mts/sec``. (line **7**)
- - Exclude `motorway`, `primary` and `secondary` . (line **11**)
-
- .. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
- :language: sql
- :linenos:
- :emphasize-lines: 7, 11
- :start-after: 7_3
- :end-before: Verification3
-
-- Verification:
-
- - Count the rows on the view ``walk_net`` (line **1**)
-
- .. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
- :language: sql
- :linenos:
- :start-after: Verification3
- :end-before: 7_4
-
-|
-
-:ref:`basic/appendix:**Exercise**: 3 (**Chapter:** SQL)`
-
-
-Exercise 4: Testing the views for routing
--------------------------------------------------------------------------------
-
-.. image:: images/chapter7/ch7-e3.png
- :scale: 25%
- :alt: From the Venue to the hotel using the osm_id.
-
-.. rubric:: Problem
-
-* Test the created views
-
-In particular:
-
-* From the "|ch7_place_1|" to the "|ch7_place_2|" using the OSM identifier
-* the views to be tested are:
-
- * ``vehicle_net``
- * ``taxi_net``
- * ``walk_net``
-
-* Only show the following results, as the other columns are to be ignored on the function.
-
- * ``seq``
- * ``edge`` with the name ``id``
- * ``cost`` with the name: ``seconds``
-
-.. rubric:: Solution
-
-* In general
-
- * The departure is |ch7_place_1| with OSM identifier |ch7_osmid_1|.
- * The destination is |ch7_place_2| with OSM identifier |ch7_osmid_2|.
-
-* For ``vehicle_net``:
-
- * ``vehicle_net`` is used.
- * Selection of the columns with the corresponding names are on line **1**.
- * The view is prepared with the column names that pgRouting use.
-
- * There is no need to rename columns. (line **3**)
-
- * The OSM identifiers of the departure and destination are used. (line **4**)
-
- .. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
- :language: sql
- :linenos:
- :emphasize-lines: 1,3,4
- :start-after: exercise_7_4.txt
- :end-before: For taxi_net
-
-* For ``taxi_net``:
-
- * Similar as the previous one but with ``taxi_net``. (line **3**)
- * The results give the same route as with ``vehicle_net`` but ``cost`` is lower
-
- .. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
- :language: sql
- :linenos:
- :emphasize-lines: 3
- :start-after: For taxi_net
- :end-before: For walk_net
-
-* For ``walk_net``:
-
- * Similar as the previous one but with ``walk_net``. (line **3**)
- * The results give a different route than of the vehicles.
-
- .. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
- :language: sql
- :linenos:
- :emphasize-lines: 3
- :start-after: For walk_net
- :end-before: exercise_7_5.txt
-
-
-.. note:: From these queries, it can be deduced that what we design for one view will work
- for the other views. On the following exercises only ``vehicle_net`` will be used, but
+================== ========= =================
+Name Type Description
+================== ========= =================
+``seq`` INTEGER A unique number for each result row.
+``id`` BIGINT The edge identifier.
+``name`` TEXT The name of the segment.
+``seconds`` FLOAT The number of seconds it takes to traverse the segment.
+``azimuth`` FLOAT The azimuth of the segment.
+``length`` FLOAT The leng in meters of the segment.
+``route_readable`` TEXT The geometry in human readable form.
+``route_geom`` geometry The geometry of the segment in the correct direction.
+================== ========= =================
+
+
+.. note:: For the following exercises only ``vehicle_net`` will be used, but
you can test the queries with the other views.
-|
-
-:ref:`basic/appendix:**Exercise**: 4 (**Chapter:** SQL)`
+Additional information handling
+===============================================================================
+When the application needs additional information, like the name of the street,
+``JOIN`` the results with other tables.
-Exercise 5: Get additional information
+Exercise 1: Get additional information
-------------------------------------------------------------------------------
-
.. image:: images/chapter7/ch7-e4.png
:width: 300pt
:alt: Route showing names
@@ -348,45 +89,45 @@ Exercise 5: Get additional information
.. rubric:: Problem
* From |ch7_place_1| to |ch7_place_2|, using OSM identifiers.
-* additionally to the `Exercise 4: Testing the views for routing`_
- results also get information found on the edges subset:
+* Get the following information:
+ * ``seq``
+ * ``id``
* ``name``
- * ``length_m``
+ * ``seconds``
+ * ``length``
.. rubric:: Solution
-* The query from `Exercise 4: Testing the views for routing`_ used as a
- subquery named ``results`` (not highlighted lines **5** to **9**)
-* The ``SELECT`` clause contains
+* The columns asked (line **2**).
+* Rename ``pgr_dijkstra`` results to application requirements names. (line **4**).
+* ``LEFT JOIN`` the results with ``vehicle_net`` to get the additional information. (line **9**)
- * All the columns of ``results``. (line **2**)
- * The ``name`` and the ``length_m`` values. (line **3**)
-
-* A ``LEFT JOIN`` with ``vehicle_net`` is needed to get the additional information. (line **10**)
-
- * Has to be ``LEFT`` because there is a row with ``id = -1`` that does not exist on ``vehicle_net``
+ * ``LEFT`` to include the row with ``id = -1`` because it does not
+ exist on ``vehicle_net``
.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
:language: sql
:linenos:
- :emphasize-lines: 2, 3,10
- :start-after: 7_5
- :end-before: 7_6
-
-|
-
-:ref:`basic/appendix:**Exercise**: 5 (**Chapter:** SQL)`
+ :emphasize-lines: 2, 4,9
+ :start-after: exercise_7_5.txt
+ :end-before: exercise_7_6.txt
+.. collapse:: Query results
+ .. literalinclude:: ../scripts/basic/chapter_7/exercise_7_5.txt
Geometry handling
===============================================================================
-Exercise 6: Route geometry (human readable)
--------------------------------------------------------------------------------
+From pgRouting point of view, the geometry is part of the additional
+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.
+Exercise 2: Route geometry (human readable)
+-------------------------------------------------------------------------------
.. image:: images/chapter7/ch7-e4.png
:width: 300pt
@@ -394,46 +135,49 @@ Exercise 6: Route geometry (human readable)
.. rubric:: Problem
-* From the |ch7_place_1| to the |ch7_place_2|, additionally get the geometry
- in human readable form.
+Route from the |ch7_place_1| to |ch7_place_2|
- * Additionally to the `Exercise 4: Testing the views for routing`_
- results also get information found on the edges subset of:
+* Additionally to the previous exercise, get the
- * ``the_geom`` in human readable form named as ``route_readable``
+ * geometry ``geom`` in human readable form named as ``route_readable``
.. tip::
+
``WITH`` provides a way to write auxiliary statements in larger queries.
It can be thought of as defining temporary tables that exist just for one query.
.. rubric:: Solution
-* The query from `Exercise 4: Testing the views for routing`_ used as a
- subquery named ``results`` this time in a WITH clause. (not highlighted lines **2** to **6**)
-* The ``SELECT`` clause contains:
+* The routing query named ``results`` in a WITH clause. (lines **2** to **5**)
+* The results from the previous exercise. (lines **8** and **9**)
+
+ .. note:: For result reading purposes, the result columns from the previous
+ are in a comment. Uncomment to see the complete results for the problem.
- * All the columns of ``results``. (line **8**)
- * The ``the_geom`` processed with ``ST_AsText`` to get the human readable form. (line **9**)
+* The ``geom`` processed with ``ST_AsText`` to get the human readable form.
+ (line **12**)
- * Renames the result to ``route_readable``
+ * Renaming the result to ``route_readable``
-* Like before ``LEFT JOIN`` with ``vehicle_net``. (line **11**)
+* The ``LEFT JOIN`` with ``vehicle_net``. (line **14**)
.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
:language: sql
:linenos:
- :emphasize-lines: 8,9,11
- :start-after: 7_6
- :end-before: 7_7
+ :emphasize-lines: 2-5,8-9,12,14
+ :start-after: exercise_7_6.txt
+ :end-before: exercise_7_7.txt
-|
+.. exercise 2 results
-:ref:`basic/appendix:**Exercise**: 6 (**Chapter:** SQL)`
+.. collapse:: Query results
+ .. literalinclude:: ../scripts/basic/chapter_7/exercise_7_6.txt
-Exercise 7: Route geometry (binary format)
+
+Exercise 3: Route geometry (binary format)
-------------------------------------------------------------------------------
.. image:: images/chapter7/ch7-e6.png
@@ -442,106 +186,112 @@ Exercise 7: Route geometry (binary format)
.. rubric:: Problem
-* From the |ch7_place_1| to |ch7_place_2|, the geometry in binary format.
+Route from the |ch7_place_1| to |ch7_place_2|
- * Additionally to the `Exercise 4: Testing the views for routing`_
- results also get information found on the edges subset of:
+* Additionally to the previous exercise, get the
- * ``the_geom`` in binary format with the name ``route_geom``
+ * ``geom`` in binary format with the name ``route_geom``
.. rubric:: Solution
-* The query from `Exercise 6: Route geometry (human readable)`_ used;
-
-* The ``SELECT`` clause contains:
+* The query from the previous exercise is used
+* The ``SELECT`` clause also contains:
- * The ``the_geom`` including the renaming (line **9**)
+ * The ``geom`` including the renaming (line **9**)
.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
:language: sql
- :linenos:
:emphasize-lines: 10
- :start-after: 7_7
- :end-before: 7_8
+ :linenos:
+ :start-after: exercise_7_7.txt
+ :end-before: wrong_directionality.txt
-|
+.. collapse:: Query results
-:ref:`basic/appendix:**Exercise**: 7 (**Chapter:** SQL)`
+ .. literalinclude:: ../scripts/basic/chapter_7/exercise_7_7.txt
-Exercise 8: Route geometry directionality
+Exercise 4: Route geometry directionality
-------------------------------------------------------------------------------
.. image:: images/chapter7/ch7-e8.png
:width: 300pt
:alt: From |ch7_place_1| to |ch7_place_2|
-|
-
-Inspecting the detail image of `Exercise 7: Route geometry (binary format)`_ there are
+Visually, with the route displayed with arrows, it can be found that there are
arrows that do not match the directionality of the route.
-.. image:: images/chapter7/ch7-e8-1.png
- :width: 300pt
- :alt: detail
+To have correct directionality, the ending point of a geometry must match the
+starting point of the next geometry
-|
+* Inspecting the detail of the results of `Exercise 2: Route geometry (human
+ readable)`_
-Inspecting the a detail of the results of `Exercise 6: Route geometry (human readable)`_
+ * Rows **59** to **61** do not match that criteria
-* To have correct directionality, the ending point of a geometry must match the starting point of the next geometry
-* Lines **2** and **3** do not match that criteria
+.. collapse:: Query: Rows where criteria is not met
+
+ .. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :start-after: wrong_directionality.txt
+ :end-before: exercise_7_8.txt
-.. literalinclude:: ../scripts/basic/chapter_7/exercise_7_6.txt
+.. literalinclude:: ../scripts/basic/chapter_7/wrong_directionality.txt
:language: sql
- :linenos:
- :start-after: 1 |
- :end-before: 5 |
.. rubric:: Problem
-* From |ch7_place_1| to |ch7_place_2|,
-
- * Additionally to the `Exercise 4: Testing the views for routing`_
- results also get information found on the edges subset of:
+Route from the |ch7_place_1| to |ch7_place_2|
- * ``the_geom`` in human readable form named as ``route_readable``
- * ``the_geom`` in binary format with the name ``route_geom``
- * Both columns must have the geometry fixed for directionality.
+* Fix the directionality of the geometries of the previous exercise
+ * ``geom`` in human readable form named as ``route_readable``
+ * ``geom`` in binary format with the name ``route_geom``
+ * Both columns must have the geometry fixed for directionality.
.. rubric:: Solution
-* To get the correct direction some geometries need to be reversed:
+To get the correct direction some geometries need to be reversed:
- * Reversing a geometry will depend on the ``node`` column of the query to dijkstra (line **3**)
+* Reversing a geometry will depend on the ``node`` column of the query to
+ Dijkstra (line **2**)
- * That ``node`` is not needed on the ouput of the query, so explicitly naming required columns at line **9**.
- * A conditional ``CASE`` statement that returns the geometry in human readable form:
+* A conditional ``CASE`` statement that returns the geometry in human readable
+ form:
- * Of the geometry when ``node`` is the ``source`` column. (line **11**)
- * Of the reversed geometry when ``node`` is not the ``source`` column. (line **12**)
+ * Of the geometry when ``node`` is the ``source`` column. (line **11**)
+ * Of the reversed geometry when ``node`` is not the ``source`` column. (line **12**)
- * A conditional ``CASE`` statement that returns:
+* A conditional ``CASE`` statement that returns:
- * The reversed geometry when ``node`` is not the ``source`` column. (line **16**)
- * The geometry when ``node`` is the ``source`` column. (line **17**)
+ * The geometry when ``node`` is the ``source`` column. (line **17**)
+ * The reversed geometry when ``node`` is not the ``source`` column. (line **16**)
.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
:language: sql
:linenos:
:emphasize-lines: 3,9,11,12,16,17
:start-after: exercise_7_8.txt
- :end-before: exercise_7_9.txt
+ :end-before: good_directionality.txt
-|
+.. collapse:: results
-:ref:`basic/appendix:**Exercise**: 8 (**Chapter:** SQL)`
+ .. literalinclude:: ../scripts/basic/chapter_7/exercise_7_8.txt
+Inspecting some the problematic rows, the directionality has been fixed.
+.. collapse:: Query: Rows where criteria is not met
+
+ .. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :start-after: good_directionality.txt
+ :end-before: exercise_7_9.txt
-Exercise 9: Using the geometry
+.. literalinclude:: ../scripts/basic/chapter_7/good_directionality.txt
+
+
+Exercise 5: Using the geometry
-------------------------------------------------------------------------------
.. image:: images/chapter7/ch7-e7.png
@@ -556,39 +306,32 @@ This exercise will make use an additional function ``ST_Azimuth``.
.. rubric:: Problem
-* Modify the query from `Exercise 8: Route geometry directionality`_.
-* Aditionally obtain the azimuth of the correct geometry.
-* keep the output small:
-
- * Even that other columns are calculated only output:
+Modify the query from the previous exercise
- * ``seq``, ``id``, ``seconds`` and the ``azimuth``
-
-* Because ``vehicle_net`` is a subgraph of ``ways``, do the ``JOIN`` with ``ways``.
+* Additionally obtain the azimuth of the correct geometry.
+* Because ``vehicle_net`` and the other 2 views are sub graphs of ``ways``, do
+ the ``JOIN`` with ``ways``.
.. rubric:: Solution
-* Moving the query that gets the additional information into the ``WITH`` statement.
+* Move the query that gets the additional information into the ``WITH`` statement.
- * Naming it ``additional``. (line **9**)
+ * Name it ``additional``. (line **6**)
+* The ``ways`` table geometry name is ``the_geom``.
* Final ``SELECT`` statements gets:
- * The requested information. (line **25**)
- * Calculates the azimuth of ``route_geom``. (line **26**)
+ * Calculates the azimuth of ``route_geom``. (line **27**)
.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
:language: sql
- :linenos:
- :emphasize-lines: 9,25,26
+ :emphasize-lines: 6,27
:start-after: exercise_7_9.txt
:end-before: exercise_7_10.txt
-|
-
-:ref:`basic/appendix:**Exercise**: 9 (**Chapter:** SQL)`
-
+.. collapse:: results
+ .. literalinclude:: ../scripts/basic/chapter_7/exercise_7_9.txt
Creating the Function
===============================================================================
@@ -602,7 +345,7 @@ shortest path Dijkstra function.
* Avoid creating functions with a name of a pgRouting routing function
* Avoid the name of a function to start with `pgr_`, `_pgr` or `ST_`
-Exercise 10: Function for an application
+Exercise 6: Function for an application
-------------------------------------------------------------------------------
.. rubric:: Problem
@@ -613,11 +356,10 @@ Putting all together in a SQL function
* Should work for any given view.
* Allow a view as a parameter
-
- * A table can be used if the columns have the correct names.
+ * A table can be used if the columns have the correct names.
* ``source`` and ``target`` are in terms of ``osm_id``.
-* The result should meet the requirements indicated at the begining of the chapter
+* The result should meet the requirements indicated at the beginning of the chapter
.. rubric:: Solution
@@ -625,12 +367,12 @@ Putting all together in a SQL function
* The signature of the function:
* The input parameters are from line **4** to **6**.
- * The output columns are from line **7** to **14** (not highlited).
+ * The output columns are from line **7** to **14** (not highlighted).
* The function returns a set. (line **16**)
.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
- :linenos:
:emphasize-lines: 4-6,16
+ :language: sql
:start-after: exercise_7_10.txt
:end-before: BODY
@@ -642,43 +384,68 @@ Putting all together in a SQL function
.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
- :linenos:
:emphasize-lines: 7,8,25
+ :language: sql
+ :force:
:start-after: RETURNS SETOF
- :end-before: exercise_7_11.txt
+ :end-before: using_fn1.txt
-|
+.. collapse:: Response of command
-:ref:`basic/appendix:**Exercise**: 10 (**Chapter:** SQL)`
+ .. literalinclude:: ../scripts/basic/chapter_7/exercise_7_10.txt
.. _exercise-ch7-e10:
-Exercise 11: Using the function
+Exercise 7: Using the function
-------------------------------------------------------------------------------
.. rubric:: Problem
* Test the function with the three views
-* From the "|ch7_place_1|" to the |ch7_place_2| using the OSM identifier
+* From the |ch7_place_1| to the |ch7_place_2| using the OSM identifier
.. rubric:: Solution
* Use the function on the ``SELECT`` statement
* The first parameter changes based on the view to be tested
+Names of the streets in the route
+
.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
:language: sql
- :linenos:
- :start-after: exercise_7_11.txt
+ :start-after: using_fn1.txt
+ :end-before: using_fn2.txt
+
+.. collapse:: Query results
+
+ .. literalinclude:: ../scripts/basic/chapter_7/using_fn1.txt
+
+Total seconds spent in each street
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :start-after: using_fn2.txt
+ :end-before: using_fn3.txt
+
+.. collapse:: Query results
+
+ .. literalinclude:: ../scripts/basic/chapter_7/using_fn2.txt
+
+Get all the information of the route
+
+.. literalinclude:: ../scripts/basic/chapter_7/all_sections.sql
+ :language: sql
+ :start-after: using_fn3.txt
+
+.. collapse:: Query results
-:ref:`basic/appendix:**Exercise**: 11 (**Chapter:** SQL)`
+ .. literalinclude:: ../scripts/basic/chapter_7/using_fn3.txt
-.. rubric:: Use the function
-* Try the function with a combination of the interesting places:
+Try the function with a combination of the interesting places:
- * |osmid_1| |place_1|
- * |osmid_2| |place_2|
- * |osmid_3| |place_3|
- * |osmid_4| |place_4|
- * |osmid_5| |place_5|
+* |osmid_1| |place_1|
+* |osmid_2| |place_2|
+* |osmid_3| |place_3|
+* |osmid_4| |place_4|
+* |osmid_5| |place_5|
diff --git a/docs/basic/vehicle.rst b/docs/basic/vehicle.rst
index 2b52d4be4..c9f0875bf 100644
--- a/docs/basic/vehicle.rst
+++ b/docs/basic/vehicle.rst
@@ -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.
@@ -62,26 +62,22 @@ be a combination of multiple parameters.
#. Number of (``source, target``) segments with ``cost < 0`` (line **3**).
.. literalinclude:: ../scripts/basic/chapter_6/all_exercises.sql
- :start-after: 6.1-1
- :end-before: 6.1-2
+ :start-after: section-6.1-1
+ :end-before: section-6.1-2
:language: sql
- :linenos:
:emphasize-lines: 3
.. literalinclude:: ../scripts/basic/chapter_6/section-6.1-1.txt
- :linenos:
#. Number of (``target, source``) segments with ``reverse_cost < 0`` (line **3**).
.. literalinclude:: ../scripts/basic/chapter_6/all_exercises.sql
- :start-after: 6.1-2
- :end-before: 6.1.1
+ :start-after: section-6.1-2
+ :end-before: section-6.1.1
:language: sql
- :linenos:
:emphasize-lines: 3
.. literalinclude:: ../scripts/basic/chapter_6/section-6.1-2.txt
- :linenos:
Exercise 1: Vehicle routing - going
@@ -97,19 +93,19 @@ Exercise 1: Vehicle routing - going
.. rubric:: Solution:
-* The vehicle is going from vertex |id_1| (line **10**) to |id_3| (line **11**).
* Use ``cost`` (line **6**) and ``reverse_cost`` (line **7**) columns, which are in unit ``degrees``.
+* The vehicle is going from vertex |id_1| (line **10**) to |id_3| (line **11**).
.. literalinclude:: ../scripts/basic/chapter_6/all_exercises.sql
- :start-after: 6.1.1
- :end-before: 6.1.2
+ :start-after: section-6.1.1
+ :end-before: section-6.1.2
:language: sql
- :linenos:
- :emphasize-lines: 6-11
+ :emphasize-lines: 6,7,10,11
-|
-:ref:`basic/appendix:**Exercise**: 1 (**Chapter:** Vehicle)`
+.. collapse:: Query results
+
+ .. literalinclude:: ../scripts/basic/chapter_6/section-6.1.1.txt
Exercise 2: Vehicle routing - returning
@@ -125,19 +121,19 @@ Exercise 2: Vehicle routing - returning
.. rubric:: Solution:
+* Use ``cost_s`` (line **6**) and ``reverse_cost_s`` (line **7**) columns, in
+ units seconds.
* The vehicle is going from vertex |id_3| (line **10**) to |id_1| (line **11**).
-* Use ``cost`` (line **6**) and ``reverse_cost`` (line **7**) columns, which are in unit ``degrees``.
.. literalinclude:: ../scripts/basic/chapter_6/all_exercises.sql
- :start-after: 6.1.2
- :end-before: 6.1.3
+ :start-after: section-6.1.2
+ :end-before: section-6.1.3
:language: sql
- :linenos:
- :emphasize-lines: 6-11
+ :emphasize-lines: 6,7,10,11
-|
+.. collapse:: Query results
-:ref:`basic/appendix:**Exercise**: 2 (**Chapter:** Vehicle)`
+ .. literalinclude:: ../scripts/basic/chapter_6/section-6.1.2.txt
.. note:: On a directed graph, going and coming back routes, most of the time are different.
@@ -147,30 +143,32 @@ Exercise 3: Vehicle routing when time is money
.. rubric:: Problem:
-* From "|place_1|" to the "|place_3|" by taxi.
+* From "|place_3|" to the "|place_1|" by taxi.
.. image:: images/chapter6/ad8.png
:width: 300pt
- :alt: From |place_1| to |place_3| by taxi.
+ :alt: From |place_3| to |place_1| by taxi.
.. rubric:: Solution:
-* The vehicle is going from vertex |id_1| (line **10**) to |id_3| (line **11**).
* The cost is ``$100 per hour``.
-* Use ``cost_s`` (line **6**) and ``reverse_cost_s`` (line **7**) columns, which are in unit ``seconds``.
-* The duration in hours is ``cost_s / 3600``.
-* The cost in ``$`` is ``cost_s / 3600 * 100``.
+
+ * Using ``cost_s`` (line **6**) and ``reverse_cost_s`` (line **7**) columns, which are in unit ``seconds``.
+
+ * The duration in hours is ``cost_s / 3600``.
+ * The cost in ``dollars`` is ``cost_s / 3600 * 100``.
+
+* The vehicle is going from vertex |id_3| (line **10**) to |id_1| (line **11**).
.. literalinclude:: ../scripts/basic/chapter_6/all_exercises.sql
- :start-after: 6.1.3
- :end-before: 6.2-1
+ :start-after: section-6.1.3
+ :end-before: section-6.2-1
:language: sql
- :linenos:
- :emphasize-lines: 6-11
+ :emphasize-lines: 6-7,10-11
-|
+.. collapse:: Query results
-:ref:`basic/appendix:**Exercise**: 3 (**Chapter:** Vehicle)`
+ .. literalinclude:: ../scripts/basic/chapter_6/section-6.1.3.txt
.. note::
Comparing with `Exercise 2: Vehicle routing - returning`_:
@@ -181,8 +179,6 @@ Exercise 3: Vehicle routing when time is money
* The cost and agg_cost results are directly proportional.
-.. _modify:
-
Cost manipulations
-------------------------------------------------------------------------------
@@ -190,7 +186,7 @@ When dealing with data, being aware of what kind of data is being used can impro
* Vehicles can not circulate on pedestrian ways
-.. image:: images/chapter6/pedestrian-only-roads.png
+.. image:: images/chapter6/pedestrian_only_roads.png
:scale: 25%
:alt:
@@ -204,16 +200,14 @@ additional table: ``configuration``.
.. rubric:: The ``configuration`` table structure can be obtained with the following command.
.. literalinclude:: ../scripts/basic/chapter_6/all_exercises.sql
- :start-after: 6.2-1
- :end-before: 6.2-2
- :linenos:
+ :start-after: section-6.2-1
+ :end-before: section-6.2-2
.. literalinclude:: ../scripts/basic/chapter_6/section-6.2-1.txt
- :linenos:
-.. image:: images/chapter6/detailofroute9.png
+.. image:: images/chapter6/route_using_pedestrian.png
:scale: 25%
:alt: tag_id values
@@ -224,26 +218,22 @@ In the image above there is a detail of the ``tag_id`` of the roads.
.. rubric:: The ``OSM way`` types:
.. literalinclude:: ../scripts/basic/chapter_6/all_exercises.sql
- :start-after: 6.2-2
- :end-before: 6.2-3
+ :start-after: section-6.2-2
+ :end-before: section-6.2-3
:language: sql
- :linenos:
.. literalinclude:: ../scripts/basic/chapter_6/section-6.2-2.txt
- :linenos:
Also, on the ``ways`` table there is a column that can be used to ``JOIN`` with the ``configuration`` table.
.. rubric:: The ``ways`` types:
.. literalinclude:: ../scripts/basic/chapter_6/all_exercises.sql
- :start-after: 6.2-3
- :end-before: 6.2.1
+ :start-after: section-6.2-3
+ :end-before: section-6.2.1
:language: sql
- :linenos:
.. literalinclude:: ../scripts/basic/chapter_6/section-6.2-3.txt
- :linenos:
In this workshop, costs are going to be manipulated using the ``configuration`` table.
@@ -262,24 +252,30 @@ Exercise 4: Vehicle routing without penalization
.. rubric:: Solution:
-* The vehicle is going from vertex |id_3| (line **17**) to vertex |id_1| (line **18**).
-* The vehicle's cost in this case will be in seconds.
+.. rubric:: Add a penalty column
+
* All roads have a ``penalty`` of ``1`` (line **3**).
-* Costs (in seconds) are to be multiplied by :code:`penalty` (lines **12** and **13**).
-* Costs wont change (times 1 leaves the value unchanged).
+
+.. rubric:: Query
+
+* The vehicle's cost in this case will be in penalized seconds.
+
+ * Costs (in seconds) are to be multiplied by :code:`penalty` (lines **12** and **13**).
+ * Costs wont change (times 1 leaves the value unchanged).
+
* The :code:`configuration` table is linked with the :code:`ways` table by the
:code:`tag_id` field using a ``JOIN`` (lines **14** and **15**).
+* The vehicle is going from vertex |id_3| (line **17**) to vertex |id_1| (line **18**).
.. literalinclude:: ../scripts/basic/chapter_6/all_exercises.sql
- :start-after: 6.2.1
- :end-before: 6.2.2-1
+ :start-after: section-6.2.1
+ :end-before: section-6.2.2-1
:language: sql
- :linenos:
- :emphasize-lines: 3-18
+ :emphasize-lines: 14,15
-|
+.. collapse:: Query results
-:ref:`basic/appendix:**Exercise**: 4 (**Chapter:** Vehicle)`
+ .. literalinclude:: ../scripts/basic/chapter_6/section-6.2.1.txt
Exercise 5: Vehicle routing with penalization
@@ -287,20 +283,28 @@ Exercise 5: Vehicle routing with penalization
.. rubric:: Concept:
-* Change the cost values for the :code:`configuration` table, in such a way, that the
+Change the cost values for the :code:`configuration` table, in such a way, that the
+
+* Pedestrian roads are not used.
+
+ * ``penalty < 0`` makes the road not to be included in the graph.
+
+* Using residential roads is not encouraged.
+
+ * ``penalty > 1`` makes the road slower for the calculations.
+
+* Using "faster" roads is highly encouraged.
+
+ * ``penalty < 1`` makes the road faster for the calculations.
- * Pedestrian roads are not used.
- * Using residential roads is not encouraged.
- * Using "faster" roads is highly encouraged.
- * The ``penalty`` values can be changed with ``UPDATE`` queries.
+The ``penalty`` values can be changed with ``UPDATE`` queries.
.. note:: These values are an exaggeration.
.. literalinclude:: ../scripts/basic/chapter_6/all_exercises.sql
- :start-after: 6.2.2-1
- :end-before: 6.2.2-2
+ :start-after: section-6.2.2-1
+ :end-before: section-6.2.2-2
:language: sql
- :linenos:
.. rubric:: Problem:
@@ -308,32 +312,67 @@ Exercise 5: Vehicle routing with penalization
.. image:: images/chapter6/ad11.png
:scale: 25%
- :alt: From |place_5| to |place_3|
+ :alt: From |place_3| to |place_1|
.. rubric:: Solution:
-* The vehicle is going from vertex |id_3| (line **11**) to vertex |id_1| (line **12**).
-* Use ``cost_s`` (line **6**) and ``reverse_cost_s`` (line **7**) columns, which are in unit ``seconds``.
-* Costs are to be multiplied by :code:`penalty` (lines **6** and **7**).
+* Using ``cost_s`` (line **6**) and ``reverse_cost_s`` (line **7**) columns, which are in unit ``seconds``.
+
+ * Costs are to be multiplied by :code:`penalty` (lines **6** and **7**).
+
* The :code:`configuration` table is linked with the :code:`ways` table by the
:code:`tag_id` field using a ``JOIN`` (lines **8** and **9**).
+* The vehicle is going from vertex |id_3| (line **11**) to vertex |id_1| (line **12**).
.. literalinclude:: ../scripts/basic/chapter_6/all_exercises.sql
:start-after: 6.2.2-2
+ :end-before: 6.6
:language: sql
- :linenos:
- :emphasize-lines: 6-12
-|
+.. collapse:: Query results
-:ref:`basic/appendix:**Exercise**: 5 (**Chapter:** Vehicle)`
+ .. literalinclude:: ../scripts/basic/chapter_6/section-6.2.2-2.txt
.. note::
Comparing with `Exercise 3: Vehicle routing when time is money`_:
* The total number of records changed.
- * The node sequence changed.
- * The edge sequence changed.
+
+ * The node sequence changed.
+ * The edge sequence changed.
+
* The route is avoiding the residential roads that have ``tag_id = 110``.
- * The cost did not change proportionally because of the penalty to some of the roads which was uniform (penalty=1) while routing with cost as money.
+ * The costs do not change proportionally.
+
+Exercise 6: Time in seconds of penalized route
+...............................................................................
+
+
+.. rubric:: Problem:
+
+Get the times in seconds of a penalized route
+
+.. rubric:: Solution:
+
+* Use as inner query the penalized query joined with the ways table
+
+ * Keep the ``edge`` as ``gid`` (line **6**)
+ * Join using ``gid`` (line **18**)
+
+
+.. literalinclude:: ../scripts/basic/chapter_6/all_exercises.sql
+ :start-after: 6.6
+ :language: sql
+ :force:
+
+.. collapse:: Query results
+
+ .. literalinclude:: ../scripts/basic/chapter_6/section-6.6.txt
+
+.. note::
+ Comparing with `Exercise 5: Vehicle routing with penalization`_:
+
+ * The total number of records is the same.
+ * The route is the same
+ * The ``cost`` column have the original vales from the ways table.
diff --git a/docs/conf.py b/docs/conf.py
index 1b2fa4899..0190df449 100755
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -29,6 +29,7 @@
extensions = [
'sphinx.ext.todo',
'sphinx.ext.autosectionlabel',
+ 'sphinx_collapse',
]
autosectionlabel_prefix_document = True
@@ -103,29 +104,49 @@
# -- Options for HTML output ---------------------------------------------------
-# The theme to use for HTML and HTML Help pages. Major themes that come with
-# Sphinx are currently 'default' and 'sphinxdoc'.
-#html_theme = 'default'
-#html_theme = 'workshop-theme'
-#html_theme_path = ['.'] # make sphinx search for themes in current dir
################## bootstrap
# Activate the theme.
html_theme = 'bootstrap'
html_theme_path = sphinx_bootstrap_theme.get_html_theme_path()
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
+
+# Theme options are theme-specific and customize the look and feel of a
+# theme further.
+# https://github.com/ryan-roemer/sphinx-bootstrap-theme/blob/master/demo/source/conf.py#L105
html_theme_options = {
- 'navbar_site_name': "Chapters",
- 'globaltoc_depth': 2,
- 'navbar_fixed_top': "true",
- 'bootstrap_version': "3",
+ # Navigation bar title. (Default: ``project`` value)
+ #'navbar_title': "Demo",
+
+ # Tab name for entire site. (Default: "Site")
+ 'navbar_site_name': "Chapters",
+
+ 'navbar_links': [
+ ("Documentation", "https://docs.pgrouting.org/latest/en/index.html", True),
+ ],
+
+ # Render the next and previous page links in navbar. (Default: true)
+ 'navbar_sidebarrel': True,
+
+ 'navbar_pagenav': True,
+ 'navbar_pagenav_name': "Page",
+ 'globaltoc_depth': 1,
+ 'globaltoc_includehidden': "true",
+ 'navbar_class': "navbar",
+ 'navbar_fixed_top': "true",
+ #'source_link_position': "nav",
+
+ # Currently, the supported themes are:
+ # - Bootstrap 2: https://bootswatch.com/2
+ # - Bootstrap 3: https://bootswatch.com/3
+ #'bootswatch_theme': "united",
+
+ # Choose Bootstrap version.
+ # Values: "3" (default) or "2" (in quotes)
+ 'bootstrap_version': "2",
}
-# Add any paths that contain custom themes here, relative to this directory.
-#html_theme_path = []
+html_logo = "my_logo.png"
# The name for this set of Sphinx documents. If None, it defaults to
# " v documentation".
@@ -160,7 +181,9 @@ def setup(app):
#html_use_smartypants = True
# Custom sidebar templates, maps document names to template names.
-#html_sidebars = {}
+html_sidebars = {
+ '**': []
+ }
# Additional templates that should be rendered to pages, maps page names to
# template names.
@@ -202,7 +225,7 @@ def setup(app):
# (source start file, target name, title, author, documentclass [howto/manual]).
latex_documents = [
('latex', 'pgRoutingWorkshop.tex', u'Workshop - FOSS4G routing with pgRouting',
- u'Daniel Kastl, Vicky Vergara', 'manual', False),
+ u'Vicky Vergara', 'workshop', False),
]
# The name of an image file (relative to this directory) to place at the top of
@@ -232,8 +255,7 @@ def setup(app):
r'http://localhost:\d+/', r'http://localhost:\d+', r'http://localhost/', r'http://127.0.0.1:\d+/',
r'https://localhost:\d+/', r'https://localhost:\d+', r'https://localhost/', r'https://127.0.0.1:\d+/',
- # TODO remove when 15 is located
- 'https://sourceforge.net/projects/osgeo-live/files/15.0/',
+ r'https://sourceforge.net/projects/osgeo-live/files',
]
linkcheck_anchors = False
@@ -258,8 +280,8 @@ def setup(app):
.. |osm2pgrouting-web| replace:: https://pgrouting.org/docs/tools/osm2pgrouting.html
.. |osm2pgrouting-wiki| replace:: https://github.com/pgRouting/osm2pgrouting/wiki/Documentation-for-osm2pgrouting-v2.2
.. |osm2pgrouting-ver| replace:: 2.3
-.. |georepublic| replace:: `GeoRepublic `__
.. |paragon| replace:: `Paragon Corporation `__
+.. |erosion| replace:: `Erosion `__
.. |osgeo| replace:: `OSGeo `__
.. |id_1| replace:: ``@ID_1@``
.. |id_2| replace:: ``@ID_2@``
diff --git a/docs/general-intro/introduction.rst b/docs/general-intro/introduction.rst
index eafa89d35..dea3b66f3 100644
--- a/docs/general-intro/introduction.rst
+++ b/docs/general-intro/introduction.rst
@@ -13,7 +13,7 @@ Introduction
|pgrouting-web| adds routing functionality to |postgis-web|.
Please see the :doc:`contents <../index>` for full content of
-**@WORKSHOP_AREA@** workshop. This workshop covers two levels for using
+@WORKSHOP_AREA@ workshop. This workshop covers two levels for using
pgRouting: `Basic`_ and `Advanced`_.
Basic
@@ -58,14 +58,20 @@ Aknowledments
.. image:: /images/logos/paragon.png
:alt: Paragon Corporation
+ :width: 200
:target: https://www.paragoncorporation.com/
+.. image:: /images/logos/erosion.png
+ :alt: Paragon Corporation
+ :width: 200
+ :target: https://www.erosion.dev/
+
.. 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.
-* *Ramón Ríos* Is a freelance developer from Mexico. Lead engenieer for
+* *Ramón Ríos* Is a freelance developer from Mexico. Lead engenieer for
ParkUpFront
diff --git a/docs/general-intro/osgeolive.rst b/docs/general-intro/osgeolive.rst
index 3ec8608ab..c8da8f7e8 100644
--- a/docs/general-intro/osgeolive.rst
+++ b/docs/general-intro/osgeolive.rst
@@ -73,7 +73,8 @@ For other installations visit `OSgeoLive
OSGeoLive version installed on your system, but the workflow is similar.
From https://download.osgeo.org/livedvd/releases/@OSGeoLive_VERSION@/
-Download *osgeolive-@OSGeoLive_VERSION@alpha3-amd64.iso*
+
+* Download *osgeolive-@OSGeoLive_VERSION@-amd64.iso*
.. image:: /images/osgeolive/get_osgeolive_latest.png
diff --git a/docs/general-intro/overview.rst b/docs/general-intro/overview.rst
index 05a5d0bd7..e8e1ace48 100644
--- a/docs/general-intro/overview.rst
+++ b/docs/general-intro/overview.rst
@@ -16,9 +16,8 @@ Software and Data Overview
This workshop use several free and open source software for geospatial tools.
-Most of the free and open source software for geospatial tools are related to
-other open source software projects and it would not be feasible to list all of
-them.
+Most of the free and open source software for geospatial tools that are related to
+other open source software projects. Here we mention the most important ones.
.. contents:: Chapter Contents
@@ -101,7 +100,7 @@ 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 adequate 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.
diff --git a/docs/images/_dsZWQsq b/docs/images/_dsZWQsq
new file mode 100644
index 000000000..9d897a701
--- /dev/null
+++ b/docs/images/_dsZWQsq
@@ -0,0 +1,83 @@
+
+
+
+ OSGeo
+
+ https://www.osgeo.org/
+ Your Open Source Compass
+ Tue, 19 Dec 2023 17:20:33 +0000
+ en-US
+
+ hourly
+
+ 1
+
+
+
+ https://www.osgeo.org/wp-content/uploads/cropped-osgeo-emblem-rgb-1-32x32.png
+ OSGeo
+ https://www.osgeo.org/
+ 32
+ 32
+
+
+ ETF
+ https://www.osgeo.org/etf/
+
+
+ Wed, 06 Jul 2022 00:26:21 +0000
+
+
+ https://www.osgeo.org/?p=18896
+
+ ETF is an open source testing framework for validating data and APIs in Spatial Data Infrastructures (SDIs). It is used by software solutions and data providers to validate the conformity of geospatial data sets, metadata and APIs. Goals in designing … Continued
+]]>
+ ETF is an open source testing framework for validating data and APIs in Spatial Data Infrastructures (SDIs). It is used by software solutions and data providers to validate the conformity of geospatial data sets, metadata and APIs.
+
Goals in designing the ETF software were to create test reports that are user-friendly and self-explanatory as well as to be able to validate large amounts of data, which can be several hundred GB in size. In order to cover different validation tasks and present them in a unified report, the architecture is modular and different test engines can be used. Currently the following test engines are supported: SoapUI for testing web services, BaseX database for testing XML data, TEAM Engine to validate WFS and OGC Web APIs using the OGC CITE tests, NeoTL Engine for testing WFS, OGC Web APIs and datasets.
+
ETF is the underlying framework used by the INSPIRE Reference Validator to validate metadata, datasets and services against the INSPIRE requirements. ETF is also used extensively in Germany by the Surveying Authorities of the Laender to validate their datasets. Other European Union (EU) Member States are also reusing the ETF to allow their data providers to test resources against national requirements. Finally, some software tools include validation based on the ETF API in their workflow.
+
Core Features
+ Testable resources
+ datasets (up to multiple hundreds GB): GML
+ metadata: XML
+ view services: WMS/WMTS
+ download services: Atom, WFS, WCS, SOS
+ catalogue services: CSW
+
Access
+web-based user interface
+
REST API
+
OpenAPI Specification
+
Java client library
+
Supported test engines
+SoapUI for testing web services
+
BaseX for testing sets of XML documents
+
TEAM Engine to support CITE tests developed using TestNG
+
NeoTL for testing OGC WFS and OGC APIs (in development)
+
Test reports
+user-friendly and self-explanatory
+
downloadable in HTML, XML and JSON
+
Implemented Standards
+Catalogue Service for the Web (CSW)
+]]>
+
+
+
+
+
+
diff --git a/docs/images/logos/CMakeLists.txt b/docs/images/logos/CMakeLists.txt
index 4d1f63a16..223cf1fd0 100644
--- a/docs/images/logos/CMakeLists.txt
+++ b/docs/images/logos/CMakeLists.txt
@@ -11,6 +11,7 @@ set(PGR_WORKSHOP_IMG_FILES
osm2pgrouting.png
pgrouting.png
paragon.png
+ erosion.png
)
diff --git a/docs/images/logos/erosion.png b/docs/images/logos/erosion.png
new file mode 100644
index 000000000..61b9ae3ea
Binary files /dev/null and b/docs/images/logos/erosion.png differ
diff --git a/docs/index.rst b/docs/index.rst
index 3c3968db3..6d384e52b 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -33,17 +33,9 @@ Basic
basic/data.rst
basic/pedestrian.rst
basic/vehicle.rst
+ basic/graph_views.rst
basic/sql_function.rst
basic/plpgsql_function.rst
- basic/appendix.rst
-
-Advanced
-===============================================================================
-.. toctree::
- :numbered:
- :maxdepth: 2
-
- advanced/chapter-12.rst
United Nations Sustainable Development Goals
===============================================================================
@@ -57,7 +49,6 @@ United Nations Sustainable Development Goals
un_sdg/sdg3-health.rst
un_sdg/sdg7-energy.rst
un_sdg/sdg11-cities.rst
- un_sdg/appendix.rst
Interaction with other software
===============================================================================
@@ -69,6 +60,7 @@ Interaction with other software
interactions/chapter-9.rst
interactions/chapter-10.rst
interactions/chapter-11.rst
+ advanced/chapter-12.rst
Examples from the Internet
===============================================================================
diff --git a/docs/interactions/chapter-9.rst b/docs/interactions/chapter-9.rst
index 0669f43e6..499e4333f 100644
--- a/docs/interactions/chapter-9.rst
+++ b/docs/interactions/chapter-9.rst
@@ -95,7 +95,7 @@ It is necessaary to select the column that has a distinct unique value:
Format a Routing Layer
===============================================================================
-#. Choose a routing view, :menuselection:`Right click --> Zoom to Layer`
+#. Choose a routing view, :menuselection:`Right click --> Zoom to Layer`
.. image:: images/chap_QGIS/qgis9.png
:height: 50pt
diff --git a/docs/scripts/basic/chapter_5/all_exercises_5.sql b/docs/scripts/basic/chapter_5/all_exercises_5.sql
index 4c8544ae4..9bf4bc0e6 100644
--- a/docs/scripts/basic/chapter_5/all_exercises_5.sql
+++ b/docs/scripts/basic/chapter_5/all_exercises_5.sql
@@ -7,88 +7,103 @@ ORDER BY osm_id;
\o exercise_5_1.txt
SELECT * FROM pgr_dijkstra(
- '
- SELECT gid AS id,
- source,
- target,
- length AS cost
- FROM ways
- ',
- @ID_1@,
- @ID_3@,
- directed := false);
+ '
+ SELECT gid AS id,
+ source,
+ target,
+ length AS cost -- line 6
+ FROM ways
+ ',
+ @ID_1@, -- line 9
+ @ID_3@, -- line 10
+ directed := false); -- line 11
\o exercise_5_2.txt
SELECT * FROM pgr_dijkstra(
- '
- SELECT gid AS id,
- source,
- target,
- length_m AS cost
- FROM ways
- ',
-ARRAY[@ID_1@,@ID_2@],
-@ID_3@,
-directed := false);
+ '
+ SELECT gid AS id,
+ source,
+ target,
+ length_m AS cost -- line 6
+ FROM ways
+ ',
+ ARRAY[@ID_1@,@ID_2@], -- line 9
+ @ID_3@, -- line 10
+ directed := false);
\o exercise_5_3.txt
SELECT * FROM pgr_dijkstra(
- '
- SELECT gid AS id,
- source,
- target,
- length_m / 1.3 AS cost
- FROM ways
- ',
-@ID_3@,
-ARRAY[@ID_1@,@ID_2@],
-directed := false);
+ '
+ SELECT gid AS id,
+ source,
+ target,
+ length_m / 1.3 AS cost -- line 6
+ FROM ways
+ ',
+ @ID_3@, -- line 9
+ ARRAY[@ID_1@,@ID_2@], -- line 10
+ directed := false);
\o exercise_5_4.txt
SELECT * FROM pgr_dijkstra(
- '
- SELECT gid AS id,
- source,
- target,
- length_m / 1.3 / 60 AS cost
- FROM ways
- ',
-ARRAY[@ID_1@, @ID_2@],
-ARRAY[@ID_4@, @ID_5@],
-directed := false);
+ '
+ SELECT gid AS id,
+ source,
+ target,
+ length_m / 1.3 / 60 AS cost -- line 6
+ FROM ways
+ ',
+ ARRAY[@ID_1@, @ID_2@], -- line 9
+ ARRAY[@ID_4@, @ID_5@], -- line 10
+ directed := false);
\o exercise_5_5.txt
-SELECT *
-FROM pgr_dijkstraCost(
- '
- SELECT gid AS id,
- source,
- target,
- length_m / 1.3 / 60 AS cost
- FROM ways
- ',
-ARRAY[@ID_1@, @ID_2@],
-ARRAY[@ID_4@, @ID_5@],
-directed := false);
+SELECT * FROM pgr_dijkstra(
+ '
+ SELECT gid AS id,
+ source,
+ target,
+ length_m / 1.3 / 60 AS cost
+ FROM ways
+ ',
+ 'SELECT * FROM
+ (VALUES
+ (@ID_1@, @ID_4@), -- line 11
+ (@ID_2@, @ID_5@)) -- line 12
+ AS combinations (source, target)',
+ directed := false);
\o exercise_5_6.txt
-SELECT start_vid, sum(agg_cost)
-FROM pgr_dijkstraCost(
- '
- SELECT gid AS id,
- source,
- target,
- length_m / 1.3 / 60 AS cost
- FROM ways
- ',
- ARRAY[@ID_1@, @ID_2@],
- ARRAY[@ID_4@, @ID_5@],
- directed := false)
+SELECT * FROM pgr_dijkstraCost(
+ '
+ SELECT gid AS id,
+ source,
+ target,
+ length_m / 1.3 / 60 AS cost -- line 6
+ FROM ways
+ ',
+ ARRAY[@ID_1@, @ID_2@], -- line 9
+ ARRAY[@ID_4@, @ID_5@], -- line 10
+ directed := false);
+
+\o exercise_5_7.txt
+
+SELECT start_vid, sum(agg_cost) FROM pgr_dijkstraCost(
+ '
+ SELECT gid AS id,
+ source,
+ target,
+ length_m / 1.3 / 60 AS cost -- line 6
+ FROM ways
+ ',
+ ARRAY[@ID_1@, @ID_2@], -- line 9
+ ARRAY[@ID_4@, @ID_5@], -- line 10
+ directed := false)
GROUP BY start_vid
ORDER BY start_vid;
@@ -97,70 +112,70 @@ ORDER BY start_vid;
SELECT 'Inspecting the results, looking for totals (edge = -1):';
SELECT '- From @ID_1@ to vertex @ID_4@ takes ' || round(agg_cost::numeric, 2) || ' minutes (seq = ' || seq || ')'
- FROM pgr_dijkstra(
- '
- SELECT gid AS id,
- source,
- target,
- length_m / 1.3 / 60 AS cost
- FROM ways
- ',
-ARRAY[@ID_1@, @ID_2@],
-ARRAY[@ID_4@, @ID_5@],
-directed := false)
+FROM pgr_dijkstra(
+ '
+ SELECT gid AS id,
+ source,
+ target,
+ length_m / 1.3 / 60 AS cost
+ FROM ways
+ ',
+ ARRAY[@ID_1@, @ID_2@],
+ ARRAY[@ID_4@, @ID_5@],
+ directed := false)
WHERE edge = -1 AND start_vid = @ID_1@ AND end_vid = @ID_4@;
SELECT '- From @ID_1@ to vertex @ID_5@ takes ' || round(agg_cost::numeric, 2) || ' minutes (seq = ' || seq || ')'
- FROM pgr_dijkstra(
- '
- SELECT gid AS id,
- source,
- target,
- length_m / 1.3 / 60 AS cost
- FROM ways
- ',
-ARRAY[@ID_1@, @ID_2@],
-ARRAY[@ID_4@, @ID_5@],
-directed := false)
+FROM pgr_dijkstra(
+ '
+ SELECT gid AS id,
+ source,
+ target,
+ length_m / 1.3 / 60 AS cost
+ FROM ways
+ ',
+ ARRAY[@ID_1@, @ID_2@],
+ ARRAY[@ID_4@, @ID_5@],
+ directed := false)
WHERE edge = -1 AND start_vid = @ID_1@ AND end_vid = @ID_5@;
SELECT '- From @ID_2@ to vertex @ID_4@ takes ' || round(agg_cost::numeric, 2) || ' minutes (seq = ' || seq || ')'
- FROM pgr_dijkstra(
- '
- SELECT gid AS id,
- source,
- target,
- length_m / 1.3 / 60 AS cost
- FROM ways
- ',
-ARRAY[@ID_1@, @ID_2@],
-ARRAY[@ID_4@, @ID_5@],
-directed := false)
+FROM pgr_dijkstra(
+ '
+ SELECT gid AS id,
+ source,
+ target,
+ length_m / 1.3 / 60 AS cost
+ FROM ways
+ ',
+ ARRAY[@ID_1@, @ID_2@],
+ ARRAY[@ID_4@, @ID_5@],
+ directed := false)
WHERE edge = -1 AND start_vid = @ID_2@ AND end_vid = @ID_4@;
SELECT '- From @ID_2@ to vertex @ID_5@ takes ' || round(agg_cost::numeric, 2) || ' minutes (seq = ' || seq || ')'
- FROM pgr_dijkstra(
- '
- SELECT gid AS id,
- source,
- target,
- length_m / 1.3 / 60 AS cost
- FROM ways
- ',
-ARRAY[@ID_1@, @ID_2@],
-ARRAY[@ID_4@, @ID_5@],
-directed := false)
+FROM pgr_dijkstra(
+ '
+ SELECT gid AS id,
+ source,
+ target,
+ length_m / 1.3 / 60 AS cost
+ FROM ways
+ ',
+ ARRAY[@ID_1@, @ID_2@],
+ ARRAY[@ID_4@, @ID_5@],
+ directed := false)
WHERE edge = -1 AND start_vid = @ID_2@ AND end_vid = @ID_5@;
\o note_2.txt
WITH summary AS (SELECT start_vid, sum(agg_cost)
-FROM pgr_dijkstraCost(
+ FROM pgr_dijkstraCost(
'SELECT gid AS id, source, target, length_m / 1.3 / 60 AS cost FROM ways ',
ARRAY[@ID_1@, @ID_2@], ARRAY[@ID_4@, @ID_5@],
directed := false)
-GROUP BY start_vid
-ORDER BY start_vid),
+ GROUP BY start_vid
+ ORDER BY start_vid),
the_min AS (select min(sum) from summary)
SELECT
'An interpretation of the result can be: In general, it is faster to depart from "' ||
CASE WHEN start_vid = @ID_1@ THEN '@PLACE_1@' WHEN start_vid = @ID_2@ THEN '@PLACE_2@' END
|| '" than from "' ||
-CASE WHEN start_vid = @ID_1@ THEN '@PLACE_2@' WHEN start_vid = @ID_2@ THEN '@PLACE_1@' END
- || '"'
-FROM summary WHERE sum = (SELECT min from the_min);
+ CASE WHEN start_vid = @ID_1@ THEN '@PLACE_2@' WHEN start_vid = @ID_2@ THEN '@PLACE_1@' END
+ || '"'
+ FROM summary WHERE sum = (SELECT min from the_min);
diff --git a/docs/scripts/basic/chapter_5/images.sql b/docs/scripts/basic/chapter_5/images.sql
index b631f14a8..7a820d845 100644
--- a/docs/scripts/basic/chapter_5/images.sql
+++ b/docs/scripts/basic/chapter_5/images.sql
@@ -15,8 +15,8 @@ CREATE VIEW route_png AS
WITH dijkstra AS (
SELECT * FROM pgr_dijkstra(
' SELECT gid AS id, source, target, length AS cost FROM ways ',
+ @ID_1@,
@ID_3@,
- @ID_5@,
directed := false)
)
SELECT seq, the_geom AS geom FROM dijkstra JOIN ways ON(edge = gid);
@@ -25,8 +25,8 @@ CREATE VIEW pedestrian_route1 AS
WITH dijkstra AS (
SELECT * FROM pgr_dijkstra(
' SELECT gid AS id, source, target, length AS cost FROM ways ',
+ @ID_1@,
@ID_3@,
- @ID_5@,
directed := false)
)
SELECT seq, the_geom AS geom FROM dijkstra JOIN ways ON(edge = gid);
@@ -55,7 +55,7 @@ SELECT seq, start_vid, end_vid, the_geom AS geom FROM dijkstra JOIN ways ON(edge
CREATE VIEW pedestrian_route5 AS
WITH dijkstra AS (
-SELECT *
+SELECT start_vid, end_vid, round(agg_cost::numeric,2) AS agg_cost
FROM pgr_dijkstraCost(
' SELECT gid AS id, source, target, length_m / 1.3 / 60 AS cost FROM ways ',
ARRAY[@ID_1@, @ID_2@],
@@ -66,3 +66,11 @@ SELECT row_number() over() AS gid, start_vid, end_vid, agg_cost, ST_MakeLine(v1.
JOIN ways_vertices_pgr AS v1 ON (start_vid = v1.id)
JOIN ways_vertices_pgr AS v2 ON (end_vid = v2.id);
+CREATE VIEW pedestrian_combinations AS
+WITH dijkstra AS (
+ SELECT * FROM pgr_dijkstra(
+ 'SELECT gid AS id, source, target, length_m / 1.3 / 60 AS cost FROM ways',
+ 'SELECT * FROM (VALUES (@ID_1@, @ID_4@), (@ID_2@, @ID_5@)) AS combinations (source, target)',
+ directed := false)
+)
+SELECT seq, start_vid, end_vid, the_geom AS geom FROM dijkstra JOIN ways ON(edge = gid);
diff --git a/docs/scripts/basic/chapter_6/CMakeLists.txt b/docs/scripts/basic/chapter_6/CMakeLists.txt
index eba986465..bac31a6d2 100644
--- a/docs/scripts/basic/chapter_6/CMakeLists.txt
+++ b/docs/scripts/basic/chapter_6/CMakeLists.txt
@@ -19,8 +19,15 @@ add_custom_command(
section-6.1.1.txt
section-6.1.2.txt
section-6.1.3.txt
- COMMAND psql -d city_routing -f all_exercises.sql
- COMMAND psql -d city_routing -f images.sql
- COMMENT "running chapter 6 scripts"
- DEPENDS section-6.1.sql)
+ section-6.2-1.txt
+ section-6.2-2.txt
+ section-6.2-3.txt
+ section-6.2.1.txt
+ section-6.2.2-1.txt
+ section-6.2.2-2.txt
+ section-6.6.txt
+ COMMAND psql -d city_routing -f all_exercises.sql
+ COMMAND psql -d city_routing -f images.sql
+ COMMENT "running chapter 6 scripts"
+ DEPENDS section-6.1.sql)
diff --git a/docs/scripts/basic/chapter_6/all_exercises.sql b/docs/scripts/basic/chapter_6/all_exercises.sql
index c2bffb738..793a6e927 100644
--- a/docs/scripts/basic/chapter_6/all_exercises.sql
+++ b/docs/scripts/basic/chapter_6/all_exercises.sql
@@ -2,30 +2,30 @@
SELECT count(*)
FROM ways
-WHERE cost < 0;
+WHERE cost < 0; -- line 3
\o section-6.1-2.txt
SELECT count(*)
FROM ways
-WHERE reverse_cost < 0;
+WHERE reverse_cost < 0; -- line 3
\o section-6.1.1.txt
SELECT * FROM pgr_dijkstra(
'
- SELECT gid AS id,
- source,
- target,
- cost,
- reverse_cost
- FROM ways
+ SELECT gid AS id,
+ source,
+ target,
+ cost, -- line 6
+ reverse_cost -- line 7
+ FROM ways
',
-@ID_1@,
-@ID_3@,
-directed := true);
+ @ID_1@, -- line 10
+ @ID_3@, -- line 11
+ directed := true);
\o section-6.1.2.txt
@@ -34,13 +34,13 @@ SELECT * FROM pgr_dijkstra(
SELECT gid AS id,
source,
target,
- cost,
- reverse_cost
+ cost_s AS cost, -- line 6
+ reverse_cost_s AS reverse_cost -- line 7
FROM ways
',
-@ID_3@,
-@ID_1@,
-directed := true);
+ @ID_3@, -- line 10
+ @ID_1@, -- line 11
+ directed := true);
\o section-6.1.3.txt
@@ -49,12 +49,12 @@ SELECT * FROM pgr_dijkstra(
SELECT gid AS id,
source,
target,
- cost_s / 3600 * 100 AS cost,
- reverse_cost_s / 3600 * 100 AS reverse_cost
+ cost_s / 3600 * 100 AS cost, -- line 6
+ reverse_cost_s / 3600 * 100 AS reverse_cost -- line 7
FROM ways
',
-@ID_1@,
-@ID_3@);
+ @ID_3@, -- line 10
+ @ID_1@); -- line 11
\o section-6.2-1.txt
\dS+ configuration
@@ -74,7 +74,7 @@ ORDER BY tag_id;
ALTER TABLE configuration ADD COLUMN penalty FLOAT;
-- No penalty
-UPDATE configuration SET penalty=1;
+UPDATE configuration SET penalty=1; -- line 3
SELECT *
@@ -83,25 +83,27 @@ FROM pgr_dijkstra(
SELECT gid AS id,
source,
target,
- cost_s * penalty AS cost,
- reverse_cost_s * penalty AS reverse_cost
- FROM ways JOIN configuration
- USING (tag_id)
+ cost_s * penalty AS cost, -- line 12
+ reverse_cost_s * penalty AS reverse_cost -- line 13
+ FROM ways JOIN configuration -- line 14
+ USING (tag_id) -- line 15
',
-@ID_3@,
-@ID_1@);
+ @ID_3@, -- line 17
+ @ID_1@); -- line 18
\o section-6.2.2-1.txt
-- Not including pedestrian ways
-UPDATE configuration SET penalty=-1.0 WHERE tag_value IN ('steps','footway','pedestrian');
+UPDATE configuration SET penalty=-1.0
+WHERE tag_value IN ('steps','footway','pedestrian','cycleway');
--- Penalizing with 5 times the costs
+-- Penalizing with 5 times the costs the unknown
UPDATE configuration SET penalty=5 WHERE tag_value IN ('unclassified');
-- Encuraging the use of "fast" roads
UPDATE configuration SET penalty=0.5 WHERE tag_value IN ('tertiary');
-UPDATE configuration SET penalty=0.3 WHERE tag_value IN (
+UPDATE configuration SET penalty=0.3
+WHERE tag_value IN (
'primary','primary_link',
'trunk','trunk_link',
'motorway','motorway_junction','motorway_link',
@@ -112,12 +114,35 @@ UPDATE configuration SET penalty=0.3 WHERE tag_value IN (
SELECT * FROM pgr_dijkstra(
'
SELECT gid AS id,
+ source,
+ target,
+ cost_s * penalty AS cost, -- line 6
+ reverse_cost_s * penalty AS reverse_cost -- line 7
+ FROM ways JOIN configuration -- line 8
+ USING (tag_id) -- line 9
+ ',
+ @ID_3@, -- line 11
+ @ID_1@); -- line 12
+
+\o section-6.6.txt
+
+SELECT * FROM pgr_dijkstra(
+ $$
+ SELECT gid AS id, source, target, cost_s AS cost, reverse_cost_s AS reverse_cost
+ FROM (
+ -- penalized query
+ SELECT edge AS gid FROM pgr_dijkstra( -- line 6
+ '
+ SELECT gid AS id,
source,
target,
cost_s * penalty AS cost,
reverse_cost_s * penalty AS reverse_cost
- FROM ways JOIN configuration
- USING (tag_id)
- ',
-@ID_3@,
-@ID_1@);
+ FROM ways JOIN configuration
+ USING (tag_id)
+ ',
+ @ID_3@,
+ @ID_1@) ) AS edges_in_route
+ JOIN ways USING (gid) -- line 18
+ $$,
+ @ID_3@, @ID_1@);
diff --git a/docs/scripts/basic/chapter_6/images.sql b/docs/scripts/basic/chapter_6/images.sql
index bd4bad2f6..140840da1 100644
--- a/docs/scripts/basic/chapter_6/images.sql
+++ b/docs/scripts/basic/chapter_6/images.sql
@@ -26,7 +26,7 @@ UPDATE configuration SET penalty=1;
-- Not including pedestrian ways
-UPDATE configuration SET penalty=-1.0 WHERE tag_value IN ('steps','footway','pedestrian');
+UPDATE configuration SET penalty=-1.0 WHERE tag_value IN ('steps','footway','pedestrian','cycleway');
-- Penalizing with 5 times the costs
UPDATE configuration SET penalty=5 WHERE tag_value IN ('unclassified');
@@ -90,3 +90,6 @@ SELECT seq,
AS name,
start_vid, end_vid, the_geom AS geom
FROM dijkstra JOIN ways ON(edge = gid);
+
+CREATE VIEW pedestrian_only_roads AS
+SELECT * FROM ways where tag_id in (119, 122, 114, 118);
diff --git a/docs/scripts/basic/chapter_7/all_sections.sql b/docs/scripts/basic/chapter_7/all_sections.sql
index ba0b2cf4e..231a5cb3b 100644
--- a/docs/scripts/basic/chapter_7/all_sections.sql
+++ b/docs/scripts/basic/chapter_7/all_sections.sql
@@ -4,25 +4,90 @@ DROP VIEW IF EXISTS taxi_net CASCADE;
DROP MATERIALIZED VIEW IF EXISTS walk_net CASCADE;
DROP FUNCTION IF EXISTS wrk_dijkstra(regclass, bigint, bigint);
-\o exercise_7_1.txt
+\o create_vertices.txt
+
+SELECT * INTO ways_vertices
+FROM pgr_extractVertices(
+ 'SELECT gid AS id, source_osm AS source, target_osm AS target
+ FROM ways ORDER BY id');
+
+\o vertices_description.txt
+\dS+ ways_vertices
+\o selected_rows.txt
+SELECT * FROM ways_vertices Limit 10;
+
+\o fill_columns_1.txt
+SELECT count(*) FROM ways_vertices WHERE geom IS NULL;
+\o fill_columns_2.txt
+UPDATE ways_vertices SET geom = ST_startPoint(the_geom) FROM ways WHERE source_osm = id;
+\o fill_columns_3.txt
+SELECT count(*) FROM ways_vertices WHERE geom IS NULL;
+\o fill_columns_4.txt
+UPDATE ways_vertices SET geom = ST_endPoint(the_geom) FROM ways WHERE geom IS NULL AND target_osm = id;
+\o fill_columns_5.txt
+SELECT count(*) FROM ways_vertices WHERE geom IS NULL;
+\o fill_columns_6.txt
+UPDATE ways_vertices set (x,y) = (ST_X(geom), ST_Y(geom));
+
+
+\o set_components1.txt
+ALTER TABLE ways ADD COLUMN component BIGINT;
+ALTER TABLE ways_vertices ADD COLUMN component BIGINT;
+
+\o set_components2.txt
+UPDATE ways_vertices SET component = c.component
+FROM (SELECT * FROM pgr_connectedComponents(
+ 'SELECT gid as id,
+ source_osm AS source,
+ target_osm AS target,
+ cost, reverse_cost FROM ways'
+)) AS c
+WHERE id = node;
+\o set_components3.txt
+
+UPDATE ways SET component = v.component
+FROM (SELECT id, component FROM ways_vertices) AS v
+WHERE source_osm = v.id;
+
+\o see_components1.txt
+SELECT count(DISTINCT component) FROM ways_vertices;
+\o see_components2.txt
+SELECT count(DISTINCT component) FROM ways;
+\o see_components3.txt
+SELECT component, count(*) FROM ways GROUP BY component
+ORDER BY count DESC LIMIT 10;
+\o see_components4.txt
+WITH
+all_components AS (SELECT component, count(*) FROM ways GROUP BY component),
+max_component AS (SELECT max(count) from all_components)
+SELECT component FROM all_components WHERE count = (SELECT max FROM max_component);
+\o create_vehicle_net1.txt
-- DROP VIEW vehicle_net CASCADE;
CREATE VIEW vehicle_net AS
- SELECT
- gid AS id,
- source_osm AS source, target_osm AS target,
- cost_s AS cost, reverse_cost_s AS reverse_cost,
- name, length_m, the_geom
- FROM ways JOIN configuration AS c
- USING (tag_id)
- WHERE c.tag_value NOT IN ('steps','footway','path');
-
--- Verification1
+
+WITH
+all_components AS (SELECT component, count(*) FROM ways GROUP BY component), -- line 6
+max_component AS (SELECT max(count) from all_components),
+the_component AS (
+ SELECT component FROM all_components
+ WHERE count = (SELECT max FROM max_component))
+
+SELECT
+ gid AS id,
+ source_osm AS source, target_osm AS target, -- line 14
+ cost_s AS cost, reverse_cost_s AS reverse_cost,
+ name, length_m AS length, the_geom AS geom
+FROM ways JOIN the_component USING (component) JOIN configuration USING (tag_id)
+WHERE tag_value NOT IN ('steps','footway','path','cycleway'); -- line 18
+
+\o create_vehicle_net2.txt
SELECT count(*) FROM ways;
SELECT count(*) FROM vehicle_net;
-
-\o exercise_7_2.txt
+\o create_vehicle_net3.txt
+\dS+ vehicle_net
+\o create_taxi_net1.txt
-- DROP VIEW taxi_net;
@@ -30,139 +95,185 @@ CREATE VIEW taxi_net AS
SELECT
id,
source, target,
- cost * 0.90 AS cost, reverse_cost * 0.90 AS reverse_cost,
- name, length_m, the_geom
+ cost * 1.10 AS cost, reverse_cost * 1.10 AS reverse_cost,
+ name, length, geom
FROM vehicle_net
- WHERE vehicle_net.the_geom && ST_MakeEnvelope(@PGR_WORKSHOP_LITTLE_NET_BBOX@);
+ WHERE vehicle_net.geom && ST_MakeEnvelope(@PGR_WORKSHOP_LITTLE_NET_BBOX@);
--- Verification2
+\o create_taxi_net2.txt
SELECT count(*) FROM taxi_net;
+\o create_taxi_net3.txt
+\dS+ taxi_net
+\o create_walk_net1.txt
+-- DROP MATERIALIZED VIEW walk_net CASCADE;
-\o exercise_7_3.txt
+CREATE MATERIALIZED VIEW walk_net AS
--- DROP MATERIALIZED VIEW walk_net;
+WITH
+allc AS (SELECT component, count(*) FROM ways GROUP BY component),
+maxcount AS (SELECT max(count) from allc),
+the_component AS (SELECT component FROM allc WHERE count = (SELECT max FROM maxcount))
+
+SELECT
+ gid AS id,
+ source_osm AS source, target_osm AS target,
+ cost_s AS cost, reverse_cost_s AS reverse_cost,
+ name, length_m AS length, the_geom AS geom
+FROM ways JOIN the_component USING (component) JOIN configuration USING (tag_id)
+WHERE tag_value NOT IN ('motorway','primary','secondary');
+
+\o create_walk_net2.txt
-CREATE MATERIALIZED VIEW walk_net AS
- SELECT
- gid AS id,
- source_osm AS source, target_osm AS target,
- length_m / 2 AS cost, length_m / 2 AS reverse_cost,
- name, length_m, the_geom
- FROM ways JOIN configuration AS c
- USING (tag_id)
- WHERE c.tag_value NOT IN ('motorway','primary','secondary');
-
--- Verification3
SELECT count(*) FROM walk_net;
-\o exercise_7_4.txt
+\o create_walk_net3.txt
+\dS+ walk_net
+\o test_view1.txt
-SELECT seq, edge AS id, cost AS seconds
-FROM pgr_dijkstra(
- 'SELECT * FROM vehicle_net',
- @CH7_OSMID_1@, @CH7_OSMID_2@);
+SELECT start_vid, end_vid, agg_cost AS seconds
+FROM pgr_dijkstraCost(
+ 'SELECT * FROM vehicle_net',
+ @CH7_OSMID_1@, @CH7_OSMID_2@);
--- For taxi_net
+\o test_view2.txt
-SELECT seq, edge AS id, cost AS seconds
-FROM pgr_dijkstra(
- 'SELECT * FROM taxi_net',
- @CH7_OSMID_1@, @CH7_OSMID_2@);
+SELECT start_vid, end_vid, agg_cost AS seconds
+FROM pgr_dijkstraCost(
+ 'SELECT * FROM taxi_net',
+ @CH7_OSMID_1@, @CH7_OSMID_2@);
--- For walk_net
+\o test_view3.txt
-SELECT seq, edge AS id, cost AS seconds
-FROM pgr_dijkstra(
- 'SELECT * FROM walk_net',
- @CH7_OSMID_1@, @CH7_OSMID_2@);
+SELECT start_vid, end_vid, agg_cost AS seconds
+FROM pgr_dijkstraCost(
+ 'SELECT * FROM walk_net',
+ @CH7_OSMID_1@, @CH7_OSMID_2@);
\o exercise_7_5.txt
SELECT
- results.*,
- name, length_m
+ seq, id, seconds, name, length
FROM (
- SELECT seq, edge AS id, cost AS seconds
+ SELECT seq, edge AS id, node, cost AS seconds
FROM pgr_dijkstra(
'SELECT * FROM vehicle_net',
@CH7_OSMID_1@, @CH7_OSMID_2@)
) AS results
-LEFT JOIN vehicle_net
- USING (id)
+LEFT JOIN vehicle_net USING (id)
ORDER BY seq;
\o exercise_7_6.txt
-WITH results AS (
- SELECT seq, edge AS id, cost AS seconds
- FROM pgr_dijkstra(
- 'SELECT * FROM vehicle_net',
- @CH7_OSMID_1@, @CH7_OSMID_2@)
- )
+WITH
+results AS ( -- line 2
+ SELECT seq, edge AS id, node, cost AS seconds
+ FROM pgr_dijkstra('SELECT * FROM vehicle_net', @CH7_OSMID_1@, @CH7_OSMID_2@)
+)
SELECT
- results.*,
- ST_AsText(the_geom) AS route_readable
+ -- from previous excercise
+ seq, -- line 8
+ -- id, seconds, name, length,
+
+ -- additionally get
+ ST_AsText(geom) AS route_readable --line 12
FROM results
-LEFT JOIN vehicle_net
- USING (id)
+LEFT JOIN vehicle_net USING (id) -- line 14
ORDER BY seq;
-
\o exercise_7_7.txt
WITH results AS (
- SELECT seq, edge AS id, cost AS seconds
- FROM pgr_dijkstra(
- 'SELECT * FROM vehicle_net',
- @CH7_OSMID_1@, @CH7_OSMID_2@)
+ SELECT seq, edge AS id, node, cost AS seconds
+ FROM pgr_dijkstra('SELECT * FROM vehicle_net', @CH7_OSMID_1@, @CH7_OSMID_2@)
)
SELECT
- results.*,
- the_geom AS route_geom
+ -- from previous excercise
+ seq,
+ -- id, seconds, name, length, ST_AsText(geom) AS route_readable,
+
+ -- additionally get
+ geom AS route_geom
FROM results
LEFT JOIN vehicle_net
USING (id)
ORDER BY seq;
+\o wrong_directionality.txt
+
+WITH
+results AS (
+ SELECT seq, edge AS id, node, cost AS seconds
+ FROM pgr_dijkstra('SELECT * FROM vehicle_net', @CH7_OSMID_1@, @CH7_OSMID_2@)
+),
+compare AS (
+ SELECT seq, id, lead(seq) over(ORDER BY seq) AS next_seq,
+ ST_AsText(ST_endPoint(geom)) AS id_end,
+ ST_AsText(ST_startPoint(lead(geom) over(ORDER BY seq))) AS next_id_start
+
+ FROM results LEFT JOIN vehicle_net USING (id)
+ ORDER BY seq)
+SELECT * FROM compare WHERE id_end != next_id_start;
+
\o exercise_7_8.txt
WITH results AS (
- SELECT seq, edge AS id, cost AS seconds,
- node
- FROM pgr_dijkstra(
- 'SELECT * FROM vehicle_net',
- @CH7_OSMID_1@, @CH7_OSMID_2@)
+ SELECT seq, edge AS id, node, cost AS seconds
+ FROM pgr_dijkstra('SELECT * FROM vehicle_net', @CH7_OSMID_1@, @CH7_OSMID_2@)
)
SELECT
- seq, id, seconds,
+ -- from previous excercise
+ seq,
+ -- id, seconds, name, length,
+
+ -- fixing the directionality
CASE
- WHEN node = source THEN ST_AsText(the_geom)
- ELSE ST_AsText(ST_Reverse(the_geom))
+ WHEN node = source THEN ST_AsText(geom)
+ ELSE ST_AsText(ST_Reverse(geom))
END AS route_readable,
CASE
- WHEN node = source THEN the_geom
- ELSE ST_Reverse(the_geom)
+ WHEN node = source THEN geom
+ ELSE ST_Reverse(geom)
END AS route_geom
FROM results
LEFT JOIN vehicle_net USING (id)
ORDER BY seq;
+\o good_directionality.txt
+
+WITH
+results AS (
+ SELECT seq, edge AS id, node, cost AS seconds
+ FROM pgr_dijkstra('SELECT * FROM vehicle_net', 5661895682, 10982869752)
+),
+fix AS (
+ SELECT seq, id,
+ CASE
+ WHEN node = source THEN geom
+ ELSE ST_Reverse(geom)
+ END AS geom
+FROM results LEFT JOIN vehicle_net USING (id)
+),
+compare AS (
+ SELECT seq, id, lead(geom) over(ORDER BY seq) AS next_id,
+ ST_AsText(ST_endPoint(geom)) AS id_end, ST_AsText(ST_startPoint(lead(geom) over(ORDER BY seq))) AS next_id_start
+
+FROM fix
+ORDER BY seq)
+SELECT * FROM compare WHERE id_end != next_id_start;
+
\o exercise_7_9.txt
WITH
results AS (
- SELECT seq, edge AS id, cost AS seconds,
- node
- FROM pgr_dijkstra(
- 'SELECT * FROM vehicle_net',
- @CH7_OSMID_1@, @CH7_OSMID_2@)
+ SELECT seq, edge AS id, node, cost AS seconds
+ FROM pgr_dijkstra('SELECT * FROM vehicle_net', @CH7_OSMID_1@, @CH7_OSMID_2@)
),
additional AS (
SELECT
- seq, id, seconds,
+ seq, id, seconds, name, length,
CASE
WHEN node = source THEN ST_AsText(the_geom)
ELSE ST_AsText(ST_Reverse(the_geom))
@@ -176,7 +287,11 @@ additional AS (
FROM results
LEFT JOIN ways ON (gid = id)
)
-SELECT seq, id, seconds,
+SELECT
+ seq,
+ -- from previous excercise
+ -- id, seconds, name, length, route_readable, route_geom
+
degrees(ST_azimuth(ST_StartPoint(route_geom), ST_EndPoint(route_geom))) AS azimuth
FROM additional
ORDER BY seq;
@@ -230,14 +345,16 @@ $BODY$
ORDER BY seq;
$BODY$
LANGUAGE 'sql';
-\o exercise_7_11.txt
-
-SELECT *
+\o using_fn1.txt
+SELECT DISTINCT name
FROM wrk_dijkstra('vehicle_net', @CH7_OSMID_1@, @CH7_OSMID_2@);
-SELECT *
-FROM wrk_dijkstra('taxi_net', @CH7_OSMID_1@, @CH7_OSMID_2@);
+\o using_fn2.txt
+SELECT name, sum(seconds)
+FROM wrk_dijkstra('taxi_net', @CH7_OSMID_1@, @CH7_OSMID_2@)
+GROUP BY name;
+\o using_fn3.txt
SELECT *
FROM wrk_dijkstra('walk_net', @CH7_OSMID_1@, @CH7_OSMID_2@);
diff --git a/docs/scripts/basic/chapter_7/images.sql b/docs/scripts/basic/chapter_7/images.sql
index 5cebf9f1d..49841fc75 100644
--- a/docs/scripts/basic/chapter_7/images.sql
+++ b/docs/scripts/basic/chapter_7/images.sql
@@ -1,5 +1,5 @@
-DROP FUNCTION wrk_image;
-DROP VIEW chap7_view;
+DROP FUNCTION IF EXISTS wrk_image;
+DROP VIEW IF EXISTS chap7_view;
CREATE OR REPLACE FUNCTION wrk_image(
IN edges_subset REGCLASS,
diff --git a/docs/scripts/basic/chapter_8/all-sections-8.sql b/docs/scripts/basic/chapter_8/all-sections-8.sql
index 6f60a4f78..db67b00e9 100644
--- a/docs/scripts/basic/chapter_8/all-sections-8.sql
+++ b/docs/scripts/basic/chapter_8/all-sections-8.sql
@@ -6,128 +6,69 @@ FROM (
SELECT 2, ST_SetSRID(ST_Point(@POINT2_LON@, @POINT2_LAT@), 4326)
) AS info;
-\o exercise_8_1_1.txt
-
-SELECT count(*)
-FROM ways_vertices_pgr;
-
-\o exercise_8_1_2.txt
-
-SELECT count(*)
-FROM (
- SELECT source
- FROM vehicle_net
-
- UNION
-
- SELECT target
- FROM vehicle_net
-) AS id_list;
-
-\o exercise_8_1_3.txt
-
-SELECT count(*)
-FROM (
- SELECT source
- FROM taxi_net
-
- UNION
-
- SELECT target
- FROM taxi_net
-) AS id_list;
-
-\o exercise_8_1_4.txt
-
-SELECT count(*)
-FROM (
- SELECT source
- FROM walk_net
-
- UNION
-
- SELECT target
- FROM walk_net
-) AS id_list;
-
-\o exercise_8_2_1.txt
-
-WITH id_list AS (
- SELECT source AS id
- FROM vehicle_net
-
- UNION
-
- SELECT target
- FROM vehicle_net)
-
-SELECT id_list.id, the_geom
-INTO vehicle_net_vertices_pgr
-FROM id_list
-JOIN ways_vertices_pgr ON (id_list.id = osm_id);
-
-\o exercise_8_2_2.txt
-
-WITH id_list AS (
- SELECT source AS id
- FROM taxi_net
-
- UNION
-
- SELECT target
- FROM taxi_net)
-
-SELECT id_list.id, the_geom
-INTO taxi_net_vertices_pgr
-FROM id_list
-JOIN ways_vertices_pgr ON (id_list.id = osm_id);
-
-\o exercise_8_2_3.txt
-
-WITH id_list AS (
- SELECT source AS id
- FROM walk_net
-
- UNION
-
- SELECT target
- FROM walk_net)
-
-SELECT id_list.id, the_geom
-INTO walk_net_vertices_pgr
-FROM id_list
-JOIN ways_vertices_pgr ON (id_list.id = osm_id);
-
+\o created_points.txt
+
+SELECT * FROM points;
+
+\o views_vertices1.txt
+
+SELECT * INTO vehicle_net_vertices
+FROM pgr_extractVertices(
+ 'SELECT id, source, target
+ FROM vehicle_net ORDER BY id');
+
+UPDATE vehicle_net_vertices AS v
+SET (x,y,geom) = (w.x, w.y, w.geom)
+FROM ways_vertices AS w WHERE v.id = w.id;
+
+\o views_vertices2.txt
+SELECT * INTO taxi_net_vertices
+FROM pgr_extractVertices(
+ 'SELECT id, source, target
+ FROM taxi_net ORDER BY id');
+
+UPDATE taxi_net_vertices AS v
+SET (x,y,geom) = (w.x, w.y, w.geom)
+FROM ways_vertices AS w WHERE v.id = w.id;
+\o views_vertices3.txt
+SELECT * INTO walk_net_vertices
+FROM pgr_extractVertices(
+ 'SELECT id, source, target
+ FROM walk_net ORDER BY id');
+
+UPDATE walk_net_vertices AS v
+SET (x,y,geom) = (w.x, w.y, w.geom)
+FROM ways_vertices AS w WHERE v.id = w.id;
\o exercise_8_3_1.txt
-SELECT osm_id
-FROM ways_vertices_pgr
-ORDER BY the_geom <-> ST_SetSRID(ST_Point(@POINT1_LON@, @POINT1_LAT@), 4326)
+SELECT id
+FROM ways_vertices
+ORDER BY geom <-> ST_SetSRID(ST_Point(@POINT1_LON@, @POINT1_LAT@), 4326)
LIMIT 1;
\o exercise_8_3_2.txt
SELECT id
-FROM vehicle_net_vertices_pgr
-ORDER BY the_geom <-> ST_SetSRID(ST_Point(@POINT1_LON@, @POINT1_LAT@), 4326)
+FROM vehicle_net_vertices
+ORDER BY geom <-> ST_SetSRID(ST_Point(@POINT1_LON@, @POINT1_LAT@), 4326)
LIMIT 1;
\o exercise_8_3_3.txt
SELECT id
-FROM taxi_net_vertices_pgr
-ORDER BY the_geom <-> ST_SetSRID(ST_Point(@POINT1_LON@, @POINT1_LAT@), 4326)
+FROM taxi_net_vertices
+ORDER BY geom <-> ST_SetSRID(ST_Point(@POINT1_LON@, @POINT1_LAT@), 4326)
LIMIT 1;
\o exercise_8_3_4.txt
SELECT id
-FROM walk_net_vertices_pgr
-ORDER BY the_geom <-> ST_SetSRID(ST_Point(@POINT1_LON@, @POINT1_LAT@), 4326)
+FROM walk_net_vertices
+ORDER BY geom <-> ST_SetSRID(ST_Point(@POINT1_LON@, @POINT1_LAT@), 4326)
LIMIT 1;
\o exercise_8_4.txt
-CREATE OR REPLACE FUNCTION wrk_NearestOSM(
+CREATE OR REPLACE FUNCTION wrk_Nearest(
IN vertex_table REGCLASS,
IN lat NUMERIC,
IN lon NUMERIC)
@@ -140,9 +81,7 @@ BEGIN
$$
SELECT id
FROM %1$I
- ORDER BY the_geom <-> ST_SetSRID(
- ST_Point(%3$s, %2$s),
- 4326)
+ ORDER BY geom <-> ST_SetSRID(ST_Point(%3$s, %2$s), 4326)
LIMIT 1
$$,
vertex_table, lat, lon)
@@ -154,27 +93,19 @@ $BODY$
LANGUAGE 'plpgsql';
\o exercise_8_5_1.txt
-SELECT wrk_NearestOSM(
- 'ways_vertices_pgr',
- @POINT1_LAT@, @POINT1_LON@);
+SELECT wrk_Nearest('ways_vertices', @POINT1_LAT@, @POINT1_LON@);
\o exercise_8_5_2.txt
-SELECT wrk_NearestOSM(
- 'vehicle_net_vertices_pgr',
- @POINT1_LAT@, @POINT1_LON@);
+SELECT wrk_Nearest('vehicle_net_vertices', @POINT1_LAT@, @POINT1_LON@);
\o exercise_8_5_3.txt
-SELECT wrk_NearestOSM(
- 'taxi_net_vertices_pgr',
- @POINT1_LAT@, @POINT1_LON@);
+SELECT wrk_Nearest('taxi_net_vertices', @POINT1_LAT@, @POINT1_LON@);
\o exercise_8_5_4.txt
-SELECT wrk_NearestOSM(
- 'walk_net_vertices_pgr',
- @POINT1_LAT@, @POINT1_LON@);
+SELECT wrk_Nearest('walk_net_vertices', @POINT1_LAT@, @POINT1_LON@);
\o exercise_8_6.txt
CREATE OR REPLACE FUNCTION wrk_fromAtoB(
@@ -203,18 +134,16 @@ BEGIN
SELECT *
FROM wrk_dijkstra(
'%1$I',
- (SELECT wrk_NearestOSM(
- '%1$I_vertices_pgr',
- %2$s, %3$s)),
- (SELECT wrk_NearestOSM('%1$I_vertices_pgr', %4$s, %5$s))
+ (SELECT wrk_Nearest('%1$I_vertices', %2$s, %3$s)),
+ (SELECT wrk_Nearest('%1$I_vertices', %4$s, %5$s))
)
$$,
- edges_subset,
- lat1,lon1,
- lat2,lon2);
+ -- Subtitutions on the query are in order
+ edges_subset, lat1, lon1, lat2, lon2);
IF do_debug THEN
- RAISE WARNING '%', final_query;
+ RAISE NOTICE '%', final_query;
+ RETURN;
END IF;
RETURN QUERY EXECUTE final_query;
END;
@@ -222,14 +151,16 @@ $BODY$
LANGUAGE 'plpgsql';
\o exercise_8_7_1.txt
-SELECT * FROM wrk_fromAtoB(
+SELECT DISTINCT name
+FROM wrk_fromAtoB(
'vehicle_net',
@POINT1_LAT@, @POINT1_LON@,
@POINT2_LAT@, @POINT2_LON@);
\o exercise_8_7_2.txt
-SELECT * FROM wrk_fromAtoB(
+SELECT *
+FROM wrk_fromAtoB(
'taxi_net',
@POINT1_LAT@, @POINT1_LON@,
@POINT2_LAT@, @POINT2_LON@,
@@ -244,8 +175,7 @@ FROM wrk_fromAtoB(
@POINT1_LAT@, @POINT1_LON@,
@POINT2_LAT@, @POINT2_LON@);
-SELECT *
-FROM example;
+SELECT * FROM example;
\o
diff --git a/docs/scripts/get_data/get_all_data.sh b/docs/scripts/get_data/get_all_data.sh
index 2b0ad4a90..1f026bce2 100755
--- a/docs/scripts/get_data/get_all_data.sh
+++ b/docs/scripts/get_data/get_all_data.sh
@@ -3,22 +3,16 @@ set -e
# 4.2.2 from-here
CITY="@PGR_WORKSHOP_CITY_FILE@"
-wget -N --progress=dot:mega "https://download.osgeo.org/livedvd/16/osm/$CITY.osm.bz2"
-
-bunzip2 -f "$CITY.osm.bz2"
+wget -N --progress=dot:mega "https://download.osgeo.org/livedvd/17/osm/@PGR_WORKSHOP_CITY_FILE@.osm.bz2"
+bunzip2 -f "@PGR_WORKSHOP_CITY_FILE@.osm.bz2"
# 4.2.2 to-here
-echo "${CITY}"
# mumbai data from-here
-CITY="mumbai"
-wget -N --progress=dot:mega "https://download.osgeo.org/pgrouting/workshops/$CITY.osm.bz2"
-bunzip2 -f "$CITY.osm.bz2"
+wget -N --progress=dot:mega "https://download.osgeo.org/pgrouting/workshops/mumbai.osm.bz2"
+bunzip2 -f "mumbai.osm.bz2"
# mumbai data to-here
-echo "${CITY}"
# bangladesh data from-here
-CITY="bangladesh"
-wget -N --progress=dot:mega "https://download.osgeo.org/pgrouting/workshops/$CITY.osm.bz2"
-bunzip2 -f "$CITY.osm.bz2"
+wget -N --progress=dot:mega "https://download.osgeo.org/pgrouting/workshops/bangladesh.osm.bz2"
+bunzip2 -f "bangladesh.osm.bz2"
# bangladesh data to-here
-echo "${CITY}"
diff --git a/docs/scripts/get_data/process_osgeolive_data.sh b/docs/scripts/get_data/process_osgeolive_data.sh
index ff2adc6e2..29ea33118 100755
--- a/docs/scripts/get_data/process_osgeolive_data.sh
+++ b/docs/scripts/get_data/process_osgeolive_data.sh
@@ -40,3 +40,6 @@ echo 4.3.1 from-here
--clean
echo 4.3.1 to-here
+echo remove_faulty_ways_start
+psql -c 'DELETE FROM ways WHERE length_m IS NULL;' -d city_routing
+echo remove_faulty_ways_end
diff --git a/docs/scripts/un_sdg/sdg11/all_exercises_sdg11.sql b/docs/scripts/un_sdg/sdg11/all_exercises_sdg11.sql
index c17581c4a..de23bea73 100644
--- a/docs/scripts/un_sdg/sdg11/all_exercises_sdg11.sql
+++ b/docs/scripts/un_sdg/sdg11/all_exercises_sdg11.sql
@@ -1,74 +1,107 @@
--- Enumerate all the schemas
-\dn
+\o create_city1.txt
+CREATE TABLE bangladesh (
+ id BIGINT,
+ name TEXT,
+ geom geometry,
+ city_buffer geometry
+);
--- Show the current search path
-SHOW search_path;
+\o create_city2.txt
--- Set the search path
-SET search_path TO waterways,public;
-SHOW search_path;
+INSERT INTO bangladesh(id, name, geom) VALUES
+(5, 'Munshigang', ST_SetSRID(ST_Point(89.1967, 22.2675), 4326));
+\o create_city3.txt
+
+UPDATE bangladesh
+SET city_buffer = ST_Buffer((geom),0.005)
+WHERE name = 'Munshigang';
--- Enumerate all the tables
+\o create_city4.txt
+\dS+ bangladesh
+\o set_path.txt
+SET search_path TO waterways,public;
+SHOW search_path;
+\o get_extensions.txt
+\dx
+\o get_tables.txt
\dt
-\o exercise_1.txt
-CREATE TABLE city_vertex (id BIGINT, name TEXT, geom geometry);
-INSERT INTO city_vertex(id, name, geom) VALUES (
-5,'Munshigang', ST_SetSRID(ST_Point(89.1967,22.2675),4326));
\o exercise_6.txt
+
SELECT count(*) FROM waterways_ways;
-\o exercise_7.txt
-DELETE FROM waterways_ways
-WHERE osm_id
+
+\o delete1.txt
+
+DELETE FROM waterways_ways
+WHERE osm_id
IN (721133202, 908102930, 749173392, 652172284, 126774195, 720395312);
-\o exercise_8.txt
--- Add a column for storing the component
-ALTER TABLE waterways_ways_vertices_pgr
-ADD COLUMN component INTEGER;
-ALTER TABLE waterways_ways
-ADD COLUMN component INTEGER;
--- Get the Connected Components of Waterways
-UPDATE waterways_ways_vertices_pgr SET component = subquery.component
-FROM (SELECT * FROM pgr_connectedComponents(
-'SELECT gid AS id, source, target, cost, reverse_cost FROM waterways_ways')
-) AS subquery
+\o delete2.txt
+
+DELETE FROM waterways_ways WHERE osm_id = 815893446;
+
+\o only_connected1.txt
+
+SELECT * INTO waterways.waterways_vertices
+FROM pgr_extractVertices(
+ 'SELECT gid AS id, source, target
+ FROM waterways.waterways_ways ORDER BY id');
+
+\o only_connected2.txt
+
+UPDATE waterways_vertices SET geom = ST_startPoint(the_geom)
+FROM waterways_ways WHERE source = id;
+
+UPDATE waterways_vertices SET geom = ST_endPoint(the_geom)
+FROM waterways_ways WHERE geom IS NULL AND target = id;
+
+UPDATE waterways_vertices set (x,y) = (ST_X(geom), ST_Y(geom));
+
+\o only_connected3.txt
+
+ALTER TABLE waterways_ways ADD COLUMN component BIGINT;
+ALTER TABLE waterways_vertices ADD COLUMN component BIGINT;
+
+\o only_connected4.txt
+
+UPDATE waterways_vertices SET component = c.component
+FROM (
+ SELECT * FROM pgr_connectedComponents(
+ 'SELECT gid as id, source, target, cost, reverse_cost FROM waterways_ways')
+) AS c
WHERE id = node;
-UPDATE waterways_ways SET component=a.component FROM (
-SELECT id, component FROM waterways_ways_vertices_pgr
-) AS a
-WHERE id = source;
-\o exercise_9.txt
--- Adding column to store Buffer geometry
-ALTER TABLE waterways.city_vertex
-ADD COLUMN city_buffer geometry;
--- Storing Buffer geometry
-UPDATE waterways.city_vertex
-SET city_buffer = ST_Buffer((geom),0.005)
-WHERE name = 'Munshigang';
--- Showing results of Buffer operation
-SELECT city_buffer FROM waterways.city_vertex;
+\o only_connected5.txt
+
+UPDATE waterways_ways SET component = v.component
+FROM (SELECT id, component FROM waterways_vertices) AS v
+WHERE source = v.id;
+
\o exercise_10.txt
+
CREATE OR REPLACE FUNCTION get_city_buffer(city_id INTEGER)
RETURNS geometry AS
-$BODY$
-SELECT city_buffer FROM city_vertex WHERE id = city_id;
+$BODY$
+ SELECT city_buffer FROM bangladesh WHERE id = city_id;
$BODY$
LANGUAGE SQL;
+
\o exercise_11.txt
--- Intersection of City Buffer and River Components
+
SELECT DISTINCT component
-FROM waterways.city_vertex, waterways.waterways_ways
-WHERE ST_Intersects(the_geom, get_city_buffer(5));
-\o exercise_12.txt
--- Buffer of River Components
+FROM bangladesh JOIN waterways.waterways_ways
+ON (ST_Intersects(the_geom, get_city_buffer(5)));
+
+\o get_rain_zone1.txt
+
ALTER TABLE waterways_ways
ADD COLUMN rain_zone geometry;
--- Storing Buffer geometry (rain_zone)
-UPDATE waterways.waterways_ways
-SET rain_zone = ST_Buffer((the_geom),0.005)
+
+\o get_rain_zone2.txt
+
+UPDATE waterways.waterways_ways
+SET rain_zone = ST_Buffer((the_geom),0.005)
WHERE ST_Intersects(the_geom, get_city_buffer(5));
\o exercise_13.txt
-- Combining mutliple rain zones
diff --git a/docs/scripts/un_sdg/sdg3/all_exercises_sdg3.sql b/docs/scripts/un_sdg/sdg3/all_exercises_sdg3.sql
index 9f292a1ed..ff12462d0 100644
--- a/docs/scripts/un_sdg/sdg3/all_exercises_sdg3.sql
+++ b/docs/scripts/un_sdg/sdg3/all_exercises_sdg3.sql
@@ -1,163 +1,64 @@
-\o setting_search_path.txt
--- Enumerate all the schemas
+\o show_schemas.txt
\dn
-
--- Show the current search path
+\o show_path1.txt
SHOW search_path;
-
--- Set the search path
-SET search_path TO roads,buildings,public;
+\o set_path.txt
+SET search_path TO roads,buildings,public,contrib,postgis;
+\o show_path2.txt
SHOW search_path;
-
-
--- Enumerate all the tables
+\o enumerate_tables.txt
\dt
-
-
-\o exercise_5.txt
--- Counting the number of Edges of roads
+\o count1.txt
SELECT COUNT(*) FROM roads_ways;
-
--- Counting the number of Vertices of roads
-SELECT COUNT(*) FROM roads_ways_vertices_pgr;
-
--- Counting the number of buildings
+\o count2.txt
SELECT COUNT(*) FROM buildings_ways;
+\o clean_buildings.txt
+ALTER TABLE buildings.buildings_ways
+DROP source, DROP target,
+DROP source_osm, DROP target_osm,
+DROP length, DROP length_m,
+DROP cost, DROP reverse_cost,
+DROP cost_s, DROP reverse_cost_s,
+DROP one_way, DROP oneway,
+DROP priority, DROP osm_id, DROP rule,
+DROP x1, DROP x2,
+DROP y1, DROP y2,
+DROP maxspeed_forward,
+DROP maxspeed_backward;
\o exercise_6.txt
---Add a spatial column to the table
SELECT AddGeometryColumn('buildings','buildings_ways','poly_geom',4326,'POLYGON',2);
-\o exercise_7.txt
-DELETE FROM buildings_ways
-WHERE ST_NumPoints(the_geom) < 4
+\o buildings_description.txt
+\dS+ buildings_ways
+\o exercise_7.txt
+DELETE FROM buildings_ways
+WHERE ST_NumPoints(the_geom) < 4
OR ST_IsClosed(the_geom) = FALSE;
-\o exercise_8.txt
-UPDATE buildings_ways
+\o exercise_8.txt
+UPDATE buildings_ways
SET poly_geom = ST_MakePolygon(the_geom);
-\o exercise_9.txt
--- Adding a column for storing the area
-ALTER TABLE buildings_ways
-ADD COLUMN area INTEGER;
--- Storing the area
-UPDATE buildings_ways
+\o add_area_col.txt
+
+ALTER TABLE buildings_ways ADD COLUMN area INTEGER;
+
+\o get_area.txt
+
+UPDATE buildings_ways
SET area = ST_Area(poly_geom::geography)::INTEGER;
--- Process to discard disconnected roads
-\o exercise_10.txt
--- Add a column for storing the component
-ALTER TABLE roads_ways_vertices_pgr
-ADD COLUMN component INTEGER;
--- Update the vertices with the component number
-UPDATE roads_ways_vertices_pgr
-SET component = subquery.component
-FROM (
- SELECT * FROM pgr_connectedComponents(
- 'SELECT gid AS id, source, target, cost, reverse_cost
- FROM roads_ways'
- )
- )
-AS subquery
-WHERE id = node;
-\o exercise_11.txt
--- These components are to be removed
-WITH
-subquery AS (
- SELECT component, COUNT(*)
- FROM roads_ways_vertices_pgr
- GROUP BY component
- )
-SELECT component FROM subquery
-WHERE COUNT != (SELECT max(COUNT) FROM subquery);
-\o exercise_12.txt
--- The edges that need to be removed
-WITH
-subquery AS (
- SELECT component, COUNT(*)
- FROM roads_ways_vertices_pgr
- GROUP BY component
- ),
-to_remove AS (
- SELECT component FROM subquery
- WHERE COUNT != (SELECT max(COUNT) FROM subquery)
- )
-SELECT id FROM roads_ways_vertices_pgr
-WHERE component IN (SELECT * FROM to_remove);
-\o exercise_13.txt
--- Removing the unwanted edges
-DELETE FROM roads_ways WHERE source IN (
- WITH
- subquery AS (
- SELECT component, COUNT(*)
- FROM roads_ways_vertices_pgr
- GROUP BY component
- ),
- to_remove AS (
- SELECT component FROM subquery
- WHERE COUNT != (SELECT max(COUNT) FROM subquery)
- )
- SELECT id FROM roads_ways_vertices_pgr
- WHERE component IN (SELECT * FROM to_remove)
-);
--- Removing unused vertices
-WITH
-subquery AS (
- SELECT component, COUNT(*)
- FROM roads_ways_vertices_pgr
- GROUP BY component
- ),
-to_remove AS (
- SELECT component FROM subquery
- WHERE COUNT != (SELECT max(COUNT) FROM subquery)
- )
-DELETE FROM roads_ways_vertices_pgr
-WHERE component IN (SELECT * FROM to_remove);
--- finding the service area
-\o nearest_vertex.txt
--- finding the closest road vertex
-CREATE OR REPLACE FUNCTION closest_vertex(geom GEOMETRY)
-RETURNS BIGINT AS
-$BODY$
-SELECT id FROM roads_ways_vertices_pgr ORDER BY geom <-> the_geom LIMIT 1;
-$BODY$
-LANGUAGE SQL;
--- service area
-\o exercise_15.txt
-SELECT gid,source,target,agg_cost,r.the_geom
-FROM pgr_drivingDistance(
- 'SELECT gid as id,source,target, length_m/60 AS cost,length_m/60 AS reverse_cost
- FROM roads.roads_ways',
- (SELECT closest_vertex(poly_geom)
- FROM buildings.buildings_ways
- WHERE tag_id = '318'
- ), 10, FALSE
- ), roads.roads_ways AS r
-WHERE edge = r.gid
-LIMIT 10;
-\o exercise_16.txt
-WITH subquery AS (
-SELECT r.gid, edge,source,target,agg_cost,r.the_geom
-FROM pgr_drivingDistance(
- 'SELECT gid as id,source,target, length_m/60 AS cost, length_m/60 AS reverse_cost
- FROM roads.roads_ways',
- (SELECT closest_vertex(poly_geom)
- FROM buildings.buildings_ways
- WHERE tag_id = '318'
- ), 10, FALSE
- ),roads.roads_ways AS r
-WHERE edge = r.gid)
-SELECT r.gid, s.source, s.target, s.agg_cost,r.the_geom
-FROM subquery AS s, roads.roads_ways AS r
-WHERE r.source = s.source OR r.target = s.target
-ORDER BY r.gid
-LIMIT 10;
--- Calculating the population residing along the road
-
-\o exercise_17.txt
--- population_function_from_here
+
+\o kind_of_buildings.txt
+
+SELECT DISTINCT tag_id, tag_value
+FROM buildings_ways JOIN buildings.configuration USING (tag_id)
+ORDER BY tag_id;
+
+\o population_function.txt
+
CREATE OR REPLACE FUNCTION population(tag_id INTEGER,area INTEGER)
-RETURNS INTEGER AS
+RETURNS INTEGER AS
$BODY$
-DECLARE
+DECLARE
population INTEGER;
-BEGIN
+BEGIN
IF tag_id <= 100 THEN population = 1; -- Negligible
ELSIF 100 < tag_id AND tag_id <= 200 THEN population = GREATEST(2, area * 0.0002); -- Very Sparse
ELSIF 200 < tag_id AND tag_id <= 300 THEN population = GREATEST(3, area * 0.002); -- Sparse
@@ -170,63 +71,194 @@ BEGIN
END;
$BODY$
LANGUAGE plpgsql;
--- Adding a column for storing the population
-ALTER TABLE buildings_ways
-ADD COLUMN population INTEGER;
--- Storing the population
-UPDATE buildings_ways
-SET population = population(tag_id,area)::INTEGER;
--- population_function_to_here
-
--- nearest_road_from_here
-\o exercise_18.txt
--- Create Function for finding the closest edge
+
+\o add_population_col.txt
+
+ALTER TABLE buildings_ways ADD COLUMN population INTEGER;
+
+\o get_population.txt
+
+UPDATE buildings_ways
+SET population = population(tag_id,area);
+
+\o only_connected1.txt
+
+SELECT * INTO roads.roads_vertices
+FROM pgr_extractVertices(
+ 'SELECT gid AS id, source, target
+ FROM roads.roads_ways ORDER BY id');
+
+\o only_connected2.txt
+
+UPDATE roads_vertices SET geom = ST_startPoint(the_geom)
+FROM roads_ways WHERE source = id;
+
+UPDATE roads_vertices SET geom = ST_endPoint(the_geom)
+FROM roads_ways WHERE geom IS NULL AND target = id;
+
+UPDATE roads_vertices set (x,y) = (ST_X(geom), ST_Y(geom));
+
+\o only_connected3.txt
+
+ALTER TABLE roads_ways ADD COLUMN component BIGINT;
+ALTER TABLE roads_vertices ADD COLUMN component BIGINT;
+
+\o only_connected4.txt
+
+UPDATE roads_vertices SET component = c.component
+FROM (
+ SELECT * FROM pgr_connectedComponents(
+ 'SELECT gid as id, source, target, cost, reverse_cost FROM roads_ways')
+) AS c
+WHERE id = node;
+
+\o only_connected5.txt
+
+UPDATE roads_ways SET component = v.component
+FROM (SELECT id, component FROM roads_vertices) AS v
+WHERE source = v.id;
+
+\o only_connected6.txt
+
+WITH
+all_components AS (SELECT component, count(*) FROM roads_ways GROUP BY component),
+max_component AS (SELECT max(count) from all_components)
+SELECT component FROM all_components WHERE count = (SELECT max FROM max_component);
+
+\o only_connected7.txt
+
+WITH
+all_components AS (SELECT component, count(*) FROM roads_ways GROUP BY component),
+max_component AS (SELECT max(count) from all_components),
+the_component AS (SELECT component FROM all_components WHERE count = (SELECT max FROM max_component))
+DELETE FROM roads_ways WHERE component != (SELECT component FROM the_component);
+
+\o only_connected8.txt
+
+WITH
+all_components AS (SELECT component, count(*) FROM roads_vertices GROUP BY component),
+max_component AS (SELECT max(count) from all_components),
+the_component AS (SELECT component FROM all_components WHERE count = (SELECT max FROM max_component))
+DELETE FROM roads_vertices WHERE component != (SELECT component FROM the_component);
+
+\o nearest_vertex1.txt
+
+CREATE OR REPLACE FUNCTION closest_vertex(geom GEOMETRY)
+RETURNS BIGINT AS
+$BODY$
+SELECT id FROM roads_vertices ORDER BY geom <-> $1 LIMIT 1;
+$BODY$
+LANGUAGE SQL;
+
+\o nearest_vertex2.txt
+
+SELECT closest_vertex(poly_geom) FROM buildings_ways;
+
+\o prepare_edges.txt
+
+PREPARE edges AS
+SELECT gid as id,source,target, length_m/60 AS cost,length_m/60 AS reverse_cost
+FROM roads.roads_ways;
+
+\o exercise_15.txt
+
+SELECT gid, source, target, agg_cost AS minutes, the_geom
+FROM pgr_drivingDistance(
+ 'edges', -- the prepared statement
+ (
+ SELECT closest_vertex(poly_geom)
+ FROM buildings.buildings_ways
+ WHERE tag_id = '318'
+ ), -- the starting vertex
+ 10, -- 10 minutes
+ false -- graph is undirected
+) AS results
+JOIN roads.roads_ways AS r ON (edge = gid);
+
+\o exercise_16.txt
+
+WITH
+subquery AS (
+ SELECT edge, source, target, agg_cost AS minutes, the_geom
+ FROM pgr_drivingDistance(
+ 'edges',
+ (
+ SELECT closest_vertex(poly_geom)
+ FROM buildings.buildings_ways
+ WHERE tag_id = '318'
+ ), 10, FALSE
+ ) AS results
+ JOIN roads.roads_ways AS r ON (edge = gid)
+),
+connected_edges AS (
+ SELECT r.gid, r.source, r.target, length_m/60, r.the_geom
+ FROM subquery AS s JOIN roads.roads_ways AS r
+ ON ((s.source = r.source OR s.source = r.target))
+)
+SELECT * FROM subquery
+UNION ALL
+SELECT * FROM connected_edges;
+
+\o closest_edge1.txt
+
CREATE OR REPLACE FUNCTION closest_edge(geom GEOMETRY)
RETURNS BIGINT AS
$BODY$
-SELECT gid FROM roads_ways ORDER BY geom <-> the_geom LIMIT 1;
+ SELECT gid FROM roads_ways ORDER BY geom <-> the_geom LIMIT 1;
$BODY$
LANGUAGE SQL;
--- Add a column for storing the closest edge
+
+\o closest_edge2.txt
+
ALTER TABLE buildings_ways
ADD COLUMN edge_id INTEGER;
--- Store the edge_id of the closest edge in the column
+
+\o closest_edge3.txt
+
UPDATE buildings_ways SET edge_id = closest_edge(poly_geom);
--- nearest_road_to_here
-\o exercise_19.txt
--- road_population_from_here
--- Add population column to roads table
-ALTER TABLE roads_ways
-ADD COLUMN population INTEGER;
--- Update the roads with the SUM of population of buildings closest to it
+
+\o add_road_population1.txt
+
+ALTER TABLE roads_ways ADD COLUMN population INTEGER;
+
+\o add_road_population2.txt
+
UPDATE roads_ways SET population = SUM
FROM (
- SELECT edge_id, SUM(population)
+ SELECT edge_id, SUM(population)
FROM buildings_ways GROUP BY edge_id
- )
-AS subquery
-WHERE gid = edge_id;
--- testing
+ )
+AS subquery
+WHERE gid = edge_id;
+
+\o add_road_population3.txt
+
SELECT population FROM roads_ways WHERE gid = 441;
--- road_population_to_here
+
\o exercise_20.txt
--- finding total population
-WITH subquery
-AS (
- WITH subquery AS (
- SELECT r.gid,source,target,agg_cost, r.population,r.the_geom
- FROM pgr_drivingDistance(
- 'SELECT gid as id,source,target, length_m/60 AS cost, length_m/60 AS reverse_cost
- FROM roads.roads_ways',
- (SELECT closest_vertex(poly_geom)
- FROM buildings.buildings_ways
- WHERE tag_id = '318'
- ), 10, FALSE
- ),roads.roads_ways AS r
- WHERE edge = r.gid)
- SELECT r.gid, r.the_geom, s.population
- FROM subquery AS s,roads.roads_ways AS r
- WHERE r.source = s.source OR r.target = s.target
- )
-SELECT SUM(population) FROM subquery;
+
+WITH
+subquery AS (
+ SELECT source, target
+ FROM pgr_drivingDistance(
+ 'edges',
+ (
+ SELECT closest_vertex(poly_geom)
+ FROM buildings.buildings_ways
+ WHERE tag_id = '318'
+ ), 10, FALSE
+ )
+ AS results
+ JOIN roads.roads_ways AS r ON (edge = gid)
+),
+connected_edges AS (
+ SELECT DISTINCT gid, population
+ FROM subquery AS s JOIN roads.roads_ways AS r
+ ON (
+ (s.source = r.source OR s.source = r.target) OR
+ (s.target = r.source OR s.target = r.target)
+ )
+)
+SELECT SUM(population) FROM connected_edges;
+
\o
diff --git a/docs/scripts/un_sdg/sdg7/all_exercises_sdg7.sql b/docs/scripts/un_sdg/sdg7/all_exercises_sdg7.sql
index df74acf07..e9d380ff5 100644
--- a/docs/scripts/un_sdg/sdg7/all_exercises_sdg7.sql
+++ b/docs/scripts/un_sdg/sdg7/all_exercises_sdg7.sql
@@ -1,125 +1,91 @@
--- Enumerate all the schemas
-\dn
-
--- Show the current search path
+\o set_path.txt
+SET search_path TO roads,public,contrib,postgis;
+\o show_path2.txt
SHOW search_path;
+\o revert_changes.txt
--- Set the search path
-SET search_path TO roads,public;
-SHOW search_path;
+DROP TABLE IF EXISTS roads.roads_vertices;
+ALTER TABLE roads.roads_ways DROP component;
+
+\o only_connected1.txt
+
+SELECT * INTO roads.roads_vertices
+FROM pgr_extractVertices(
+ 'SELECT gid AS id, source, target
+ FROM roads.roads_ways ORDER BY id');
+
+\o only_connected2.txt
+
+UPDATE roads_vertices SET geom = ST_startPoint(the_geom)
+FROM roads_ways WHERE source = id;
+
+UPDATE roads_vertices SET geom = ST_endPoint(the_geom)
+FROM roads_ways WHERE geom IS NULL AND target = id;
+UPDATE roads_vertices set (x,y) = (ST_X(geom), ST_Y(geom));
--- Enumerate all the tables
-\dt
+\o only_connected3.txt
-\o exercise_5.txt
--- Counting the number of Edges of roads
-SELECT count(*) FROM roads_ways;
+ALTER TABLE roads_ways ADD COLUMN component BIGINT;
+ALTER TABLE roads_vertices ADD COLUMN component BIGINT;
--- Counting the number of Vertices of roads
-SELECT count(*) FROM roads_ways_vertices_pgr;
-\o exercise_6.txt
--- Add a column for storing the component
-ALTER TABLE roads_ways_vertices_pgr
-ADD COLUMN component INTEGER;
--- Update the vertices with the component number
-UPDATE roads_ways_vertices_pgr
-SET component = subquery.component
+\o only_connected4.txt
+
+UPDATE roads_vertices SET component = c.component
FROM (
- SELECT * FROM pgr_connectedComponents(
- 'SELECT gid AS id, source, target, cost, reverse_cost
- FROM roads_ways')
- )
-AS subquery
+ SELECT * FROM pgr_connectedComponents(
+ 'SELECT gid as id, source, target, cost, reverse_cost FROM roads_ways')
+) AS c
WHERE id = node;
-\o exercise_7.txt
+
+\o only_connected5.txt
+
+UPDATE roads_ways SET component = v.component
+FROM (SELECT id, component FROM roads_vertices) AS v
+WHERE source = v.id;
+
+\o only_connected6.txt
+
WITH
-subquery AS (
- SELECT component, count(*)
- FROM roads_ways_vertices_pgr
- GROUP BY component
- )
-SELECT component FROM subquery
-WHERE count != (
- SELECT max(count) FROM subquery
-);
-\o exercise_8.txt
+all_components AS (SELECT component, count(*) FROM roads_ways GROUP BY component),
+max_component AS (SELECT max(count) from all_components)
+SELECT component FROM all_components WHERE count = (SELECT max FROM max_component);
+
+\o only_connected7.txt
+
WITH
-subquery AS (
- SELECT component, count(*)
- FROM roads_ways_vertices_pgr
- GROUP BY component),
- to_remove AS (
- SELECT component FROM subquery
- WHERE count != (
- SELECT max(count) FROM subquery
- )
-)
-SELECT id FROM roads_ways_vertices_pgr
-WHERE component IN (SELECT * FROM to_remove);
-\o exercise_9.txt
-DELETE FROM roads_ways WHERE source IN (
- WITH
- subquery AS (
- SELECT component, count(*)
- FROM roads_ways_vertices_pgr
- GROUP BY component
- ),
- to_remove AS (
- SELECT component FROM subquery
- WHERE count != (
- SELECT max(count) FROM subquery
- )
- )
- SELECT id FROM roads_ways_vertices_pgr
- WHERE component IN (SELECT * FROM to_remove)
-);
--- Removing unused vertices
+all_components AS (SELECT component, count(*) FROM roads_ways GROUP BY component),
+max_component AS (SELECT max(count) from all_components),
+the_component AS (SELECT component FROM all_components WHERE count = (SELECT max FROM max_component))
+DELETE FROM roads_ways WHERE component != (SELECT component FROM the_component);
+
+\o only_connected8.txt
+
WITH
-subquery AS (
- SELECT component, count(*)
- FROM roads_ways_vertices_pgr
- GROUP BY component
- ),
- to_remove AS (
- SELECT component FROM subquery
- WHERE count != (SELECT max(count) FROM subquery)
- )
- DELETE FROM roads_ways_vertices_pgr
- WHERE component IN (SELECT * FROM to_remove
-);
-\o exercise_10.txt
-SELECT source,target,edge, r.the_geom
-FROM pgr_kruskalDFS(
- 'SELECT gid AS id, source, target, cost, reverse_cost, the_geom
- FROM roads.roads_ways ORDER BY id',
- 91),
-roads.roads_ways AS r
-WHERE edge = r.gid
-LIMIT 10;
--- list_of_edges_with_costs
-SELECT source,target,edge,agg_cost
-FROM pgr_kruskalDFS(
- 'SELECT gid AS id, source, target, cost, reverse_cost, the_geom
- FROM roads.roads_ways
- ORDER BY id',91),
-roads.roads_ways AS r
-WHERE edge = r.gid
-ORDER BY agg_cost
-LIMIT 10;
+all_components AS (SELECT component, count(*) FROM roads_vertices GROUP BY component),
+max_component AS (SELECT max(count) from all_components),
+the_component AS (SELECT component FROM all_components WHERE count = (SELECT max FROM max_component))
+DELETE FROM roads_vertices WHERE component != (SELECT component FROM the_component);
+
+\o exercise_10-1.txt
+
+PREPARE edges AS
+SELECT gid AS id, source, target, length_m AS cost
+FROM roads.roads_ways;
+
+\o exercise_10-2.txt
+
+SELECT seq, depth, start_vid, node, edge, round(cost::numeric, 2) AS length, round(agg_cost::numeric, 2) AS agg_cost
+FROM pgr_kruskalDFS('edges', 91);
+
\o exercise_11.txt
-SELECT SUM(length_m)/1000
-FROM (
- SELECT source,target,edge,agg_cost,r.length_m
- FROM pgr_kruskalDFS(
- 'SELECT gid AS id, source, target, cost, reverse_cost, the_geom
- FROM roads.roads_ways
- ORDER BY id',91),
- roads.roads_ways AS r
- WHERE edge = r.gid
- ORDER BY agg_cost)
-AS subquery;
+
+SELECT sum(cost)/1000 AS material_km
+FROM pgr_kruskalDFS('edges', 91);
+
\o exercise_12.txt
--- Compute total length of roads in km
-SELECT SUM(length_m)/1000 FROM roads_ways;
+
+SELECT sum(length_m)/1000 AS total_km
+FROM roads_ways;
+
\o
diff --git a/docs/un_sdg/CMakeLists.txt b/docs/un_sdg/CMakeLists.txt
index 53dbb7364..5f5d3eebf 100644
--- a/docs/un_sdg/CMakeLists.txt
+++ b/docs/un_sdg/CMakeLists.txt
@@ -11,7 +11,6 @@ set(PGR_WORKSHOP_FILES
sdg3-health.rst
sdg7-energy.rst
sdg11-cities.rst
- appendix.rst
)
diff --git a/docs/un_sdg/appendix.rst b/docs/un_sdg/appendix.rst
deleted file mode 100644
index b7214654c..000000000
--- a/docs/un_sdg/appendix.rst
+++ /dev/null
@@ -1,280 +0,0 @@
-..
- ****************************************************************************
- pgRouting Workshop Manual
- Copyright(c) pgRouting Contributors
-
- This documentation is licensed under a Creative Commons Attribution-Share
- Alike 3.0 License: http://creativecommons.org/licenses/by-sa/3.0/
- ****************************************************************************
-
-Appendix: OSGeo UN Challenge Workshop Solutions
-===============================================================================
-
-Solutions to Chapter 3: :doc:`sdg3-health`
--------------------------------------------------------------------------------
-
-**Exercise:** 5 (**Chapter:** SDG 3)
-................................................................................
-
-:ref:`un_sdg/sdg3-health:Exercise 5: Counting the number of Roads and Buildings`
-
-.. literalinclude:: ../scripts/un_sdg/sdg3/exercise_5.txt
-
-
-**Exercise:** 6 (**Chapter:** SDG 3)
-................................................................................
-
-:ref:`un_sdg/sdg3-health:Exercise 6: Add a spatial column to the table`
-
-.. literalinclude:: ../scripts/un_sdg/sdg3/exercise_6.txt
-
-**Exercise:** 7 (**Chapter:** SDG 3)
-................................................................................
-
-
-:ref:`un_sdg/sdg3-health:Exercise 7: Removing the polygons with less than 4 points`
-
-.. literalinclude:: ../scripts/un_sdg/sdg3/exercise_7.txt
-
-
-**Exercise:** 8 (**Chapter:** SDG 3)
-................................................................................
-
-
-:ref:`un_sdg/sdg3-health:Exercise 8: Creating the polygons`
-
-.. literalinclude:: ../scripts/un_sdg/sdg3/exercise_8.txt
-
-**Exercise:** 9 (**Chapter:** SDG 3)
-................................................................................
-
-
-:ref:`un_sdg/sdg3-health:Exercise 9: Calculating the area`
-
-.. literalinclude:: ../scripts/un_sdg/sdg3/exercise_9.txt
-
-
-**Exercise:** 10 (**Chapter:** SDG 3)
-................................................................................
-
-:ref:`un_sdg/sdg3-health:Exercise 10: Find the Component ID for Road vertices`
-
-.. literalinclude:: ../scripts/un_sdg/sdg3/exercise_10.txt
-
-
-**Exercise:** 11 (**Chapter:** SDG 3)
-................................................................................
-
-
-:ref:`un_sdg/sdg3-health:Exercise 11: Finding the components which are to be removed`
-
-.. literalinclude:: ../scripts/un_sdg/sdg3/exercise_11.txt
-
-
-**Exercise:** 12 (**Chapter:** SDG 3)
-................................................................................
-
-
-:ref:`un_sdg/sdg3-health:Exercise 12: Finding the road vertices of these components`
-
-.. literalinclude:: ../scripts/un_sdg/sdg3/exercise_12.txt
-
-
-**Exercise:** 13 (**Chapter:** SDG 3)
-................................................................................
-
-
-:ref:`un_sdg/sdg3-health:Exercise 13: Removing the unwanted edges and vertices`
-
-.. literalinclude:: ../scripts/un_sdg/sdg3/exercise_13.txt
-
-
-**Exercise:** 15 (**Chapter:** SDG 3)
-................................................................................
-
-
-:ref:`un_sdg/sdg3-health:Exercise 15: Finding the served roads using pgr_drivingDistance`
-
-.. literalinclude:: ../scripts/un_sdg/sdg3/exercise_15.txt
-
-**Exercise:** 16 (**Chapter:** SDG 3)
-................................................................................
-
-
-:ref:`un_sdg/sdg3-health:Exercise 16: Generalising the served roads`
-
-.. literalinclude:: ../scripts/un_sdg/sdg3/exercise_16.txt
-
-
-**Exercise:** 17 (**Chapter:** SDG 3)
-................................................................................
-
-
-:ref:`un_sdg/sdg3-health:Exercise 17: Estimating the population of buildings`
-
-.. literalinclude:: ../scripts/un_sdg/sdg3/exercise_17.txt
-
-
-**Exercise:** 18 (**Chapter:** SDG 3)
-................................................................................
-
-
-:ref:`un_sdg/sdg3-health:Exercise 18: Finding the nearest roads to store the population`
-
-.. literalinclude:: ../scripts/un_sdg/sdg3/exercise_18.txt
-
-
-**Exercise:** 19 (**Chapter:** SDG 3)
-................................................................................
-
-
-:ref:`un_sdg/sdg3-health:Exercise 19: Storing the population in the roads`
-
-.. literalinclude:: ../scripts/un_sdg/sdg3/exercise_19.txt
-
-
-**Exercise:** 20 (**Chapter:** SDG 3)
-................................................................................
-
-
-:ref:`un_sdg/sdg3-health:Exercise 20: Finding total population`
-
-.. literalinclude:: ../scripts/un_sdg/sdg3/exercise_20.txt
-
-
-Solutions to :doc:`sdg7-energy`
--------------------------------------------------------------------------------
-
-**Exercise:** 5 (**Chapter:** SDG 7)
-................................................................................
-
-
-:ref:`un_sdg/sdg7-energy:Exercise 5: Counting the number of Roads`
-
-.. literalinclude:: ../scripts/un_sdg/sdg7/exercise_5.txt
-
-
-**Exercise:** 6 (**Chapter:** SDG 7)
-................................................................................
-
-
-:ref:`un_sdg/sdg7-energy:Exercise 6: Find the Component ID for Road vertices`
-
-.. literalinclude:: ../scripts/un_sdg/sdg7/exercise_6.txt
-
-
-**Exercise:** 7 (**Chapter:** SDG 7)
-................................................................................
-
-
-:ref:`un_sdg/sdg7-energy:Exercise 7: Finding the components which are to be removed`
-
-.. literalinclude:: ../scripts/un_sdg/sdg7/exercise_7.txt
-
-
-**Exercise:** 8 (**Chapter:** SDG 7)
-................................................................................
-
-
-:ref:`un_sdg/sdg7-energy:Exercise 8: Finding the road vertices of these components`
-
-.. literalinclude:: ../scripts/un_sdg/sdg7/exercise_8.txt
-
-**Exercise:** 9 (**Chapter:** SDG 7)
-................................................................................
-
-
-:ref:`un_sdg/sdg7-energy:Exercise 9: Removing the unwanted edges and vertices`
-
-.. literalinclude:: ../scripts/un_sdg/sdg7/exercise_9.txt
-
-**Exercise:** 10 (**Chapter:** SDG 7)
-................................................................................
-
-
-:ref:`un_sdg/sdg7-energy:Exercise 10: Find the minimum spanning tree`
-
-.. literalinclude:: ../scripts/un_sdg/sdg7/exercise_10.txt
-
-**Exercise:** 11 (**Chapter:** SDG 7)
-................................................................................
-
-
-:ref:`un_sdg/sdg7-energy:Exercise 11: Compute total length of material required in km`
-
-.. literalinclude:: ../scripts/un_sdg/sdg7/exercise_11.txt
-
-**Exercise:** 12 (**Chapter:** SDG 7)
-................................................................................
-
-:ref:`un_sdg/sdg7-energy:Exercise 12: Compute total length of roads`
-
-.. literalinclude:: ../scripts/un_sdg/sdg7/exercise_12.txt
-
-Solutions to :doc:`sdg11-cities`
--------------------------------------------------------------------------------
-
-**Exercise:** 1 (**Chapter:** SDG 11)
-................................................................................
-
-:ref:`un_sdg/sdg11-cities:Exercise 1: Create a point for the city`
-
-.. literalinclude:: ../scripts/un_sdg/sdg11/exercise_1.txt
-
-
-**Exercise:** 6 (**Chapter:** SDG 11)
-................................................................................
-
-
-:ref:`un_sdg/sdg11-cities:Exercise 6: Counting the number of Waterways`
-
-.. literalinclude:: ../scripts/un_sdg/sdg11/exercise_6.txt
-
-
-**Exercise:** 7 (**Chapter:** SDG 11)
-................................................................................
-
-
-:ref:`un_sdg/sdg11-cities:Exercise 7: Removing the Rivers which are in swamps`
-
-.. literalinclude:: ../scripts/un_sdg/sdg11/exercise_7.txt
-
-
-**Exercise:** 8 (**Chapter:** SDG 11)
-................................................................................
-
-:ref:`un_sdg/sdg11-cities:Exercise 8: Get the Connected Components of Waterways`
-
-.. literalinclude:: ../scripts/un_sdg/sdg11/exercise_8.txt
-
-
-**Exercise:** 9 (**Chapter:** SDG 11)
-................................................................................
-
-
-:ref:`un_sdg/sdg11-cities:Exercise 9: Creating buffer around the city`
-
-.. literalinclude:: ../scripts/un_sdg/sdg11/exercise_9.txt
-
-**Exercise:** 11 (**Chapter:** SDG 11)
-................................................................................
-
-:ref:`un_sdg/sdg11-cities:Exercise 11: Finding the components intersecting the buffer`
-
-.. literalinclude:: ../scripts/un_sdg/sdg11/exercise_11.txt
-
-
-**Exercise:** 12 (**Chapter:** SDG 11)
-................................................................................
-
-
-:ref:`un_sdg/sdg11-cities:Exercise 12: Get the rain zones`
-
-.. literalinclude:: ../scripts/un_sdg/sdg11/exercise_12.txt
-
-**Exercise:** 13 (**Chapter:** SDG 11)
-................................................................................
-
-:ref:`un_sdg/sdg11-cities:Exercise 13: Create a union of rain zones`
-
-.. literalinclude:: ../scripts/un_sdg/sdg11/exercise_13.txt
diff --git a/docs/un_sdg/data.rst b/docs/un_sdg/data.rst
index db7a33fc6..997eca186 100644
--- a/docs/un_sdg/data.rst
+++ b/docs/un_sdg/data.rst
@@ -175,7 +175,7 @@ To connect to the database, type the following in the terminal.
Bangladesh database
===============================================================================
-Now download the data for an area in Bangladesh by following the same steps like
+Now download the data for an area in Bangladesh by following the same steps like
that of Mumbai.
Create Bangladesh area database compatible with pgRouting
@@ -232,8 +232,6 @@ Bangladesh.
:language: bash
:linenos:
-See :ref:`basic/data:Option 3) Download using Overpass XAPI`
-
Upload Bangladesh data to the database
-------------------------------------------------------------------------------
diff --git a/docs/un_sdg/images/sdg11/CMakeLists.txt b/docs/un_sdg/images/sdg11/CMakeLists.txt
index d1f629f68..2bb9377e9 100644
--- a/docs/un_sdg/images/sdg11/CMakeLists.txt
+++ b/docs/un_sdg/images/sdg11/CMakeLists.txt
@@ -5,6 +5,7 @@
set(PGR_WORKSHOP_IMG_FILES
un_sdg11.png
sdg11_output.png
+ remove_waterways.png
)
diff --git a/docs/un_sdg/images/sdg11/remove_waterways.png b/docs/un_sdg/images/sdg11/remove_waterways.png
new file mode 100644
index 000000000..39ad9742b
Binary files /dev/null and b/docs/un_sdg/images/sdg11/remove_waterways.png differ
diff --git a/docs/un_sdg/introduction.rst b/docs/un_sdg/introduction.rst
index 6a6e3851d..c5e66af1b 100644
--- a/docs/un_sdg/introduction.rst
+++ b/docs/un_sdg/introduction.rst
@@ -25,7 +25,7 @@ development and use of open-source software that meets UN needs and supports
the aims of the UN. pgRouting is not only useful for routing cars on roads but
it can also be used to analyse water distribution networks, river flow or the
connectivity of an electricity network. Currently, this workshop expands the
-pgRouting workshop by addressing Three of the Seventeen Sustainable Development
+pgRouting workshop by addressing Three of the Seventeen Sustainable Development
Goals
.. contents:: Chapter Contents
@@ -34,7 +34,7 @@ Goals
United Nations
-------------------------------------------------------------------------------
-.. image:: images/introduction/un_logo.jpg
+.. image:: images/introduction/un_logo.jpg
:align: center
:alt: UN Flag
@@ -49,15 +49,15 @@ offices in Geneva, Nairobi, Vienna, and The Hague.
The Major Objectives of the UN are to:
-* Maintain International Peace and Security
-* Protect Human Rights
-* Deliver Humanitarian Aid
-* Support Sustainable Development and Climate Action
+* Maintain International Peace and Security
+* Protect Human Rights
+* Deliver Humanitarian Aid
+* Support Sustainable Development and Climate Action
* Uphold International Law
What are the Sustainable Development Goals?
-------------------------------------------------------------------------------
-.. image:: images/introduction/un_17_sdgs.png
+.. image:: images/introduction/un_17_sdgs.png
:align: center
`Image Source `__
@@ -70,89 +70,89 @@ ensuring that all people enjoy peace and prosperity. The seventeen goals are
integrated and they recognize that action in one domain will affect outcomes in
others. The goals also promote that the development must balanced ensuring social,
economic and environmental sustainability. Countries have committed to prioritizing
-progress for those who's furthest behind. The following table gives an overview
+progress for those who's furthest behind. The following table gives an overview
of all the Sustainable Development Goals.
-.. list-table:: **Overview of UN Sustainable Development Goals (SDGs)**
- :widths: 20 25 60
+.. list-table:: **Overview of UN Sustainable Development Goals (SDGs)**
+ :widths: 20 25 60
:header-rows: 1
-
- * - Goal Number
- - Goal Name
+
+ * - Goal Number
+ - Goal Name
- Objective
* - Goal 1
- No Poverty
- End poverty in all its forms everywhere
- * - Goal 2
- - Zero Hunger
+ * - Goal 2
+ - Zero Hunger
- End hunger, achieve food security and improved nutrition and promote
sustainable agriculture
- * - Goal 3
- - Good Health and Well Being
+ * - Goal 3
+ - Good Health and Well Being
- Ensure healthy lives and promote well-being for all at all ages
* - Goal 4
- - Quality Education
+ - Quality Education
- Ensure inclusive and equitable quality education and promote lifelong
learning opportunities for all
- * - Goal 5
- - Gender Equality
- - Achieve gender equality and empower all women and girls
+ * - Goal 5
+ - Gender Equality
+ - Achieve gender equality and empower all women and girls
* - Goal 6
- - Clean Water and Sanitation
+ - Clean Water and Sanitation
- Ensure availability and sustainable management of water and sanitation for
all
* - Goal 7
- - Affordable and Clean Energy
+ - Affordable and Clean Energy
- Ensure access to affordable, reliable, sustainable and modern energy for
all
* - Goal 8
- - Decent Work and Economic Growth
+ - Decent Work and Economic Growth
- Promote sustained, inclusive and sustainable economic growth, full and
productive employment and decent work for all
* - Goal 9
- - Industry Innovation and Infrastructure
+ - Industry Innovation and Infrastructure
- Build resilient infrastructure, promote inclusive and sustainable
industrialization and foster innovation
* - Goal 10
- - Reduced Inequalities
+ - Reduced Inequalities
- Reduce inequality within and among countries
- * - Goal 11
- - Sustainable Cities and Communities
+ * - Goal 11
+ - Sustainable Cities and Communities
- Make cities and human settlements inclusive, safe, resilient and
sustainable
- * - Goal 12
- - Responsible Consumption and Production
+ * - Goal 12
+ - Responsible Consumption and Production
- Ensure sustainable consumption and production patterns
* - Goal 13
- - Climate Action
+ - Climate Action
- Take urgent action to combat climate change and its impacts
* - Goal 14
- - Life Below Water
+ - Life Below Water
- Conserve and sustainably use the oceans, seas and marine resources for
sustainable development
* - Goal 15
- - Life on Land
+ - Life on Land
- Protect, restore and promote sustainable use of terrestrial ecosystems,
sustainably manage forests, combat desertification, and halt and reverse
land degradation and halt biodiversity loss
* - Goal 16
- - Peace, Justice and Strong Institutions
+ - Peace, Justice and Strong Institutions
- Promote peaceful and inclusive societies for sustainable development,
provide access to justice for all and build effective, accountable and
inclusive institutions at all levels
* - Goal 17
- - Partnerships for the Goals
+ - Partnerships for the Goals
- Strengthen the means of implementation and revitalize the global
partnership for sustainable development
More on Sustainable Development Goals can be found at this `link `__.
-Currently this workshop addresses three of the seventeen Sustainable Development
+Currently this workshop addresses three of the seventeen Sustainable Development
Goals and covers the following:
* Data for Sustainable Development Goals
-* UN SDG 3: Good Health and Well Being
+* UN SDG 3: Good Health and Well Being
* UN SDG 11: Sustainable Cities and Communities
* UN SDG 7: Affordable and Clean Energy
@@ -169,9 +169,9 @@ structures and formats.
Prerequisites for UN SDG Exercises
-------------------------------------------------------------------------------
-* Workshop level: Advanced
-* Previous knowledge: SQL (PostgreSQL, PostGIS), a brief idea about the
- applications of GIS and pgRouting
-* Brief idea about applications of GIS and pgRouting
-* System Requirements: This workshop uses OSGeoLive (The latest available version)
-* Basic chapters pgRouting Workshop
+* Workshop level: Advanced
+* Previous knowledge: SQL (PostgreSQL, PostGIS), a brief idea about the
+ applications of GIS and pgRouting
+* Brief idea about applications of GIS and pgRouting
+* System Requirements: This workshop uses OSGeoLive (The latest available version)
+* Basic chapters pgRouting Workshop
diff --git a/docs/un_sdg/sdg11-cities.rst b/docs/un_sdg/sdg11-cities.rst
index 859cdba64..8e04b1538 100644
--- a/docs/un_sdg/sdg11-cities.rst
+++ b/docs/un_sdg/sdg11-cities.rst
@@ -57,6 +57,7 @@ affected by the rains.
Choose a city
================================================================================
+
For this exercise, Munshigang city from Bangladesh is chosen. This city has multiple
rivers in its proximity which makes it an apt location to demonstrate this exercise.
The exercise will try to find the areas, where if it rains the city will be affected.
@@ -67,169 +68,168 @@ the city as a point.
Exercise 1: Create a point for the city
--------------------------------------------------------------------------------
+.. rubric:: Create a table for the cities
+
.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
- :start-after: exercise_1.txt
- :end-before: exercise_6.txt
+ :start-after: create_city1.txt
+ :end-before: create_city2.txt
:language: sql
- :linenos:
-|
+.. collapse:: Query results
-:ref:`un_sdg/appendix:**Exercise:** 1 (**Chapter:** SDG 11)`
+ .. literalinclude:: ../scripts/un_sdg/sdg11/create_city1.txt
-Latitude and longitude values are converted into ``geometry`` form using ``ST_Point``
-which returns a point with the given X and Y coordinate values. ``ST_SetSRID`` is used
-to set the SRID (Spatial Reference Identifier) on the point geometry to ``4326``.
+.. rubric:: Insert Munshigang
+.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
+ :start-after: create_city2.txt
+ :end-before: create_city3.txt
+ :language: sql
-Pre-processing waterways data
-================================================================================
-First step is to pre-process the data obtained from :doc:`data`.
-This section will work the graph that is going to be used for processing. While
-building the graph, the data has to be inspected to determine if there is any
-invalid data. This is a very important step to make sure that the data is of
-required quality. pgRouting can also be used to do some Data Adjustments.
-This will be discussed in further sections.
+.. collapse:: Query results
-Setting the Search Path of Waterways
---------------------------------------------------------------------------------
-First step in pre processing is to set the search path for ``Waterways``
-data. Search path is a list of schemas that helps the system determine how a
-particular table is to be imported.
+ .. literalinclude:: ../scripts/un_sdg/sdg11/create_city2.txt
+
+.. rubric:: Simulate the city region with a buffer
+
+.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
+ :start-after: create_city3.txt
+ :end-before: create_city4.txt
+ :language: sql
+
+.. collapse:: Query results
+
+ .. literalinclude:: ../scripts/un_sdg/sdg11/create_city3.txt
+
+.. rubric:: See description of the table
+
+.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
+ :start-after: create_city4.txt
+ :end-before: set_path.txt
-Exercise 2: Inspecting the schemas
-...............................................................................
-Inspect the schemas by displaying all the present schemas using the following
-command
+.. collapse:: Command results
-.. code-block:: bash
+ .. literalinclude:: ../scripts/un_sdg/sdg11/create_city4.txt
- \dn
+Latitude and longitude values are converted into ``geometry`` form using ``ST_Point``
+which returns a point with the given X and Y coordinate values. ``ST_SetSRID`` is used
+to set the SRID (Spatial Reference Identifier) on the point geometry to ``4326``.
-.. TODO generate automatically
-.. code-block:: bash
- List of schemas
- Name | Owner
- -----------+----------
- public | postgres
- waterway |
- (2 rows)
+Prepare the database
+================================================================================
-The schema names are ``waterway`` and ``public``. The owner depends on who has the rights to the database.
+Data obtained in :doc:`data`.
-Exercise 3: Inspecting the search path
-...............................................................................
-Display the current search path using the following query.
+This section will cover the status of the database in order to get the same
+results when processing the queries.
-.. code-block:: bash
+Exercise 2: Set the search path
+--------------------------------------------------------------------------------
- SHOW search_path;
+First step in pre processing is to set the search path for ``Waterways``
+data. Search path is a list of schemas that helps the system determine how a
+particular table is to be imported.
-.. code-block:: bash
+.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
+ :start-after: set_path.txt
+ :end-before: get_extensions.txt
+ :language: sql
- search_path
- -----------------
- "$user", public
- (1 row)
+.. collapse:: Query results
-This is the current search path. Tables cannot be accessed using this.
+ .. literalinclude:: ../scripts/un_sdg/sdg11/set_path.txt
-Exercise 4: Fixing the search path
-...............................................................................
-In this case, search path of roads table is set to ``waterways`` schema. Following query
-is used to fix the search path
-.. code-block:: bash
+Exercise 3: Verify database configuration
+--------------------------------------------------------------------------------
- SET search_path TO waterways,public;
- SHOW search_path;
+As part of the every project tasks: inspect the database structure.
-.. code-block:: bash
+.. rubric:: Get the extensions that are installed
- search_path
- -------------------
- waterways, public
- (1 row)
+.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
+ :start-after: get_extensions.txt
+ :end-before: get_tables.txt
-Exercise 5: Enumerating tables
-...............................................................................
-Finally, ``\dt`` is used to verify if the Schema have bees changed correctly.
+.. collapse:: Command results
-.. code-block:: bash
+ .. literalinclude:: ../scripts/un_sdg/sdg11/get_extensions.txt
- \dt
+.. rubric:: List installed tables
-.. code-block:: bash
+.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
+ :start-after: get_tables.txt
+ :end-before: exercise_6.txt
- List of relations
- Schema | Name | Type | Owner
- -----------+-----------------------------+-------+---------
- public | spatial_ref_sys | table |
- waterways | configuration | table | user
- waterways | waterways_pointsofinterest | table | user
- waterways | waterways_ways | table | user
- waterways | waterways_ways_vertices_pgr | table | user
- (5 rows)
+.. collapse:: Command results
+ .. literalinclude:: ../scripts/un_sdg/sdg11/get_tables.txt
-Exercise 6: Counting the number of Waterways
-...............................................................................
-The importance of counting the information on this workshop is to make sure that
-the same data is used and consequently the results are same. Also, some of the
-rows can be seen to understand the structure of the table and how the data is
-stored in it.
+Exercise 4: Count the number of Waterways
+................................................................................
+The importance of counting the information on this workshop is to make sure that
+the same data is used and consequently the results are same.
+Also, some of the rows can be seen to understand the structure of the table and
+how the data is stored in it.
.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
:start-after: exercise_6.txt
- :end-before: exercise_7.txt
+ :end-before: delete1.txt
:language: sql
- :linenos:
-|
+.. collapse:: Query results
+
+ .. literalinclude:: ../scripts/un_sdg/sdg11/exercise_6.txt
+
+Processing waterways data
+================================================================================
-:ref:`un_sdg/appendix:**Exercise:** 6 (**Chapter:** SDG 11)`
+This section will work the graph that is going to be used for processing. While
+building the graph, the data has to be inspected to determine if there is any
+invalid data. This is a very important step to make sure that the data is of
+required quality. pgRouting can also be used to do some Data Adjustments.
-Exercise 7: Removing the Rivers which are in swamps
+Exercise 5: Remove waterways not for the problem
--------------------------------------------------------------------------------
+
+.. image:: images/sdg11/remove_waterways.png
+ :align: center
+ :alt: Waterways to be removed
+
This exercise focusses only the areas in the mainland, where if it rains the city is
-affected. Hence, the rivers which are there in the swamp area have to be removed
-from the ``waterways_ways`` table.
+affected. Hence, the rivers which are there in the swamp area wich is in a lower
+altitude of the city, are to be removed from the ``waterways_ways`` table.
+.. rubric:: Remove swamp rivers
.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
- :start-after: exercise_7.txt
- :end-before: exercise_8.txt
+ :start-after: delete1.txt
+ :end-before: delete2.txt
:language: sql
- :linenos:
-|
+.. collapse:: Query results
-:ref:`un_sdg/appendix:**Exercise:** 7 (**Chapter:** SDG 11)`
+ .. literalinclude:: ../scripts/un_sdg/sdg11/delete1.txt
-pgr_connectedComponents for preprocessing waterways
-================================================================================
+.. note:: When working for many cities, a better approach might be to create
+ views.
-For the next step ``pgr_connectedComponents`` will be used. It is used to find the
-connected components of an undirected graph using a Depth First Search-based approach.
+.. rubric:: Also delete a boundary tagged as waterway
-.. rubric:: Signatures
-
-.. index::
- single: connectedComponents
-
-.. code-block:: none
+.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
+ :start-after: delete2.txt
+ :end-before: only_connected1.txt
+ :language: sql
- pgr_connectedComponents(edges_sql)
+.. collapse:: Query results
- RETURNS SET OF (seq, component, node)
- OR EMPTY SET
+ .. literalinclude:: ../scripts/un_sdg/sdg11/delete2.txt
-`pgr_connectedComponents Documentation `__
-can be found at this link for more information.
+.. note:: A better approach might be to fix the original data in OSM website.
-Exercise 8: Get the Connected Components of Waterways
+Exercise 6: Get the Connected Components of Waterways
================================================================================
As the rivers in the data are not having single edge, i.e, multiple edges make up
@@ -238,143 +238,160 @@ in the ``waterways_ways`` table. This will help us to identify which edges belon
a river. First, the connected components are found and then stored in a new column
named ``component``.
-pgRouting function ``pgr_connectedComponents`` is used to complete this task.
+The pgRouting function ``pgr_connectedComponents`` is used to complete this task
+and its explaind with more detail in :doc:`../basic/graph_views`.
+
A sub-query is created to find out all the connected components. After that,
the ``component`` column is updated using the results obtained from the sub-query.
This helps in storing the component id in the ``waterways_ways_vertices_pgr`` table.
Next query uses this output and stores the component id in the waterways_ways
(edges) table. Follow the steps given below to complete this task.
-1. Add a column named ``component`` to store component number.
+.. rubric:: Create a vertices table.
.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
- :start-after: -- Add a column for storing the component
- :end-before: -- Get the Connected Components of Waterways
+ :start-after: only_connected1.txt
+ :end-before: only_connected2.txt
:language: sql
- :linenos:
-2. Get the Connected Components of Waterways
+.. collapse:: Query results
-.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
- :start-after: -- Get the Connected Components of Waterways
- :end-before: exercise_9.txt
- :language: sql
- :linenos:
+ .. literalinclude:: ../scripts/un_sdg/sdg11/only_connected1.txt
-With component id stored in both vertex and edge table of waterways, lets proceed
-to next step.
+.. rubric:: Fill up the ``x``, ``y`` and ``geom`` columns.
-|
+.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
+ :start-after: only_connected2.txt
+ :end-before: only_connected3.txt
+ :language: sql
-:ref:`un_sdg/appendix:**Exercise:** 8 (**Chapter:** SDG 11)`
+.. collapse:: Query results
-Exercise 9: Creating buffer around the city
-================================================================================
-Create a buffer around the city to define an area, inside which the intersection
-of rivers would be found. ``ST_Buffer`` is used to create this buffer. Follow the
-steps given below to complete this task.
+ .. literalinclude:: ../scripts/un_sdg/sdg11/only_connected2.txt
-1. Adding column to store Buffer geometry
+.. rubric:: Add a ``component`` column on the edges and vertices tables.
.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
- :start-after: -- Adding column to store Buffer geometry
- :end-before: -- Storing Buffer geometry
+ :start-after: only_connected3.txt
+ :end-before: only_connected4.txt
:language: sql
- :linenos:
-2. Storing Buffer geometry
+.. collapse:: Query results
-.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
- :start-after: -- Storing Buffer geometry
- :end-before: -- Showing results of Buffer operation
- :language: sql
- :linenos:
+ .. literalinclude:: ../scripts/un_sdg/sdg11/only_connected3.txt
-3. Displaying the results of Buffer operation
+.. rubric:: Fill up the ``component`` column on the vertices table.
.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
- :start-after: -- Showing results of Buffer operation
- :end-before: exercise_10.txt
+ :start-after: only_connected4.txt
+ :end-before: only_connected5.txt
:language: sql
- :linenos:
-|
+.. collapse:: Query results
+
+ .. literalinclude:: ../scripts/un_sdg/sdg11/only_connected4.txt
-:ref:`un_sdg/appendix:**Exercise:** 9 (**Chapter:** SDG 11)`
+.. rubric:: Fill up the ``component`` column on the edges table.
+
+.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
+ :start-after: only_connected5.txt
+ :end-before: exercise_10.txt
+ :language: sql
-Exercise 10: Creating a function that gets the city buffer
+Exercise 7: Creating a function that gets the city buffer
--------------------------------------------------------------------------------
+
A function can be created for the same task. This will be help when the table
has more than one city.
.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
- :start-after: exercise_10.txt
- :end-before: exercise_11.txt
- :linenos:
+ :start-after: exercise_10.txt
+ :end-before: exercise_11.txt
+ :language: sql
+ :force:
+
+.. collapse:: Query results
+
+ .. literalinclude:: ../scripts/un_sdg/sdg11/exercise_10.txt
-Exercise 11: Finding the components intersecting the buffer
+Exercise 8: Finding the components intersecting the buffer
================================================================================
+
Next step is to find the components of waterways which lie in the buffer zone of
the city. These are the waterways which will affect the city when it rains around
them. This is done using ``ST_Intersects``. Note that ``get_city_buffer`` function
is used in the query below.
.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
- :start-after: -- Intersection of City Buffer and River Components
- :end-before: exercise_12.txt
+ :start-after: exercise_11.txt
+ :end-before: get_rain_zone1.txt
:language: sql
:linenos:
-Output shows the distinct component numbers which lie in the buffer zone of the city.
-Next step is to get all the edges that have those components.
+.. collapse:: Command result
-|
+ .. literalinclude:: ../scripts/un_sdg/sdg11/exercise_11.txt
-:ref:`un_sdg/appendix:**Exercise:** 11 (**Chapter:** SDG 11)`
+Output shows the distinct component numbers which lie in the buffer zone of the city.
+That is, the rivers that lie within the city.
-Exercise 12: Get the rain zones
+
+Exercise 9: Get the rain zones
================================================================================
-This is the final step of the exercise. In this, the area where if it rains, the
-city would be affected, also can be called as ``rain zone`` is being found. For this,
-create a Buffer around the river components. First, add columns named ``rain_zone``
-in waterways_ways to store buffer geometry of the rain zones. Then, find the buffer
-for every edge which intersects the buffer area using ``ST_Buffer`` and update the
-``rain_zone`` column. Follow the steps given below to complete this task.
-1. Adding column to store Buffer geometry
+In this excercise the area , where if it rains, the
+city would be affected, is calculated. This area is called ``rain zone`` in the excercise
+
+Create a Buffer around the river components.
+
+- Add columns named ``rain_zone`` in waterways_ways
+
+ - To store buffer geometry of the rain zones.
+
+- Find the buffer for every edge that intersects the city buffer area using ``ST_Buffer``
+- and update the ``rain_zone`` column.
+
+.. rubric:: Adding column to store Buffer geometry
.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
- :start-after: -- Buffer of River Components
- :end-before: -- Storing Buffer geometry
+ :start-after: get_rain_zone1.txt
+ :end-before: get_rain_zone2.txt
:language: sql
- :linenos:
-2. Storing Buffer geometry
+.. collapse:: Query results
+
+ .. literalinclude:: ../scripts/un_sdg/sdg11/get_rain_zone1.txt
+
+.. rubric:: Storing Buffer geometry
.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
- :start-after: -- Storing Buffer geometry (rain_zone)
+ :start-after: get_rain_zone2.txt
:end-before: exercise_13.txt
:language: sql
- :linenos:
-This will give us the requires area, where if it rains, the city will be affected.
+.. collapse:: Query results
-|
+ .. literalinclude:: ../scripts/un_sdg/sdg11/get_rain_zone2.txt
-:ref:`un_sdg/appendix:**Exercise:** 12 (**Chapter:** SDG 11)`
+This will give us the requires area, where if it rains, the city will be affected.
-Exercise 13: Create a union of rain zones
+Exercise 10: Create a union of rain zones
================================================================================
Multiple polygons that are obtained can also be merged using ``ST_Union``. This
will give a single polygon as the output.
+.. image:: images/sdg11/sdg11_output.png
+ :align: center
+ :scale: 50%
+
+When it rains in the vicinity, the city will get affected by the rain.
+
.. literalinclude:: ../scripts/un_sdg/sdg11/all_exercises_sdg11.sql
- :start-after: -- Combining mutliple rain zones
+ :start-after: exercise_13.txt
:end-before: \o
:language: sql
- :linenos:
-|
+.. collapse:: Query results
-:ref:`un_sdg/appendix:**Exercise:** 13 (**Chapter:** SDG 11)`
+ .. literalinclude:: ../scripts/un_sdg/sdg11/exercise_13.txt
diff --git a/docs/un_sdg/sdg3-health.rst b/docs/un_sdg/sdg3-health.rst
index 95f0b22d6..29b2ddc54 100644
--- a/docs/un_sdg/sdg3-health.rst
+++ b/docs/un_sdg/sdg3-health.rst
@@ -56,25 +56,17 @@ time is dependant on that hospital.
* Store the sum of population of nearest buildings in roads table
* Find the sum of population on all the roads in the roads served
-Pre-processing roads and buildings data
+PostreSQL basics
================================================================================
-First step is to pre-process the data obtained from :ref:`un_sdg/data:Data for Sustainable Development Goals`.
-This section will work the graph that is going to be used for processing. While
-building the graph, the data has to be inspected to determine if there is any
-invalid data. This is a very important step to make sure that the data is of
-required quality. pgRouting can also be used to do some Data Adjustments.
-This will be discussed in further sections.
-
-Inspecting the database structure
---------------------------------------------------------------------------------
-First step in pre processing is to set the search path for ``Roads`` and ``Buildings``
-data. `Search path` is a list of schemas helps the system determine how a particular
-table is to be imported. In this case, search path of roads table is set to roads
-and buildings schema. ``\dn`` is used to list down all the present schemas.
-``SHOW search_path`` command shows the current search path. ``SET search_path``
-is used to set the search path to ``roads`` and ``buildings``. Finally, ``\dt``
-is used to verify if the Schema have bees changed correctly. Following code snippets
-show the steps as well as the outputs.
+
+Preparing work area
+-------------------------------------------------------------------------------
+
+The ``search_path`` is a variable that determines the order in which database
+schemas are searched for objects.
+
+By setting the ``search_path`` to appropriate values, prepending the schema name
+to tables can be avoided.
Exercise 1: Inspecting schemas
...............................................................................
@@ -82,23 +74,15 @@ Exercise 1: Inspecting schemas
Inspect the schemas by displaying all the present schemas using the following
command
-.. code-block:: bash
-
- \dn
-
-The output of the postgresql command is:
+.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
+ :start-after: show_schemas.txt
+ :end-before: show_path1.txt
-.. code-block:: bash
+.. collapse:: Command output
- List of schemas
- Name | Owner
- -----------+----------
- buildings | swapnil
- public | postgres
- roads | swapnil
- (3 rows)
+ .. literalinclude:: ../scripts/un_sdg/sdg3/show_schemas.txt
-The schema names are ``buildings`` , ``roads`` and ``public``. The owner depends
+The schema names are ``buildings``, ``roads`` and ``public``. The owner depends
on who has the rights to the database.
Exercise 2: Inspecting the search path
@@ -106,79 +90,93 @@ Exercise 2: Inspecting the search path
Display the current search path using the following query.
-.. code-block:: bash
-
- SHOW search_path;
-
-The output of the postgresql command is:
+.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
+ :start-after: show_path1.txt
+ :end-before: set_path.txt
+ :language: sql
-.. code-block:: bash
+.. collapse:: Command output
- search_path
- -----------------
- "$user", public
- (1 row)
+ .. literalinclude:: ../scripts/un_sdg/sdg3/show_path1.txt
-This is the current search path. Tables cannot be accessed using this.
+This is the current search path. Tables in other schemas cannot be accessed with
+this path.
Exercise 3: Fixing the search path
...............................................................................
-In this case, search path of roads table is search path to ``roads`` and ``buildings`` schemas. Following query
-is used to fix the search path
+In this case, the search path needs to include ``roads`` and
+``buildings`` schemas. The following query is used to adjust the search path.
+
+.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
+ :start-after: set_path.txt
+ :end-before: show_path2.txt
-.. code-block:: bash
+.. collapse:: Command output
- SET search_path TO roads,buildings,public;
- SHOW search_path;
+ .. literalinclude:: ../scripts/un_sdg/sdg3/set_path.txt
+
+Checking the search path again
+
+.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
+ :start-after: show_path2.txt
+ :end-before: enumerate_tables.txt
-.. code-block:: bash
+.. collapse:: Command output
+
+ .. literalinclude:: ../scripts/un_sdg/sdg3/show_path2.txt
- search_path
- -------------------
- roads, buildings, public
- (1 row)
Exercise 4: Enumerating tables
...............................................................................
-Finally, ``\dt`` is used to verify if the Schema have bees changed correctly.
-.. code-block:: bash
+With ``\dt`` the tables are listed showing the schema and the owner
- \dt
+.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
+ :start-after: enumerate_tables.txt
+ :end-before: count1.txt
-.. code-block:: bash
+.. collapse:: Command output
- List of relations
- Schema | Name | Type | Owner
- -----------+-----------------------------+-------+---------
- buildings | buildings_pointsofinterest | table | user
- buildings | buildings_ways | table | user
- buildings | buildings_ways_vertices_pgr | table | user
- public | spatial_ref_sys | table | swapnil
- roads | configuration | table | user
- roads | roads_pointsofinterest | table | user
- roads | roads_ways | table | user
- roads | roads_ways_vertices_pgr | table | user
- (8 rows)
+ .. literalinclude:: ../scripts/un_sdg/sdg3/enumerate_tables.txt
-Exercise 5: Counting the number of Roads and Buildings
-...............................................................................
+Preparing roads and buildings data
+================================================================================
+
+First step is to prepare the data obtained from :doc:`data`.
+
+This section will work the graph and data that is going to be used for processing.
+While building the graph, the data has to be inspected to determine if there is any
+invalid data.
+This is a very important step to make sure that the data is of
+required quality.
+pgRouting can also be used to do some Data Adjustments.
+
+Exercise 5: Counting the number of roads and buildings
+--------------------------------------------------------------------------------
-The importance of counting the information on this workshop is to make
-sure that the same data is used and consequently the results are same.
-Also, some of the rows can be seen to understand the structure of the table and
+The importance of counting the information on this workshop is to make sure that
+the same data is used and consequently the results are same.
+Also, some of the rows can be seen to understand the structure of the table and
how the data is stored in it.
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: exercise_5.txt
- :end-before: exercise_6.txt
- :language: sql
- :linenos:
+ :start-after: count1.txt
+ :end-before: count2.txt
+ :language: sql
+
+.. collapse:: Command output
+
+ .. literalinclude:: ../scripts/un_sdg/sdg3/count1.txt
+
+.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
+ :start-after: count2.txt
+ :end-before: clean_buildings.txt
+ :language: sql
-|
+.. collapse:: Command output
-:ref:`un_sdg/appendix:**Exercise:** 5 (**Chapter:** SDG 3)`
+ .. literalinclude:: ../scripts/un_sdg/sdg3/count2.txt
Following image shows the roads and buildings visualised.
@@ -188,27 +186,54 @@ Following image shows the roads and buildings visualised.
Preprocessing Buildings
--------------------------------------------------------------------------------
-The table ``buildings_ways`` contains the buildings in edge form. They have to be
-converted into polygons to get the area.
+The table ``buildings_ways`` contains the buildings in ``LINGSTING`` type.
+They have to be converted into polygons to get the area, as the area is going to
+be used to get an estimate of the population living in the building.
-Exercise 6: Add a spatial column to the table
+Exercise 6: Removing columns
+...............................................................................
+
+Columns can be deleted from a table. In this case instead of creating a view,
+columns that are not related to a **buidling** concept are dropped from
+``buildings_ways``.
+
+.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
+ :start-after: clean_buildings.txt
+ :end-before: exercise_6.txt
+ :language: sql
+
+.. collapse:: Command output
+
+ .. literalinclude:: ../scripts/un_sdg/sdg3/clean_buildings.txt
+
+
+Exercise 7: Add a spatial column to the table
...............................................................................
Add a spatial column named ``poly_geom`` to the table ``buildings_ways`` to store
the Polygon Geometry
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: --Add a spatial column to the table
- :end-before: exercise_7.txt
- :language: sql
- :linenos:
+ :start-after: exercise_6.txt
+ :end-before: buildings_description.txt
+ :language: sql
+
+.. collapse:: Query Results
+
+ .. literalinclude:: ../scripts/un_sdg/sdg3/exercise_6.txt
+
+Inspecting the table:
+
+.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
+ :start-after: buildings_description.txt
+ :end-before: exercise_7.txt
-|
+.. collapse:: Table structure
-:ref:`un_sdg/appendix:**Exercise:** 6 (**Chapter:** SDG 3)`
+ .. literalinclude:: ../scripts/un_sdg/sdg3/buildings_description.txt
-Exercise 7: Removing the polygons with less than 4 points
+Exercise 8: Removing the polygons with less than 4 points
...............................................................................
``ST_NumPoints`` is used to find the number of points on a geometry. Also, polygons
@@ -217,43 +242,42 @@ Hence, the buildings having less than 3 vertices need to be cleaned up. Follow
the steps given below to complete this task.
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: exercise_7.txt
- :end-before: exercise_8.txt
- :language: sql
- :linenos:
+ :start-after: exercise_7.txt
+ :end-before: exercise_8.txt
+ :language: sql
-|
+.. collapse:: Query Results
-:ref:`un_sdg/appendix:**Exercise:** 7 (**Chapter:** SDG 3)`
+ .. literalinclude:: ../scripts/un_sdg/sdg3/exercise_7.txt
-Exercise 8: Creating the polygons
+Exercise 9: Creating the polygons
...............................................................................
-``ST_MakePolygons`` is used to make the polygons. This step stores the geom of
+``ST_MakePolygons`` is used to make the polygons. This step stores the geometry of
polygons in the ``poly_geom`` column which was created earlier.
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: exercise_8.txt
- :end-before: exercise_9.txt
- :language: sql
- :linenos:
+ :start-after: exercise_8.txt
+ :end-before: add_area_col.txt
+ :language: sql
+ :linenos:
-|
+.. collapse:: Query Results
-:ref:`un_sdg/appendix:**Exercise:** 8 (**Chapter:** SDG 3)`
+ .. literalinclude:: ../scripts/un_sdg/sdg3/exercise_8.txt
-Exercise 9: Calculating the area
+Exercise 10: Calculating the area
...............................................................................
+
After getting the polygon geometry, next step is to find the area of the polygons.
Follow the steps given below to complete this task.
1. Adding a column for storing the area
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: -- Adding a column for storing the area
- :end-before: -- Storing the area
+ :start-after: add_area_col.txt
+ :end-before: get_area.txt
:language: sql
- :linenos:
2. Storing the area in the new column
@@ -261,34 +285,119 @@ Follow the steps given below to complete this task.
new column
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: -- Storing the area
- :end-before: exercise_10.txt
+ :start-after: get_area.txt
+ :end-before: kind_of_buildings.txt
:language: sql
- :linenos:
-|
+.. collapse:: Query Results
-:ref:`un_sdg/appendix:**Exercise:** 9 (**Chapter:** SDG 3)`
+ .. literalinclude:: ../scripts/un_sdg/sdg3/get_area.txt
-pgr_connectedComponents
---------------------------------------------------------------------------------
-For the next step ``pgr_connectedComponents`` will be used. It is used to find the
-connected components of an undirected graph using a Depth First Search-based approach.
+Exercise 11: Estimating the population
+...............................................................................
-**Signatures**
+Due to the lack of census data, this exercise will fill up and estimate of the
+population living on the buildings, based on the area of the building and the
+kind of use the building gets.
-.. index::
- single: connectedComponents
+Buildings of OpenStreetMap data are classified into various categories.
-.. code-block:: none
+.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
+ :start-after: kind_of_buildings.txt
+ :end-before: population_function.txt
+ :language: sql
- pgr_connectedComponents(edges_sql)
+.. collapse:: Query Results
- RETURNS SET OF (seq, component, node)
- OR EMPTY SET
+ .. literalinclude:: ../scripts/un_sdg/sdg3/kind_of_buildings.txt
-`pgr_connectedComponents Documentation `__
-can be found at this link for more information.
+
+For this exercise, the population will be set as follows:
+
+- Negligible:
+
+ - People do not live in these places.
+ - Population: 1 person
+
+ - There may be people guarding the place.
+
+- Very Sparse:
+
+ - ``retail``, ``commercial``, ``school``
+ - People do not live in these places.
+ - Population: At least 2 persons.
+
+ - Because there may be people guarding the place.
+
+- Sparse:
+
+ - Buildings with low population density, like ``university``.
+ - Population: At least 3 persons.
+
+ - Because there may be people guarding the place.
+ - Students might live there.
+
+- Moderate:
+
+ - Location where people might be living temporarly, like ``hotel`` and
+ ``hospital``.
+ - Population: At least 5 persons.
+
+- Dense:
+
+ - A medium sized residential building.
+ - Population: At least 7 persons.
+
+- Very Dense:
+
+ - A large sized residential building, like ``apartments``.
+ - Population: At least 10 persons.
+
+
+Reference: :ref:`un_sdg/data:Appendix`
+
+This class-specific factor is multiplied with the area of each building to get
+the population. Follow the steps given below to complete this task.
+
+1. Create a function to find population using class-specific factor and area.
+
+.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
+ :start-after: population_function.txt
+ :end-before: add_population_col.txt
+ :language: sql
+ :force:
+
+.. collapse:: Query Results
+
+ .. literalinclude:: ../scripts/un_sdg/sdg3/population_function.txt
+
+.. note:: All these are estimations based on this particular area. More complicated
+ functions can be done that consider height of the apartments but the
+ design of a function is going to depend on the availability of the data.
+ For example, using census data can achieve more accurate estimation.
+
+2. Add a column for storing the population in the ``buildings_ways``
+
+.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
+ :start-after: add_population_col.txt
+ :end-before: get_population.txt
+ :language: sql
+
+.. collapse:: Query Results
+
+ .. literalinclude:: ../scripts/un_sdg/sdg3/add_population_col.txt
+
+3. Use the ``population`` function to store the population in the new column created
+in the ``building_ways``.
+
+.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
+ :start-after: get_population.txt
+ :end-before: only_connected1.txt
+ :language: sql
+
+.. collapse:: Query Results
+
+ .. literalinclude:: ../scripts/un_sdg/sdg3/get_population.txt
Preprocessing Roads
--------------------------------------------------------------------------------
@@ -308,106 +417,104 @@ with the component number with count less than maximum count will be removed
Follow the steps given below to complete this task.
-Exercise 10: Find the Component ID for Road vertices
+Exercise 12: Remove disconnected components
...............................................................................
-First step in Preprocessing Roads is to find the connected component ID for Road
-vertices. Follow the steps given below to complete this task.
-1. Add a column named ``component`` to store component number.
+To remove the disconnected components on the road network, the following
+pgRouting functions, discussed on :doc:`../basic/graph_views`, will be used:
+
+* ``pgr_extractVertices``
+* ``pgr_connectedComponents``
+
+.. rubric:: Create a vertices table.
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: -- Add a column for storing the component
- :end-before: -- Update the vertices with the component number
+ :start-after: only_connected1.txt
+ :end-before: only_connected2.txt
:language: sql
- :linenos:
-2. Update the ``component`` column in ``roads_ways_vertices_pgr`` with the component number
+.. collapse:: Query Results
+
+ .. literalinclude:: ../scripts/un_sdg/sdg3/only_connected1.txt
+
+.. rubric:: Fill up the ``x``, ``y`` and ``geom`` columns.
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: -- Update the vertices with the component number
- :end-before: exercise_11.txt
+ :start-after: only_connected2.txt
+ :end-before: only_connected3.txt
:language: sql
- :linenos:
-This will store the component number of each edge in the table. Now, the completely
-connected network of roads should have the maximum count in the ``component`` table.
+.. collapse:: Query Results
-.. code-block:: sql
-
- SELECT component, count(*) FROM road_ways_vertices_pgr GROUP BY component;
+ .. literalinclude:: ../scripts/un_sdg/sdg3/only_connected2.txt
+.. rubric:: Add a ``component`` column on the edges and vertices tables.
-|
+.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
+ :start-after: only_connected3.txt
+ :end-before: only_connected4.txt
+ :language: sql
-:ref:`un_sdg/appendix:**Exercise:** 10 (**Chapter:** SDG 3)`
+.. collapse:: Query Results
-Exercise 11: Finding the components which are to be removed
-...............................................................................
+ .. literalinclude:: ../scripts/un_sdg/sdg3/only_connected3.txt
-This query selects all the components which are not equal to the component number
-with maximum count using a subquery which groups the rows in ``roads_ways_vertices_pgr``
-by the component.
+.. rubric:: Fill up the ``component`` column on the vertices table.
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: -- These components are to be removed
- :end-before: exercise_12.txt
+ :start-after: only_connected4.txt
+ :end-before: only_connected5.txt
:language: sql
- :linenos:
-
-|
-:ref:`un_sdg/appendix:**Exercise:** 11 (**Chapter:** SDG 3)`
+.. collapse:: Query Results
-Exercise 12: Finding the road vertices of these components
-...............................................................................
+ .. literalinclude:: ../scripts/un_sdg/sdg3/only_connected4.txt
-Find the road vertices of these components which belong to those components which
-are to be removed. The following query selects all the road vertices which have
-the component number from Exercise 11.
+.. rubric:: Fill up the ``component`` column on the edges table.
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: -- The edges that need to be removed
- :end-before: exercise_13.txt
+ :start-after: only_connected5.txt
+ :end-before: only_connected6.txt
:language: sql
- :linenos:
-|
+.. collapse:: Query Results
-:ref:`un_sdg/appendix:**Exercise:** 12 (**Chapter:** SDG 3)`
+ .. literalinclude:: ../scripts/un_sdg/sdg3/only_connected5.txt
-Exercise 13: Removing the unwanted edges and vertices
-...............................................................................
+.. rubric:: Get the component number with the most number of edges.
-1. Removing the unwanted edges
+.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
+ :start-after: only_connected6.txt
+ :end-before: only_connected7.txt
+ :language: sql
+
+.. collapse:: Query Results
-In ``roads_ways`` table (edge table) ``source`` and ``target`` have the ``id`` of
-the vertices from where the edge starts and ends. To delete all the disconnected
-edges the following query takes the output from the query of Step 4 and deletes
-all the edges having the same ``source`` as the ``id``.
+ .. literalinclude:: ../scripts/un_sdg/sdg3/only_connected6.txt
+
+.. rubric:: Delete edges not belonging to the most connected component.
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: -- Removing the unwanted edges
- :end-before: -- Removing unused vertices
+ :start-after: only_connected7.txt
+ :end-before: only_connected8.txt
:language: sql
- :linenos:
-2. Removing unused vertices
+.. collapse:: Query Results
-The following query uses the output of Step 4 to remove the vertices of the disconnected
-edges.
+ .. literalinclude:: ../scripts/un_sdg/sdg3/only_connected7.txt
+
+.. rubric:: Delete vertices not belonging to the most connected component.
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: -- Removing unused vertices
- :end-before: -- finding the service area
+ :start-after: only_connected8.txt
+ :end-before: nearest_vertex1.txt
:language: sql
- :linenos:
-
-|
+.. collapse:: Query Results
-:ref:`un_sdg/appendix:**Exercise:** 13 (**Chapter:** SDG 3)`
+ .. literalinclude:: ../scripts/un_sdg/sdg3/only_connected8.txt
-Finding the roads served by the hospitals
+Find the roads served by the hospitals
================================================================================
After pre-processing the data, next step is to find the area served by the
hospital. This area can be computed from the entrance of the hospital or from any
@@ -419,7 +526,25 @@ steps to be followed are:
* Finding the roads served
* Generalising the roads served
-Exercise 14: Finding the closest road vertex
+pgr_drivingDistance
+--------------------------------------------------------------------------------
+For the next step ``pgr_drivingDistance`` will be used. This returns the driving
+distance from a start node. It uses the Dijkstra algorithm to extract all the nodes
+that have costs less than or equal to the value distance. The edges that are extracted
+conform to the corresponding spanning tree.
+
+.. rubric:: Signatures
+
+.. code-block:: sql
+
+ pgr_drivingDistance(edges_sql, start_vid, distance [, directed])
+ pgr_drivingDistance(edges_sql, start_vids, distance [, directed] [, equicost])
+ RETURNS SET OF (seq, [start_vid,] node, edge, cost, agg_cost)
+
+`pgr_drivingDistance Documentation `__
+can be found at this link for more information.
+
+Exercise 13: Find the closest road vertex
--------------------------------------------------------------------------------
There are multiple road vertices near the hospital. Create a function to find
the geographically closest road vertex. ``closest_vertex`` function takes geometry
@@ -433,92 +558,93 @@ comparing ``geom`` of both the tables.
The following query creates a function to find the closest road vertex.
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: -- finding the closest road vertex
- :end-before: -- service area
- :linenos:
+ :start-after: nearest_vertex1.txt
+ :end-before: nearest_vertex2.txt
+ :language: sql
+ :force:
+.. collapse:: Query Results
-pgr_drivingDistance
---------------------------------------------------------------------------------
-For the next step ``pgr_drivingDistance`` will be used. This returns the driving
-distance from a start node. It uses the Dijkstra algorithm to extract all the nodes
-that have costs less than or equal to the value distance. The edges that are extracted
-conform to the corresponding spanning tree.
+ .. literalinclude:: ../scripts/un_sdg/sdg3/nearest_vertex1.txt
-.. rubric:: Signatures
+Testing the function
-.. code-block:: sql
+.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
+ :start-after: nearest_vertex2.txt
+ :end-before: prepare_edges.txt
+ :language: sql
- pgr_drivingDistance(edges_sql, start_vid, distance [, directed])
- pgr_drivingDistance(edges_sql, start_vids, distance [, directed] [, equicost])
- RETURNS SET OF (seq, [start_vid,] node, edge, cost, agg_cost)
+.. collapse:: Query Results
-.. rubric:: Using defaults
+ .. literalinclude:: ../scripts/un_sdg/sdg3/nearest_vertex2.txt
-.. code-block:: sql
- pgr_drivingDistance(edges_sql, start_vid, distance)
- RETURNS SET OF (seq, node, edge, cost, agg_cost)
+Exercise 14: Finding the served roads using pgr_drivingDistance
+--------------------------------------------------------------------------------
-.. rubric:: Single Vertex
+.. rubric:: Problem
-.. code-block:: sql
+Find the roads within 10 minutes walking distance from the hospitals. Use ``1
+m/s`` as walking speed.
- pgr_drivingDistance(edges_sql, start_vid, distance [, directed])
- RETURNS SET OF (seq, node, edge, cost, agg_cost)
+.. rubric:: Solution
-.. rubric:: Multiple Vertices
+In this exercise, the roads served are calculated based on a walking time of ``1
+m/s``, by using ``pgrdrivingDistance`` function from pgRouting extension.
-.. code-block:: sql
+- Time in minutes is considered as ``cost``.
+- the graph is undirected.
- pgr_drivingDistance(edges_sql, start_vids, distance, [, directed] [, equicost])
- RETURNS SET OF (seq, start_vid, node, edge, cost, agg_cost)
+Preparing a query
-`pgr_drivingDistance Documentation `__
-can be found at this link for more information.
+.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
+ :start-after: prepare_edges.txt
+ :end-before: exercise_16.txt
+ :language: sql
+ :force:
-Exercise 15: Finding the served roads using pgr_drivingDistance
---------------------------------------------------------------------------------
-In this exercise, the roads served based on travel-time are calculated. This can be
-calculated using ``pgrdrivingDistance`` function of pgRouting. Time in minutes is
-considered as ``cost``. The ``agg_cost`` column would show the total time required to
-reach the hospital.
+.. collapse:: Query Results
+
+ .. literalinclude:: ../scripts/un_sdg/sdg3/prepare_edges.txt
For the following query,
-* In line 3, Pedestrian speed is assumed to be as ``1 m/s``. As ``time`` = ``distance/speed``,
- ``length_m`` / ``1 m/s`` / ``60`` gives the time in minutes
-* In line 7, ``tag_id = '318'`` as 318 is the tag_id of hospital in the configuration
- file of buildings. Reference for Tag ID : :ref:`un_sdg/data:Appendix`
-* In line 8, ``10`` is written for 10 minutes which is a threshold for ``agg_cost``
-* In line 8, ``FALSE`` is written as the query is for undirected graph
+- The prepared statement is used.
+- Pedestrian speed is set to be ``1 m/s``.
+
+ - As ``time`` = ``distance/speed``, ``length_m`` / ``1 m/s`` / ``60`` gives
+ the time in minutes.
+
+- ``tag_id = '318'`` as 318 is the value for hospital in the configuration
+ table of the buildings.
+
+- ``10`` for 10 minutes, which is a threshold for ``agg_cost``
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
:start-after: exercise_15.txt
:end-before: exercise_16.txt
:language: sql
- :linenos:
-.. note:: ``LIMIT 10`` displays the first 10 rows of the output.
+.. collapse:: Query Results
-|
-
-:ref:`un_sdg/appendix:**Exercise:** 15 (**Chapter:** SDG 3)`
+ .. literalinclude:: ../scripts/un_sdg/sdg3/exercise_15.txt
Following figure shows the visualised output of the above query. The lines
-highlighted by ``red`` colour show the area from where the hospital can be reached
-within 10 minutes of walking at the speed of ``1 m/s``. It is evident from the output figure
-that some of the roads which are near to the hospital are not highlighted. For
-example, to roads in the north of the hospital. This is because the only one edge
-per road vertex was selected by the query. Next section will solve this issue by
-doing a small modification in the query.
+highlighted by red colour show the area from where the hospital can be reached
+within 10 minutes of walking at the speed of ``1 m/s``.
+
+It is noticable from the output figure that some of the roads which are near to
+the hospital are not highlighted. For example, to roads in the north of the
+hospital. This is because the only one edge per road vertex was selected by the
+query.
.. image:: images/sdg3/service_area.png
:align: center
:scale: 50%
-Exercise 16: Generalising the served roads
+Exercise 15: Generalising the served roads
--------------------------------------------------------------------------------
+
The edges which are near to to hospital should also be selected in the roads served
as the hospital also serves those buildings. The following query takes the query
from previous section as a ``subquery`` and selects all the edges from ``roads_ways``
@@ -527,15 +653,12 @@ that have the same ``source`` and ``target`` to that of ``subquery`` (Line 14).
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
:start-after: exercise_16.txt
- :end-before: -- Calculating the population residing along the road
+ :end-before: closest_edge1.txt
:language: sql
- :linenos:
-.. note:: ``LIMIT 10`` displays the first 10 rows of the output.
+.. collapse:: Query Results
-|
-
-:ref:`un_sdg/appendix:**Exercise:** 16 (**Chapter:** SDG 3)`
+ .. literalinclude:: ../scripts/un_sdg/sdg3/exercise_16.txt
Following figure shows the visualised output of the above query. Lines
highlighted in ``yellow`` show the `generalised the roads served`. This gives a better
@@ -547,100 +670,56 @@ estimate of the areas from where the hospital can be reached by a particular spe
Calculating the total population served by the hospital
================================================================================
+
Now the next step is to estimate the dependant population. Official source of
population is Census conducted by the government. But for this exercise, population
will be estimated from the ``area`` as well as the ``category`` of the building.
This area will be stored in the nearest roads. Following steps explain this
process in detail.
-Exercise 17: Estimating the population of buildings
---------------------------------------------------------------------------------
-Population of an building can be estimated by its area and its category.
-Buildings of OpenStreetMap data are classified into various categories. For
-this exercise, the buildings are classified into the following classes:
-
-- Negligible: People do not live in these places. But the default is 1 because of
- homeless people.
-- Very Sparse: People do not live in these places. But the default is 2 because
- there may be people guarding the place.
-- Sparse: Buildings with low population density. Also, considering the universities
- and college because the students live there.
-- Moderate: A family unit housing kind of location.
-- Dense: A medium sized residential building.
-- Very Dense: A large sized residential building.
-
-Reference: :ref:`un_sdg/data:Appendix`
-This class-specific factor is multiplied with the area of each building to get
-the population. Follow the steps given below to complete this task.
-
-1. Create a function to find population using class-specific factor and area.
-
-.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: -- population_function_from_here
- :end-before: -- Adding a column for storing the population
- :linenos:
-
-.. note:: All these are estimations based on this particular area. More complicated
- functions can be done that consider height of the apartments but the
- design of a function is going to depend on the availability of the data.
- For example, using census data can achieve more accurate estimation.
-
-2. Add a column for storing the population in the ``buildings_ways``
-
-.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: -- Adding a column for storing the population
- :end-before: -- Storing the population
- :language: sql
- :linenos:
-
-3. Use the ``population`` function to store the population in the new column created
-in the ``building_ways``.
-
-.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: -- Storing the population
- :end-before: -- population_function_to_here
- :language: sql
- :linenos:
-
-|
-
-:ref:`un_sdg/appendix:**Exercise:** 17 (**Chapter:** SDG 3)`
-
-
-Exercise 18: Finding the nearest roads to store the population
+Exercise 16: Finding the nearest roads of the buildings
--------------------------------------------------------------------------------
+
To store the population of buildings in the roads, nearest road to a building
is to be found. Follow the steps given below to complete this task.
1. Create Function for finding the closest edge.
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: -- Create Function for finding the closest edge
- :end-before: -- Add a column for storing the closest edge
+ :start-after: closest_edge1.txt
+ :end-before: closest_edge2.txt
:linenos:
+.. collapse:: Query Results
+
+ .. literalinclude:: ../scripts/un_sdg/sdg3/closest_edge1.txt
+
2. Add a column in ``buildings_ways`` for storing the id of closest edge
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: -- Add a column for storing the closest edge
- :end-before: -- Store the edge_id of the closest edge in the column
+ :start-after: closest_edge2.txt
+ :end-before: closest_edge3.txt
:language: sql
:linenos:
+.. collapse:: Query Results
+
+ .. literalinclude:: ../scripts/un_sdg/sdg3/closest_edge2.txt
+
3. Store the edge id of the closest edge in the new column of ``buildings_ways``
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: -- Store the edge_id of the closest edge in the column
- :end-before: -- nearest_road_to_here
+ :start-after: closest_edge3.txt
+ :end-before: add_road_population1.txt
:language: sql
:linenos:
-|
+.. collapse:: Query Results
-:ref:`un_sdg/appendix:**Exercise:** 18 (**Chapter:** SDG 3)`
+ .. literalinclude:: ../scripts/un_sdg/sdg3/closest_edge3.txt
-Exercise 19: Storing the population in the roads
+Exercise 17: Storing the population in the roads
--------------------------------------------------------------------------------
After finding the nearest road, the sum of population of all the nearest
buildings is stored in the population column of the roads table. Following image
@@ -656,46 +735,49 @@ Follow the steps given below to complete this task.
1. Add a column in ``roads_ways`` for storing population
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: -- Add population column to roads table
- :end-before: -- Update the roads with the SUM of population of buildings closest to it
+ :start-after: add_road_population1.txt
+ :end-before: add_road_population2.txt
:language: sql
- :linenos:
+
+.. collapse:: Query Results
+
+ .. literalinclude:: ../scripts/un_sdg/sdg3/add_road_population1.txt
2. Update the roads with the sum of population of buildings closest to it
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: -- Update the roads with the SUM of population of buildings closest to it
- :end-before: -- testing
+ :start-after: add_road_population2.txt
+ :end-before: add_road_population3.txt
:language: sql
:linenos:
+.. collapse:: Query Results
+
+ .. literalinclude:: ../scripts/un_sdg/sdg3/add_road_population2.txt
+
3. Verify is the population is stored using the following query.
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: -- testing
- :end-before: -- road_population_to_here
+ :start-after: add_road_population3.txt
+ :end-before: exercise_20.txt
:language: sql
:linenos:
+.. collapse:: Query Results
-|
+ .. literalinclude:: ../scripts/un_sdg/sdg3/add_road_population3.txt
-:ref:`un_sdg/appendix:**Exercise:** 19 (**Chapter:** SDG 3)`
-
-Exercise 20: Finding total population
+Exercise 18: Find total population served by the hospital
--------------------------------------------------------------------------------
-Final step is to find the total population served by the hospital based on travel-time.
-Use the query from `Exercise 16: Generalising the served roads`_ as a subquery
-to get all the edges in the roads served. Note that ``s.population`` is added in
-line 14 which gives the population. After getting the population for each edge/road,
-use ``sum()`` to get the total population which is dependant on the hospital.
+
+Final step is to find the total population served by the hospital based on
+travel time.
.. literalinclude:: ../scripts/un_sdg/sdg3/all_exercises_sdg3.sql
- :start-after: -- finding total population
- :end-before: \o
+ :start-after: exercise_20.txt
+ :end-before: \o
:language: sql
- :linenos:
-|
+.. collapse:: Query Results
-:ref:`un_sdg/appendix:**Exercise:** 20 (**Chapter:** SDG 3)`
+ .. literalinclude:: ../scripts/un_sdg/sdg3/exercise_20.txt
diff --git a/docs/un_sdg/sdg7-energy.rst b/docs/un_sdg/sdg7-energy.rst
index f05ea55bf..52959976a 100644
--- a/docs/un_sdg/sdg7-energy.rst
+++ b/docs/un_sdg/sdg7-energy.rst
@@ -55,7 +55,7 @@ enhanced cost-effectiveness resulting in affordable electricity.
Pre-processing roads data
================================================================================
-First step is to pre-process the data obtained from :ref:`un_sdg/data:Data for Sustainable Development Goals`.
+First step is to pre-process the data obtained from :doc:`data`.
This section will work the graph that is going to be used for processing. While
building the graph, the data has to be inspected to determine if there is any
invalid data. This is a very important step to make sure that the data is of
@@ -68,224 +68,132 @@ First step in pre processing is to set the search path for ``Roads`` data.
Search path is a list of schemas helps the system determine how a particular table
is to be imported.
-Exercise 1: Inspecting the current schemas
+Exercise 1: Set the seach path
...............................................................................
-Inspect the schemas by displaying all the present schemas using the following
-command
-.. code-block:: bash
+In this case, search path of roads table is search path to ``roads`` and
+``buildings`` schemas. Following query is used to adjust the search path.
- \dn
-
-.. code-block:: bash
+.. literalinclude:: ../scripts/un_sdg/sdg7/all_exercises_sdg7.sql
+ :start-after: set_path.txt
+ :end-before: show_path2.txt
- List of schemas
- Name | Owner
- -----------+----------
- public | postgres
- roads |
- (2 rows)
+.. collapse:: Command output
-The schema names are ``roads`` and ``public``. The owner depends on who has the rights to the database.
+ .. literalinclude:: ../scripts/un_sdg/sdg7/set_path.txt
-Exercise 2: Inspecting the current search path
-...............................................................................
-Display the current search path using the following query.
+Checking the search path again
-.. code-block:: bash
-
- SHOW search_path;
+.. literalinclude:: ../scripts/un_sdg/sdg7/all_exercises_sdg7.sql
+ :start-after: show_path2.txt
+ :end-before: revert_changes.txt
-.. code-block:: bash
+.. collapse:: Command output
- search_path
- -----------------
- "$user", public
- (1 row)
+ .. literalinclude:: ../scripts/un_sdg/sdg7/show_path2.txt
-This is the current search path. Tables cannot be accessed using this.
-Exercise 3: Fixing the current search path
+Exercise 2: Remove disconnected components
...............................................................................
-In this case, search path of roads table is set to ``roads`` schema. Following query
-is used to fix the search path
-
-.. code-block:: sql
-
- SET search_path TO roads,public;
- SHOW search_path;
-
-.. code-block:: bash
-
- search_path
- -------------------
- roads, public
- (1 row)
-
-Exercise 4: Enumerating the tables
---------------------------------------------------------------------------------
-Finally, ``\dt`` is used to verify if the Schema have bees changed correctly.
-
-.. code-block:: bash
- \dt
+To remove the disconnected components on the road network, the following
+pgRouting functions, discussed on :doc:`../basic/graph_views`, will be used:
-.. code-block:: bash
+* ``pgr_extractVertices``
+* ``pgr_connectedComponents``
- List of relations
- Schema | Name | Type | Owner
- -----------+-----------------------------+-------+---------
- public | spatial_ref_sys | table |
- roads | configuration | table | user
- roads | roads_pointsofinterest | table | user
- roads | roads_ways | table | user
- roads | roads_ways_vertices_pgr | table | user
- (5 rows)
-
-Exercise 5: Counting the number of Roads
---------------------------------------------------------------------------------
-The importance of counting the information on this workshop is to make sure that
-the same data is used and consequently the results are same. Also, some of the
-rows can be seen to understand the structure of the table and how the data is
-stored in it.
+.. rubric:: Create a vertices table.
.. literalinclude:: ../scripts/un_sdg/sdg7/all_exercises_sdg7.sql
- :start-after: exercise_5.txt
- :end-before: exercise_6.txt
+ :start-after: only_connected1.txt
+ :end-before: only_connected2.txt
:language: sql
- :linenos:
-:ref:`un_sdg/appendix:**Exercise:** 5 (**Chapter:** SDG 7)`
+.. collapse:: Query Results
-pgr_connectedComponents for preprocessing roads
-================================================================================
-For the next step ``pgr_connectedComponents`` will be used. It is used to find the
-connected components of an undirected graph using a Depth First Search-based approach.
-
-**Signatures**
-
-.. index::
- single: connectedComponents
-
-.. code-block:: none
+ .. literalinclude:: ../scripts/un_sdg/sdg7/only_connected1.txt
- pgr_connectedComponents(edges_sql)
+.. rubric:: Fill up the ``x``, ``y`` and ``geom`` columns.
- RETURNS SET OF (seq, component, node)
- OR EMPTY SET
-
-`pgr_connectedComponents Documentation `__
-can be found at this link for more information.
-
-Extract connected components of roads
-================================================================================
-Similar to :doc:`sdg3-health`, the disconnected roads
-have to be removed from their network to get appropriate results.
+.. literalinclude:: ../scripts/un_sdg/sdg7/all_exercises_sdg7.sql
+ :start-after: only_connected2.txt
+ :end-before: only_connected3.txt
+ :language: sql
-Follow the steps given below to complete this task.
+.. collapse:: Query Results
-Exercise 6: Find the Component ID for Road vertices
---------------------------------------------------------------------------------
-First step in Preprocessing Roads is to find the connected component ID for Road
-vertices. Follow the steps given below to complete this task.
+ .. literalinclude:: ../scripts/un_sdg/sdg7/only_connected2.txt
-1. Add a column named ``component`` to store component number.
+.. rubric:: Add a ``component`` column on the edges and vertices tables.
.. literalinclude:: ../scripts/un_sdg/sdg7/all_exercises_sdg7.sql
- :start-after: -- Add a column for storing the component
- :end-before: -- Update the vertices with the component number
+ :start-after: only_connected3.txt
+ :end-before: only_connected4.txt
:language: sql
- :linenos:
-2. Update the ``component`` column in ``roads_ways_vertices_pgr`` ith the component number
+.. collapse:: Query Results
-.. literalinclude:: ../scripts/un_sdg/sdg7/all_exercises_sdg7.sql
- :start-after: -- Update the vertices with the component number
- :end-before: exercise_7.txt
- :language: sql
- :linenos:
+ .. literalinclude:: ../scripts/un_sdg/sdg7/only_connected3.txt
-This will store the component number of each edge in the table. Now, the completely
-connected network of roads should have the maximum count in the ``component`` table.
+.. rubric:: Fill up the ``component`` column on the vertices table.
-|
+.. literalinclude:: ../scripts/un_sdg/sdg7/all_exercises_sdg7.sql
+ :start-after: only_connected4.txt
+ :end-before: only_connected5.txt
+ :language: sql
-if done before: :ref:`un_sdg/appendix:**Exercise:** 10 (**Chapter:** SDG 3)`
-if not done before: :ref:`un_sdg/appendix:**Exercise:** 6 (**Chapter:** SDG 7)`
+.. collapse:: Query Results
-Exercise 7: Finding the components which are to be removed
---------------------------------------------------------------------------------
+ .. literalinclude:: ../scripts/un_sdg/sdg7/only_connected4.txt
-This query selects all the components which are not equal to the component number
-with maximum count using a subquery which groups the rows in ``roads_ways_vertices_pgr``
-by the component.
+.. rubric:: Fill up the ``component`` column on the edges table.
.. literalinclude:: ../scripts/un_sdg/sdg7/all_exercises_sdg7.sql
- :start-after: exercise_7.txt
- :end-before: exercise_8.txt
+ :start-after: only_connected5.txt
+ :end-before: only_connected6.txt
:language: sql
- :linenos:
+.. collapse:: Query Results
-|
+ .. literalinclude:: ../scripts/un_sdg/sdg7/only_connected5.txt
-if done before: :ref:`un_sdg/appendix:**Exercise:** 11 (**Chapter:** SDG 3)`
-if not done before: :ref:`un_sdg/appendix:**Exercise:** 7 (**Chapter:** SDG 7)`
-
-Exercise 8: Finding the road vertices of these components
---------------------------------------------------------------------------------
-
-Find the road vertices if these components which belong to those components which
-are to be removed. The following query selects all the road vertices which have
-the component number from Exercise 7.
+.. rubric:: Get the component number with the most number of edges.
.. literalinclude:: ../scripts/un_sdg/sdg7/all_exercises_sdg7.sql
- :start-after: exercise_8.txt
- :end-before: exercise_9.txt
+ :start-after: only_connected6.txt
+ :end-before: only_connected7.txt
:language: sql
- :linenos:
+.. collapse:: Query Results
-|
+ .. literalinclude:: ../scripts/un_sdg/sdg7/only_connected6.txt
-if done before: :ref:`un_sdg/appendix:**Exercise:** 12 (**Chapter:** SDG 3)`
-if not done before: :ref:`un_sdg/appendix:**Exercise:** 8 (**Chapter:** SDG 7)`
-
-Exercise 9: Removing the unwanted edges and vertices
---------------------------------------------------------------------------------
-
-1. Removing the unwanted edges
-
-In ``roads_ways`` table (edge table) ``source`` and ``target`` have the ``id`` of
-the vertices from where the edge starts and ends. To delete all the disconnected
-edges the following query takes the output from the query of Step 4 and deletes
-all the edges having the same ``source`` as the ``id``.
+.. rubric:: Delete edges not belonging to the most connected component.
.. literalinclude:: ../scripts/un_sdg/sdg7/all_exercises_sdg7.sql
- :start-after: exercise_9.txt
- :end-before: -- Removing unused vertices
+ :start-after: only_connected7.txt
+ :end-before: only_connected8.txt
:language: sql
- :linenos:
-2. Removing unused vertices
+.. collapse:: Query Results
-The following query uses the output of Step 4 to remove the vertices of the disconnected
-edges.
+ .. literalinclude:: ../scripts/un_sdg/sdg3/only_connected7.txt
+
+.. rubric:: Delete vertices not belonging to the most connected component.
.. literalinclude:: ../scripts/un_sdg/sdg7/all_exercises_sdg7.sql
- :start-after: -- Removing unused vertices
- :end-before: exercise_10.txt
+ :start-after: only_connected8.txt
+ :end-before: exercise_10-1.txt
:language: sql
- :linenos:
+.. collapse:: Query Results
-|
+ .. literalinclude:: ../scripts/un_sdg/sdg3/only_connected8.txt
-if done before: :ref:`un_sdg/appendix:**Exercise:** 13 (**Chapter:** SDG 3)`
-if not done before: :ref:`un_sdg/appendix:**Exercise:** 9 (**Chapter:** SDG 7)`
pgr_kruskalDFS
================================================================================
+
For the next step ``pgr_kruskalDFS`` will be used. Kruskal algorithm is used for
getting the Minimum Spanning Tree with Depth First Search ordering. A minimum spanning
tree (MST) is a subset of edges of a connected undirected graph that connects all
@@ -301,31 +209,12 @@ as possible.
RETURNS SET OF (seq, depth, start_vid, node, edge, cost, agg_cost)
-.. index::
- single: kruskalDFS(Single vertex)
-
-.. rubric:: Single vertex
-
-.. code-block:: none
-
- pgr_kruskalDFS(Edges SQL, Root vid [, max_depth])
-
- RETURNS SET OF (seq, depth, start_vid, node, edge, cost, agg_cost)
-
-
-.. rubric:: Multiple vertices
-
-.. code-block:: none
-
- pgr_kruskalDFS(Edges SQL, Root vids [, max_depth])
-
- RETURNS SET OF (seq, depth, start_vid, node, edge, cost, agg_cost)
-
`pgr_kruskalDFS Documentation `__
can be found at this link for more information.
-Exercise 10: Find the minimum spanning tree
+Exercise 3: Find the minimum spanning tree
================================================================================
+
The road network has a minimum spanning forest which is a union of the minimum
spanning trees for its connected components. This minimum spanning forest is the
optimal network of electricity distribution components.
@@ -333,34 +222,35 @@ optimal network of electricity distribution components.
To complete this task, execute the query below.
.. literalinclude:: ../scripts/un_sdg/sdg7/all_exercises_sdg7.sql
- :start-after: exercise_10.txt
- :end-before: -- list_of_edges_with_costs
+ :start-after: exercise_10-1.txt
+ :end-before: exercise_10-2.txt
:language: sql
- :linenos:
+
+.. collapse:: Query Results
+
+ .. literalinclude:: ../scripts/un_sdg/sdg7/exercise_10-1.txt
The following query will give the results with the source vertex, target vertex,
edge id, aggregate cost.
.. literalinclude:: ../scripts/un_sdg/sdg7/all_exercises_sdg7.sql
- :start-after: -- list_of_edges_with_costs
+ :start-after: exercise_10-2.txt
:end-before: exercise_11.txt
:language: sql
- :linenos:
-
-.. note:: ``LIMIT 10`` displays the first 10 rows of the output.
-|
-
-:ref:`un_sdg/appendix:**Exercise:** 10 (**Chapter:** SDG 7)`
+.. collapse:: Query Results
+ .. literalinclude:: ../scripts/un_sdg/sdg7/exercise_10-2.txt
Comparison between Total and Optimal lengths
================================================================================
+
Total lengths of the network and the minimum spanning tree can be compared to see
the difference between both. To do the same, follow the steps below:
-Exercise 11: Compute total length of material required in km
+Exercise 4: Compute total length of material required in km
--------------------------------------------------------------------------------
+
Compute the total length of the minimum spanning tree which is an estimate of the
total length of material required.
@@ -370,36 +260,33 @@ total length of material required.
:language: sql
:linenos:
-.. note:: ``(length_m)/1000`` is used to fine the length in kilometres
+.. collapse:: Query Results
-|
+ .. literalinclude:: ../scripts/un_sdg/sdg7/exercise_11.txt
-:ref:`un_sdg/appendix:**Exercise:** 11 (**Chapter:** SDG 7)`
-
-Exercise 12: Compute total length of roads
+Exercise 5: Compute total length of roads
--------------------------------------------------------------------------------
+
Compute the total length of the road network of the given area..
.. literalinclude:: ../scripts/un_sdg/sdg7/all_exercises_sdg7.sql
- :start-after: -- Compute total length of roads in km
+ :start-after: exercise_12.txt
:end-before: \o
:language: sql
- :linenos:
-.. note:: ``(length_m)/1000`` is used to fine the length in kilometres
+.. collapse:: Query Results
-For this area we are getting following outputs:
+ .. literalinclude:: ../scripts/un_sdg/sdg7/exercise_12.txt
-* Total Road Length: ``55.68 km``
-* Optimal Network Length: ``29.89 km``
+-For this area we are getting following outputs:
+-
+-* Total Road Length: ``55.68 km``
+-* Optimal Network Length: ``29.89 km``
Length of minimum spanning tree is about half of the length of total road network.
-|
-
-:ref:`un_sdg/appendix:**Exercise:** 12 (**Chapter:** SDG 7)`
-
Further possible extensions to the exercise
================================================================================
-* Finding the optimal network of roads such that it reaches every building
-* Finding the optimal number and locations of Electricity Transformers
+
+* Find the optimal network of roads such that it reaches every building
+* Find the optimal number and locations of Electricity Transformers
diff --git a/locale/en/LC_MESSAGES/advanced/chapter-12.po b/locale/en/LC_MESSAGES/advanced/chapter-12.po
index b56696bbb..8f9045b46 100644
--- a/locale/en/LC_MESSAGES/advanced/chapter-12.po
+++ b/locale/en/LC_MESSAGES/advanced/chapter-12.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:49-0600\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/advanced/chapter-12.rst:11
msgid "Create a Network Topology"
@@ -238,51 +238,52 @@ msgstr ""
#: ../../build/docs/advanced/chapter-12.rst:165
msgid ""
-"Now we are ready for our first routing query with "
-":ref:`basic/pedestrian:pgr_dijkstra`"
+"Now we are ready for our first routing query with `pgr_dijkstra "
+"`__ or any other "
+"pgRouting query."
msgstr ""
-#: ../../build/docs/advanced/chapter-12.rst:170
+#: ../../build/docs/advanced/chapter-12.rst:172
msgid "Analyze and Adjust the Routing Network Topology"
msgstr ""
-#: ../../build/docs/advanced/chapter-12.rst:172
+#: ../../build/docs/advanced/chapter-12.rst:174
msgid ""
"Analyzing the topology with `pgr_analyzeGraph "
"`_:"
msgstr ""
-#: ../../build/docs/advanced/chapter-12.rst:179
+#: ../../build/docs/advanced/chapter-12.rst:181
msgid "Adjusting the topology is not an easy task:"
msgstr ""
-#: ../../build/docs/advanced/chapter-12.rst:181
+#: ../../build/docs/advanced/chapter-12.rst:183
msgid "Is an isolated segment an error in the data?"
msgstr ""
-#: ../../build/docs/advanced/chapter-12.rst:182
+#: ../../build/docs/advanced/chapter-12.rst:184
msgid "Is an isolated segment because its on the edge of the bounding box?"
msgstr ""
-#: ../../build/docs/advanced/chapter-12.rst:183
+#: ../../build/docs/advanced/chapter-12.rst:185
msgid ""
"Do the potential gaps found near dead ends because the tolerance was too "
"small?"
msgstr ""
-#: ../../build/docs/advanced/chapter-12.rst:185
+#: ../../build/docs/advanced/chapter-12.rst:187
msgid "Are the intersections real intersections and need to be nodded?"
msgstr ""
-#: ../../build/docs/advanced/chapter-12.rst:186
+#: ../../build/docs/advanced/chapter-12.rst:188
msgid "Are the intersections bridges or tunnels and do not need to be nodded?"
msgstr ""
-#: ../../build/docs/advanced/chapter-12.rst:188
+#: ../../build/docs/advanced/chapter-12.rst:190
msgid "Depending on the application some adjustments need to be made."
msgstr ""
-#: ../../build/docs/advanced/chapter-12.rst:190
+#: ../../build/docs/advanced/chapter-12.rst:192
msgid ""
"Some `topology manipulation `_ functions help to detect and fix some of the "
diff --git a/locale/en/LC_MESSAGES/appendix/appendix-2.po b/locale/en/LC_MESSAGES/appendix/appendix-2.po
index 5cc663314..6938f5265 100644
--- a/locale/en/LC_MESSAGES/appendix/appendix-2.po
+++ b/locale/en/LC_MESSAGES/appendix/appendix-2.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:49-0600\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/appendix/appendix-2.rst:11
msgid "Appendix: Installation"
@@ -87,7 +87,7 @@ msgstr ""
msgid ""
"To avoid permission denied errors for local users you can set connection "
"method to ``trust`` in ``/etc/postgresql//main/pg_hba.conf`` and"
-" restart PostgreSQL server with ``sudo service postgresql restart``."
+" restart PostgreSQL server with ``sudo service postgresql restart``."
msgstr ""
#: ../../build/docs/appendix/appendix-2.rst:58
diff --git a/locale/en/LC_MESSAGES/appendix/appendix-3.po b/locale/en/LC_MESSAGES/appendix/appendix-3.po
index 22e977c81..22b213576 100644
--- a/locale/en/LC_MESSAGES/appendix/appendix-3.po
+++ b/locale/en/LC_MESSAGES/appendix/appendix-3.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:49-0600\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/appendix/appendix-3.rst:13
msgid "Appendix: osm2pgrouting Import Tool"
@@ -42,7 +42,7 @@ msgstr ""
#: ../../build/docs/appendix/appendix-3.rst:23
msgid ""
-"There are some limitations, especially regarding the network size. The "
+"There are some limitations, especially regarding the network size. The "
"way to handle large data sets is to current version of osm2pgrouting "
"needs to load all data into memory, which makes it fast but also requires"
" a lot or memory for large datasets. An alternative tool to osm2pgrouting"
diff --git a/locale/en/LC_MESSAGES/appendix/appendix-4.po b/locale/en/LC_MESSAGES/appendix/appendix-4.po
index 88422dcd0..49cca155e 100644
--- a/locale/en/LC_MESSAGES/appendix/appendix-4.po
+++ b/locale/en/LC_MESSAGES/appendix/appendix-4.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:49-0600\n"
+"POT-Creation-Date: 2024-11-04 21:10-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
diff --git a/locale/en/LC_MESSAGES/basic/appendix.po b/locale/en/LC_MESSAGES/basic/appendix.po
deleted file mode 100644
index e5911134b..000000000
--- a/locale/en/LC_MESSAGES/basic/appendix.po
+++ /dev/null
@@ -1,344 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
-# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-29 15:35+0000\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language: en\n"
-"Language-Team: en \n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
-
-#: ../../build/docs/basic/appendix.rst:11
-msgid "Appendix: Basic workshop solutions"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:14
-msgid "Solutions to :doc:`pedestrian`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:17
-msgid "**Exercise**: 1 (**Chapter:** Pedestrian)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:19
-msgid ":ref:`basic/pedestrian:Exercise 1: Single pedestrian routing`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:25
-msgid "**Exercise**: 2 (**Chapter:** Pedestrian)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:27
-msgid ""
-":ref:`basic/pedestrian:Exercise 2: Many Pedestrians going to the same "
-"destination`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:33
-msgid "**Exercise**: 3 (**Chapter:** Pedestrian)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:35
-msgid ""
-":ref:`basic/pedestrian:Exercise 3: Many Pedestrians departing from the "
-"same location`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:41
-msgid "**Exercise**: 4 (**Chapter:** Pedestrian)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:43
-msgid ""
-":ref:`basic/pedestrian:Exercise 4: Many Pedestrians going to different "
-"destinations`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:49
-msgid "**Exercise**: 5 (**Chapter:** Pedestrian)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:51
-msgid ""
-":ref:`basic/pedestrian:Exercise 5: Time for many Pedestrians going to "
-"different destinations`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:57
-msgid "**Exercise**: 6 (**Chapter:** Pedestrian)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:59
-msgid ""
-":ref:`basic/pedestrian:Exercise 6: Many Pedestrians going to different "
-"destinations summarizing the total costs per departure`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:65
-msgid "Solutions to :doc:`vehicle`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:68
-msgid "**Exercise**: 1 (**Chapter:** Vehicle)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:70
-msgid ":ref:`basic/vehicle:Exercise 1: Vehicle routing - going`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:76
-msgid "**Exercise**: 2 (**Chapter:** Vehicle)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:78
-msgid ":ref:`basic/vehicle:Exercise 2: Vehicle routing - returning`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:84
-msgid "**Exercise**: 3 (**Chapter:** Vehicle)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:86
-msgid ":ref:`basic/vehicle:Exercise 3: Vehicle routing when time is money`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:92
-msgid "**Exercise**: 4 (**Chapter:** Vehicle)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:94
-msgid ":ref:`basic/vehicle:Exercise 4: Vehicle routing without penalization`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:100
-msgid "**Exercise**: 5 (**Chapter:** Vehicle)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:102
-msgid ":ref:`basic/vehicle:Exercise 5: Vehicle routing with penalization`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:109
-msgid "Solutions to :doc:`sql_function`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:113
-msgid "**Exercise**: 1 (**Chapter:** SQL)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:115
-msgid ":ref:`basic/sql_function:Exercise 1: Creating a view for routing`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:121
-msgid "**Exercise**: 2 (**Chapter:** SQL)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:123
-msgid ""
-":ref:`basic/sql_function:Exercise 2: Limiting the road network within an "
-"area`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:128
-msgid "**Exercise**: 3 (**Chapter:** SQL)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:130
-msgid ""
-":ref:`basic/sql_function:Exercise 3: Creating a materialized view for "
-"routing pedestrians`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:136
-msgid "**Exercise**: 4 (**Chapter:** SQL)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:138
-msgid ":ref:`basic/sql_function:Exercise 4: Testing the views for routing`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:145
-msgid "**Exercise**: 5 (**Chapter:** SQL)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:147
-msgid ":ref:`basic/sql_function:Exercise 5: Get additional information`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:153
-msgid "**Exercise**: 6 (**Chapter:** SQL)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:155
-msgid ":ref:`basic/sql_function:Exercise 6: Route geometry (human readable)`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:161
-msgid "**Exercise**: 7 (**Chapter:** SQL)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:163
-msgid ":ref:`basic/sql_function:Exercise 7: Route geometry (binary format)`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:169
-msgid "**Exercise**: 8 (**Chapter:** SQL)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:171
-msgid ":ref:`basic/sql_function:Exercise 8: Route geometry directionality`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:177
-msgid "**Exercise**: 9 (**Chapter:** SQL)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:179
-msgid ":ref:`basic/sql_function:Exercise 9: Using the geometry`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:185
-msgid "**Exercise**: 10 (**Chapter:** SQL)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:187
-msgid ":ref:`basic/sql_function:Exercise 10: Function for an application`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:192
-msgid "**Exercise**: 11 (**Chapter:** SQL)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:194
-msgid ":ref:`basic/sql_function:Exercise 11: Using the function`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:200
-msgid "Solutions to :doc:`plpgsql_function`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:203
-msgid "**Exercise**: 1 (**Chapter:** pl/pgsql)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:205
-msgid ":ref:`basic/plpgsql_function:Exercise 1: Number of Vertices`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:207
-#: ../../build/docs/basic/appendix.rst:246
-#: ../../build/docs/basic/appendix.rst:275
-msgid "For ``ways_vertices_pgr``:"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:211
-#: ../../build/docs/basic/appendix.rst:228
-msgid "For ``vehicle_net``:"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:215
-#: ../../build/docs/basic/appendix.rst:232
-msgid "For ``taxi_net``:"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:219
-#: ../../build/docs/basic/appendix.rst:236
-msgid "For ``walk_net``:"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:224
-msgid "**Exercise**: 2 (**Chapter:** pl/pgsql)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:226
-msgid ":ref:`basic/plpgsql_function:Exercise 2: Vertices on a table`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:242
-msgid "**Exercise**: 3 (**Chapter:** pl/pgsql)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:244
-msgid ":ref:`basic/plpgsql_function:Exercise 3: Nearest Vertex`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:250
-#: ../../build/docs/basic/appendix.rst:279
-msgid "For ``vehicle_net_vertices_pgr``:"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:254
-#: ../../build/docs/basic/appendix.rst:283
-msgid "For ``taxi_net_vertices_pgr``:"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:258
-#: ../../build/docs/basic/appendix.rst:287
-msgid "For ``walk_net_vertices_pgr``:"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:264
-msgid "**Exercise**: 4 (**Chapter:** pl/pgsql)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:266
-msgid ":ref:`basic/plpgsql_function:Exercise 4: Nearest vertex function`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:271
-msgid "**Exercise**: 5 (**Chapter:** pl/pgsql)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:273
-msgid ":ref:`basic/plpgsql_function:Exercise 5: Test nearest vertex function`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:293
-msgid "**Exercise**: 6 (**Chapter:** pl/pgsql)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:295
-msgid ":ref:`basic/plpgsql_function:Exercise 6: Creating the main function`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:300
-msgid "**Exercise**: 7 (**Chapter:** pl/pgsql)"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:302
-msgid ":ref:`basic/plpgsql_function:Exercise 7: Using the main function`"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:304
-msgid "For ``vehicle_net``"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:308
-msgid "For ``taxi_net``"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:310
-msgid "The ``WARNING`` message:"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:315
-msgid "The query results:"
-msgstr ""
-
-#: ../../build/docs/basic/appendix.rst:319
-msgid "For ``walk_net``"
-msgstr ""
-
diff --git a/locale/en/LC_MESSAGES/basic/data.po b/locale/en/LC_MESSAGES/basic/data.po
index 8e5aa437b..6717b00fc 100644
--- a/locale/en/LC_MESSAGES/basic/data.po
+++ b/locale/en/LC_MESSAGES/basic/data.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-22 11:12-0600\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/basic/data.rst:12
msgid "Prepare Data"
@@ -52,141 +52,146 @@ msgstr ""
msgid ""
"These requirements are met on OSGeoLive. When the required software is "
"installed, open a terminal window by pressing :code:`ctrl-alt-t` and "
-"follow the instructions. Information about installing OSGeoLive can be "
-"found on :doc:`../general-intro/osgeolive`."
+"follow the instructions."
msgstr ""
-#: ../../build/docs/basic/data.rst:33
+#: ../../build/docs/basic/data.rst:34
+msgid ""
+"Information about installing OSGeoLive can be found on :doc:`../general-"
+"intro/osgeolive`."
+msgstr ""
+
+#: ../../build/docs/basic/data.rst:37
msgid ""
"If OSGeoLive is not being used, please refer to the chapter's appendix to"
" set up the user ``user``."
msgstr ""
-#: ../../build/docs/basic/data.rst:36
+#: ../../build/docs/basic/data.rst:41
msgid "Create a pgRouting compatible database"
msgstr ""
-#: ../../build/docs/basic/data.rst:38
+#: ../../build/docs/basic/data.rst:43
msgid ""
"Depending on the postgres configuration :code:`-U ` is needed on "
":code:`psql` commands"
msgstr ""
-#: ../../build/docs/basic/data.rst:46
+#: ../../build/docs/basic/data.rst:51
msgid "To exit the database use ``\\q``"
msgstr ""
-#: ../../build/docs/basic/data.rst:49
+#: ../../build/docs/basic/data.rst:54
msgid "Get the Workshop Data"
msgstr ""
-#: ../../build/docs/basic/data.rst:53
+#: ../../build/docs/basic/data.rst:58
msgid ""
"The pgRouting workshop will make use of OpenStreetMap data, which is "
"already available on `OSGeoLive `_. This workshop"
-" will use the ``Prizren`` city data and is a snapshot of March 2023."
+" will use the ``Belém`` city data and is a snapshot of Sep 2024."
msgstr ""
-#: ../../build/docs/basic/data.rst:58
+#: ../../build/docs/basic/data.rst:63
msgid "Getting the data"
msgstr ""
-#: ../../build/docs/basic/data.rst:61
+#: ../../build/docs/basic/data.rst:66
msgid "Option 1) When using OSGeoLive"
msgstr ""
-#: ../../build/docs/basic/data.rst:63
-msgid "OSGeoLive comes with osm data from the city of Prizren."
+#: ../../build/docs/basic/data.rst:68
+msgid "OSGeoLive comes with OSM data from the city of Belém."
msgstr ""
-#: ../../build/docs/basic/data.rst:71
+#: ../../build/docs/basic/data.rst:76
msgid "Option 2) Download data form OSGeoLive website"
msgstr ""
-#: ../../build/docs/basic/data.rst:73
+#: ../../build/docs/basic/data.rst:78
msgid "The exact same data can be found on the OSGeoLive download page."
msgstr ""
-#: ../../build/docs/basic/data.rst:82
+#: ../../build/docs/basic/data.rst:86
msgid "Option 3) Download using Overpass XAPI"
msgstr ""
-#: ../../build/docs/basic/data.rst:84
+#: ../../build/docs/basic/data.rst:88
msgid ""
"The following downloads the latest OSM data on using the same area. Using"
" this data in the workshop can generate variations in the results, due to"
-" changes since March 2023."
+" changes since Sep 2024."
msgstr ""
-#: ../../build/docs/basic/data.rst:94
+#: ../../build/docs/basic/data.rst:98
msgid ""
"More information about how to download OpenStreetMap data can be found in"
" https://wiki.openstreetmap.org/wiki/Downloading_data"
msgstr ""
-#: ../../build/docs/basic/data.rst:97
+#: ../../build/docs/basic/data.rst:101
msgid ""
"An alternative for very large areas is to use the download services of "
"`Geofabrik `_."
msgstr ""
-#: ../../build/docs/basic/data.rst:102
+#: ../../build/docs/basic/data.rst:106
msgid "Upload data to the database"
msgstr ""
-#: ../../build/docs/basic/data.rst:104
+#: ../../build/docs/basic/data.rst:108
msgid ""
"The next step is to run ``osm2pgrouting`` converter, which is a command "
"line tool that inserts the data in the database, \"ready\" to be used "
"with pgRouting. Additional information about ``osm2pgrouting`` can be "
-"found at the :ref:`osm2pgrouting`"
+"found at the :doc:`../appendix/appendix-3`"
msgstr ""
-#: ../../build/docs/basic/data.rst:108
+#: ../../build/docs/basic/data.rst:112
msgid "For this step:"
msgstr ""
-#: ../../build/docs/basic/data.rst:110
+#: ../../build/docs/basic/data.rst:114
msgid "the osm2pgrouting default ``mapconfig.xml`` configuration file is used"
msgstr ""
-#: ../../build/docs/basic/data.rst:111
-msgid "and the ``~/Desktop/workshop/Prizren_XK.osm`` data"
+#: ../../build/docs/basic/data.rst:115
+msgid "and the ``~/Desktop/workshop/BELEM_BR.osm`` data"
msgstr ""
-#: ../../build/docs/basic/data.rst:112
+#: ../../build/docs/basic/data.rst:116
msgid "with the ``city_routing`` database"
msgstr ""
-#: ../../build/docs/basic/data.rst:114
+#: ../../build/docs/basic/data.rst:118
msgid "From a terminal window :code:`ctrl-alt-t`."
msgstr ""
-#: ../../build/docs/basic/data.rst:117
+#: ../../build/docs/basic/data.rst:121
msgid "Run the osm2pgrouting converter"
msgstr ""
-#: ../../build/docs/basic/data.rst:125
+#: ../../build/docs/basic/data.rst:128
msgid "Depending on the osm2pgrouting version `-W password` is needed"
msgstr ""
-#: ../../build/docs/basic/data.rst:128
+#: ../../build/docs/basic/data.rst:131
msgid "Output:"
msgstr ""
-#: ../../build/docs/basic/data.rst:135
+#: ../../build/docs/basic/data.rst:148
msgid "Tables on the database"
msgstr ""
-#: ../../build/docs/basic/data.rst:142
+#: ../../build/docs/basic/data.rst:154
msgid "If everything went well the result should look like this:"
msgstr ""
-#: ../../build/docs/basic/data.rst:148
+#: ../../build/docs/basic/data.rst:160
msgid "Chapter: Appendix"
msgstr ""
-#: ../../build/docs/basic/data.rst:151
+#: ../../build/docs/basic/data.rst:163
msgid ""
"OSGeoLive's account name on the database is ``user``. To easily use the "
"workshop when not using OSGeoLive this extra steps are needed:"
diff --git a/locale/en/LC_MESSAGES/basic/graph_views.po b/locale/en/LC_MESSAGES/basic/graph_views.po
new file mode 100644
index 000000000..1576c9f5e
--- /dev/null
+++ b/locale/en/LC_MESSAGES/basic/graph_views.po
@@ -0,0 +1,662 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2010-2024 pgRouting Developers
+# This file is distributed under the same license as the Workshop FOSS4G
+# Belém package.
+# FIRST AUTHOR , 2024.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-11-10 17:09+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language: en\n"
+"Language-Team: en \n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Generated-By: Babel 2.16.0\n"
+
+#: ../../build/docs/basic/graph_views.rst:12
+msgid "Graph views"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:18
+msgid "Chapter Contents"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:20
+msgid ""
+"Different application require different graphs. This chapter covers how "
+"to discard disconnected segments and different approaches to create "
+"graphs."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:24
+msgid "The graph requirements"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:26
+msgid ""
+"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_osm`` and "
+"``target_osm``."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:31
+msgid "The description of the graphs:"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:33
+msgid "Particular vehicle:"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:35
+msgid "Circulate on the whole Belém area."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:37
+#: ../../build/docs/basic/graph_views.rst:46
+msgid "Do not use `steps`, `footway`, `path`, `cycleway`."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:39
+msgid "Speed is the default speed from OSM information."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:41
+msgid "Taxi vehicle:"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:43
+msgid "Circulate on a smaller area:"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:45
+msgid "Bounding box: ``(-48.52,-1.46,-48.45,-1.41)``"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:48
+#, python-format
+msgid "Speed is 10% slower than that of the particular vehicles."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:50
+msgid "Pedestrians:"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:52
+msgid "Walk on the whole Belém area."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:53
+msgid "Can not walk on exclusive vehicle ways"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:55
+msgid "`motorways` and on `primary` segments."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:57
+#: ../../build/docs/basic/graph_views.rst:488
+msgid "The speed is ``2 mts/sec``."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:60
+msgid "pgr_extractVertices"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:62
+msgid ""
+"``pgr_extractVertices`` compute the connected components of an undirected"
+" graph using a Depth First Search approach. A connected component of an "
+"undirected graph is a set of vertices that are all reachable from each "
+"other."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:67
+#: ../../build/docs/basic/graph_views.rst:214
+msgid "Signature summary"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:75
+msgid ""
+"Description of the function can be found in `pgr_extractVertices "
+"`__"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:79
+msgid "Exercise 1: Create a vertices table"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:82
+#: ../../build/docs/basic/graph_views.rst:130
+#: ../../build/docs/basic/graph_views.rst:230
+#: ../../build/docs/basic/graph_views.rst:278
+#: ../../build/docs/basic/graph_views.rst:355
+#: ../../build/docs/basic/graph_views.rst:426
+#: ../../build/docs/basic/graph_views.rst:484
+#: ../../build/docs/basic/graph_views.rst:548
+msgid "Problem"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:83
+msgid "Create the vertices table corresponding to the edges in ``ways``."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:86
+#: ../../build/docs/basic/graph_views.rst:134
+#: ../../build/docs/basic/graph_views.rst:234
+#: ../../build/docs/basic/graph_views.rst:287
+#: ../../build/docs/basic/graph_views.rst:369
+#: ../../build/docs/basic/graph_views.rst:435
+#: ../../build/docs/basic/graph_views.rst:499
+#: ../../build/docs/basic/graph_views.rst:567
+msgid "Solution"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:87
+msgid "A graph consists of a set of vertices and a set of edges."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:88
+msgid "In this case, the ``ways`` table is a set of edges."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:89
+msgid ""
+"In order to make use of all the graph functions from pgRouting, it is "
+"required have the set of vertices defined."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:91
+msgid "From the requirements, the graph is going to be based on OSM identifiers."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:104
+msgid "Reviewing the description of the vertices table"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:114
+msgid "Inspecting the information on the vertices table"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:127
+msgid "Exercise 2: Fill up other columns in the vertices table"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:131
+msgid "Fill up geometry information on the vertices table."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:135
+msgid "Count the number of rows that need to be filled up."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:145
+msgid ""
+"Update the ``geom`` columns based on the ``source_osm`` column from "
+"``ways`` table."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:147
+msgid "Use the start point of the geometry."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:158
+msgid ""
+"Not expecting to be done due to the fact that some vertices are only dead"
+" ends."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:169
+msgid ""
+"Update the ``geom`` columns based on the ``target_osm`` column from "
+"``ways`` table."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:171
+msgid "Use the end point of the geometry."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:182
+msgid ""
+"Expecting to be done, that is the geometry column should not have a "
+"``NULL`` value."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:194
+msgid "Update the ``x`` and ``y`` columns based on the ``geom`` column."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:207
+msgid "pgr_connectedComponents"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:209
+msgid ""
+"``pgr_connectedComponents`` compute the connected components of an "
+"undirected graph using a Depth First Search approach. A connected "
+"component of an undirected graph is a set of vertices that are all "
+"reachable from each other."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:222
+msgid ""
+"Description of the function can be found in `pgr_connectedComponents "
+"`__"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:227
+msgid "Exercise 3: Set components on edges and vertices tables"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:231
+msgid "Get the information about the graph components."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:235
+msgid "Create additional columns on the edges and vertices tables."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:246
+msgid "Use the ``pgr_connectedComponents`` to fill up the vertices table."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:248
+msgid ""
+"Use the results to store the component numbers on the vertices table. "
+"(**line 1**)"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:250
+msgid "Use the OSM identifiers of the vertices. (**lines 4-5**)"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:262
+msgid "Update the edges table with based on the component number of the vertex"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:275
+msgid "Exercise 4: Inspect the components"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:279
+msgid "Answer the following questions:"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:281
+#: ../../build/docs/basic/graph_views.rst:288
+msgid "How many components are in the vertices table?"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:282
+#: ../../build/docs/basic/graph_views.rst:301
+msgid "How many components are in the edges table?"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:283
+#: ../../build/docs/basic/graph_views.rst:314
+msgid "List the 10 components with more edges."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:284
+#: ../../build/docs/basic/graph_views.rst:328
+msgid "Get the component with the maximum number of edges."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:290
+#: ../../build/docs/basic/graph_views.rst:303
+msgid "Count the distinct components."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:316
+msgid "Count number of rows grouped by component. (**line 1**)"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:317
+msgid "Inverse order to display the top 10. (**line 2**)"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:330
+msgid "Use the query from last question to get the maximum count"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:331
+msgid "Get the component that matches the maximum value."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:345
+msgid "Preparing the graphs"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:348
+msgid "Exercise 5: Creating a view for routing"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:350
+msgid "View of roads for vehicles"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:356
+msgid ""
+"Create a view with minimal amount of information for processing the "
+"particular vehicles."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:357
+msgid "Use the OSM identifiers on the vertices."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:358
+msgid ""
+"Routing `cost` and `reverse_cost` in terms of seconds for routing "
+"calculations."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:359
+msgid "Exclude `steps`, `footway`, `path`, `cycleway` segments."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:360
+#: ../../build/docs/basic/graph_views.rst:491
+msgid "Data needed in the view for further processing."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:362
+msgid "`name` The name of the segment."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:363
+msgid "`length_m` The length in meters rename to ``length``."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:364
+msgid "`the_geom` The geometry rename to ``geom``."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:366
+#: ../../build/docs/basic/graph_views.rst:496
+msgid "Verify the number of edges was reduced."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:370
+#: ../../build/docs/basic/graph_views.rst:436
+#: ../../build/docs/basic/graph_views.rst:500
+msgid "Creating the view:"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:372
+msgid ""
+"If you need to reconstruct the view, first drop it using the command on "
+"**line 1**."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:374
+msgid "Get the component with maximum number of edges (**lines 6-10**)"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:375
+msgid ""
+"The `source` and `target` requirements for the function are to be with "
+"OSM identifiers. (line **14**)"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:377
+msgid "The ``cost`` and ``reverse_cost`` are in terms of seconds. (line **15**)"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:378
+msgid ""
+"The additional parameters ``length_m`` and ``the_geom`` are renamed, "
+"``name`` is also included. (line **16**)"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:380
+msgid "``JOIN`` with the `configuration`:"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:382
+msgid "Exclude `steps`, `footway`, `path`, `cycleway`. (line **18**)"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:395
+msgid "Verification:"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:397
+msgid "Count the rows on the original ``ways`` and on ``vehicle_net``."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:407
+msgid "Get the description of the view"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:419
+msgid "Exercise 6: Limiting the road network within an area"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:421
+msgid "View of smaller set of roads for vehicles"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:427
+msgid "Create a view ``taxi_net`` for the `taxi`:"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:429
+msgid ""
+"The taxi can only circulate inside this Bounding Box: "
+"``(-48.52,-1.46,-48.45,-1.41)``"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:430
+#, python-format
+msgid "The taxi speed is 10% slower than the particular vehicle."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:432
+msgid "Verify the reduced number of road segments."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:438
+#, python-format
+msgid ""
+"Adjust the taxi's ``cost`` and ``reverse_cost`` to be 10% slower than of "
+"the particular vehicle. (line **7**)"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:440
+msgid ""
+"The graph for the taxi is a subset of the ``vehicle_net`` graph. (line "
+"**9**)"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:441
+msgid ""
+"Can only circulate inside the bounding box: "
+"``(-48.52,-1.46,-48.45,-1.41)``. (line **10**)"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:455
+msgid "Count the rows on ``taxi_net``."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:466
+#: ../../build/docs/basic/graph_views.rst:529
+msgid "Get the description."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:477
+msgid "Exercise 7: Creating a materialized view for routing pedestrians"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:479
+msgid "View of roads for pedestrians"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:485
+msgid ""
+"Create a materialized view with minimal amount of information for "
+"processing pedestrians."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:486
+msgid ""
+"Routing `cost` and `reverse_cost` will be on seconds for routing "
+"calculations."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:490
+msgid "Exclude `motorway` , `primary` and `secondary` segments."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:493
+msgid "`length_m` The length in meters."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:494
+msgid "`the_geom` The geometry."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:502
+msgid "Similar to `Exercise 5: Creating a view for routing`_:"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:504
+msgid ""
+"The ``cost`` and ``reverse_cost`` are in terms of seconds with speed of "
+"``2 mts/sec``. (line **7**)"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:505
+msgid "Exclude `motorway`, `primary` and `secondary` . (line **11**)"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:518
+msgid "Count the rows on the view ``walk_net``."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:541
+msgid "Exercise 8: Testing the views for routing"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:543
+msgid "From the |ch7_place_1| to the |ch7_place_2|"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:549
+msgid "Test the created views"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:551
+msgid "In particular:"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:553
+msgid "From the |ch7_place_1| to the \"|ch7_place_2| using the OSM identifier"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:554
+msgid "the views to be tested are:"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:556
+msgid "``vehicle_net``"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:557
+msgid "``taxi_net``"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:558
+msgid "``walk_net``"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:560
+msgid ""
+"Only show the following results, as the other columns are to be ignored "
+"on the function."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:562
+msgid "``seq``"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:563
+msgid "``edge`` with the name ``id``"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:564
+msgid "``cost`` with the name: ``seconds``"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:568
+msgid "In general"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:570
+msgid "The departure is |ch7_place_1| with OSM identifier |ch7_osmid_1|."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:571
+msgid "The destination is |ch7_place_2| with OSM identifier |ch7_osmid_2|."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:573
+msgid "For ``vehicle_net``:"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:575
+msgid "``vehicle_net`` is used."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:576
+msgid "Selection of the columns with the corresponding names are on line **1**."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:577
+msgid "The view is prepared with the column names that pgRouting use."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:579
+msgid "There is no need to rename columns. (line **3**)"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:581
+msgid ""
+"The OSM identifiers of the departure and destination are used. (line "
+"**4**)"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:594
+msgid "For ``taxi_net``:"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:596
+msgid "Similar as the previous one but with ``taxi_net``. (line **3**)"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:597
+msgid ""
+"The results give the same route as with ``vehicle_net`` but ``cost`` is "
+"higher."
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:610
+msgid "For ``walk_net``:"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:612
+msgid "Similar as the previous one but with ``walk_net``. (line **3**)"
+msgstr ""
+
+#: ../../build/docs/basic/graph_views.rst:613
+msgid "The results give a different route than of the vehicles."
+msgstr ""
+
diff --git a/locale/en/LC_MESSAGES/basic/pedestrian.po b/locale/en/LC_MESSAGES/basic/pedestrian.po
index deb6a314e..02913656d 100644
--- a/locale/en/LC_MESSAGES/basic/pedestrian.po
+++ b/locale/en/LC_MESSAGES/basic/pedestrian.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-22 11:12-0600\n"
+"POT-Creation-Date: 2024-11-10 17:09+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/basic/pedestrian.rst:11
msgid "Pedestrian Routing"
@@ -53,15 +53,14 @@ msgid ""
msgstr ""
#: ../../build/docs/basic/pedestrian.rst:35
-#: ../../build/docs/basic/pedestrian.rst:256
+#: ../../build/docs/basic/pedestrian.rst:282
msgid "Signature Summary"
msgstr ""
#: ../../build/docs/basic/pedestrian.rst:47
msgid ""
-"Description of the parameters can be found in `pgr_dijkstra "
-"`__."
+"Description of the function can be found in `pgr_dijkstra "
+"`__."
msgstr ""
#: ../../build/docs/basic/pedestrian.rst:51
@@ -93,7 +92,7 @@ msgid ""
"columns may be different, the following exercises will use the results of"
" this query. For the workshop, some locations near of the FOSS4G event "
"are going to be used. These locations are within this area "
-"https://www.openstreetmap.org#map=15/-34.5847/-58.3970"
+"https://www.openstreetmap.org/#map=14/-1.44228/-48.46069"
msgstr ""
#: ../../build/docs/basic/pedestrian.rst:67
@@ -124,103 +123,102 @@ msgstr ""
msgid "Get the vertex identifiers"
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:93
+#: ../../build/docs/basic/pedestrian.rst:91
msgid "|osmid_1| |place_1| (|id_1|)"
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:94
+#: ../../build/docs/basic/pedestrian.rst:92
msgid "|osmid_2| |place_2| (|id_2|)"
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:95
+#: ../../build/docs/basic/pedestrian.rst:93
msgid "|osmid_3| |place_3| (|id_3|)"
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:96
+#: ../../build/docs/basic/pedestrian.rst:94
msgid "|osmid_4| |place_4| (|id_4|)"
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:97
+#: ../../build/docs/basic/pedestrian.rst:95
msgid "|osmid_5| |place_5| (|id_5|)"
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:100
+#: ../../build/docs/basic/pedestrian.rst:98
msgid ""
"The corresponding :code:`id` are shown in the following image, and a "
"sample route from \"|place_3|\" to \"|place_5|\"."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:107
+#: ../../build/docs/basic/pedestrian.rst:105
msgid "Exercise 1: Single pedestrian routing"
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:110
-#: ../../build/docs/basic/pedestrian.rst:153
-#: ../../build/docs/basic/pedestrian.rst:187
-#: ../../build/docs/basic/pedestrian.rst:218
-#: ../../build/docs/basic/pedestrian.rst:276
-#: ../../build/docs/basic/pedestrian.rst:313
+#: ../../build/docs/basic/pedestrian.rst:108
+#: ../../build/docs/basic/pedestrian.rst:150
+#: ../../build/docs/basic/pedestrian.rst:182
+#: ../../build/docs/basic/pedestrian.rst:214
+#: ../../build/docs/basic/pedestrian.rst:248
+#: ../../build/docs/basic/pedestrian.rst:302
+#: ../../build/docs/basic/pedestrian.rst:338
msgid "Problem:"
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:111
-#: ../../build/docs/basic/pedestrian.rst:154
-#: ../../build/docs/basic/pedestrian.rst:188
-#: ../../build/docs/basic/pedestrian.rst:219
-#: ../../build/docs/basic/pedestrian.rst:277
-#: ../../build/docs/basic/pedestrian.rst:314
+#: ../../build/docs/basic/pedestrian.rst:109
+#: ../../build/docs/basic/pedestrian.rst:151
+#: ../../build/docs/basic/pedestrian.rst:183
+#: ../../build/docs/basic/pedestrian.rst:215
+#: ../../build/docs/basic/pedestrian.rst:249
+#: ../../build/docs/basic/pedestrian.rst:303
+#: ../../build/docs/basic/pedestrian.rst:339
msgid "Walking"
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:113
+#: ../../build/docs/basic/pedestrian.rst:111
msgid "from \"|place_1|\""
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:114
+#: ../../build/docs/basic/pedestrian.rst:112
msgid "to \"|place_3|\"."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:116
-msgid "Calculate routes with costs in *osm2pgRouting* `length` default units."
+#: ../../build/docs/basic/pedestrian.rst:114
+msgid "Calculate routes with costs in *osm2pgRouting* ``length`` default units."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:-1
+#: ../../build/docs/basic/pedestrian.rst:116
msgid "From the |place_1| to the |place_3|"
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:123
-#: ../../build/docs/basic/pedestrian.rst:166
-#: ../../build/docs/basic/pedestrian.rst:199
-#: ../../build/docs/basic/pedestrian.rst:230
-#: ../../build/docs/basic/pedestrian.rst:289
-#: ../../build/docs/basic/pedestrian.rst:322
+#: ../../build/docs/basic/pedestrian.rst:121
+#: ../../build/docs/basic/pedestrian.rst:163
+#: ../../build/docs/basic/pedestrian.rst:194
+#: ../../build/docs/basic/pedestrian.rst:226
+#: ../../build/docs/basic/pedestrian.rst:260
+#: ../../build/docs/basic/pedestrian.rst:315
+#: ../../build/docs/basic/pedestrian.rst:347
msgid "Solution:"
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:124
+#: ../../build/docs/basic/pedestrian.rst:122
msgid ""
"The pedestrian wants to go from vertex |id_1| to vertex |id_3| (lines "
"**9** and **10**)."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:125
+#: ../../build/docs/basic/pedestrian.rst:123
msgid ""
"The pedestrian's cost is in terms of length. In this case ``length`` "
"(line **6**), which was calculated by osm2pgrouting, is in unit "
"``degrees``."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:127
+#: ../../build/docs/basic/pedestrian.rst:125
msgid ""
"From a pedestrian perspective the graph is ``undirected`` (line **11**), "
"that is, the pedestrian can move in both directions on all segments."
msgstr ""
#: ../../build/docs/basic/pedestrian.rst:139
-msgid ":ref:`basic/appendix:**Exercise**: 1 (**Chapter:** Pedestrian)`"
-msgstr ""
-
-#: ../../build/docs/basic/pedestrian.rst:142
msgid ""
"The returned cost attribute represents the cost specified in the inner "
"SQL query (``edges_sql::text`` argument). In this example cost is "
@@ -228,237 +226,236 @@ msgid ""
"combination of both or any other attributes or a custom formula."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:146
+#: ../../build/docs/basic/pedestrian.rst:143
msgid ""
"``node`` and ``edge`` results may vary depending on the assignment of the"
" identifiers to the vertices given by osm2pgrouting."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:150
+#: ../../build/docs/basic/pedestrian.rst:147
msgid "Exercise 2: Many Pedestrians going to the same destination"
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:156
-#: ../../build/docs/basic/pedestrian.rst:221
+#: ../../build/docs/basic/pedestrian.rst:153
+#: ../../build/docs/basic/pedestrian.rst:217
msgid "from \"|place_1|\" and \"|place_2|\""
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:157
+#: ../../build/docs/basic/pedestrian.rst:154
msgid "to the \"|place_3|\"."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:159
+#: ../../build/docs/basic/pedestrian.rst:156
msgid ""
"Calculate routes with costs in *osm2pgRouting* ``length_m`` which is in "
"meters."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:-1
+#: ../../build/docs/basic/pedestrian.rst:158
msgid "From |place_1| and |place_2| to |place_3|"
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:167
+#: ../../build/docs/basic/pedestrian.rst:164
msgid "The pedestrians are departing at vertices |id_1| and |id_2| (line **9**)."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:168
+#: ../../build/docs/basic/pedestrian.rst:165
msgid "All pedestrians want to go to vertex |id_3| (line **10**)."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:169
+#: ../../build/docs/basic/pedestrian.rst:166
msgid "The cost to be in meters using attribute ``length_m`` (line **6**)."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:180
-msgid ":ref:`basic/appendix:**Exercise**: 2 (**Chapter:** Pedestrian)`"
-msgstr ""
-
-#: ../../build/docs/basic/pedestrian.rst:184
+#: ../../build/docs/basic/pedestrian.rst:179
msgid "Exercise 3: Many Pedestrians departing from the same location"
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:190
+#: ../../build/docs/basic/pedestrian.rst:185
msgid "from \"|place_3|\""
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:191
+#: ../../build/docs/basic/pedestrian.rst:186
msgid "to \"|place_1|\" and \"|place_2|\""
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:193
+#: ../../build/docs/basic/pedestrian.rst:188
msgid "Calculate routes with costs in seconds."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:200
+#: ../../build/docs/basic/pedestrian.rst:195
msgid "All pedestrians are departing from vertex |id_3| (line **9**)."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:201
+#: ../../build/docs/basic/pedestrian.rst:196
msgid "Pedestrians want to go to locations |id_1| and |id_2| (line **10**)."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:202
+#: ../../build/docs/basic/pedestrian.rst:197
msgid ""
"The cost to be in seconds, with a walking speed ``s = 1.3 m/s`` and ``t ="
" d/s`` (line **6**)."
msgstr ""
#: ../../build/docs/basic/pedestrian.rst:211
-msgid ":ref:`basic/appendix:**Exercise**: 3 (**Chapter:** Pedestrian)`"
-msgstr ""
-
-#: ../../build/docs/basic/pedestrian.rst:215
msgid "Exercise 4: Many Pedestrians going to different destinations"
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:222
+#: ../../build/docs/basic/pedestrian.rst:218
msgid "to \"|place_4|\" and \"|place_5|\""
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:224
+#: ../../build/docs/basic/pedestrian.rst:220
+#: ../../build/docs/basic/pedestrian.rst:254
msgid "Calculate routes with costs in minutes."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:231
+#: ../../build/docs/basic/pedestrian.rst:227
+#: ../../build/docs/basic/pedestrian.rst:316
+#: ../../build/docs/basic/pedestrian.rst:348
msgid "The pedestrians depart from |id_1| and |id_2| (line **9**)."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:232
+#: ../../build/docs/basic/pedestrian.rst:228
+#: ../../build/docs/basic/pedestrian.rst:317
+#: ../../build/docs/basic/pedestrian.rst:349
msgid ""
"The pedestrians want to go to destinations |id_4| and |id_5| (line "
"**10**)."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:233
+#: ../../build/docs/basic/pedestrian.rst:229
+#: ../../build/docs/basic/pedestrian.rst:318
msgid ""
"The cost to be in minutes, with a walking speed ``s = 1.3 m/s`` and ``t ="
" d/s`` (line **6**)."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:234
-#: ../../build/docs/basic/pedestrian.rst:326
+#: ../../build/docs/basic/pedestrian.rst:230
+#: ../../build/docs/basic/pedestrian.rst:351
msgid "Result adds the costs per destination."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:245
-msgid ":ref:`basic/appendix:**Exercise**: 4 (**Chapter:** Pedestrian)`"
-msgstr ""
-
#: ../../build/docs/scripts/basic/chapter_5/note_1.txt:1
msgid "Inspecting the results, looking for totals (edge = -1):"
msgstr ""
#: ../../build/docs/scripts/basic/chapter_5/note_1.txt:3
-msgid "From 3770 to vertex 5912 takes 26.22 minutes (seq = 94)"
+msgid "From 20297 to vertex 6548 takes 92.58 minutes (seq = 147)"
msgstr ""
#: ../../build/docs/scripts/basic/chapter_5/note_1.txt:5
-msgid "From 3770 to vertex 3829 takes 7.11 minutes (seq = 48)"
+msgid "From 20297 to vertex 12712 takes 83.18 minutes (seq = 267)"
msgstr ""
#: ../../build/docs/scripts/basic/chapter_5/note_1.txt:7
-msgid "From 2592 to vertex 5912 takes 8.31 minutes (seq = 33)"
+msgid "From 23872 to vertex 6548 takes 76.26 minutes (seq = 385)"
msgstr ""
#: ../../build/docs/scripts/basic/chapter_5/note_1.txt:9
-msgid "From 2592 to vertex 3829 takes 12.56 minutes (seq = 20)"
+msgid "From 23872 to vertex 12712 takes 67.76 minutes (seq = 495)"
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:250
-msgid "pgr_dijkstraCost"
+#: ../../build/docs/basic/pedestrian.rst:245
+msgid "Exercise 5: Combination of routes"
+msgstr ""
+
+#: ../../build/docs/basic/pedestrian.rst:251
+msgid "First pedestrian goes from \"|place_1|\" to \"|place_4|\""
msgstr ""
#: ../../build/docs/basic/pedestrian.rst:252
+msgid "Second pedestrian goes from \"|place_2|\" to \"|place_5|\""
+msgstr ""
+
+#: ../../build/docs/basic/pedestrian.rst:261
+msgid ""
+"First pedestrian departs from |id_1| and the destination is |id_4| (line "
+"**11**)."
+msgstr ""
+
+#: ../../build/docs/basic/pedestrian.rst:262
+msgid ""
+"Second pedestrian departs from |id_2| and the destination is |id_5| (line"
+" **12**)."
+msgstr ""
+
+#: ../../build/docs/basic/pedestrian.rst:263
+msgid ""
+"The cost to be in minutes, with a walking speed ``s = 1.3 m/s`` and ``t ="
+" d/s``"
+msgstr ""
+
+#: ../../build/docs/basic/pedestrian.rst:276
+msgid "pgr_dijkstraCost"
+msgstr ""
+
+#: ../../build/docs/basic/pedestrian.rst:278
msgid ""
"When the main goal is to calculate the total cost, without \"inspecting\""
" the `pgr_dijkstra` results, using ``pgr_dijkstraCost`` returns a more "
"compact result."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:268
+#: ../../build/docs/basic/pedestrian.rst:294
msgid ""
"Description of the parameters can be found in `pgr_dijkstraCost "
"`__"
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:273
-msgid "Exercise 5: Time for many Pedestrians going to different destinations"
+#: ../../build/docs/basic/pedestrian.rst:299
+msgid "Exercise 6: Time for many Pedestrians going to different destinations"
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:279
-#: ../../build/docs/basic/pedestrian.rst:316
+#: ../../build/docs/basic/pedestrian.rst:305
+#: ../../build/docs/basic/pedestrian.rst:341
msgid "from \"|place_1|\" or \"|place_2|\""
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:280
-#: ../../build/docs/basic/pedestrian.rst:317
+#: ../../build/docs/basic/pedestrian.rst:306
+#: ../../build/docs/basic/pedestrian.rst:342
msgid "to \"|place_4|\" or \"|place_5|\""
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:282
+#: ../../build/docs/basic/pedestrian.rst:308
msgid "Get only the cost in minutes."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:-1
+#: ../../build/docs/basic/pedestrian.rst:310
msgid "From the hotels to the |place_4| and |place_5|"
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:290
-#: ../../build/docs/basic/pedestrian.rst:323
-msgid "The pedestrians depart from |id_1| and |id_2| (line **10**)."
-msgstr ""
-
-#: ../../build/docs/basic/pedestrian.rst:291
-#: ../../build/docs/basic/pedestrian.rst:324
-msgid ""
-"The pedestrians want to go to destinations |id_4| and |id_5| (line "
-"**11**)."
-msgstr ""
-
-#: ../../build/docs/basic/pedestrian.rst:292
-msgid ""
-"The cost to be in minutes, with a walking speed ``s = 1.3 m/s`` and ``t ="
-" d/s`` (line **7**)."
-msgstr ""
-
-#: ../../build/docs/basic/pedestrian.rst:293
+#: ../../build/docs/basic/pedestrian.rst:319
msgid "Result as aggregated costs."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:304
-msgid ":ref:`basic/appendix:**Exercise**: 5 (**Chapter:** Pedestrian)`"
-msgstr ""
-
-#: ../../build/docs/basic/pedestrian.rst:306
+#: ../../build/docs/basic/pedestrian.rst:331
msgid ""
"Compare with `Exercise 4: Many Pedestrians going to different "
"destinations`_ 's note."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:310
+#: ../../build/docs/basic/pedestrian.rst:335
msgid ""
-"Exercise 6: Many Pedestrians going to different destinations summarizing "
+"Exercise 7: Many Pedestrians going to different destinations summarizing "
"the total costs per departure"
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:319
+#: ../../build/docs/basic/pedestrian.rst:344
msgid "Summarize cost in minutes."
msgstr ""
-#: ../../build/docs/basic/pedestrian.rst:325
+#: ../../build/docs/basic/pedestrian.rst:350
msgid ""
"The cost to be in minutes, with a walking speed s = 1.3 m/s and t = d/s "
-"(line **7**)."
-msgstr ""
-
-#: ../../build/docs/basic/pedestrian.rst:337
-msgid ":ref:`basic/appendix:**Exercise**: 6 (**Chapter:** Pedestrian)`"
+"(line **6**)."
msgstr ""
#: ../../build/docs/scripts/basic/chapter_5/note_2.txt:1
msgid ""
"An interpretation of the result can be: In general, it is faster to "
-"depart from \"Qendra Sprotive\" than from \"Nadir Xhemali Danijolli\""
+"depart from \"Instituto Federal do Pará, Campus Belém\" than from "
+"\"Hangar Convention Center\""
msgstr ""
diff --git a/locale/en/LC_MESSAGES/basic/plpgsql_function.po b/locale/en/LC_MESSAGES/basic/plpgsql_function.po
index c2ba975a8..35c4674ae 100644
--- a/locale/en/LC_MESSAGES/basic/plpgsql_function.po
+++ b/locale/en/LC_MESSAGES/basic/plpgsql_function.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-22 11:12-0600\n"
+"POT-Creation-Date: 2024-11-10 17:09+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/basic/plpgsql_function.rst:11
msgid "pl/pgsql function"
@@ -32,985 +32,701 @@ msgid ""
"previously defined functions becomes necessary for clarity."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:21
+#: ../../build/docs/basic/plpgsql_function.rst:22
msgid "Chapter contents"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:24
+#: ../../build/docs/basic/plpgsql_function.rst:25
msgid "Requirements for routing from A to B"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:27
+#: ../../build/docs/basic/plpgsql_function.rst:28
msgid "Chapter problem:"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:28
+#: ../../build/docs/basic/plpgsql_function.rst:29
msgid "Create a function ``wrk_fromAtoB`` that allows routing from 2 geometries."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:29
+#: ../../build/docs/basic/plpgsql_function.rst:30
msgid "The function takes latitude/longitude points as input parameters."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:30
+#: ../../build/docs/basic/plpgsql_function.rst:31
msgid ""
-"Returns a route that includes a geometry so that if can be displayed, "
-"for example, in QGIS."
+"Returns a route that includes a geometry so that if can be displayed, for"
+" example, in QGIS."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:31
+#: ../../build/docs/basic/plpgsql_function.rst:32
msgid "Will also return some other attributes."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:33
+#: ../../build/docs/basic/plpgsql_function.rst:34
msgid "The detailed description:"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:36
+#: ../../build/docs/basic/plpgsql_function.rst:37
msgid "Input parameters"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:38
-#: ../../build/docs/basic/plpgsql_function.rst:52
-#: ../../build/docs/basic/plpgsql_function.rst:185
-#: ../../build/docs/basic/plpgsql_function.rst:332
-msgid "Column"
+#: ../../build/docs/basic/plpgsql_function.rst:39
+msgid "Parameter"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:38
-#: ../../build/docs/basic/plpgsql_function.rst:332
-#: ../../build/docs/basic/plpgsql_function.rst:342
+#: ../../build/docs/basic/plpgsql_function.rst:39
+#: ../../build/docs/basic/plpgsql_function.rst:204
+#: ../../build/docs/basic/plpgsql_function.rst:214
msgid "type"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:38
-#: ../../build/docs/basic/plpgsql_function.rst:52
-#: ../../build/docs/basic/plpgsql_function.rst:185
-#: ../../build/docs/basic/plpgsql_function.rst:332
-#: ../../build/docs/basic/plpgsql_function.rst:342
+#: ../../build/docs/basic/plpgsql_function.rst:39
+#: ../../build/docs/basic/plpgsql_function.rst:54
+#: ../../build/docs/basic/plpgsql_function.rst:204
+#: ../../build/docs/basic/plpgsql_function.rst:214
msgid "Description"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:40
-msgid "edges_subset"
+#: ../../build/docs/basic/plpgsql_function.rst:41
+msgid "``edges_subset``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:40
-#: ../../build/docs/basic/plpgsql_function.rst:334
+#: ../../build/docs/basic/plpgsql_function.rst:41
+#: ../../build/docs/basic/plpgsql_function.rst:206
msgid "REGCLASS"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:40
+#: ../../build/docs/basic/plpgsql_function.rst:41
msgid "Edge table name identifier."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:41
-msgid "lat1"
+#: ../../build/docs/basic/plpgsql_function.rst:42
+msgid "``lat1``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:41
#: ../../build/docs/basic/plpgsql_function.rst:42
#: ../../build/docs/basic/plpgsql_function.rst:43
#: ../../build/docs/basic/plpgsql_function.rst:44
-#: ../../build/docs/basic/plpgsql_function.rst:335
-#: ../../build/docs/basic/plpgsql_function.rst:336
+#: ../../build/docs/basic/plpgsql_function.rst:45
+#: ../../build/docs/basic/plpgsql_function.rst:207
+#: ../../build/docs/basic/plpgsql_function.rst:208
msgid "NUMERIC"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:41
+#: ../../build/docs/basic/plpgsql_function.rst:42
msgid "The latitude of the `departure` point."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:42
-msgid "lon1"
+#: ../../build/docs/basic/plpgsql_function.rst:43
+msgid "``lon1``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:42
+#: ../../build/docs/basic/plpgsql_function.rst:43
msgid "The longitude of the `departure` point."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:43
-msgid "lat2"
+#: ../../build/docs/basic/plpgsql_function.rst:44
+msgid "``lat2``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:43
+#: ../../build/docs/basic/plpgsql_function.rst:44
msgid "The latitude of the `destination` point."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:44
-msgid "lon2"
+#: ../../build/docs/basic/plpgsql_function.rst:45
+msgid "``lon2``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:44
+#: ../../build/docs/basic/plpgsql_function.rst:45
msgid "The longitude of the `destination` point."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:45
-msgid "do_debug"
+#: ../../build/docs/basic/plpgsql_function.rst:46
+msgid "``do_debug``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:45
+#: ../../build/docs/basic/plpgsql_function.rst:46
msgid "BOOLEAN"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:45
+#: ../../build/docs/basic/plpgsql_function.rst:46
msgid "Flag to create a ``WARNING`` with the query that is been executed"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:50
+#: ../../build/docs/basic/plpgsql_function.rst:52
msgid "Output columns"
msgstr ""
#: ../../build/docs/basic/plpgsql_function.rst:54
-msgid "*seq*"
+#: ../../build/docs/basic/plpgsql_function.rst:204
+msgid "Column"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:54
+#: ../../build/docs/basic/plpgsql_function.rst:56
+msgid "``seq``"
+msgstr ""
+
+#: ../../build/docs/basic/plpgsql_function.rst:56
msgid "For ordering purposes."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:55
-msgid "*gid*"
+#: ../../build/docs/basic/plpgsql_function.rst:57
+msgid "``gid``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:55
+#: ../../build/docs/basic/plpgsql_function.rst:57
msgid ""
"The edge identifier that can be used to JOIN the results to the ``ways`` "
"table."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:56
-msgid "*name*"
+#: ../../build/docs/basic/plpgsql_function.rst:58
+msgid "``name``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:56
+#: ../../build/docs/basic/plpgsql_function.rst:58
msgid "The street name."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:57
-msgid "*azimuth*"
+#: ../../build/docs/basic/plpgsql_function.rst:59
+msgid "``azimuth``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:57
+#: ../../build/docs/basic/plpgsql_function.rst:59
msgid "Between start and end node of an edge."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:58
-msgid "*length*"
+#: ../../build/docs/basic/plpgsql_function.rst:60
+msgid "``length``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:58
+#: ../../build/docs/basic/plpgsql_function.rst:60
msgid "In meters."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:59
-msgid "*minutes*"
+#: ../../build/docs/basic/plpgsql_function.rst:61
+msgid "``minutes``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:59
+#: ../../build/docs/basic/plpgsql_function.rst:61
msgid "Minutes taken to traverse the segment."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:60
-msgid "*route_geom*"
+#: ../../build/docs/basic/plpgsql_function.rst:62
+msgid "``route_geom``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:60
+#: ../../build/docs/basic/plpgsql_function.rst:62
msgid "The road geometry with corrected directionality."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:64
-msgid "For this chapter, the following points will be used for testing."
-msgstr ""
-
#: ../../build/docs/basic/plpgsql_function.rst:66
-msgid "(lat,lon) = (42.2151, 20.729354)"
+msgid "For this chapter, the following points will be used for testing."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:67
-msgid "(lat,lon) = (42.2147, 20.7312)"
+#: ../../build/docs/basic/plpgsql_function.rst:68
+msgid "(lat,lon) = (-1.455829, -48.446044)"
msgstr ""
#: ../../build/docs/basic/plpgsql_function.rst:69
-msgid "Saving this information on a table:"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:71
-msgid "The ``X`` value of a geometry is the longitude."
+msgid "(lat,lon) = (-1.453448, -48.447142)"
msgstr ""
#: ../../build/docs/basic/plpgsql_function.rst:72
-msgid "The ``Y`` value of a geometry is the latitude."
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:73
-msgid "Natural language to form the point is ``(latitude, longitude)``."
+msgid "The Vertices Table"
msgstr ""
#: ../../build/docs/basic/plpgsql_function.rst:74
-msgid "For geometry processing to form the point is ``(longitude, latitude)``."
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:75
-msgid "lines **4** and **6** show the inverse order of the (lat,lon) pairs."
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:85
-msgid "The Vertex Table"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:87
-msgid "Graphs have a `set of edges` and a `set of vertices` associated to it."
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:89
-msgid ""
-"`osm2pgrouting` provides the `ways_vertices_pgr` table which is "
-"associated with the `ways` table."
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:92
msgid ""
-"When a subset of `edges` is used like in ``vehicle_net`` or in "
-"``taxi_net``, the set of vertices associated to each one must be used in "
-"order to, for example, locate the nearest vertex to a lat/lon location."
+"Graphs have a `set of edges` and a `set of vertices` associated to it. "
+"The views need their vertices table."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:97
-msgid "Exercise 1: Number of vertices"
+#: ../../build/docs/basic/plpgsql_function.rst:78
+msgid "Exercise 1: Create vertices table"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:100
-#: ../../build/docs/basic/plpgsql_function.rst:171
-#: ../../build/docs/basic/plpgsql_function.rst:246
-#: ../../build/docs/basic/plpgsql_function.rst:321
-#: ../../build/docs/basic/plpgsql_function.rst:387
-#: ../../build/docs/basic/plpgsql_function.rst:468
-#: ../../build/docs/basic/plpgsql_function.rst:542
+#: ../../build/docs/basic/plpgsql_function.rst:81
+#: ../../build/docs/basic/plpgsql_function.rst:128
+#: ../../build/docs/basic/plpgsql_function.rst:193
+#: ../../build/docs/basic/plpgsql_function.rst:256
+#: ../../build/docs/basic/plpgsql_function.rst:329
+#: ../../build/docs/basic/plpgsql_function.rst:405
msgid "Problem"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:101
-msgid "Calculate the number of vertices in a graph."
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:103
-msgid "Depending on the graph calculate the number of vertices of:"
+#: ../../build/docs/basic/plpgsql_function.rst:82
+msgid "Create a vertices table for the views:"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:105
-#: ../../build/docs/basic/plpgsql_function.rst:177
-msgid "``ways``"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:106
-#: ../../build/docs/basic/plpgsql_function.rst:178
+#: ../../build/docs/basic/plpgsql_function.rst:84
msgid "``vehicle_net``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:107
-#: ../../build/docs/basic/plpgsql_function.rst:179
+#: ../../build/docs/basic/plpgsql_function.rst:85
msgid "``taxi_net``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:108
-#: ../../build/docs/basic/plpgsql_function.rst:180
+#: ../../build/docs/basic/plpgsql_function.rst:86
msgid "``walk_net``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:111
-#: ../../build/docs/basic/plpgsql_function.rst:192
-#: ../../build/docs/basic/plpgsql_function.rst:263
-#: ../../build/docs/basic/plpgsql_function.rst:348
-#: ../../build/docs/basic/plpgsql_function.rst:404
-#: ../../build/docs/basic/plpgsql_function.rst:481
-#: ../../build/docs/basic/plpgsql_function.rst:565
+#: ../../build/docs/basic/plpgsql_function.rst:90
+#: ../../build/docs/basic/plpgsql_function.rst:141
+#: ../../build/docs/basic/plpgsql_function.rst:220
+#: ../../build/docs/basic/plpgsql_function.rst:273
+#: ../../build/docs/basic/plpgsql_function.rst:342
+#: ../../build/docs/basic/plpgsql_function.rst:428
msgid "Solution"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:112
-#: ../../build/docs/basic/plpgsql_function.rst:193
-msgid "For ``ways``:"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:114
-#: ../../build/docs/basic/plpgsql_function.rst:195
+#: ../../build/docs/basic/plpgsql_function.rst:91
msgid ""
-"`osm2pgrouting` automatically created the ``ways_vertices_pgr`` table "
-"that contains all the vertices in ``ways`` table."
+"Use ``pgr_extractVertices`` (explained in :doc:`graph_views`) to create "
+"the vertices table"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:116
+#: ../../build/docs/basic/plpgsql_function.rst:93
msgid ""
-"Using `aggregate function `__ ``count``. (line **1**)"
+"``JOIN`` the vertices table with ``ways_vertices`` (created in "
+":doc:`graph_views`) to get the ``x``, ``y``, ``geom`` information."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:118
-msgid "Count all the rows of ``ways_vertices_pgr`` table. (line **2**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:127
-#: ../../build/docs/basic/plpgsql_function.rst:202
-#: ../../build/docs/basic/plpgsql_function.rst:547
-#: ../../build/docs/basic/plpgsql_function.rst:566
+#: ../../build/docs/basic/plpgsql_function.rst:96
+#: ../../build/docs/basic/plpgsql_function.rst:410
+#: ../../build/docs/basic/plpgsql_function.rst:429
msgid "For ``vehicle_net``:"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:129
-msgid "Extract the vertices identifiers of the ``source`` column. (line **3**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:130
-msgid "Extract the vertices identifiers of the ``target`` column. (line **8**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:131
-msgid ""
-"`UNION `__ both results (line **6**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:141
-#: ../../build/docs/basic/plpgsql_function.rst:218
-#: ../../build/docs/basic/plpgsql_function.rst:551
-#: ../../build/docs/basic/plpgsql_function.rst:579
+#: ../../build/docs/basic/plpgsql_function.rst:104
+#: ../../build/docs/basic/plpgsql_function.rst:414
+#: ../../build/docs/basic/plpgsql_function.rst:444
msgid "For ``taxi_net``:"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:143
-msgid ""
-"Similar solution as in previous query but on ``taxi_net``. (lines **4** "
-"and **9**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:152
-#: ../../build/docs/basic/plpgsql_function.rst:228
-#: ../../build/docs/basic/plpgsql_function.rst:555
-#: ../../build/docs/basic/plpgsql_function.rst:591
+#: ../../build/docs/basic/plpgsql_function.rst:110
+#: ../../build/docs/basic/plpgsql_function.rst:418
+#: ../../build/docs/basic/plpgsql_function.rst:457
msgid "For ``walk_net``:"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:154
-msgid ""
-"Similar solution as in previous query but on ``walk_net``. (lines **4** "
-"and **9**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:165
-msgid ":ref:`basic/appendix:**Exercise**: 1 (**Chapter:** pl/pgsql)`"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:168
-msgid "Exercise 2: Vertices on a table"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:172
-msgid "Create a vertices table."
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:173
-msgid "Follow the suffix naming ``_vertices_pgr``."
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:175
-msgid "Depending on the graph create a vertices table of:"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:182
-msgid "The vertices table should contain:"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:187
-msgid "osm_id"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:187
-msgid "OSM Identifier of the vertex."
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:188
-msgid "the_geom"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:188
-msgid "The geometry of the vertex."
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:197
-msgid "The vertices are already on a table."
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:198
-msgid "The table suffix follows is as requested."
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:199
-msgid "There is no need to create a table."
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:200
-msgid ""
-"The source and target columns are in terms of ``id`` column of "
-"``ways_vertices_pgr``"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:204
-msgid ""
-"Using the query ``id_list`` from `Exercise 1: Number of vertices`_. (not "
-"highlighted lines **2** to **8**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:205
-msgid ""
-"``JOIN`` with ``ways_vertices_pgr`` that has the OSM identifier and the "
-"geometry information. (line **13**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:206
-msgid "Extract the ``osm_id`` and ``the_geom``. (line **10**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:207
-msgid "Save in table ``vehicle_net_vertices_pgr``. (line **11**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:208
-msgid ""
-"The source and target columns values have the ``osm_id`` therefore the "
-"``id`` column of ``vehicle_net_vertices_pgr`` must also have the "
-"``osm_id`` values"
+#: ../../build/docs/basic/plpgsql_function.rst:112
+msgid "Modify the above queries to create the ``walk_net_vertices`` table."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:220
-#: ../../build/docs/basic/plpgsql_function.rst:230
-msgid ""
-"Similar solution as in previous query but on ``taxi_net``. (lines **3**, "
-"**8** and **11**)"
+#: ../../build/docs/basic/plpgsql_function.rst:120
+msgid "It is left to the reader to remove disconected components on the views."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:240
-msgid ":ref:`basic/appendix:**Exercise**: 2 (**Chapter:** pl/pgsql)`"
+#: ../../build/docs/basic/plpgsql_function.rst:122
+msgid "See :doc:`graph_views`"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:243
+#: ../../build/docs/basic/plpgsql_function.rst:125
msgid "Exercise 3: Nearest Vertex"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:247
-msgid "Calculate the OSM identifier of the nearest vertex to a point."
+#: ../../build/docs/basic/plpgsql_function.rst:129
+msgid "Calculate the (OSM) identifier of the nearest vertex to a point."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:249
-msgid "In particular use the following (lat,lon) value: ``(42.2151, 20.729354)``."
+#: ../../build/docs/basic/plpgsql_function.rst:131
+msgid ""
+"In particular use the following (lat, lon) value: ``(-1.455829, "
+"-48.446044)``."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:251
-#: ../../build/docs/basic/plpgsql_function.rst:396
+#: ../../build/docs/basic/plpgsql_function.rst:133
+#: ../../build/docs/basic/plpgsql_function.rst:265
msgid "calculate the nearest OSM identifier of the vertex to:"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:253
-#: ../../build/docs/basic/plpgsql_function.rst:399
-msgid "``vehicle_net_vertices_pgr``"
+#: ../../build/docs/basic/plpgsql_function.rst:135
+#: ../../build/docs/basic/plpgsql_function.rst:267
+msgid "``ways_vertices``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:254
-#: ../../build/docs/basic/plpgsql_function.rst:400
-msgid "``taxi_net_vertices_pgr``"
+#: ../../build/docs/basic/plpgsql_function.rst:136
+#: ../../build/docs/basic/plpgsql_function.rst:268
+msgid "``vehicle_net_vertices``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:255
-#: ../../build/docs/basic/plpgsql_function.rst:401
-msgid "``walk_net_vertices_pgr``"
+#: ../../build/docs/basic/plpgsql_function.rst:137
+#: ../../build/docs/basic/plpgsql_function.rst:269
+msgid "``taxi_net_vertices``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:257
-msgid ""
-"The ``ways`` and the ``ways_vertices_pgr`` tables are not used on the "
-"**final applications**"
+#: ../../build/docs/basic/plpgsql_function.rst:138
+#: ../../build/docs/basic/plpgsql_function.rst:270
+msgid "``walk_net_vertices``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:259
+#: ../../build/docs/basic/plpgsql_function.rst:142
msgid ""
-"The *net* views and *vertices* tables have been prepared in such a way "
-"that the ``AS`` statement is not needed any more on a pgRouting function."
+"Remember that the ``id`` has an OSM vertex identifier on the vertices "
+"tables."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:264
-#: ../../build/docs/basic/plpgsql_function.rst:405
-msgid "For ``ways_vertices_pgr``:"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:266
-msgid "Get the osm_id. (line **1**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:267
+#: ../../build/docs/basic/plpgsql_function.rst:143
msgid ""
-"Using the distance operator `<-> "
+"Using the Postgis distance operator `<-> "
"`__ to order by "
-"distance. (line **3**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:268
-msgid ""
-"Get only the first row, to obtain the nearest OSM identifier of the "
-"vertex. (line **4**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:277
-msgid "For ``vehicle_net_vertices_pgr``:"
+"distance."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:279
-msgid "Similar solution as in previous query but:"
+#: ../../build/docs/basic/plpgsql_function.rst:144
+msgid "Get only the first row, to obtain the nearest identifier of the vertex."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:281
-msgid "Extracting the ``id`` columns. (line **1**)"
+#: ../../build/docs/basic/plpgsql_function.rst:146
+#: ../../build/docs/basic/plpgsql_function.rst:274
+msgid "For ``ways_vertices``:"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:282
-msgid "On ``vehicle_net_vertices_pgr``. (line **2**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:291
-#: ../../build/docs/basic/plpgsql_function.rst:431
-msgid "For ``taxi_net_vertices_pgr``:"
+#: ../../build/docs/basic/plpgsql_function.rst:157
+msgid "For ``vehicle_net_vertices``:"
msgstr ""
+#: ../../build/docs/basic/plpgsql_function.rst:159
+#: ../../build/docs/basic/plpgsql_function.rst:174
+#: ../../build/docs/basic/plpgsql_function.rst:182
#: ../../build/docs/basic/plpgsql_function.rst:293
-msgid ""
-"Similar solution as in previous query but on ``taxi_net_vertices_pgr``. "
-"(line **2**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:302
-#: ../../build/docs/basic/plpgsql_function.rst:442
-msgid "For ``walk_net_vertices_pgr``:"
+#: ../../build/docs/basic/plpgsql_function.rst:306
+msgid "Modify the previous query."
msgstr ""
+#: ../../build/docs/basic/plpgsql_function.rst:172
#: ../../build/docs/basic/plpgsql_function.rst:304
-msgid ""
-"Similar solution as in previous query but on ``walk_net_vertices_pgr``. "
-"(line **2**)"
+msgid "For ``taxi_net_vertices``:"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:315
-msgid ":ref:`basic/appendix:**Exercise**: 3 (**Chapter:** pl/pgsql)`"
+#: ../../build/docs/basic/plpgsql_function.rst:180
+#: ../../build/docs/basic/plpgsql_function.rst:312
+msgid "For ``walk_net_vertices``:"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:318
+#: ../../build/docs/basic/plpgsql_function.rst:190
msgid "Exercise 4: Nearest vertex function"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:322
+#: ../../build/docs/basic/plpgsql_function.rst:194
msgid ""
"When operations look similar for different tables, a function can be "
"created."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:324
+#: ../../build/docs/basic/plpgsql_function.rst:196
msgid ""
"Create a function that calculates the OSM identifier of the nearest "
"vertex to a point."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:325
-msgid "Function name: ``wrk_NearestOSM``."
+#: ../../build/docs/basic/plpgsql_function.rst:197
+msgid "Function name: ``wrk_nearest``."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:326
+#: ../../build/docs/basic/plpgsql_function.rst:198
msgid "Needs to work only for the **final application** views and table."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:329
+#: ../../build/docs/basic/plpgsql_function.rst:201
msgid "The input parameters:"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:334
+#: ../../build/docs/basic/plpgsql_function.rst:206
msgid "vertex_table"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:334
+#: ../../build/docs/basic/plpgsql_function.rst:206
msgid "Table name identifier."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:335
+#: ../../build/docs/basic/plpgsql_function.rst:207
msgid "lat"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:335
+#: ../../build/docs/basic/plpgsql_function.rst:207
msgid "The latitude of a point."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:336
+#: ../../build/docs/basic/plpgsql_function.rst:208
msgid "lon"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:336
+#: ../../build/docs/basic/plpgsql_function.rst:208
msgid "The longitude of a point."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:339
+#: ../../build/docs/basic/plpgsql_function.rst:211
msgid "The output:"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:344
+#: ../../build/docs/basic/plpgsql_function.rst:216
msgid "BIGINT"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:344
+#: ../../build/docs/basic/plpgsql_function.rst:216
msgid "the OSM identifier that is nearest to (lat,lon)."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:349
-msgid "The function returns only one value. (line **5**)"
+#: ../../build/docs/basic/plpgsql_function.rst:221
+msgid "The function returns only one ``BIGINT`` value."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:350
+#: ../../build/docs/basic/plpgsql_function.rst:222
msgid ""
"Using `format `__ to build the query. (line **10**)"
+"#FUNCTIONS-STRING-FORMAT>`__ to build the query."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:352
+#: ../../build/docs/basic/plpgsql_function.rst:226
msgid ""
"The structure of the query is similar to `Exercise 3: Nearest Vertex`_ "
-"solutions. (lines **12** to **16**)"
+"solutions."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:353
-msgid "``%1$I`` for the table name identifier. (line **13**)"
+#: ../../build/docs/basic/plpgsql_function.rst:228
+msgid "``%1$I`` for the table name identifier."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:354
+#: ../../build/docs/basic/plpgsql_function.rst:229
msgid "``%2$s`` and ``%3$s`` for the latitude and longitude."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:356
-msgid "The point is formed with (lon/lat) ``(%3$s, %2$s)``. (line **15**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:358
-msgid ""
-"The additional parameters of function ``format``, are the parameters of "
-"the function we are creating. (line **19**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:368
-msgid ":ref:`basic/appendix:**Exercise**: 4 (**Chapter:** pl/pgsql)`"
+#: ../../build/docs/basic/plpgsql_function.rst:231
+msgid "The point is formed with (lon/lat) ``(%3$s, %2$s)``."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:372
+#: ../../build/docs/basic/plpgsql_function.rst:241
msgid "Exercise 5: Test nearest vertex function"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:-1
+#: ../../build/docs/basic/plpgsql_function.rst:243
msgid "Nearest Vertex in vehicle network"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:-1
-msgid "Nearest Vertex in taki network"
+#: ../../build/docs/basic/plpgsql_function.rst:247
+msgid "Nearest Vertex in taxi network"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:-1
+#: ../../build/docs/basic/plpgsql_function.rst:251
msgid "Nearest Vertex in walk network"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:388
-msgid "Test the ``wrk_NearestOSM`` function."
+#: ../../build/docs/basic/plpgsql_function.rst:257
+msgid "Test the ``wrk_Nearest`` function."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:390
-msgid ""
-"In particular use the following (lat,lon) values: ``(42.2151, "
-"20.729354)``."
+#: ../../build/docs/basic/plpgsql_function.rst:259
+msgid "Use the following (lat,lon) values: ``(-1.455829, -48.446044)``."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:392
+#: ../../build/docs/basic/plpgsql_function.rst:261
msgid "The point is the same as in `Exercise 3: Nearest Vertex`_ problem."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:394
+#: ../../build/docs/basic/plpgsql_function.rst:263
msgid "Verify the results are the same."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:398
-msgid "``ways_vertices_pgr``"
+#: ../../build/docs/basic/plpgsql_function.rst:276
+msgid "Use the function with ``ways_vertices`` as the ``vertex_table`` parameter."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:407
-msgid ""
-"Use the function with ``ways_vertices_pgr`` as the ``vertex_table`` "
-"parameter. (line **2**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:408
-msgid "Pass the (lat,lon) values as second and third parameters. (line **3**)"
+#: ../../build/docs/basic/plpgsql_function.rst:277
+msgid "Pass the (lat,lon) values as second and third parameters."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:409
+#: ../../build/docs/basic/plpgsql_function.rst:278
msgid ""
"Using the function on the original data does not return the OSM "
"identifier."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:411
+#: ../../build/docs/basic/plpgsql_function.rst:280
msgid "The value stored in ``id`` column is not the OSM identifier."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:420
-msgid "For ``vehicles_net_vertices_pgr``:"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:422
-msgid ""
-"Similar solution as in previous query but on "
-"``vehicles_net_vertices_pgr``. (lines **2**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:433
-msgid ""
-"Similar solution as in previous query but on ``taxi_net_vertices_pgr``. "
-"(lines **2**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:444
-msgid ""
-"Similar solution as in previous query but on ``walk_net_vertices_pgr``. "
-"(lines **2**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:455
-msgid ":ref:`basic/appendix:**Exercise**: 5 (**Chapter:** pl/pgsql)`"
+#: ../../build/docs/basic/plpgsql_function.rst:291
+msgid "For ``vehicles_net_vertices``:"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:459
+#: ../../build/docs/basic/plpgsql_function.rst:320
msgid "wrk_fromAtoB function"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:461
+#: ../../build/docs/basic/plpgsql_function.rst:322
msgid ""
-"In this section, creation and testing the requiered function will be "
+"In this section, creation and testing the required function will be "
"tackled."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:465
+#: ../../build/docs/basic/plpgsql_function.rst:326
msgid "Exercise 6: Creating the main function"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:469
+#: ../../build/docs/basic/plpgsql_function.rst:330
msgid "Create the function ``wrk_fromAtoB``."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:470
+#: ../../build/docs/basic/plpgsql_function.rst:331
msgid "Follow the description given at `Requirements for routing from A to B`_."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:471
-msgid ""
-"Use specialized functions already created ``wrk_dijkstra`` and "
-"``wrk_NearestOSM``."
+#: ../../build/docs/basic/plpgsql_function.rst:332
+msgid "Use specialized functions:"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:473
+#: ../../build/docs/basic/plpgsql_function.rst:334
msgid "``wrk_NearestOSM`` created on `Exercise 4: Nearest vertex function`_."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:475
+#: ../../build/docs/basic/plpgsql_function.rst:336
msgid "It receives the point in natural language format."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:476
+#: ../../build/docs/basic/plpgsql_function.rst:337
msgid "Obtains the OSM identifier needed by ``wrk_dijkstra``."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:478
-msgid ""
-"``wrk_dijkstra`` created on :ref:`basic/sql_function:Exercise 10: "
-"Function for an application`."
+#: ../../build/docs/basic/plpgsql_function.rst:339
+msgid "``wrk_dijkstra`` created in :doc:`sql_function`"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:482
+#: ../../build/docs/basic/plpgsql_function.rst:343
msgid "The function's signature:"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:484
-msgid "The input parameters highlited on lines **2** to **5**."
+#: ../../build/docs/basic/plpgsql_function.rst:345
+msgid "The input parameters highlighted."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:485
-msgid "The output columns are not higlighted on lines **7** to **13**."
+#: ../../build/docs/basic/plpgsql_function.rst:346
+msgid "The output columns are not highlighted."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:486
-msgid "The function returns a set of values. (line **15**)"
+#: ../../build/docs/basic/plpgsql_function.rst:347
+msgid "The function returns a set of values."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:496
+#: ../../build/docs/basic/plpgsql_function.rst:357
msgid "The function's body:"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:498
-msgid "Call to the function ``wrk_dijkstra`` (line **8**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:500
-msgid "``wrk_dijkstra`` obtains many of the result values"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:501
-msgid "Parameters are passed on lines **9** to **13**."
+#: ../../build/docs/basic/plpgsql_function.rst:359
+msgid "Call to the function ``wrk_dijkstra``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:502
-msgid "The ``edges_subset``:"
+#: ../../build/docs/basic/plpgsql_function.rst:361
+msgid "Using PostgreSQL ``format`` to make substitutions"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:504
-msgid ""
-"First parameters of the ``format`` function is the table name. (line "
-"**16**)"
+#: ../../build/docs/basic/plpgsql_function.rst:363
+msgid "The first parameter is the string to be replaced"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:505
-msgid "Is passed as ``%1$I``. (line **9**)"
+#: ../../build/docs/basic/plpgsql_function.rst:364
+msgid "The rest are the data parameters, are the strings use for replacement."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:507
-msgid "For the `departure` point:"
+#: ../../build/docs/basic/plpgsql_function.rst:366
+msgid "``wrk_dijkstra`` obtains the values for the output"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:509
-msgid "``wrk_NearestOSM`` is used to find the OSM identifier. (line **10**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:511
-msgid ""
-"The vertices table name is formed with ``%1$I_vertices_pgr``. (line "
-"**11**)"
+#: ../../build/docs/basic/plpgsql_function.rst:367
+msgid "The ``edges_subset`` value will replace ``%1$I``:"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:512
-msgid ""
-"Second and third parameters of the ``format`` function are ``%2$s``, "
-"``%3$s``. (line **17**)"
+#: ../../build/docs/basic/plpgsql_function.rst:368
+msgid "For the ``source`` and ``target``:"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:513
-msgid ""
-"The latitude and longitude are given in natural language form. (line "
-"**12**)"
+#: ../../build/docs/basic/plpgsql_function.rst:370
+msgid "``wrk_Nearest`` is used to find the identifier."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:515
-msgid "For the `destination` point:"
+#: ../../build/docs/basic/plpgsql_function.rst:372
+msgid "The vertices table name is formed with ``%1$I_vertices``."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:517
-msgid ""
-"Similar query is constructed but with the destination information. (line "
-"**13**)"
+#: ../../build/docs/basic/plpgsql_function.rst:374
+msgid "``lat1``, ``lon1`` values will replace ``%2$s, %3$s`` respectively."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:518
-msgid "Fourth and fifth parameters of the ``format`` function. (line **18**)"
+#: ../../build/docs/basic/plpgsql_function.rst:375
+msgid "``lat2``, ``lon2`` values will replace ``%4$s, %5$s`` respectively."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:520
+#: ../../build/docs/basic/plpgsql_function.rst:377
msgid "To get the constructed query in form of a warning:"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:522
-msgid ""
-"The ``WARNING`` will be issued only when ``do_debug`` is true. (lines "
-"**20** to **22**)"
+#: ../../build/docs/basic/plpgsql_function.rst:379
+msgid "The ``WARNING`` will be issued only when ``do_debug`` is true."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:532
-msgid ":ref:`basic/appendix:**Exercise**: 6 (**Chapter:** pl/pgsql)`"
+#: ../../build/docs/basic/plpgsql_function.rst:380
+msgid "No output will be generated."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:535
+#: ../../build/docs/basic/plpgsql_function.rst:398
msgid "Exercise 7: Using the main function"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:-1
+#: ../../build/docs/basic/plpgsql_function.rst:400
msgid "View of roads for taxis along with source and destination"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:543
+#: ../../build/docs/basic/plpgsql_function.rst:406
msgid "Use ``wrk_fromAtoB``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:545
-msgid "Departure point is: (lat,lon) = ``(42.2151, 20.729354)``"
+#: ../../build/docs/basic/plpgsql_function.rst:408
+msgid "Departure point is: (lat,lon) = ``(-1.455829, -48.446044)``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:546
-msgid "Destination point is: (lat,lon) = ``(42.2147, 20.7312)``"
+#: ../../build/docs/basic/plpgsql_function.rst:409
+msgid "Destination point is: (lat,lon) = ``(-1.453448, -48.447142)``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:549
-#: ../../build/docs/basic/plpgsql_function.rst:557
+#: ../../build/docs/basic/plpgsql_function.rst:412
+#: ../../build/docs/basic/plpgsql_function.rst:420
msgid "Use with default value of ``do_debug``."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:553
+#: ../../build/docs/basic/plpgsql_function.rst:416
msgid "Use with ``do_debug`` set to ``true``."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:558
+#: ../../build/docs/basic/plpgsql_function.rst:421
msgid "Store results on a table."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:559
+#: ../../build/docs/basic/plpgsql_function.rst:422
msgid "Show the table contents."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:562
+#: ../../build/docs/basic/plpgsql_function.rst:425
msgid "The function is not meant to be used with ``ways``"
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:568
-msgid "The first parameter is the table name. (line **2**)"
+#: ../../build/docs/basic/plpgsql_function.rst:431
+msgid "The first parameter is the table name."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:569
+#: ../../build/docs/basic/plpgsql_function.rst:432
msgid ""
"The next two parameters are the latitude and longitude of the departure "
-"point. (line **3**)"
+"point."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:570
+#: ../../build/docs/basic/plpgsql_function.rst:433
msgid ""
"The next two parameters are the latitude and longitude of the destination"
-" point. (line **4**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:581
-msgid "Similar to previous solution, but with ``taxi_net`` (line **2**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:582
-msgid "Adding ``true`` to get the query that is executed. (line **5**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:593
-msgid "Similar to a previous solution, but with ``ways`` (line **4**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:594
-msgid "Store results on a table. (line **2**)"
-msgstr ""
-
-#: ../../build/docs/basic/plpgsql_function.rst:595
-msgid "Show the table contents using a ``SELECT`` clause (lines **8** and **9**)."
+" point."
msgstr ""
-#: ../../build/docs/basic/plpgsql_function.rst:605
-msgid ":ref:`basic/appendix:**Exercise**: 7 (**Chapter:** pl/pgsql)`"
+#: ../../build/docs/basic/plpgsql_function.rst:446
+msgid "Do a dry run by adding ``true`` to get the query that is executed."
msgstr ""
diff --git a/locale/en/LC_MESSAGES/basic/sql_function.po b/locale/en/LC_MESSAGES/basic/sql_function.po
index b4e4104b5..d72b45775 100644
--- a/locale/en/LC_MESSAGES/basic/sql_function.po
+++ b/locale/en/LC_MESSAGES/basic/sql_function.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:49-0600\n"
+"POT-Creation-Date: 2024-12-16 18:21+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/basic/sql_function.rst:12
msgid "SQL function"
@@ -47,1069 +47,651 @@ msgid "The application requirements"
msgstr ""
#: ../../build/docs/basic/sql_function.rst:32
-msgid ""
-"In this chapter there are three requirements that follow the same logic. "
-"It consists on 2 types of vehicles and the pedestrian routing:"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:35
-msgid "Particular vehicle:"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:37
-msgid ""
-"Circulate on the whole Prizren area. - Do not use `steps`, `footway`, "
-"`path`."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:39
-msgid "Speed is the default speed from OSM information."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:41
-msgid "Taxi vehicle:"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:43
-msgid "Circulate on a smaller area near \"|place_4|\"."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:45
-msgid "Bounding box: ``(20.73,42.20891,20.76,42.23)``"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:46
-msgid "Do not use `steps`, `footway`, `path`"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:48
-msgid "Speed is 10% faster than the Particular vehicles."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:50
-msgid "Pedestrians:"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:52
-msgid "Walk on the whole Prizren area."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:53
-msgid "Can not circulate on `motorways` and on `primary` segments."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:54
-#: ../../build/docs/basic/sql_function.rst:215
-msgid "The speed is ``2 mts/sec``."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:64
msgid "A front end needs the following routing information:"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:57
-msgid "seq - A unique identifier of the rows"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:58
-msgid "gid - The segment's identifier"
+#: ../../build/docs/basic/sql_function.rst:33
+msgid "``seq`` - A unique identifier of the rows"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:59
-msgid "name - The segment's name"
+#: ../../build/docs/basic/sql_function.rst:34
+msgid "``id`` - The segment's identifier"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:60
-msgid "length - The segment's length"
+#: ../../build/docs/basic/sql_function.rst:35
+msgid "``name`` - The segment's name"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:61
-msgid "seconds - Number of seconds to traverse the segment"
+#: ../../build/docs/basic/sql_function.rst:36
+msgid "``length`` - The segment's length"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:62
-msgid "azimuth - The azimuth of the segment"
+#: ../../build/docs/basic/sql_function.rst:37
+msgid "``seconds`` - Number of seconds to traverse the segment"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:63
-msgid "route_geom - The routing geometry"
+#: ../../build/docs/basic/sql_function.rst:38
+msgid "``azimuth`` - The azimuth of the segment"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:64
-msgid "route_readable - The geometry in human readable form."
+#: ../../build/docs/basic/sql_function.rst:39
+msgid "``route_geom`` - The routing geometry"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:66
-msgid ""
-"and it needs to work based on the graph, and the OSM identifiers of the "
-"vertices."
+#: ../../build/docs/basic/sql_function.rst:40
+msgid "``route_readable`` - The geometry in human readable form."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:69
+#: ../../build/docs/basic/sql_function.rst:43
msgid "Design of the function"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:70
+#: ../../build/docs/basic/sql_function.rst:44
msgid ""
"The function to be created ``wrk_dijkstra`` with the following input "
"parameters and output columns:"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:74
+#: ../../build/docs/basic/sql_function.rst:48
msgid "Input parameters"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:76
-#: ../../build/docs/basic/sql_function.rst:86
-msgid "Name"
+#: ../../build/docs/basic/sql_function.rst:50
+msgid "Parameter"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:76
-#: ../../build/docs/basic/sql_function.rst:86
+#: ../../build/docs/basic/sql_function.rst:50
+#: ../../build/docs/basic/sql_function.rst:60
msgid "Type"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:76
-#: ../../build/docs/basic/sql_function.rst:86
+#: ../../build/docs/basic/sql_function.rst:50
+#: ../../build/docs/basic/sql_function.rst:60
msgid "Description"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:78
-msgid "edges_subset"
+#: ../../build/docs/basic/sql_function.rst:52
+msgid "``edges_subset``"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:78
+#: ../../build/docs/basic/sql_function.rst:52
msgid "REGCLASS"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:78
+#: ../../build/docs/basic/sql_function.rst:52
msgid "The table/view that is going to be used for processing"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:79
-msgid "source_osm"
+#: ../../build/docs/basic/sql_function.rst:53
+msgid "``source_osm``"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:79
-#: ../../build/docs/basic/sql_function.rst:80
-#: ../../build/docs/basic/sql_function.rst:89
+#: ../../build/docs/basic/sql_function.rst:53
+#: ../../build/docs/basic/sql_function.rst:54
+#: ../../build/docs/basic/sql_function.rst:63
msgid "BIGINT"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:79
+#: ../../build/docs/basic/sql_function.rst:53
msgid "The OSM identifier of the `departure` location."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:80
-msgid "target_osm"
+#: ../../build/docs/basic/sql_function.rst:54
+msgid "``target_osm``"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:80
+#: ../../build/docs/basic/sql_function.rst:54
msgid "The OSM identifier of the `destination` location."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:84
+#: ../../build/docs/basic/sql_function.rst:58
msgid "output columns"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:88
-msgid "seq"
+#: ../../build/docs/basic/sql_function.rst:60
+msgid "Name"
+msgstr ""
+
+#: ../../build/docs/basic/sql_function.rst:62
+#: ../../build/docs/basic/sql_function.rst:94
+msgid "``seq``"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:88
+#: ../../build/docs/basic/sql_function.rst:62
msgid "INTEGER"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:88
+#: ../../build/docs/basic/sql_function.rst:62
msgid "A unique number for each result row."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:89
-msgid "id"
+#: ../../build/docs/basic/sql_function.rst:63
+#: ../../build/docs/basic/sql_function.rst:95
+msgid "``id``"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:89
+#: ../../build/docs/basic/sql_function.rst:63
msgid "The edge identifier."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:90
-msgid "name"
+#: ../../build/docs/basic/sql_function.rst:64
+#: ../../build/docs/basic/sql_function.rst:96
+msgid "``name``"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:90
-#: ../../build/docs/basic/sql_function.rst:94
+#: ../../build/docs/basic/sql_function.rst:64
+#: ../../build/docs/basic/sql_function.rst:68
msgid "TEXT"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:90
+#: ../../build/docs/basic/sql_function.rst:64
msgid "The name of the segment."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:91
-msgid "seconds"
+#: ../../build/docs/basic/sql_function.rst:65
+#: ../../build/docs/basic/sql_function.rst:97
+msgid "``seconds``"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:91
-#: ../../build/docs/basic/sql_function.rst:92
-#: ../../build/docs/basic/sql_function.rst:93
+#: ../../build/docs/basic/sql_function.rst:65
+#: ../../build/docs/basic/sql_function.rst:66
+#: ../../build/docs/basic/sql_function.rst:67
msgid "FLOAT"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:91
+#: ../../build/docs/basic/sql_function.rst:65
msgid "The number of seconds it takes to traverse the segment."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:92
-msgid "azimuth"
+#: ../../build/docs/basic/sql_function.rst:66
+msgid "``azimuth``"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:92
+#: ../../build/docs/basic/sql_function.rst:66
msgid "The azimuth of the segment."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:93
-msgid "length_m"
+#: ../../build/docs/basic/sql_function.rst:67
+#: ../../build/docs/basic/sql_function.rst:98
+msgid "``length``"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:93
+#: ../../build/docs/basic/sql_function.rst:67
msgid "The leng in meters of the segment."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:94
-msgid "route_readable"
+#: ../../build/docs/basic/sql_function.rst:68
+msgid "``route_readable``"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:94
+#: ../../build/docs/basic/sql_function.rst:68
msgid "The geometry in human readable form."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:95
-msgid "route_geom"
+#: ../../build/docs/basic/sql_function.rst:69
+msgid "``route_geom``"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:95
+#: ../../build/docs/basic/sql_function.rst:69
msgid "geometry"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:95
+#: ../../build/docs/basic/sql_function.rst:69
msgid "The geometry of the segment in the correct direction."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:99
-msgid "Preparing processing graphs"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:102
-msgid "Exercise 1: Creating a view for routing"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:-1
-msgid "View of roads for vehicles"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:109
-#: ../../build/docs/basic/sql_function.rst:166
-#: ../../build/docs/basic/sql_function.rst:211
-#: ../../build/docs/basic/sql_function.rst:264
-#: ../../build/docs/basic/sql_function.rst:349
-#: ../../build/docs/basic/sql_function.rst:396
-#: ../../build/docs/basic/sql_function.rst:444
-#: ../../build/docs/basic/sql_function.rst:503
-#: ../../build/docs/basic/sql_function.rst:558
-#: ../../build/docs/basic/sql_function.rst:609
-#: ../../build/docs/basic/sql_function.rst:660
-msgid "Problem"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:110
-msgid ""
-"Create a view with minimal amount of information for processing the "
-"particular vehicles."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:111
-#: ../../build/docs/basic/sql_function.rst:213
-msgid ""
-"Routing `cost` and `reverse_cost` will be on seconds for routing "
-"calculations."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:112
-msgid "Exclude `steps`, `footway`, `path` segments."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:113
-#: ../../build/docs/basic/sql_function.rst:218
-msgid "Data needed in the view for further prossesing."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:115
-#: ../../build/docs/basic/sql_function.rst:220
-msgid "`length_m` The length in meters."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:116
-#: ../../build/docs/basic/sql_function.rst:221
-msgid "`the_geom` The geometry."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:118
-#: ../../build/docs/basic/sql_function.rst:223
-msgid "Verify the number of edges was reduced."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:121
-#: ../../build/docs/basic/sql_function.rst:175
-#: ../../build/docs/basic/sql_function.rst:226
-#: ../../build/docs/basic/sql_function.rst:283
-#: ../../build/docs/basic/sql_function.rst:358
-#: ../../build/docs/basic/sql_function.rst:410
-#: ../../build/docs/basic/sql_function.rst:453
-#: ../../build/docs/basic/sql_function.rst:515
-#: ../../build/docs/basic/sql_function.rst:570
-#: ../../build/docs/basic/sql_function.rst:624
-#: ../../build/docs/basic/sql_function.rst:665
-msgid "Solution"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:122
-#: ../../build/docs/basic/sql_function.rst:176
-#: ../../build/docs/basic/sql_function.rst:227
-msgid "Creating the view:"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:124
-msgid ""
-"The `source` and `target` requirements for the function are to be with "
-"OSM identifiers. (line **6**)"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:127
-msgid "The ``cost`` and ``reverse_cost`` are in terms of seconds. (line **7**)"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:128
-msgid "The additional parameters `length_m` and `the_geom`. (line **8**)"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:129
-msgid "``JOIN`` with the `configuration`:"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:131
-msgid "Exclude `steps`, `footway`, `path`. (line **11**)"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:133
+#: ../../build/docs/basic/sql_function.rst:73
msgid ""
-"If you need to reconstruct the view, first drop it using the command on "
-"line **1**."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:142
-#: ../../build/docs/basic/sql_function.rst:189
-#: ../../build/docs/basic/sql_function.rst:241
-msgid "Verification:"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:144
-msgid "Count the rows on the original ``ways`` (line **1**)"
+"For the following exercises only ``vehicle_net`` will be used, but you "
+"can test the queries with the other views."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:145
-msgid "Count the rows on the view ``vehicle_net`` (line **2**)"
+#: ../../build/docs/basic/sql_function.rst:77
+msgid "Additional information handling"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:155
-msgid ":ref:`basic/appendix:**Exercise**: 1 (**Chapter:** SQL)`"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:159
-msgid "Exercise 2: Limiting the road network within an area"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:-1
-msgid "View of smaller set of roads for vehicles"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:167
-msgid "Create a view ``taxi_net`` for the `taxi`:"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:169
-msgid ""
-"The taxi can only circulate inside this Bounding Box: "
-"``(20.73,42.20891,20.76,42.23)``"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:170
-#, python-format
-msgid "The taxi speed is 10% faster than the particular vehicle."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:172
-msgid "Verify the reduced number of road segments."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:178
-msgid ""
-"The graph for the taxi is a subset of the ``vehicle_net`` graph. (line "
-"**9**)"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:179
-msgid ""
-"Can only circulate inside the bounding box: "
-"``(20.73,42.20891,20.76,42.23)``. (line **10**)"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:180
-#, python-format
-msgid ""
-"Adjust the taxi's ``cost`` and ``reverse_cost`` to be 90% of the "
-"particular vehicle. (line **7**)"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:191
-msgid "Count the rows on the original ``taxi_net``"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:201
-msgid ":ref:`basic/appendix:**Exercise**: 2 (**Chapter:** SQL)`"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:204
-msgid "Exercise 3: Creating a materialized view for routing pedestrians"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:212
-msgid ""
-"Create a materialized view with minimal amount of information for "
-"processing pedestrians."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:217
-msgid "Exclude `motorway` , `primary` and `secondary` segments."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:229
-msgid "Similar to `Exercise 1: Creating a view for routing`_:"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:231
-msgid ""
-"The ``cost`` and ``reverse_cost`` are in terms of seconds with speed of "
-"``2 mts/sec``. (line **7**)"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:232
-msgid "Exclude `motorway`, `primary` and `secondary` . (line **11**)"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:243
-msgid "Count the rows on the view ``walk_net`` (line **1**)"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:253
-msgid ":ref:`basic/appendix:**Exercise**: 3 (**Chapter:** SQL)`"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:257
-msgid "Exercise 4: Testing the views for routing"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:-1
-msgid "From the Venue to the hotel using the osm_id."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:265
-msgid "Test the created views"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:267
-msgid "In particular:"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:269
-msgid ""
-"From the \"|ch7_place_1|\" to the \"|ch7_place_2|\" using the OSM "
-"identifier"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:270
-msgid "the views to be tested are:"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:272
-msgid "``vehicle_net``"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:273
-msgid "``taxi_net``"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:274
-msgid "``walk_net``"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:276
+#: ../../build/docs/basic/sql_function.rst:79
msgid ""
-"Only show the following results, as the other columns are to be ignored "
-"on the function."
+"When the application needs additional information, like the name of the "
+"street, ``JOIN`` the results with other tables."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:278
-msgid "``seq``"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:279
-msgid "``edge`` with the name ``id``"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:280
-msgid "``cost`` with the name: ``seconds``"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:284
-msgid "In general"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:286
-msgid "The departure is |ch7_place_1| with OSM identifier |ch7_osmid_1|."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:287
-msgid "The destination is |ch7_place_2| with OSM identifier |ch7_osmid_2|."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:289
-msgid "For ``vehicle_net``:"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:291
-msgid "``vehicle_net`` is used."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:292
-msgid "Selection of the columns with the corresponding names are on line **1**."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:293
-msgid "The view is prepared with the column names that pgRouting use."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:295
-msgid "There is no need to rename columns. (line **3**)"
+#: ../../build/docs/basic/sql_function.rst:83
+msgid "Exercise 1: Get additional information"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:297
-msgid ""
-"The OSM identifiers of the departure and destination are used. (line "
-"**4**)"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:306
-msgid "For ``taxi_net``:"
+#: ../../build/docs/basic/sql_function.rst:85
+msgid "Route showing names"
msgstr ""
+#: ../../build/docs/basic/sql_function.rst:90
+#: ../../build/docs/basic/sql_function.rst:137
+#: ../../build/docs/basic/sql_function.rst:188
+#: ../../build/docs/basic/sql_function.rst:244
#: ../../build/docs/basic/sql_function.rst:308
-msgid "Similar as the previous one but with ``taxi_net``. (line **3**)"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:309
-msgid ""
-"The results give the same route as with ``vehicle_net`` but ``cost`` is "
-"lower"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:318
-msgid "For ``walk_net``:"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:320
-msgid "Similar as the previous one but with ``walk_net``. (line **3**)"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:321
-msgid "The results give a different route than of the vehicles."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:331
-msgid ""
-"From these queries, it can be deduced that what we design for one view "
-"will work for the other views. On the following exercises only "
-"``vehicle_net`` will be used, but you can test the queries with the other"
-" views."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:337
-msgid ":ref:`basic/appendix:**Exercise**: 4 (**Chapter:** SQL)`"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:341
-msgid "Exercise 5: Get additional information"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:-1
-msgid "Route showing names"
+#: ../../build/docs/basic/sql_function.rst:352
+#: ../../build/docs/basic/sql_function.rst:403
+msgid "Problem"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:350
+#: ../../build/docs/basic/sql_function.rst:91
msgid "From |ch7_place_1| to |ch7_place_2|, using OSM identifiers."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:351
-msgid ""
-"additionally to the `Exercise 4: Testing the views for routing`_ results "
-"also get information found on the edges subset:"
+#: ../../build/docs/basic/sql_function.rst:92
+msgid "Get the following information:"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:354
-msgid "``name``"
+#: ../../build/docs/basic/sql_function.rst:101
+#: ../../build/docs/basic/sql_function.rst:150
+#: ../../build/docs/basic/sql_function.rst:196
+#: ../../build/docs/basic/sql_function.rst:254
+#: ../../build/docs/basic/sql_function.rst:316
+#: ../../build/docs/basic/sql_function.rst:366
+#: ../../build/docs/basic/sql_function.rst:408
+msgid "Solution"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:355
-msgid "``length_m``"
+#: ../../build/docs/basic/sql_function.rst:102
+msgid "The columns asked (line **2**)."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:359
+#: ../../build/docs/basic/sql_function.rst:103
msgid ""
-"The query from `Exercise 4: Testing the views for routing`_ used as a "
-"subquery named ``results`` (not highlighted lines **5** to **9**)"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:361
-msgid "The ``SELECT`` clause contains"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:363
-msgid "All the columns of ``results``. (line **2**)"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:364
-msgid "The ``name`` and the ``length_m`` values. (line **3**)"
+"Rename ``pgr_dijkstra`` results to application requirements names. (line "
+"**4**)."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:366
+#: ../../build/docs/basic/sql_function.rst:104
msgid ""
-"A ``LEFT JOIN`` with ``vehicle_net`` is needed to get the additional "
-"information. (line **10**)"
+"``LEFT JOIN`` the results with ``vehicle_net`` to get the additional "
+"information. (line **9**)"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:368
+#: ../../build/docs/basic/sql_function.rst:106
msgid ""
-"Has to be ``LEFT`` because there is a row with ``id = -1`` that does not "
-"exist on ``vehicle_net``"
+"``LEFT`` to include the row with ``id = -1`` because it does not exist on"
+" ``vehicle_net``"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:379
-msgid ":ref:`basic/appendix:**Exercise**: 5 (**Chapter:** SQL)`"
+#: ../../build/docs/basic/sql_function.rst:122
+msgid "Geometry handling"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:385
-msgid "Geometry handling"
+#: ../../build/docs/basic/sql_function.rst:124
+msgid ""
+"From pgRouting point of view, the geometry is part of the additional "
+"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."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:388
-msgid "Exercise 6: Route geometry (human readable)"
+#: ../../build/docs/basic/sql_function.rst:130
+msgid "Exercise 2: Route geometry (human readable)"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:-1
+#: ../../build/docs/basic/sql_function.rst:132
+#: ../../build/docs/basic/sql_function.rst:218
msgid "From |ch7_place_1| to |ch7_place_2|"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:397
-msgid ""
-"From the |ch7_place_1| to the |ch7_place_2|, additionally get the "
-"geometry in human readable form."
+#: ../../build/docs/basic/sql_function.rst:138
+#: ../../build/docs/basic/sql_function.rst:189
+#: ../../build/docs/basic/sql_function.rst:245
+msgid "Route from the |ch7_place_1| to |ch7_place_2|"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:400
-#: ../../build/docs/basic/sql_function.rst:447
-#: ../../build/docs/basic/sql_function.rst:506
-msgid ""
-"Additionally to the `Exercise 4: Testing the views for routing`_ results "
-"also get information found on the edges subset of:"
+#: ../../build/docs/basic/sql_function.rst:140
+#: ../../build/docs/basic/sql_function.rst:191
+msgid "Additionally to the previous exercise, get the"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:403
-#: ../../build/docs/basic/sql_function.rst:509
-msgid "``the_geom`` in human readable form named as ``route_readable``"
+#: ../../build/docs/basic/sql_function.rst:142
+msgid "geometry ``geom`` in human readable form named as ``route_readable``"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:406
+#: ../../build/docs/basic/sql_function.rst:146
msgid ""
"``WITH`` provides a way to write auxiliary statements in larger queries. "
"It can be thought of as defining temporary tables that exist just for one"
" query."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:411
+#: ../../build/docs/basic/sql_function.rst:151
msgid ""
-"The query from `Exercise 4: Testing the views for routing`_ used as a "
-"subquery named ``results`` this time in a WITH clause. (not highlighted "
-"lines **2** to **6**)"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:413
-#: ../../build/docs/basic/sql_function.rst:456
-msgid "The ``SELECT`` clause contains:"
+"The routing query named ``results`` in a WITH clause. (lines **2** to "
+"**5**)"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:415
-msgid "All the columns of ``results``. (line **8**)"
+#: ../../build/docs/basic/sql_function.rst:152
+msgid "The results from the previous exercise. (lines **8** and **9**)"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:416
+#: ../../build/docs/basic/sql_function.rst:154
msgid ""
-"The ``the_geom`` processed with ``ST_AsText`` to get the human readable "
-"form. (line **9**)"
+"For result reading purposes, the result columns from the previous are in "
+"a comment. Uncomment to see the complete results for the problem."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:418
-msgid "Renames the result to ``route_readable``"
+#: ../../build/docs/basic/sql_function.rst:157
+msgid ""
+"The ``geom`` processed with ``ST_AsText`` to get the human readable form."
+" (line **12**)"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:420
-msgid "Like before ``LEFT JOIN`` with ``vehicle_net``. (line **11**)"
+#: ../../build/docs/basic/sql_function.rst:160
+msgid "Renaming the result to ``route_readable``"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:432
-msgid ":ref:`basic/appendix:**Exercise**: 6 (**Chapter:** SQL)`"
+#: ../../build/docs/basic/sql_function.rst:162
+msgid "The ``LEFT JOIN`` with ``vehicle_net``. (line **14**)"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:437
-msgid "Exercise 7: Route geometry (binary format)"
+#: ../../build/docs/basic/sql_function.rst:181
+msgid "Exercise 3: Route geometry (binary format)"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:-1
+#: ../../build/docs/basic/sql_function.rst:183
msgid "From |ch7_place_1| to |ch7_place_2| showing arrows."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:445
-msgid "From the |ch7_place_1| to |ch7_place_2|, the geometry in binary format."
+#: ../../build/docs/basic/sql_function.rst:193
+#: ../../build/docs/basic/sql_function.rst:250
+msgid "``geom`` in binary format with the name ``route_geom``"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:450
-#: ../../build/docs/basic/sql_function.rst:510
-msgid "``the_geom`` in binary format with the name ``route_geom``"
+#: ../../build/docs/basic/sql_function.rst:197
+msgid "The query from the previous exercise is used"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:454
-msgid "The query from `Exercise 6: Route geometry (human readable)`_ used;"
+#: ../../build/docs/basic/sql_function.rst:198
+msgid "The ``SELECT`` clause also contains:"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:458
-msgid "The ``the_geom`` including the renaming (line **9**)"
+#: ../../build/docs/basic/sql_function.rst:200
+msgid "The ``geom`` including the renaming (line **9**)"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:470
-msgid ":ref:`basic/appendix:**Exercise**: 7 (**Chapter:** SQL)`"
+#: ../../build/docs/basic/sql_function.rst:216
+msgid "Exercise 4: Route geometry directionality"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:474
-msgid "Exercise 8: Route geometry directionality"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:482
+#: ../../build/docs/basic/sql_function.rst:222
msgid ""
-"Inspecting the detail image of `Exercise 7: Route geometry (binary "
-"format)`_ there are arrows that do not match the directionality of the "
-"route."
+"Visually, with the route displayed with arrows, it can be found that "
+"there are arrows that do not match the directionality of the route."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:-1
-msgid "detail"
+#: ../../build/docs/basic/sql_function.rst:225
+msgid ""
+"To have correct directionality, the ending point of a geometry must match"
+" the starting point of the next geometry"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:491
+#: ../../build/docs/basic/sql_function.rst:228
msgid ""
-"Inspecting the a detail of the results of `Exercise 6: Route geometry "
+"Inspecting the detail of the results of `Exercise 2: Route geometry "
"(human readable)`_"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:493
-msgid ""
-"To have correct directionality, the ending point of a geometry must match"
-" the starting point of the next geometry"
+#: ../../build/docs/basic/sql_function.rst:231
+msgid "Rows **59** to **61** do not match that criteria"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:494
-msgid "Lines **2** and **3** do not match that criteria"
+#: ../../build/docs/basic/sql_function.rst:247
+msgid "Fix the directionality of the geometries of the previous exercise"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:504
-msgid "From |ch7_place_1| to |ch7_place_2|,"
+#: ../../build/docs/basic/sql_function.rst:249
+msgid "``geom`` in human readable form named as ``route_readable``"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:511
+#: ../../build/docs/basic/sql_function.rst:251
msgid "Both columns must have the geometry fixed for directionality."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:516
+#: ../../build/docs/basic/sql_function.rst:255
msgid "To get the correct direction some geometries need to be reversed:"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:518
+#: ../../build/docs/basic/sql_function.rst:257
msgid ""
"Reversing a geometry will depend on the ``node`` column of the query to "
-"dijkstra (line **3**)"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:520
-msgid ""
-"That ``node`` is not needed on the ouput of the query, so explicitly "
-"naming required columns at line **9**."
+"Dijkstra (line **2**)"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:521
+#: ../../build/docs/basic/sql_function.rst:260
msgid ""
"A conditional ``CASE`` statement that returns the geometry in human "
"readable form:"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:523
+#: ../../build/docs/basic/sql_function.rst:263
msgid "Of the geometry when ``node`` is the ``source`` column. (line **11**)"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:524
+#: ../../build/docs/basic/sql_function.rst:264
msgid ""
"Of the reversed geometry when ``node`` is not the ``source`` column. "
"(line **12**)"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:526
+#: ../../build/docs/basic/sql_function.rst:266
msgid "A conditional ``CASE`` statement that returns:"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:528
+#: ../../build/docs/basic/sql_function.rst:268
+msgid "The geometry when ``node`` is the ``source`` column. (line **17**)"
+msgstr ""
+
+#: ../../build/docs/basic/sql_function.rst:269
msgid ""
"The reversed geometry when ``node`` is not the ``source`` column. (line "
"**16**)"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:529
-msgid "The geometry when ``node`` is the ``source`` column. (line **17**)"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:540
-msgid ":ref:`basic/appendix:**Exercise**: 8 (**Chapter:** SQL)`"
+#: ../../build/docs/basic/sql_function.rst:282
+msgid "Inspecting some the problematic rows, the directionality has been fixed."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:545
-msgid "Exercise 9: Using the geometry"
+#: ../../build/docs/basic/sql_function.rst:295
+msgid "Exercise 5: Using the geometry"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:-1
+#: ../../build/docs/basic/sql_function.rst:297
msgid "From |ch7_place_1| to the |ch7_place_2| show azimuth"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:552
+#: ../../build/docs/basic/sql_function.rst:302
msgid ""
"There are many geometry functions in PostGIS, the workshop already "
"covered some of them like ``ST_AsText``, ``ST_Reverse``, ``ST_EndPoint``,"
" etc. This exercise will make use an additional function ``ST_Azimuth``."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:559
-msgid "Modify the query from `Exercise 8: Route geometry directionality`_."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:560
-msgid "Aditionally obtain the azimuth of the correct geometry."
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:561
-msgid "keep the output small:"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:563
-msgid "Even that other columns are calculated only output:"
+#: ../../build/docs/basic/sql_function.rst:309
+msgid "Modify the query from the previous exercise"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:565
-msgid "``seq``, ``id``, ``seconds`` and the ``azimuth``"
+#: ../../build/docs/basic/sql_function.rst:311
+msgid "Additionally obtain the azimuth of the correct geometry."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:567
+#: ../../build/docs/basic/sql_function.rst:312
msgid ""
-"Because ``vehicle_net`` is a subgraph of ``ways``, do the ``JOIN`` with "
-"``ways``."
+"Because ``vehicle_net`` and the other 2 views are sub graphs of ``ways``,"
+" do the ``JOIN`` with ``ways``."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:571
+#: ../../build/docs/basic/sql_function.rst:317
msgid ""
-"Moving the query that gets the additional information into the ``WITH`` "
+"Move the query that gets the additional information into the ``WITH`` "
"statement."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:573
-msgid "Naming it ``additional``. (line **9**)"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:575
-msgid "Final ``SELECT`` statements gets:"
+#: ../../build/docs/basic/sql_function.rst:319
+msgid "Name it ``additional``. (line **6**)"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:577
-msgid "The requested information. (line **25**)"
+#: ../../build/docs/basic/sql_function.rst:321
+msgid "The ``ways`` table geometry name is ``the_geom``."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:578
-msgid "Calculates the azimuth of ``route_geom``. (line **26**)"
+#: ../../build/docs/basic/sql_function.rst:322
+msgid "Final ``SELECT`` statements gets:"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:589
-msgid ":ref:`basic/appendix:**Exercise**: 9 (**Chapter:** SQL)`"
+#: ../../build/docs/basic/sql_function.rst:324
+msgid "Calculates the azimuth of ``route_geom``. (line **27**)"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:594
+#: ../../build/docs/basic/sql_function.rst:337
msgid "Creating the Function"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:596
+#: ../../build/docs/basic/sql_function.rst:339
msgid ""
"The following function simplifies (and sets default values) when it calls"
" the shortest path Dijkstra function."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:600
+#: ../../build/docs/basic/sql_function.rst:343
msgid "pgRouting uses heavely function overloading:"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:602
+#: ../../build/docs/basic/sql_function.rst:345
msgid "Avoid creating functions with a name of a pgRouting routing function"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:603
+#: ../../build/docs/basic/sql_function.rst:346
msgid "Avoid the name of a function to start with `pgr_`, `_pgr` or `ST_`"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:606
-msgid "Exercise 10: Function for an application"
+#: ../../build/docs/basic/sql_function.rst:349
+msgid "Exercise 6: Function for an application"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:610
+#: ../../build/docs/basic/sql_function.rst:353
msgid "Putting all together in a SQL function"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:612
+#: ../../build/docs/basic/sql_function.rst:355
msgid "function name ``wrk_dijkstra``"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:613
+#: ../../build/docs/basic/sql_function.rst:356
msgid "Should work for any given view."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:615
+#: ../../build/docs/basic/sql_function.rst:358
msgid "Allow a view as a parameter"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:617
+#: ../../build/docs/basic/sql_function.rst:359
msgid "A table can be used if the columns have the correct names."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:619
+#: ../../build/docs/basic/sql_function.rst:361
msgid "``source`` and ``target`` are in terms of ``osm_id``."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:620
+#: ../../build/docs/basic/sql_function.rst:362
msgid ""
-"The result should meet the requirements indicated at the begining of the "
-"chapter"
+"The result should meet the requirements indicated at the beginning of the"
+" chapter"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:625
+#: ../../build/docs/basic/sql_function.rst:367
msgid "The signature of the function:"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:627
+#: ../../build/docs/basic/sql_function.rst:369
msgid "The input parameters are from line **4** to **6**."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:628
-msgid "The output columns are from line **7** to **14** (not highlited)."
+#: ../../build/docs/basic/sql_function.rst:370
+msgid "The output columns are from line **7** to **14** (not highlighted)."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:629
+#: ../../build/docs/basic/sql_function.rst:371
msgid "The function returns a set. (line **16**)"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:637
+#: ../../build/docs/basic/sql_function.rst:379
msgid "The body of the function:"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:639
+#: ../../build/docs/basic/sql_function.rst:381
msgid ""
"Appending the view name on line **7** in the ``SELECT`` query to "
"``pgr_dijkstra``."
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:640
+#: ../../build/docs/basic/sql_function.rst:382
msgid ""
"Using the data to get the route from ``source`` to ``target``. (line "
"**8**)"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:641
+#: ../../build/docs/basic/sql_function.rst:383
msgid ""
"The ``JOIN`` with ``ways`` is necessary, as the views are subset of "
"``ways`` (line **25**)"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:652
-msgid ":ref:`basic/appendix:**Exercise**: 10 (**Chapter:** SQL)`"
-msgstr ""
-
-#: ../../build/docs/basic/sql_function.rst:657
-msgid "Exercise 11: Using the function"
+#: ../../build/docs/basic/sql_function.rst:400
+msgid "Exercise 7: Using the function"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:661
+#: ../../build/docs/basic/sql_function.rst:404
msgid "Test the function with the three views"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:662
-msgid "From the \"|ch7_place_1|\" to the |ch7_place_2| using the OSM identifier"
+#: ../../build/docs/basic/sql_function.rst:405
+msgid "From the |ch7_place_1| to the |ch7_place_2| using the OSM identifier"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:666
+#: ../../build/docs/basic/sql_function.rst:409
msgid "Use the function on the ``SELECT`` statement"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:667
+#: ../../build/docs/basic/sql_function.rst:410
msgid "The first parameter changes based on the view to be tested"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:674
-msgid ":ref:`basic/appendix:**Exercise**: 11 (**Chapter:** SQL)`"
+#: ../../build/docs/basic/sql_function.rst:412
+msgid "Names of the streets in the route"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:677
-msgid "Use the function"
+#: ../../build/docs/basic/sql_function.rst:423
+msgid "Total seconds spent in each street"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:678
+#: ../../build/docs/basic/sql_function.rst:434
+msgid "Get all the information of the route"
+msgstr ""
+
+#: ../../build/docs/basic/sql_function.rst:445
msgid "Try the function with a combination of the interesting places:"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:680
+#: ../../build/docs/basic/sql_function.rst:447
msgid "|osmid_1| |place_1|"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:681
+#: ../../build/docs/basic/sql_function.rst:448
msgid "|osmid_2| |place_2|"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:682
+#: ../../build/docs/basic/sql_function.rst:449
msgid "|osmid_3| |place_3|"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:683
+#: ../../build/docs/basic/sql_function.rst:450
msgid "|osmid_4| |place_4|"
msgstr ""
-#: ../../build/docs/basic/sql_function.rst:684
+#: ../../build/docs/basic/sql_function.rst:451
msgid "|osmid_5| |place_5|"
msgstr ""
diff --git a/locale/en/LC_MESSAGES/basic/vehicle.po b/locale/en/LC_MESSAGES/basic/vehicle.po
index d8b9e4cb9..6051e022e 100644
--- a/locale/en/LC_MESSAGES/basic/vehicle.po
+++ b/locale/en/LC_MESSAGES/basic/vehicle.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:49-0600\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/basic/vehicle.rst:12
msgid "Vehicle Routing"
@@ -73,7 +73,7 @@ msgid "Dollars"
msgstr ""
#: ../../build/docs/basic/vehicle.rst:36
-msgid "CO\\ :sub:`2`\\ emissions"
+msgid "CO\\ :sub:`2`\\ emissions"
msgstr ""
#: ../../build/docs/basic/vehicle.rst:37
@@ -135,330 +135,368 @@ msgstr ""
msgid "Number of (``source, target``) segments with ``cost < 0`` (line **3**)."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:74
+#: ../../build/docs/basic/vehicle.rst:72
msgid ""
"Number of (``target, source``) segments with ``reverse_cost < 0`` (line "
"**3**)."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:88
+#: ../../build/docs/basic/vehicle.rst:84
msgid "Exercise 1: Vehicle routing - going"
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:91 ../../build/docs/basic/vehicle.rst:119
-#: ../../build/docs/basic/vehicle.rst:149
-#: ../../build/docs/basic/vehicle.rst:256
-#: ../../build/docs/basic/vehicle.rst:306
+#: ../../build/docs/basic/vehicle.rst:87 ../../build/docs/basic/vehicle.rst:115
+#: ../../build/docs/basic/vehicle.rst:145
+#: ../../build/docs/basic/vehicle.rst:246
+#: ../../build/docs/basic/vehicle.rst:310
+#: ../../build/docs/basic/vehicle.rst:352
msgid "Problem:"
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:92
+#: ../../build/docs/basic/vehicle.rst:88
msgid "From the \"|place_1|\" to the \"|place_3|\" by car."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:-1
+#: ../../build/docs/basic/vehicle.rst:90
msgid "From |place_1| to the |place_3| by car."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:99 ../../build/docs/basic/vehicle.rst:127
-#: ../../build/docs/basic/vehicle.rst:157
-#: ../../build/docs/basic/vehicle.rst:264
-#: ../../build/docs/basic/vehicle.rst:314
+#: ../../build/docs/basic/vehicle.rst:95 ../../build/docs/basic/vehicle.rst:123
+#: ../../build/docs/basic/vehicle.rst:153
+#: ../../build/docs/basic/vehicle.rst:254
+#: ../../build/docs/basic/vehicle.rst:318
+#: ../../build/docs/basic/vehicle.rst:356
msgid "Solution:"
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:100
-#: ../../build/docs/basic/vehicle.rst:158
-msgid ""
-"The vehicle is going from vertex |id_1| (line **10**) to |id_3| (line "
-"**11**)."
-msgstr ""
-
-#: ../../build/docs/basic/vehicle.rst:101
-#: ../../build/docs/basic/vehicle.rst:129
+#: ../../build/docs/basic/vehicle.rst:96
msgid ""
"Use ``cost`` (line **6**) and ``reverse_cost`` (line **7**) columns, "
"which are in unit ``degrees``."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:112
-msgid ":ref:`basic/appendix:**Exercise**: 1 (**Chapter:** Vehicle)`"
+#: ../../build/docs/basic/vehicle.rst:97
+msgid ""
+"The vehicle is going from vertex |id_1| (line **10**) to |id_3| (line "
+"**11**)."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:116
+#: ../../build/docs/basic/vehicle.rst:112
msgid "Exercise 2: Vehicle routing - returning"
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:120
+#: ../../build/docs/basic/vehicle.rst:116
msgid "From \"|place_3|\" to the \"|place_1|\" by car."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:-1
+#: ../../build/docs/basic/vehicle.rst:118
msgid "From |place_3| to the |place_1| by car."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:128
+#: ../../build/docs/basic/vehicle.rst:124
msgid ""
-"The vehicle is going from vertex |id_3| (line **10**) to |id_1| (line "
-"**11**)."
+"Use ``cost_s`` (line **6**) and ``reverse_cost_s`` (line **7**) columns, "
+"in units seconds."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:140
-msgid ":ref:`basic/appendix:**Exercise**: 2 (**Chapter:** Vehicle)`"
+#: ../../build/docs/basic/vehicle.rst:126
+#: ../../build/docs/basic/vehicle.rst:161
+msgid ""
+"The vehicle is going from vertex |id_3| (line **10**) to |id_1| (line "
+"**11**)."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:142
+#: ../../build/docs/basic/vehicle.rst:138
msgid ""
"On a directed graph, going and coming back routes, most of the time are "
"different."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:146
+#: ../../build/docs/basic/vehicle.rst:142
msgid "Exercise 3: Vehicle routing when time is money"
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:150
-msgid "From \"|place_1|\" to the \"|place_3|\" by taxi."
+#: ../../build/docs/basic/vehicle.rst:146
+msgid "From \"|place_3|\" to the \"|place_1|\" by taxi."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:-1
-msgid "From |place_1| to |place_3| by taxi."
+#: ../../build/docs/basic/vehicle.rst:148
+msgid "From |place_3| to |place_1| by taxi."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:159
+#: ../../build/docs/basic/vehicle.rst:154
msgid "The cost is ``$100 per hour``."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:160
-#: ../../build/docs/basic/vehicle.rst:316
+#: ../../build/docs/basic/vehicle.rst:156
+#: ../../build/docs/basic/vehicle.rst:319
msgid ""
-"Use ``cost_s`` (line **6**) and ``reverse_cost_s`` (line **7**) columns, "
-"which are in unit ``seconds``."
+"Using ``cost_s`` (line **6**) and ``reverse_cost_s`` (line **7**) "
+"columns, which are in unit ``seconds``."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:161
+#: ../../build/docs/basic/vehicle.rst:158
msgid "The duration in hours is ``cost_s / 3600``."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:162
-msgid "The cost in ``$`` is ``cost_s / 3600 * 100``."
-msgstr ""
-
-#: ../../build/docs/basic/vehicle.rst:173
-msgid ":ref:`basic/appendix:**Exercise**: 3 (**Chapter:** Vehicle)`"
+#: ../../build/docs/basic/vehicle.rst:159
+msgid "The cost in ``dollars`` is ``cost_s / 3600 * 100``."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:176
+#: ../../build/docs/basic/vehicle.rst:174
msgid "Comparing with `Exercise 2: Vehicle routing - returning`_:"
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:178
+#: ../../build/docs/basic/vehicle.rst:176
msgid "The total number of records are identical."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:179
+#: ../../build/docs/basic/vehicle.rst:177
msgid "The node sequence is identical."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:180
+#: ../../build/docs/basic/vehicle.rst:178
msgid "The edge sequence is identical."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:181
+#: ../../build/docs/basic/vehicle.rst:179
msgid "The cost and agg_cost results are directly proportional."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:187
+#: ../../build/docs/basic/vehicle.rst:183
msgid "Cost manipulations"
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:189
+#: ../../build/docs/basic/vehicle.rst:185
msgid ""
"When dealing with data, being aware of what kind of data is being used "
"can improve results."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:191
+#: ../../build/docs/basic/vehicle.rst:187
msgid "Vehicles can not circulate on pedestrian ways"
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:199
+#: ../../build/docs/basic/vehicle.rst:195
msgid ""
"Penalizing or removal of pedestrian ways will make the results closer to "
"reality."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:201
+#: ../../build/docs/basic/vehicle.rst:197
msgid ""
"When converting data from OSM format using the `osm2pgrouting` tool, "
"there is an additional table: ``configuration``."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:205
+#: ../../build/docs/basic/vehicle.rst:201
msgid ""
"The ``configuration`` table structure can be obtained with the following "
"command."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:-1
+#: ../../build/docs/basic/vehicle.rst:210
msgid "tag_id values"
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:222
+#: ../../build/docs/basic/vehicle.rst:216
msgid "In the image above there is a detail of the ``tag_id`` of the roads."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:225
+#: ../../build/docs/basic/vehicle.rst:219
msgid "The ``OSM way`` types:"
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:235
+#: ../../build/docs/basic/vehicle.rst:227
msgid ""
"Also, on the ``ways`` table there is a column that can be used to "
"``JOIN`` with the ``configuration`` table."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:238
+#: ../../build/docs/basic/vehicle.rst:230
msgid "The ``ways`` types:"
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:249
+#: ../../build/docs/basic/vehicle.rst:239
msgid ""
"In this workshop, costs are going to be manipulated using the "
"``configuration`` table."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:253
+#: ../../build/docs/basic/vehicle.rst:243
msgid "Exercise 4: Vehicle routing without penalization"
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:257
+#: ../../build/docs/basic/vehicle.rst:247
msgid "From the \"|place_3|\" to \"|place_1|\""
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:-1
+#: ../../build/docs/basic/vehicle.rst:249
+#: ../../build/docs/basic/vehicle.rst:313
msgid "From |place_3| to |place_1|"
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:265
-msgid ""
-"The vehicle is going from vertex |id_3| (line **17**) to vertex |id_1| "
-"(line **18**)."
+#: ../../build/docs/basic/vehicle.rst:256
+msgid "Add a penalty column"
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:266
-msgid "The vehicle's cost in this case will be in seconds."
+#: ../../build/docs/basic/vehicle.rst:257
+msgid "All roads have a ``penalty`` of ``1`` (line **3**)."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:267
-msgid "All roads have a ``penalty`` of ``1`` (line **3**)."
+#: ../../build/docs/basic/vehicle.rst:260
+msgid "Query"
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:268
+#: ../../build/docs/basic/vehicle.rst:261
+msgid "The vehicle's cost in this case will be in penalized seconds."
+msgstr ""
+
+#: ../../build/docs/basic/vehicle.rst:263
msgid ""
"Costs (in seconds) are to be multiplied by :code:`penalty` (lines **12** "
"and **13**)."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:269
+#: ../../build/docs/basic/vehicle.rst:264
msgid "Costs wont change (times 1 leaves the value unchanged)."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:270
+#: ../../build/docs/basic/vehicle.rst:266
msgid ""
"The :code:`configuration` table is linked with the :code:`ways` table by "
"the :code:`tag_id` field using a ``JOIN`` (lines **14** and **15**)."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:282
-msgid ":ref:`basic/appendix:**Exercise**: 4 (**Chapter:** Vehicle)`"
+#: ../../build/docs/basic/vehicle.rst:268
+msgid ""
+"The vehicle is going from vertex |id_3| (line **17**) to vertex |id_1| "
+"(line **18**)."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:286
+#: ../../build/docs/basic/vehicle.rst:282
msgid "Exercise 5: Vehicle routing with penalization"
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:289
+#: ../../build/docs/basic/vehicle.rst:285
msgid "Concept:"
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:290
+#: ../../build/docs/basic/vehicle.rst:286
msgid ""
"Change the cost values for the :code:`configuration` table, in such a "
"way, that the"
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:292
+#: ../../build/docs/basic/vehicle.rst:288
msgid "Pedestrian roads are not used."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:293
+#: ../../build/docs/basic/vehicle.rst:290
+msgid "``penalty < 0`` makes the road not to be included in the graph."
+msgstr ""
+
+#: ../../build/docs/basic/vehicle.rst:292
msgid "Using residential roads is not encouraged."
msgstr ""
#: ../../build/docs/basic/vehicle.rst:294
-msgid "Using \"faster\" roads is highly encouraged."
+msgid "``penalty > 1`` makes the road slower for the calculations."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:295
-msgid "The ``penalty`` values can be changed with ``UPDATE`` queries."
+#: ../../build/docs/basic/vehicle.rst:296
+msgid "Using \"faster\" roads is highly encouraged."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:297
-msgid "These values are an exaggeration."
+#: ../../build/docs/basic/vehicle.rst:298
+msgid "``penalty < 1`` makes the road faster for the calculations."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:307
-msgid "From the \"|place_3|\" to \"|place_1|\" with penalization."
+#: ../../build/docs/basic/vehicle.rst:300
+msgid "The ``penalty`` values can be changed with ``UPDATE`` queries."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:-1
-msgid "From |place_5| to |place_3|"
+#: ../../build/docs/basic/vehicle.rst:302
+msgid "These values are an exaggeration."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:315
-msgid ""
-"The vehicle is going from vertex |id_3| (line **11**) to vertex |id_1| "
-"(line **12**)."
+#: ../../build/docs/basic/vehicle.rst:311
+msgid "From the \"|place_3|\" to \"|place_1|\" with penalization."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:317
+#: ../../build/docs/basic/vehicle.rst:321
msgid "Costs are to be multiplied by :code:`penalty` (lines **6** and **7**)."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:318
+#: ../../build/docs/basic/vehicle.rst:323
msgid ""
"The :code:`configuration` table is linked with the :code:`ways` table by "
"the :code:`tag_id` field using a ``JOIN`` (lines **8** and **9**)."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:329
-msgid ":ref:`basic/appendix:**Exercise**: 5 (**Chapter:** Vehicle)`"
+#: ../../build/docs/basic/vehicle.rst:325
+msgid ""
+"The vehicle is going from vertex |id_3| (line **11**) to vertex |id_1| "
+"(line **12**)."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:332
+#: ../../build/docs/basic/vehicle.rst:337
msgid "Comparing with `Exercise 3: Vehicle routing when time is money`_:"
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:334
+#: ../../build/docs/basic/vehicle.rst:339
msgid "The total number of records changed."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:335
+#: ../../build/docs/basic/vehicle.rst:341
msgid "The node sequence changed."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:336
+#: ../../build/docs/basic/vehicle.rst:342
msgid "The edge sequence changed."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:337
+#: ../../build/docs/basic/vehicle.rst:344
msgid "The route is avoiding the residential roads that have ``tag_id = 110``."
msgstr ""
-#: ../../build/docs/basic/vehicle.rst:338
-msgid ""
-"The cost did not change proportionally because of the penalty to some of "
-"the roads which was uniform (penalty=1) while routing with cost as money."
+#: ../../build/docs/basic/vehicle.rst:345
+msgid "The costs do not change proportionally."
+msgstr ""
+
+#: ../../build/docs/basic/vehicle.rst:348
+msgid "Exercise 6: Time in seconds of penalized route"
+msgstr ""
+
+#: ../../build/docs/basic/vehicle.rst:353
+msgid "Get the times in seconds of a penalized route"
+msgstr ""
+
+#: ../../build/docs/basic/vehicle.rst:357
+msgid "Use as inner query the penalized query joined with the ways table"
+msgstr ""
+
+#: ../../build/docs/basic/vehicle.rst:359
+msgid "Keep the ``edge`` as ``gid`` (line **6**)"
+msgstr ""
+
+#: ../../build/docs/basic/vehicle.rst:360
+msgid "Join using ``gid`` (line **18**)"
+msgstr ""
+
+#: ../../build/docs/basic/vehicle.rst:373
+msgid "Comparing with `Exercise 5: Vehicle routing with penalization`_:"
+msgstr ""
+
+#: ../../build/docs/basic/vehicle.rst:375
+msgid "The total number of records is the same."
+msgstr ""
+
+#: ../../build/docs/basic/vehicle.rst:376
+msgid "The route is the same"
+msgstr ""
+
+#: ../../build/docs/basic/vehicle.rst:377
+msgid "The ``cost`` column have the original vales from the ways table."
msgstr ""
diff --git a/locale/en/LC_MESSAGES/examples/boost_dijkstra.po b/locale/en/LC_MESSAGES/examples/boost_dijkstra.po
index 7b34843d5..78c5be1c5 100644
--- a/locale/en/LC_MESSAGES/examples/boost_dijkstra.po
+++ b/locale/en/LC_MESSAGES/examples/boost_dijkstra.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:49-0600\n"
+"POT-Creation-Date: 2024-11-04 21:10-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
diff --git a/locale/en/LC_MESSAGES/examples/hanoslav.po b/locale/en/LC_MESSAGES/examples/hanoslav.po
index 568bde74a..e966a2f50 100644
--- a/locale/en/LC_MESSAGES/examples/hanoslav.po
+++ b/locale/en/LC_MESSAGES/examples/hanoslav.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:49-0600\n"
+"POT-Creation-Date: 2024-11-04 21:10-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
diff --git a/locale/en/LC_MESSAGES/examples/wiki_example.po b/locale/en/LC_MESSAGES/examples/wiki_example.po
index 311ed1681..a80243cb2 100644
--- a/locale/en/LC_MESSAGES/examples/wiki_example.po
+++ b/locale/en/LC_MESSAGES/examples/wiki_example.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:49-0600\n"
+"POT-Creation-Date: 2024-11-04 21:10-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
diff --git a/locale/en/LC_MESSAGES/general-intro/introduction.po b/locale/en/LC_MESSAGES/general-intro/introduction.po
index e67b53107..1385eac7a 100644
--- a/locale/en/LC_MESSAGES/general-intro/introduction.po
+++ b/locale/en/LC_MESSAGES/general-intro/introduction.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:49-0600\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/general-intro/introduction.rst:11
msgid "Introduction"
@@ -30,9 +30,9 @@ msgstr ""
#: ../../build/docs/general-intro/introduction.rst:15
msgid ""
-"Please see the :doc:`contents <../index>` for full content of **FOSS4G "
-"Prizren** workshop. This workshop covers two levels for using pgRouting:"
-" `Basic`_ and `Advanced`_."
+"Please see the :doc:`contents <../index>` for full content of FOSS4G "
+"Belém workshop. This workshop covers two levels for using pgRouting: "
+"`Basic`_ and `Advanced`_."
msgstr ""
#: ../../build/docs/general-intro/introduction.rst:20
@@ -42,7 +42,7 @@ msgstr ""
#: ../../build/docs/general-intro/introduction.rst:22
msgid ""
"will demonstrate the routing functionality by providing examples using "
-"|osm-web| road network data from Prizren. Covering topics from how to "
+"|osm-web| road network data from Belém. Covering topics from how to "
"prepare the data, making routing queries, understanding the results, up "
"to writing a custom 'plpgsql' function that can be integrated with other "
"FOSS tools."
@@ -87,7 +87,7 @@ msgstr ""
#: ../../build/docs/general-intro/introduction.rst:39
#: ../../build/docs/general-intro/introduction.rst:52
-msgid "Equipments: `OSGeoLive `__ (16.0)"
+msgid "Equipments: `OSGeoLive `__ (17)"
msgstr ""
#: ../../build/docs/general-intro/introduction.rst:42
@@ -118,67 +118,68 @@ msgstr ""
msgid "Sponsored by"
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:-1
+#: ../../build/docs/general-intro/introduction.rst:59
+#: ../../build/docs/general-intro/introduction.rst:64
msgid "Paragon Corporation"
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:64
-msgid "Developers & presenters of FOSS4G Prizren workshop:"
+#: ../../build/docs/general-intro/introduction.rst:70
+msgid "Developers & presenters of FOSS4G Belém workshop:"
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:65
+#: ../../build/docs/general-intro/introduction.rst:71
msgid ""
"*Vicky Vergara* Is a freelance developer from Mexico. She's the core "
"developer of pgRouting project and GSoC Mentor. OSGeo Charter member."
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:68
+#: ../../build/docs/general-intro/introduction.rst:74
msgid ""
-"*Ramón Ríos* Is a freelance developer from Mexico. Lead engenieer for "
+"*Ramón Ríos* Is a freelance developer from Mexico. Lead engenieer for "
"ParkUpFront"
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:73
+#: ../../build/docs/general-intro/introduction.rst:79
msgid "Past and present tutors and developers"
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:74
+#: ../../build/docs/general-intro/introduction.rst:80
msgid ""
"Daniel Kastl, José Ríos, Ko Nagase, Stephen Woodbridge, Swapnil Joshi, "
"Rajat Shinde, Ramón Ríos, Rohith Reddy, Vicky Vergara"
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:85
+#: ../../build/docs/general-intro/introduction.rst:91
msgid "Past and present supporters"
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:86
+#: ../../build/docs/general-intro/introduction.rst:92
msgid "Georepublic, Paragon Corporation"
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:90
+#: ../../build/docs/general-intro/introduction.rst:96
msgid "License"
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:91
+#: ../../build/docs/general-intro/introduction.rst:97
msgid ""
"This work is licensed under a `Creative Commons Attribution-Share Alike "
"3.0 License `_."
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:97
+#: ../../build/docs/general-intro/introduction.rst:103
msgid "Become a sponsor"
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:-1
+#: ../../build/docs/general-intro/introduction.rst:105
msgid "The Linux Foundation"
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:-1
+#: ../../build/docs/general-intro/introduction.rst:110
msgid "Open Collective"
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:-1
+#: ../../build/docs/general-intro/introduction.rst:115
msgid "OSGeo Foundation"
msgstr ""
diff --git a/locale/en/LC_MESSAGES/general-intro/osgeolive.po b/locale/en/LC_MESSAGES/general-intro/osgeolive.po
index d917484de..959c8f0bb 100644
--- a/locale/en/LC_MESSAGES/general-intro/osgeolive.po
+++ b/locale/en/LC_MESSAGES/general-intro/osgeolive.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:49-0600\n"
+"POT-Creation-Date: 2024-11-04 21:10-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -94,7 +94,7 @@ msgid "OSGeoLive on a VirtualBox"
msgstr ""
#: ../../build/docs/general-intro/osgeolive.rst:65
-msgid "Download OSGeoLive 16.0"
+msgid "Download OSGeoLive 17"
msgstr ""
#: ../../build/docs/general-intro/osgeolive.rst:67
@@ -111,72 +111,74 @@ msgid ""
msgstr ""
#: ../../build/docs/general-intro/osgeolive.rst:75
-msgid ""
-"From https://download.osgeo.org/livedvd/releases/16.0/ Download "
-"*osgeolive-16.0alpha3-amd64.iso*"
+msgid "From https://download.osgeo.org/livedvd/releases/17/"
+msgstr ""
+
+#: ../../build/docs/general-intro/osgeolive.rst:77
+msgid "Download *osgeolive-17-amd64.iso*"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:80
+#: ../../build/docs/general-intro/osgeolive.rst:81
msgid "Download is saved on Downloads directory."
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:85
+#: ../../build/docs/general-intro/osgeolive.rst:86
msgid "Create the virtual machine"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:87
+#: ../../build/docs/general-intro/osgeolive.rst:88
msgid "Open the Virtual Box"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:91
+#: ../../build/docs/general-intro/osgeolive.rst:92
msgid "Click on ``New`` and fill with the following information"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:93
-msgid "**Name** OSGeoLive 16.0"
+#: ../../build/docs/general-intro/osgeolive.rst:94
+msgid "**Name** OSGeoLive 17"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:94
+#: ../../build/docs/general-intro/osgeolive.rst:95
msgid "**Type** Linux"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:95
+#: ../../build/docs/general-intro/osgeolive.rst:96
msgid "**Version** Ubuntu (64-bit)"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:96
+#: ../../build/docs/general-intro/osgeolive.rst:97
msgid "**Memory size** 4096"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:97
+#: ../../build/docs/general-intro/osgeolive.rst:98
msgid "**Hard disk** Create a virtual hard disk now"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:101
+#: ../../build/docs/general-intro/osgeolive.rst:102
msgid "Click on ``Create`` and fill with the following information"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:103
+#: ../../build/docs/general-intro/osgeolive.rst:104
msgid "**File location** Choose a suitable location for the Virtual Hard Disk"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:104
+#: ../../build/docs/general-intro/osgeolive.rst:105
msgid "**File size** 10.0GB"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:105
+#: ../../build/docs/general-intro/osgeolive.rst:106
msgid "**Hard disk file type** VDI (VirtualBox Disk image)"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:106
+#: ../../build/docs/general-intro/osgeolive.rst:107
msgid "**Storage on physical hard disk** Dynamically allocated"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:111
+#: ../../build/docs/general-intro/osgeolive.rst:112
msgid "Install OSGeoLive's ISO"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:113
+#: ../../build/docs/general-intro/osgeolive.rst:114
msgid "On Storage it reads:"
msgstr ""
@@ -184,8 +186,8 @@ msgstr ""
msgid "Controller"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:115
-#: ../../build/docs/general-intro/osgeolive.rst:138
+#: ../../build/docs/general-intro/osgeolive.rst:116
+#: ../../build/docs/general-intro/osgeolive.rst:139
msgid "IDE"
msgstr ""
@@ -193,69 +195,69 @@ msgstr ""
msgid "IDE Secondary Device 0"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:116
+#: ../../build/docs/general-intro/osgeolive.rst:117
msgid "[Optical Drive] empty"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:120
+#: ../../build/docs/general-intro/osgeolive.rst:121
msgid "Choose ``Storage`` from the virtual box traits and clink on ``Empty``"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:124
+#: ../../build/docs/general-intro/osgeolive.rst:125
msgid "Click on the small disk icon and select **Choose/Create a Virtual Disk**"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:128
+#: ../../build/docs/general-intro/osgeolive.rst:129
msgid "Navigate to the location where the ISO was installed"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:132
+#: ../../build/docs/general-intro/osgeolive.rst:133
msgid "Instead of empty, now it has the ISO installed"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:136
+#: ../../build/docs/general-intro/osgeolive.rst:137
msgid "The installation now reads:"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:139
+#: ../../build/docs/general-intro/osgeolive.rst:140
msgid "[Optical Drive] osgeolive-10.0alpha3-amd64.iso (4.13 GB)"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:145
+#: ../../build/docs/general-intro/osgeolive.rst:146
msgid "Start OSGeoLive"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:147
+#: ../../build/docs/general-intro/osgeolive.rst:148
msgid ""
"Click on ``Start`` button, and click on ``capture``, to capture the mouse"
" movements"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:152
+#: ../../build/docs/general-intro/osgeolive.rst:153
msgid "Click on ``Try or Install Lubuntu``"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:156
+#: ../../build/docs/general-intro/osgeolive.rst:157
msgid "OSGeoLive's account is ``user`` and password is ``user``"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:158
+#: ../../build/docs/general-intro/osgeolive.rst:159
msgid "After a few seconds OSGeoLive will start"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:163
+#: ../../build/docs/general-intro/osgeolive.rst:164
msgid "OSGeoLive’s account is ``user`` and password is ``user``"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:169
+#: ../../build/docs/general-intro/osgeolive.rst:170
msgid "Ubuntu installation"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:171
+#: ../../build/docs/general-intro/osgeolive.rst:172
msgid "Update sources to include postgresql ::"
msgstr ""
-#: ../../build/docs/general-intro/osgeolive.rst:177
+#: ../../build/docs/general-intro/osgeolive.rst:178
msgid "Install PostgrSQL, PostGIS and pgRouting ::"
msgstr ""
diff --git a/locale/en/LC_MESSAGES/general-intro/overview.po b/locale/en/LC_MESSAGES/general-intro/overview.po
index 24b0c5f02..a86f7c1bf 100644
--- a/locale/en/LC_MESSAGES/general-intro/overview.po
+++ b/locale/en/LC_MESSAGES/general-intro/overview.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:49-0600\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/general-intro/overview.rst:11
msgid "Software and Data Overview"
@@ -27,111 +27,111 @@ msgstr ""
#: ../../build/docs/general-intro/overview.rst:18
msgid ""
"This workshop use several free and open source software for geospatial "
-"tools. Most of the free and open source software for geospatial tools are"
-" related to other open source software projects and it would not be "
-"feasible to list all of them."
+"tools. Most of the free and open source software for geospatial tools "
+"that are related to other open source software projects. Here we mention "
+"the most important ones."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:24
+#: ../../build/docs/general-intro/overview.rst:23
msgid "Chapter Contents"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:27
+#: ../../build/docs/general-intro/overview.rst:26
msgid "pgRouting Overview"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:33
+#: ../../build/docs/general-intro/overview.rst:32
msgid ""
"pgRouting extends the PostGIS / PostgreSQL geospatial database to provide"
" geospatial routing functionality."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:36
+#: ../../build/docs/general-intro/overview.rst:35
msgid "Advantages of the database routing approach are:"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:38
+#: ../../build/docs/general-intro/overview.rst:37
msgid ""
"Data and attributes can be modified by many clients, like QGIS or by "
"directly using PL/pgSQL. The clients can either be personal computers or "
"mobile devices."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:41
+#: ../../build/docs/general-intro/overview.rst:40
msgid ""
"Data changes can be reflected instantaneously through the routing engine."
" There is no need for precalculation."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:43
+#: ../../build/docs/general-intro/overview.rst:42
msgid ""
"The “cost” parameter can be dynamically calculated through SQL and its "
"value can come from multiple fields or tables."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:46
+#: ../../build/docs/general-intro/overview.rst:45
msgid "Some of the pgRouting library core features are:"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:48
+#: ../../build/docs/general-intro/overview.rst:47
msgid ""
"`Dijkstra Algorithm "
"`__"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:49
+#: ../../build/docs/general-intro/overview.rst:48
msgid ""
"`Johnson's Algorithm "
"`__"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:50
+#: ../../build/docs/general-intro/overview.rst:49
msgid ""
"`Floyd-Warshall Algorithm "
"`__"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:51
+#: ../../build/docs/general-intro/overview.rst:50
msgid ""
"`A* Search Algorithm "
"`__"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:52
+#: ../../build/docs/general-intro/overview.rst:51
msgid ""
"`Bi-directional Dijkstra "
"`__"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:53
+#: ../../build/docs/general-intro/overview.rst:52
msgid ""
"`Bi-directional A* "
"`__"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:54
+#: ../../build/docs/general-intro/overview.rst:53
msgid ""
"`Traveling Salesperson Problem "
"`__"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:55
+#: ../../build/docs/general-intro/overview.rst:54
msgid ""
"`Driving Distance "
"`__"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:56
+#: ../../build/docs/general-intro/overview.rst:55
msgid "many more!!!"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:58
+#: ../../build/docs/general-intro/overview.rst:57
msgid ""
"pgRouting is an Open Source Software, available under the GPLv2 license "
"and is supported and maintained by a the pgRouting community."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:61
+#: ../../build/docs/general-intro/overview.rst:60
msgid ""
"pgRouting is a part of `OSGeo Community Projects "
"`__ of the `OSGeo "
@@ -143,7 +143,7 @@ msgstr ""
msgid "Website"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:66
+#: ../../build/docs/general-intro/overview.rst:65
msgid "https://pgrouting.org"
msgstr ""
@@ -151,15 +151,15 @@ msgstr ""
msgid "OSGeoLive"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:67
+#: ../../build/docs/general-intro/overview.rst:66
msgid "https://live.osgeo.org/en/overview/pgrouting_overview.html"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:71
+#: ../../build/docs/general-intro/overview.rst:70
msgid "osm2pgrouting Overview"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:78
+#: ../../build/docs/general-intro/overview.rst:77
msgid ""
"osm2pgrouting is a command line tool that imports OpenStreetMap data into"
" a pgRouting database. It builds the routing network topology "
@@ -168,7 +168,7 @@ msgid ""
"the pgRouting project site."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:83
+#: ../../build/docs/general-intro/overview.rst:82
msgid "osm2pgrouting is available under the GPLv2 license."
msgstr ""
@@ -176,15 +176,15 @@ msgstr ""
msgid "Wiki"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:85
+#: ../../build/docs/general-intro/overview.rst:84
msgid "https://github.com/pgRouting/osm2pgrouting/wiki"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:89
+#: ../../build/docs/general-intro/overview.rst:88
msgid "OpenStreetMap Overview"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:96
+#: ../../build/docs/general-intro/overview.rst:95
msgid ""
"\"OpenStreetMap (OSM) is dedicated to creating and providing geographic "
"data, such as street maps, worldwide, for free. Most maps considered "
@@ -194,43 +194,43 @@ msgid ""
"effort.\""
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:102
+#: ../../build/docs/general-intro/overview.rst:101
msgid "(Source: https://wiki.openstreetmap.org/wiki/Press)"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:104
+#: ../../build/docs/general-intro/overview.rst:103
msgid ""
-"OpenStreetMap is an adequate data source for pgRouting, because it has "
-"no technical restrictions in terms of processing the data. Data "
+"OpenStreetMap is an adequate 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."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:109
+#: ../../build/docs/general-intro/overview.rst:108
msgid "OpenStreetMap uses a topological data structure:"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:111
+#: ../../build/docs/general-intro/overview.rst:110
msgid "Nodes are points with a geographic position."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:112
+#: ../../build/docs/general-intro/overview.rst:111
msgid "Ways are lists of nodes, representing a polyline or polygon."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:113
+#: ../../build/docs/general-intro/overview.rst:112
msgid ""
"Relations are groups of nodes, ways and other relations which can be "
"assigned certain properties."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:115
+#: ../../build/docs/general-intro/overview.rst:114
msgid ""
"Properties can be assigned to nodes, ways or relations and consist of "
":code:`name = value` pairs."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:118
+#: ../../build/docs/general-intro/overview.rst:117
msgid "https://www.openstreetmap.org"
msgstr ""
diff --git a/locale/en/LC_MESSAGES/index.po b/locale/en/LC_MESSAGES/index.po
index 70f30c81d..39fd96c69 100644
--- a/locale/en/LC_MESSAGES/index.po
+++ b/locale/en/LC_MESSAGES/index.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:49-0600\n"
+"POT-Creation-Date: 2024-11-07 03:04+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/index.rst:11
msgid "pgRouting Workshop"
@@ -37,22 +37,18 @@ msgid "Basic"
msgstr ""
#: ../../build/docs/index.rst:41
-msgid "Advanced"
-msgstr ""
-
-#: ../../build/docs/index.rst:49
msgid "United Nations Sustainable Development Goals"
msgstr ""
-#: ../../build/docs/index.rst:63
+#: ../../build/docs/index.rst:55
msgid "Interaction with other software"
msgstr ""
-#: ../../build/docs/index.rst:74
+#: ../../build/docs/index.rst:67
msgid "Examples from the Internet"
msgstr ""
-#: ../../build/docs/index.rst:85
+#: ../../build/docs/index.rst:78
msgid "Appendices"
msgstr ""
diff --git a/locale/en/LC_MESSAGES/interactions/chapter-10.po b/locale/en/LC_MESSAGES/interactions/chapter-10.po
index 602395ce5..6da8d961a 100644
--- a/locale/en/LC_MESSAGES/interactions/chapter-10.po
+++ b/locale/en/LC_MESSAGES/interactions/chapter-10.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-22 11:12-0600\n"
+"POT-Creation-Date: 2024-11-04 21:10-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
+"Generated-By: Babel 2.12.1\n"
#: ../../build/docs/interactions/chapter-10.rst:13
msgid "WMS server with GeoServer"
diff --git a/locale/en/LC_MESSAGES/interactions/chapter-11.po b/locale/en/LC_MESSAGES/interactions/chapter-11.po
index 79601d8ae..df5e7b026 100644
--- a/locale/en/LC_MESSAGES/interactions/chapter-11.po
+++ b/locale/en/LC_MESSAGES/interactions/chapter-11.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-22 11:12-0600\n"
+"POT-Creation-Date: 2024-11-04 21:10-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
+"Generated-By: Babel 2.12.1\n"
#: ../../build/docs/interactions/chapter-11.rst:13
msgid "OpenLayers Based Routing Interface"
diff --git a/locale/en/LC_MESSAGES/interactions/chapter-9.po b/locale/en/LC_MESSAGES/interactions/chapter-9.po
index d7efeae88..cb78ea871 100644
--- a/locale/en/LC_MESSAGES/interactions/chapter-9.po
+++ b/locale/en/LC_MESSAGES/interactions/chapter-9.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-22 11:12-0600\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/interactions/chapter-9.rst:12
msgid "Using Qgis"
@@ -154,7 +154,7 @@ msgid "Format a Routing Layer"
msgstr ""
#: ../../build/docs/interactions/chapter-9.rst:98
-msgid "Choose a routing view, :menuselection:`Right click --> Zoom to Layer`"
+msgid "Choose a routing view, :menuselection:`Right click --> Zoom to Layer`"
msgstr ""
#: ../../build/docs/interactions/chapter-9.rst:103
diff --git a/locale/en/LC_MESSAGES/un_sdg/appendix.po b/locale/en/LC_MESSAGES/un_sdg/appendix.po
deleted file mode 100644
index 294b3da00..000000000
--- a/locale/en/LC_MESSAGES/un_sdg/appendix.po
+++ /dev/null
@@ -1,320 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
-# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:49-0600\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language: en\n"
-"Language-Team: en \n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
-
-#: ../../build/docs/un_sdg/appendix.rst:11
-msgid "Appendix: OSGeo UN Challenge Workshop Solutions"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:14
-msgid "Solutions to Chapter 3: :doc:`sdg3-health`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:17
-msgid "**Exercise:** 5 (**Chapter:** SDG 3)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:19
-msgid ""
-":ref:`un_sdg/sdg3-health:Exercise 5: Counting the number of Roads and "
-"Buildings`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:25
-msgid "**Exercise:** 6 (**Chapter:** SDG 3)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:27
-msgid ":ref:`un_sdg/sdg3-health:Exercise 6: Add a spatial column to the table`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:32
-msgid "**Exercise:** 7 (**Chapter:** SDG 3)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:35
-msgid ""
-":ref:`un_sdg/sdg3-health:Exercise 7: Removing the polygons with less than"
-" 4 points`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:41
-msgid "**Exercise:** 8 (**Chapter:** SDG 3)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:44
-msgid ":ref:`un_sdg/sdg3-health:Exercise 8: Creating the polygons`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:49
-msgid "**Exercise:** 9 (**Chapter:** SDG 3)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:52
-msgid ":ref:`un_sdg/sdg3-health:Exercise 9: Calculating the area`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:58
-msgid "**Exercise:** 10 (**Chapter:** SDG 3)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:60
-msgid ""
-":ref:`un_sdg/sdg3-health:Exercise 10: Find the Component ID for Road "
-"vertices`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:66
-msgid "**Exercise:** 11 (**Chapter:** SDG 3)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:69
-msgid ""
-":ref:`un_sdg/sdg3-health:Exercise 11: Finding the components which are to"
-" be removed`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:75
-msgid "**Exercise:** 12 (**Chapter:** SDG 3)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:78
-msgid ""
-":ref:`un_sdg/sdg3-health:Exercise 12: Finding the road vertices of these "
-"components`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:84
-msgid "**Exercise:** 13 (**Chapter:** SDG 3)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:87
-msgid ""
-":ref:`un_sdg/sdg3-health:Exercise 13: Removing the unwanted edges and "
-"vertices`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:93
-msgid "**Exercise:** 15 (**Chapter:** SDG 3)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:96
-msgid ""
-":ref:`un_sdg/sdg3-health:Exercise 15: Finding the served roads using "
-"pgr_drivingDistance`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:101
-msgid "**Exercise:** 16 (**Chapter:** SDG 3)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:104
-msgid ":ref:`un_sdg/sdg3-health:Exercise 16: Generalising the served roads`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:110
-msgid "**Exercise:** 17 (**Chapter:** SDG 3)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:113
-msgid ""
-":ref:`un_sdg/sdg3-health:Exercise 17: Estimating the population of "
-"buildings`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:119
-msgid "**Exercise:** 18 (**Chapter:** SDG 3)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:122
-msgid ""
-":ref:`un_sdg/sdg3-health:Exercise 18: Finding the nearest roads to store "
-"the population`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:128
-msgid "**Exercise:** 19 (**Chapter:** SDG 3)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:131
-msgid ":ref:`un_sdg/sdg3-health:Exercise 19: Storing the population in the roads`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:137
-msgid "**Exercise:** 20 (**Chapter:** SDG 3)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:140
-msgid ":ref:`un_sdg/sdg3-health:Exercise 20: Finding total population`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:146
-msgid "Solutions to :doc:`sdg7-energy`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:149
-msgid "**Exercise:** 5 (**Chapter:** SDG 7)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:152
-msgid ":ref:`un_sdg/sdg7-energy:Exercise 5: Counting the number of Roads`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:158
-msgid "**Exercise:** 6 (**Chapter:** SDG 7)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:161
-msgid ""
-":ref:`un_sdg/sdg7-energy:Exercise 6: Find the Component ID for Road "
-"vertices`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:167
-msgid "**Exercise:** 7 (**Chapter:** SDG 7)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:170
-msgid ""
-":ref:`un_sdg/sdg7-energy:Exercise 7: Finding the components which are to "
-"be removed`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:176
-msgid "**Exercise:** 8 (**Chapter:** SDG 7)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:179
-msgid ""
-":ref:`un_sdg/sdg7-energy:Exercise 8: Finding the road vertices of these "
-"components`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:184
-msgid "**Exercise:** 9 (**Chapter:** SDG 7)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:187
-msgid ""
-":ref:`un_sdg/sdg7-energy:Exercise 9: Removing the unwanted edges and "
-"vertices`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:192
-msgid "**Exercise:** 10 (**Chapter:** SDG 7)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:195
-msgid ":ref:`un_sdg/sdg7-energy:Exercise 10: Find the minimum spanning tree`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:200
-msgid "**Exercise:** 11 (**Chapter:** SDG 7)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:203
-msgid ""
-":ref:`un_sdg/sdg7-energy:Exercise 11: Compute total length of material "
-"required in km`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:208
-msgid "**Exercise:** 12 (**Chapter:** SDG 7)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:210
-msgid ":ref:`un_sdg/sdg7-energy:Exercise 12: Compute total length of roads`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:215
-msgid "Solutions to :doc:`sdg11-cities`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:218
-msgid "**Exercise:** 1 (**Chapter:** SDG 11)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:220
-msgid ":ref:`un_sdg/sdg11-cities:Exercise 1: Create a point for the city`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:226
-msgid "**Exercise:** 6 (**Chapter:** SDG 11)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:229
-msgid ":ref:`un_sdg/sdg11-cities:Exercise 6: Counting the number of Waterways`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:235
-msgid "**Exercise:** 7 (**Chapter:** SDG 11)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:238
-msgid ""
-":ref:`un_sdg/sdg11-cities:Exercise 7: Removing the Rivers which are in "
-"swamps`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:244
-msgid "**Exercise:** 8 (**Chapter:** SDG 11)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:246
-msgid ""
-":ref:`un_sdg/sdg11-cities:Exercise 8: Get the Connected Components of "
-"Waterways`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:252
-msgid "**Exercise:** 9 (**Chapter:** SDG 11)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:255
-msgid ":ref:`un_sdg/sdg11-cities:Exercise 9: Creating buffer around the city`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:260
-msgid "**Exercise:** 11 (**Chapter:** SDG 11)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:262
-msgid ""
-":ref:`un_sdg/sdg11-cities:Exercise 11: Finding the components "
-"intersecting the buffer`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:268
-msgid "**Exercise:** 12 (**Chapter:** SDG 11)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:271
-msgid ":ref:`un_sdg/sdg11-cities:Exercise 12: Get the rain zones`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:276
-msgid "**Exercise:** 13 (**Chapter:** SDG 11)"
-msgstr ""
-
-#: ../../build/docs/un_sdg/appendix.rst:278
-msgid ":ref:`un_sdg/sdg11-cities:Exercise 13: Create a union of rain zones`"
-msgstr ""
-
diff --git a/locale/en/LC_MESSAGES/un_sdg/data.po b/locale/en/LC_MESSAGES/un_sdg/data.po
index 3d3b469b6..4ec7afcab 100644
--- a/locale/en/LC_MESSAGES/un_sdg/data.po
+++ b/locale/en/LC_MESSAGES/un_sdg/data.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-03-22 11:12-0600\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/un_sdg/data.rst:11
msgid "Data for Sustainable Development Goals"
@@ -138,7 +138,7 @@ msgstr ""
msgid "Upload Mumbai data to the database"
msgstr ""
-#: ../../build/docs/un_sdg/data.rst:109 ../../build/docs/un_sdg/data.rst:240
+#: ../../build/docs/un_sdg/data.rst:109 ../../build/docs/un_sdg/data.rst:238
msgid ""
"The next step is to run ``osm2pgrouting`` converter, which is a command "
"line tool that inserts the data in the database, \"ready\" to be used "
@@ -146,7 +146,7 @@ msgid ""
"information about ``osm2pgrouting``."
msgstr ""
-#: ../../build/docs/un_sdg/data.rst:113 ../../build/docs/un_sdg/data.rst:244
+#: ../../build/docs/un_sdg/data.rst:113 ../../build/docs/un_sdg/data.rst:242
msgid "For this step the following is used:"
msgstr ""
@@ -164,7 +164,7 @@ msgstr ""
msgid "``mumbai`` database."
msgstr ""
-#: ../../build/docs/un_sdg/data.rst:119 ../../build/docs/un_sdg/data.rst:250
+#: ../../build/docs/un_sdg/data.rst:119 ../../build/docs/un_sdg/data.rst:248
msgid ""
"Contents of the configuration files are given in the `Appendix`_. Create "
"a XML file using these contents and save it into the root directory "
@@ -191,12 +191,12 @@ msgid ""
msgstr ""
#: ../../build/docs/un_sdg/data.rst:139 ../../build/docs/un_sdg/data.rst:160
-#: ../../build/docs/un_sdg/data.rst:268
+#: ../../build/docs/un_sdg/data.rst:266
msgid "Depending on the osm2pgrouting version `-W password` is needed"
msgstr ""
#: ../../build/docs/un_sdg/data.rst:142 ../../build/docs/un_sdg/data.rst:163
-#: ../../build/docs/un_sdg/data.rst:271
+#: ../../build/docs/un_sdg/data.rst:269
msgid "Output:"
msgstr ""
@@ -211,7 +211,7 @@ msgid ""
"use for further exercises."
msgstr ""
-#: ../../build/docs/un_sdg/data.rst:168 ../../build/docs/un_sdg/data.rst:276
+#: ../../build/docs/un_sdg/data.rst:168 ../../build/docs/un_sdg/data.rst:274
msgid "To connect to the database, type the following in the terminal."
msgstr ""
@@ -221,7 +221,7 @@ msgstr ""
#: ../../build/docs/un_sdg/data.rst:178
msgid ""
-"Now download the data for an area in Bangladesh by following the same "
+"Now download the data for an area in Bangladesh by following the same "
"steps like that of Mumbai."
msgstr ""
@@ -263,52 +263,48 @@ msgid ""
"Munshigang, Bangladesh."
msgstr ""
-#: ../../build/docs/un_sdg/data.rst:235
-msgid "See :ref:`basic/data:Option 3) Download using Overpass XAPI`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/data.rst:238
+#: ../../build/docs/un_sdg/data.rst:236
msgid "Upload Bangladesh data to the database"
msgstr ""
-#: ../../build/docs/un_sdg/data.rst:246
+#: ../../build/docs/un_sdg/data.rst:244
msgid "``waterways.xml`` configuration file"
msgstr ""
-#: ../../build/docs/un_sdg/data.rst:247
+#: ../../build/docs/un_sdg/data.rst:245
msgid "``~/Desktop/workshop/bangladesh.osm`` - OSM data from the previous step"
msgstr ""
-#: ../../build/docs/un_sdg/data.rst:248
+#: ../../build/docs/un_sdg/data.rst:246
msgid "``bangladesh`` database"
msgstr ""
-#: ../../build/docs/un_sdg/data.rst:253
+#: ../../build/docs/un_sdg/data.rst:251
msgid ""
"Open a terminal window by ``ctrl-alt-t`` and move to the workshop "
"directory by ``cd ~/Desktop/workshop``."
msgstr ""
-#: ../../build/docs/un_sdg/data.rst:257
+#: ../../build/docs/un_sdg/data.rst:255
msgid "Importing Bangladesh Waterways"
msgstr ""
-#: ../../build/docs/un_sdg/data.rst:259
+#: ../../build/docs/un_sdg/data.rst:257
msgid ""
"The following ``osm2pgrouting`` command will be used to import the "
"Waterways from OpenStreetMaps file to pgRouting database which we will "
"use for further exercises."
msgstr ""
-#: ../../build/docs/un_sdg/data.rst:285
+#: ../../build/docs/un_sdg/data.rst:283
msgid "Appendix"
msgstr ""
-#: ../../build/docs/un_sdg/data.rst:288
+#: ../../build/docs/un_sdg/data.rst:286
msgid "Configuration information for Buildings"
msgstr ""
-#: ../../build/docs/un_sdg/data.rst:296
+#: ../../build/docs/un_sdg/data.rst:294
msgid "Configuration information for Waterways"
msgstr ""
diff --git a/locale/en/LC_MESSAGES/un_sdg/introduction.po b/locale/en/LC_MESSAGES/un_sdg/introduction.po
index 4d2aff65e..7db2a6046 100644
--- a/locale/en/LC_MESSAGES/un_sdg/introduction.po
+++ b/locale/en/LC_MESSAGES/un_sdg/introduction.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:49-0600\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/un_sdg/introduction.rst:12
msgid "Achieving Sustainable Development Goals with pgRouting"
@@ -41,7 +41,7 @@ msgid ""
"pgRouting is not only useful for routing cars on roads but it can also be"
" used to analyse water distribution networks, river flow or the "
"connectivity of an electricity network. Currently, this workshop expands "
-"the pgRouting workshop by addressing Three of the Seventeen Sustainable "
+"the pgRouting workshop by addressing Three of the Seventeen Sustainable "
"Development Goals"
msgstr ""
@@ -53,7 +53,7 @@ msgstr ""
msgid "United Nations"
msgstr ""
-#: ../../build/docs/un_sdg/introduction.rst:-1
+#: ../../build/docs/un_sdg/introduction.rst:37
msgid "UN Flag"
msgstr ""
@@ -195,7 +195,7 @@ msgid "Gender Equality"
msgstr ""
#: ../../build/docs/un_sdg/introduction.rst:99
-msgid "Achieve gender equality and empower all women and girls"
+msgid "Achieve gender equality and empower all women and girls"
msgstr ""
#: ../../build/docs/un_sdg/introduction.rst:100
diff --git a/locale/en/LC_MESSAGES/un_sdg/sdg11-cities.po b/locale/en/LC_MESSAGES/un_sdg/sdg11-cities.po
index 7e48d32bc..3f01bb402 100644
--- a/locale/en/LC_MESSAGES/un_sdg/sdg11-cities.po
+++ b/locale/en/LC_MESSAGES/un_sdg/sdg11-cities.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:49-0600\n"
+"POT-Creation-Date: 2024-11-10 17:09+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/un_sdg/sdg11-cities.rst:11
msgid "Sustainable Cities and Communities"
@@ -37,7 +37,7 @@ msgid ""
"exercise will solve one of such problems."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:-1
+#: ../../build/docs/un_sdg/sdg11-cities.rst:22
msgid "Sustainable Development Goal 11: Sustainable Cities and Communities"
msgstr ""
@@ -100,7 +100,7 @@ msgstr ""
msgid "Finding the rain zones"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:60
+#: ../../build/docs/un_sdg/sdg11-cities.rst:61
msgid ""
"For this exercise, Munshigang city from Bangladesh is chosen. This city "
"has multiple rivers in its proximity which makes it an apt location to "
@@ -111,100 +111,80 @@ msgid ""
"the city as a point."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:68
+#: ../../build/docs/un_sdg/sdg11-cities.rst:69
msgid "Exercise 1: Create a point for the city"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:78
-msgid ":ref:`un_sdg/appendix:**Exercise:** 1 (**Chapter:** SDG 11)`"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:72
+msgid "Create a table for the cities"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:80
-msgid ""
-"Latitude and longitude values are converted into ``geometry`` form using "
-"``ST_Point`` which returns a point with the given X and Y coordinate "
-"values. ``ST_SetSRID`` is used to set the SRID (Spatial Reference "
-"Identifier) on the point geometry to ``4326``."
+#: ../../build/docs/un_sdg/sdg11-cities.rst:83
+msgid "Insert Munshigang"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:86
-msgid "Pre-processing waterways data"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg11-cities.rst:87
-msgid ""
-"First step is to pre-process the data obtained from :doc:`data`. This "
-"section will work the graph that is going to be used for processing. "
-"While building the graph, the data has to be inspected to determine if "
-"there is any invalid data. This is a very important step to make sure "
-"that the data is of required quality. pgRouting can also be used to do "
-"some Data Adjustments. This will be discussed in further sections."
+#: ../../build/docs/un_sdg/sdg11-cities.rst:94
+msgid "Simulate the city region with a buffer"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:95
-msgid "Setting the Search Path of Waterways"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:105
+msgid "See description of the table"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:96
+#: ../../build/docs/un_sdg/sdg11-cities.rst:114
msgid ""
-"First step in pre processing is to set the search path for ``Waterways`` "
-"data. Search path is a list of schemas that helps the system determine "
-"how a particular table is to be imported."
+"Latitude and longitude values are converted into ``geometry`` form using "
+"``ST_Point`` which returns a point with the given X and Y coordinate "
+"values. ``ST_SetSRID`` is used to set the SRID (Spatial Reference "
+"Identifier) on the point geometry to ``4326``."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:101
-msgid "Exercise 2: Inspecting the schemas"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:120
+msgid "Prepare the database"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:102
-msgid ""
-"Inspect the schemas by displaying all the present schemas using the "
-"following command"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:122
+msgid "Data obtained in :doc:`data`."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:119
+#: ../../build/docs/un_sdg/sdg11-cities.rst:124
msgid ""
-"The schema names are ``waterway`` and ``public``. The owner depends on "
-"who has the rights to the database."
+"This section will cover the status of the database in order to get the "
+"same results when processing the queries."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:122
-msgid "Exercise 3: Inspecting the search path"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:128
+msgid "Exercise 2: Set the search path"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:123
-msgid "Display the current search path using the following query."
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg11-cities.rst:136
-msgid "This is the current search path. Tables cannot be accessed using this."
+#: ../../build/docs/un_sdg/sdg11-cities.rst:130
+msgid ""
+"First step in pre processing is to set the search path for ``Waterways`` "
+"data. Search path is a list of schemas that helps the system determine "
+"how a particular table is to be imported."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:139
-msgid "Exercise 4: Fixing the search path"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:145
+msgid "Exercise 3: Verify database configuration"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:140
-msgid ""
-"In this case, search path of roads table is set to ``waterways`` schema. "
-"Following query is used to fix the search path"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:147
+msgid "As part of the every project tasks: inspect the database structure."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:156
-msgid "Exercise 5: Enumerating tables"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:150
+msgid "Get the extensions that are installed"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:157
-msgid ""
-"Finally, ``\\dt`` is used to verify if the Schema have bees changed "
-"correctly."
+#: ../../build/docs/un_sdg/sdg11-cities.rst:160
+msgid "List installed tables"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:177
-msgid "Exercise 6: Counting the number of Waterways"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:170
+msgid "Exercise 4: Count the number of Waterways"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:178
+#: ../../build/docs/un_sdg/sdg11-cities.rst:172
msgid ""
"The importance of counting the information on this workshop is to make "
"sure that the same data is used and consequently the results are same. "
@@ -212,49 +192,53 @@ msgid ""
"table and how the data is stored in it."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:192
-msgid ":ref:`un_sdg/appendix:**Exercise:** 6 (**Chapter:** SDG 11)`"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:187
+msgid "Processing waterways data"
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg11-cities.rst:189
+msgid ""
+"This section will work the graph that is going to be used for processing."
+" While building the graph, the data has to be inspected to determine if "
+"there is any invalid data. This is a very important step to make sure "
+"that the data is of required quality. pgRouting can also be used to do "
+"some Data Adjustments."
msgstr ""
#: ../../build/docs/un_sdg/sdg11-cities.rst:195
-msgid "Exercise 7: Removing the Rivers which are in swamps"
+msgid "Exercise 5: Remove waterways not for the problem"
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg11-cities.rst:197
+msgid "Waterways to be removed"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:196
+#: ../../build/docs/un_sdg/sdg11-cities.rst:201
msgid ""
"This exercise focusses only the areas in the mainland, where if it rains "
"the city is affected. Hence, the rivers which are there in the swamp area"
-" have to be removed from the ``waterways_ways`` table."
+" wich is in a lower altitude of the city, are to be removed from the "
+"``waterways_ways`` table."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:209
-msgid ":ref:`un_sdg/appendix:**Exercise:** 7 (**Chapter:** SDG 11)`"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:206
+msgid "Remove swamp rivers"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:212
-msgid "pgr_connectedComponents for preprocessing waterways"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:216
+msgid "When working for many cities, a better approach might be to create views."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:214
-msgid ""
-"For the next step ``pgr_connectedComponents`` will be used. It is used to"
-" find the connected components of an undirected graph using a Depth First"
-" Search-based approach."
+#: ../../build/docs/un_sdg/sdg11-cities.rst:220
+msgid "Also delete a boundary tagged as waterway"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:218
-msgid "Signatures"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg11-cities.rst:229
-msgid ""
-"`pgr_connectedComponents Documentation "
-"`__ can "
-"be found at this link for more information."
+#: ../../build/docs/un_sdg/sdg11-cities.rst:230
+msgid "A better approach might be to fix the original data in OSM website."
msgstr ""
#: ../../build/docs/un_sdg/sdg11-cities.rst:233
-msgid "Exercise 8: Get the Connected Components of Waterways"
+msgid "Exercise 6: Get the Connected Components of Waterways"
msgstr ""
#: ../../build/docs/un_sdg/sdg11-cities.rst:235
@@ -268,77 +252,56 @@ msgstr ""
#: ../../build/docs/un_sdg/sdg11-cities.rst:241
msgid ""
-"pgRouting function ``pgr_connectedComponents`` is used to complete this "
-"task. A sub-query is created to find out all the connected components. "
-"After that, the ``component`` column is updated using the results "
-"obtained from the sub-query. This helps in storing the component id in "
-"the ``waterways_ways_vertices_pgr`` table. Next query uses this output "
-"and stores the component id in the waterways_ways (edges) table. Follow "
-"the steps given below to complete this task."
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg11-cities.rst:248
-msgid "Add a column named ``component`` to store component number."
+"The pgRouting function ``pgr_connectedComponents`` is used to complete "
+"this task and its explaind with more detail in "
+":doc:`../basic/graph_views`."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:256
-msgid "Get the Connected Components of Waterways"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg11-cities.rst:264
+#: ../../build/docs/un_sdg/sdg11-cities.rst:244
msgid ""
-"With component id stored in both vertex and edge table of waterways, lets"
-" proceed to next step."
+"A sub-query is created to find out all the connected components. After "
+"that, the ``component`` column is updated using the results obtained from"
+" the sub-query. This helps in storing the component id in the "
+"``waterways_ways_vertices_pgr`` table. Next query uses this output and "
+"stores the component id in the waterways_ways (edges) table. Follow the "
+"steps given below to complete this task."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:269
-msgid ":ref:`un_sdg/appendix:**Exercise:** 8 (**Chapter:** SDG 11)`"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:251
+msgid "Create a vertices table."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:272
-msgid "Exercise 9: Creating buffer around the city"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:262
+msgid "Fill up the ``x``, ``y`` and ``geom`` columns."
msgstr ""
#: ../../build/docs/un_sdg/sdg11-cities.rst:273
-msgid ""
-"Create a buffer around the city to define an area, inside which the "
-"intersection of rivers would be found. ``ST_Buffer`` is used to create "
-"this buffer. Follow the steps given below to complete this task."
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg11-cities.rst:277
-#: ../../build/docs/un_sdg/sdg11-cities.rst:345
-msgid "Adding column to store Buffer geometry"
+msgid "Add a ``component`` column on the edges and vertices tables."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:285
-#: ../../build/docs/un_sdg/sdg11-cities.rst:353
-msgid "Storing Buffer geometry"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:284
+msgid "Fill up the ``component`` column on the vertices table."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:293
-msgid "Displaying the results of Buffer operation"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:295
+msgid "Fill up the ``component`` column on the edges table."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:303
-msgid ":ref:`un_sdg/appendix:**Exercise:** 9 (**Chapter:** SDG 11)`"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:302
+msgid "Exercise 7: Creating a function that gets the city buffer"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:306
-msgid "Exercise 10: Creating a function that gets the city buffer"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg11-cities.rst:307
+#: ../../build/docs/un_sdg/sdg11-cities.rst:304
msgid ""
"A function can be created for the same task. This will be help when the "
"table has more than one city."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:317
-msgid "Exercise 11: Finding the components intersecting the buffer"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:319
+msgid "Exercise 8: Finding the components intersecting the buffer"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:318
+#: ../../build/docs/un_sdg/sdg11-cities.rst:321
msgid ""
"Next step is to find the components of waterways which lie in the buffer "
"zone of the city. These are the waterways which will affect the city when"
@@ -346,53 +309,70 @@ msgid ""
"``get_city_buffer`` function is used in the query below."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:329
+#: ../../build/docs/un_sdg/sdg11-cities.rst:336
msgid ""
"Output shows the distinct component numbers which lie in the buffer zone "
-"of the city. Next step is to get all the edges that have those "
-"components."
+"of the city. That is, the rivers that lie within the city."
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg11-cities.rst:341
+msgid "Exercise 9: Get the rain zones"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:334
-msgid ":ref:`un_sdg/appendix:**Exercise:** 11 (**Chapter:** SDG 11)`"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:343
+msgid ""
+"In this excercise the area , where if it rains, the city would be "
+"affected, is calculated. This area is called ``rain zone`` in the "
+"excercise"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:337
-msgid "Exercise 12: Get the rain zones"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:346
+msgid "Create a Buffer around the river components."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:338
+#: ../../build/docs/un_sdg/sdg11-cities.rst:348
+msgid "Add columns named ``rain_zone`` in waterways_ways"
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg11-cities.rst:350
+msgid "To store buffer geometry of the rain zones."
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg11-cities.rst:352
msgid ""
-"This is the final step of the exercise. In this, the area where if it "
-"rains, the city would be affected, also can be called as ``rain zone`` is"
-" being found. For this, create a Buffer around the river components. "
-"First, add columns named ``rain_zone`` in waterways_ways to store buffer "
-"geometry of the rain zones. Then, find the buffer for every edge which "
-"intersects the buffer area using ``ST_Buffer`` and update the "
-"``rain_zone`` column. Follow the steps given below to complete this task."
+"Find the buffer for every edge that intersects the city buffer area using"
+" ``ST_Buffer``"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:361
+#: ../../build/docs/un_sdg/sdg11-cities.rst:353
+msgid "and update the ``rain_zone`` column."
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg11-cities.rst:356
+msgid "Adding column to store Buffer geometry"
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg11-cities.rst:367
+msgid "Storing Buffer geometry"
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg11-cities.rst:377
msgid ""
"This will give us the requires area, where if it rains, the city will be "
"affected."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:365
-msgid ":ref:`un_sdg/appendix:**Exercise:** 12 (**Chapter:** SDG 11)`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg11-cities.rst:368
-msgid "Exercise 13: Create a union of rain zones"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:380
+msgid "Exercise 10: Create a union of rain zones"
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:369
+#: ../../build/docs/un_sdg/sdg11-cities.rst:381
msgid ""
"Multiple polygons that are obtained can also be merged using "
"``ST_Union``. This will give a single polygon as the output."
msgstr ""
-#: ../../build/docs/un_sdg/sdg11-cities.rst:380
-msgid ":ref:`un_sdg/appendix:**Exercise:** 13 (**Chapter:** SDG 11)`"
+#: ../../build/docs/un_sdg/sdg11-cities.rst:388
+msgid "When it rains in the vicinity, the city will get affected by the rain."
msgstr ""
diff --git a/locale/en/LC_MESSAGES/un_sdg/sdg3-health.po b/locale/en/LC_MESSAGES/un_sdg/sdg3-health.po
index 8ddd3df18..7dc10b029 100644
--- a/locale/en/LC_MESSAGES/un_sdg/sdg3-health.po
+++ b/locale/en/LC_MESSAGES/un_sdg/sdg3-health.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:49-0600\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/un_sdg/sdg3-health.rst:11
msgid "Good Health and Well Being"
@@ -42,7 +42,7 @@ msgid ""
" one such problem."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:-1
+#: ../../build/docs/un_sdg/sdg3-health.rst:26
msgid "Sustainable Development Goal 3: Good Health and Well Being"
msgstr ""
@@ -113,139 +113,153 @@ msgid "Find the sum of population on all the roads in the roads served"
msgstr ""
#: ../../build/docs/un_sdg/sdg3-health.rst:60
-msgid "Pre-processing roads and buildings data"
+msgid "PostreSQL basics"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:61
-msgid ""
-"First step is to pre-process the data obtained from "
-":ref:`un_sdg/data:Data for Sustainable Development Goals`. This section "
-"will work the graph that is going to be used for processing. While "
-"building the graph, the data has to be inspected to determine if there is"
-" any invalid data. This is a very important step to make sure that the "
-"data is of required quality. pgRouting can also be used to do some Data "
-"Adjustments. This will be discussed in further sections."
+#: ../../build/docs/un_sdg/sdg3-health.rst:63
+msgid "Preparing work area"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:69
-msgid "Inspecting the database structure"
+#: ../../build/docs/un_sdg/sdg3-health.rst:65
+msgid ""
+"The ``search_path`` is a variable that determines the order in which "
+"database schemas are searched for objects."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:70
+#: ../../build/docs/un_sdg/sdg3-health.rst:68
msgid ""
-"First step in pre processing is to set the search path for ``Roads`` and "
-"``Buildings`` data. `Search path` is a list of schemas helps the system "
-"determine how a particular table is to be imported. In this case, search "
-"path of roads table is set to roads and buildings schema. ``\\dn`` is "
-"used to list down all the present schemas. ``SHOW search_path`` command "
-"shows the current search path. ``SET search_path`` is used to set the "
-"search path to ``roads`` and ``buildings``. Finally, ``\\dt`` is used to "
-"verify if the Schema have bees changed correctly. Following code snippets"
-" show the steps as well as the outputs."
+"By setting the ``search_path`` to appropriate values, prepending the "
+"schema name to tables can be avoided."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:80
+#: ../../build/docs/un_sdg/sdg3-health.rst:72
msgid "Exercise 1: Inspecting schemas"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:82
+#: ../../build/docs/un_sdg/sdg3-health.rst:74
msgid ""
"Inspect the schemas by displaying all the present schemas using the "
"following command"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:89
-#: ../../build/docs/un_sdg/sdg3-health.rst:113
-msgid "The output of the postgresql command is:"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg3-health.rst:101
+#: ../../build/docs/un_sdg/sdg3-health.rst:85
msgid ""
-"The schema names are ``buildings`` , ``roads`` and ``public``. The owner"
-" depends on who has the rights to the database."
+"The schema names are ``buildings``, ``roads`` and ``public``. The owner "
+"depends on who has the rights to the database."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:105
+#: ../../build/docs/un_sdg/sdg3-health.rst:89
msgid "Exercise 2: Inspecting the search path"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:107
+#: ../../build/docs/un_sdg/sdg3-health.rst:91
msgid "Display the current search path using the following query."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:122
-msgid "This is the current search path. Tables cannot be accessed using this."
+#: ../../build/docs/un_sdg/sdg3-health.rst:102
+msgid ""
+"This is the current search path. Tables in other schemas cannot be "
+"accessed with this path."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:125
+#: ../../build/docs/un_sdg/sdg3-health.rst:106
msgid "Exercise 3: Fixing the search path"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:127
+#: ../../build/docs/un_sdg/sdg3-health.rst:108
msgid ""
-"In this case, search path of roads table is search path to ``roads`` and "
-"``buildings`` schemas. Following query is used to fix the search path"
+"In this case, the search path needs to include ``roads`` and "
+"``buildings`` schemas. The following query is used to adjust the search "
+"path."
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg3-health.rst:119
+msgid "Checking the search path again"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:143
+#: ../../build/docs/un_sdg/sdg3-health.rst:131
msgid "Exercise 4: Enumerating tables"
msgstr ""
+#: ../../build/docs/un_sdg/sdg3-health.rst:133
+msgid "With ``\\dt`` the tables are listed showing the schema and the owner"
+msgstr ""
+
#: ../../build/docs/un_sdg/sdg3-health.rst:144
+msgid "Preparing roads and buildings data"
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg3-health.rst:146
+msgid "First step is to prepare the data obtained from :doc:`data`."
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg3-health.rst:148
msgid ""
-"Finally, ``\\dt`` is used to verify if the Schema have bees changed "
-"correctly."
+"This section will work the graph and data that is going to be used for "
+"processing. While building the graph, the data has to be inspected to "
+"determine if there is any invalid data. This is a very important step to "
+"make sure that the data is of required quality. pgRouting can also be "
+"used to do some Data Adjustments."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:166
-msgid "Exercise 5: Counting the number of Roads and Buildings"
+#: ../../build/docs/un_sdg/sdg3-health.rst:156
+msgid "Exercise 5: Counting the number of roads and buildings"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:168
+#: ../../build/docs/un_sdg/sdg3-health.rst:158
msgid ""
"The importance of counting the information on this workshop is to make "
"sure that the same data is used and consequently the results are same. "
-"Also, some of the rows can be seen to understand the structure of the "
+"Also, some of the rows can be seen to understand the structure of the "
"table and how the data is stored in it."
msgstr ""
#: ../../build/docs/un_sdg/sdg3-health.rst:181
-msgid ":ref:`un_sdg/appendix:**Exercise:** 5 (**Chapter:** SDG 3)`"
+msgid "Following image shows the roads and buildings visualised."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:183
-msgid "Following image shows the roads and buildings visualised."
+#: ../../build/docs/un_sdg/sdg3-health.rst:188
+msgid "Preprocessing Buildings"
msgstr ""
#: ../../build/docs/un_sdg/sdg3-health.rst:190
-msgid "Preprocessing Buildings"
+msgid ""
+"The table ``buildings_ways`` contains the buildings in ``LINGSTING`` "
+"type. They have to be converted into polygons to get the area, as the "
+"area is going to be used to get an estimate of the population living in "
+"the building."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:191
+#: ../../build/docs/un_sdg/sdg3-health.rst:195
+msgid "Exercise 6: Removing columns"
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg3-health.rst:197
msgid ""
-"The table ``buildings_ways`` contains the buildings in edge form. They "
-"have to be converted into polygons to get the area."
+"Columns can be deleted from a table. In this case instead of creating a "
+"view, columns that are not related to a **buidling** concept are dropped "
+"from ``buildings_ways``."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:196
-msgid "Exercise 6: Add a spatial column to the table"
+#: ../../build/docs/un_sdg/sdg3-health.rst:212
+msgid "Exercise 7: Add a spatial column to the table"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:198
+#: ../../build/docs/un_sdg/sdg3-health.rst:214
msgid ""
"Add a spatial column named ``poly_geom`` to the table ``buildings_ways`` "
"to store the Polygon Geometry"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:209
-msgid ":ref:`un_sdg/appendix:**Exercise:** 6 (**Chapter:** SDG 3)`"
+#: ../../build/docs/un_sdg/sdg3-health.rst:226
+msgid "Inspecting the table:"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:212
-msgid "Exercise 7: Removing the polygons with less than 4 points"
+#: ../../build/docs/un_sdg/sdg3-health.rst:237
+msgid "Exercise 8: Removing the polygons with less than 4 points"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:214
+#: ../../build/docs/un_sdg/sdg3-health.rst:239
msgid ""
"``ST_NumPoints`` is used to find the number of points on a geometry. "
"Also, polygons with less than 3 points/vertices are not considered valid "
@@ -254,482 +268,472 @@ msgid ""
"task."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:227
-msgid ":ref:`un_sdg/appendix:**Exercise:** 7 (**Chapter:** SDG 3)`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg3-health.rst:230
-msgid "Exercise 8: Creating the polygons"
+#: ../../build/docs/un_sdg/sdg3-health.rst:254
+msgid "Exercise 9: Creating the polygons"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:232
+#: ../../build/docs/un_sdg/sdg3-health.rst:256
msgid ""
"``ST_MakePolygons`` is used to make the polygons. This step stores the "
-"geom of polygons in the ``poly_geom`` column which was created earlier."
+"geometry of polygons in the ``poly_geom`` column which was created "
+"earlier."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:243
-msgid ":ref:`un_sdg/appendix:**Exercise:** 8 (**Chapter:** SDG 3)`"
+#: ../../build/docs/un_sdg/sdg3-health.rst:270
+msgid "Exercise 10: Calculating the area"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:246
-msgid "Exercise 9: Calculating the area"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg3-health.rst:247
+#: ../../build/docs/un_sdg/sdg3-health.rst:272
msgid ""
"After getting the polygon geometry, next step is to find the area of the "
"polygons. Follow the steps given below to complete this task."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:250
+#: ../../build/docs/un_sdg/sdg3-health.rst:275
msgid "Adding a column for storing the area"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:258
+#: ../../build/docs/un_sdg/sdg3-health.rst:282
msgid "Storing the area in the new column"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:260
+#: ../../build/docs/un_sdg/sdg3-health.rst:284
msgid ""
"``ST_Area`` is used to calculate area of polygons. Area is stored in the "
"new column"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:271
-msgid ":ref:`un_sdg/appendix:**Exercise:** 9 (**Chapter:** SDG 3)`"
+#: ../../build/docs/un_sdg/sdg3-health.rst:297
+msgid "Exercise 11: Estimating the population"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:274
-msgid "pgr_connectedComponents"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg3-health.rst:275
+#: ../../build/docs/un_sdg/sdg3-health.rst:299
msgid ""
-"For the next step ``pgr_connectedComponents`` will be used. It is used to"
-" find the connected components of an undirected graph using a Depth First"
-" Search-based approach."
+"Due to the lack of census data, this exercise will fill up and estimate "
+"of the population living on the buildings, based on the area of the "
+"building and the kind of use the building gets."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:278
-msgid "**Signatures**"
+#: ../../build/docs/un_sdg/sdg3-health.rst:303
+msgid "Buildings of OpenStreetMap data are classified into various categories."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:290
-msgid ""
-"`pgr_connectedComponents Documentation "
-"`__ can "
-"be found at this link for more information."
+#: ../../build/docs/un_sdg/sdg3-health.rst:315
+msgid "For this exercise, the population will be set as follows:"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:294
-msgid "Preprocessing Roads"
+#: ../../build/docs/un_sdg/sdg3-health.rst:317
+msgid "Negligible:"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:295
-msgid ""
-"pgRouting algorithms are only useful when the road network belongs to a "
-"single graph (or all the roads are connected to each other). Hence, the "
-"disconnected roads have to be removed from their network to get "
-"appropriate results. This image gives an example of the disconnected "
-"edges."
+#: ../../build/docs/un_sdg/sdg3-health.rst:319
+#: ../../build/docs/un_sdg/sdg3-health.rst:327
+msgid "People do not live in these places."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:304
-msgid ""
-"For example, in the above figure roads with label ``119`` are "
-"disconnected from the network. Hence they will have same connected "
-"component number. But the count of this number will be less count of "
-"fully connected network. All the edges with the component number with "
-"count less than maximum count will be removed"
+#: ../../build/docs/un_sdg/sdg3-health.rst:320
+msgid "Population: 1 person"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:309
-#: ../../build/docs/un_sdg/sdg3-health.rst:654
-msgid "Follow the steps given below to complete this task."
+#: ../../build/docs/un_sdg/sdg3-health.rst:322
+msgid "There may be people guarding the place."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:312
-msgid "Exercise 10: Find the Component ID for Road vertices"
+#: ../../build/docs/un_sdg/sdg3-health.rst:324
+msgid "Very Sparse:"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:313
-msgid ""
-"First step in Preprocessing Roads is to find the connected component ID "
-"for Road vertices. Follow the steps given below to complete this task."
+#: ../../build/docs/un_sdg/sdg3-health.rst:326
+msgid "``retail``, ``commercial``, ``school``"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:316
-msgid "Add a column named ``component`` to store component number."
+#: ../../build/docs/un_sdg/sdg3-health.rst:328
+msgid "Population: At least 2 persons."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:324
-msgid ""
-"Update the ``component`` column in ``roads_ways_vertices_pgr`` with the "
-"component number"
+#: ../../build/docs/un_sdg/sdg3-health.rst:330
+#: ../../build/docs/un_sdg/sdg3-health.rst:337
+msgid "Because there may be people guarding the place."
msgstr ""
#: ../../build/docs/un_sdg/sdg3-health.rst:332
-msgid ""
-"This will store the component number of each edge in the table. Now, the "
-"completely connected network of roads should have the maximum count in "
-"the ``component`` table."
+msgid "Sparse:"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:342
-msgid ":ref:`un_sdg/appendix:**Exercise:** 10 (**Chapter:** SDG 3)`"
+#: ../../build/docs/un_sdg/sdg3-health.rst:334
+msgid "Buildings with low population density, like ``university``."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:345
-msgid "Exercise 11: Finding the components which are to be removed"
+#: ../../build/docs/un_sdg/sdg3-health.rst:335
+msgid "Population: At least 3 persons."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:347
-msgid ""
-"This query selects all the components which are not equal to the "
-"component number with maximum count using a subquery which groups the "
-"rows in ``roads_ways_vertices_pgr`` by the component."
+#: ../../build/docs/un_sdg/sdg3-health.rst:338
+msgid "Students might live there."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:359
-msgid ":ref:`un_sdg/appendix:**Exercise:** 11 (**Chapter:** SDG 3)`"
+#: ../../build/docs/un_sdg/sdg3-health.rst:340
+msgid "Moderate:"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:362
-msgid "Exercise 12: Finding the road vertices of these components"
+#: ../../build/docs/un_sdg/sdg3-health.rst:342
+msgid ""
+"Location where people might be living temporarly, like ``hotel`` and "
+"``hospital``."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:364
-msgid ""
-"Find the road vertices of these components which belong to those "
-"components which are to be removed. The following query selects all the "
-"road vertices which have the component number from Exercise 11."
+#: ../../build/docs/un_sdg/sdg3-health.rst:344
+msgid "Population: At least 5 persons."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:376
-msgid ":ref:`un_sdg/appendix:**Exercise:** 12 (**Chapter:** SDG 3)`"
+#: ../../build/docs/un_sdg/sdg3-health.rst:346
+msgid "Dense:"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:379
-msgid "Exercise 13: Removing the unwanted edges and vertices"
+#: ../../build/docs/un_sdg/sdg3-health.rst:348
+msgid "A medium sized residential building."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:381
-msgid "Removing the unwanted edges"
+#: ../../build/docs/un_sdg/sdg3-health.rst:349
+msgid "Population: At least 7 persons."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:383
-msgid ""
-"In ``roads_ways`` table (edge table) ``source`` and ``target`` have the "
-"``id`` of the vertices from where the edge starts and ends. To delete all"
-" the disconnected edges the following query takes the output from the "
-"query of Step 4 and deletes all the edges having the same ``source`` as "
-"the ``id``."
+#: ../../build/docs/un_sdg/sdg3-health.rst:351
+msgid "Very Dense:"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:394
-msgid "Removing unused vertices"
+#: ../../build/docs/un_sdg/sdg3-health.rst:353
+msgid "A large sized residential building, like ``apartments``."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:396
-msgid ""
-"The following query uses the output of Step 4 to remove the vertices of "
-"the disconnected edges."
+#: ../../build/docs/un_sdg/sdg3-health.rst:354
+msgid "Population: At least 10 persons."
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg3-health.rst:357
+msgid "Reference: :ref:`un_sdg/data:Appendix`"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:408
-msgid ":ref:`un_sdg/appendix:**Exercise:** 13 (**Chapter:** SDG 3)`"
+#: ../../build/docs/un_sdg/sdg3-health.rst:359
+msgid ""
+"This class-specific factor is multiplied with the area of each building "
+"to get the population. Follow the steps given below to complete this "
+"task."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:411
-msgid "Finding the roads served by the hospitals"
+#: ../../build/docs/un_sdg/sdg3-health.rst:362
+msgid "Create a function to find population using class-specific factor and area."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:412
+#: ../../build/docs/un_sdg/sdg3-health.rst:374
msgid ""
-"After pre-processing the data, next step is to find the area served by "
-"the hospital. This area can be computed from the entrance of the hospital"
-" or from any point on road near the hospital. In this exercise it is "
-"computed from closest road vertex. ``pgr_drivingDistance`` will be used "
-"to find the roads served. The steps to be followed are:"
+"All these are estimations based on this particular area. More complicated"
+" functions can be done that consider height of the apartments but the "
+"design of a function is going to depend on the availability of the data. "
+"For example, using census data can achieve more accurate estimation."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:418
-msgid "Finding the closest road vertex"
+#: ../../build/docs/un_sdg/sdg3-health.rst:379
+msgid "Add a column for storing the population in the ``buildings_ways``"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:419
-msgid "Finding the roads served"
+#: ../../build/docs/un_sdg/sdg3-health.rst:390
+msgid ""
+"3. Use the ``population`` function to store the population in the new "
+"column created in the ``building_ways``."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:420
-msgid "Generalising the roads served"
+#: ../../build/docs/un_sdg/sdg3-health.rst:403
+msgid "Preprocessing Roads"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:423
-msgid "Exercise 14: Finding the closest road vertex"
+#: ../../build/docs/un_sdg/sdg3-health.rst:404
+msgid ""
+"pgRouting algorithms are only useful when the road network belongs to a "
+"single graph (or all the roads are connected to each other). Hence, the "
+"disconnected roads have to be removed from their network to get "
+"appropriate results. This image gives an example of the disconnected "
+"edges."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:424
+#: ../../build/docs/un_sdg/sdg3-health.rst:413
msgid ""
-"There are multiple road vertices near the hospital. Create a function to "
-"find the geographically closest road vertex. ``closest_vertex`` function "
-"takes geometry of other table as input and gives the gid of the closest "
-"vertex as output by comparing ``geom`` of both the tables."
+"For example, in the above figure roads with label ``119`` are "
+"disconnected from the network. Hence they will have same connected "
+"component number. But the count of this number will be less count of "
+"fully connected network. All the edges with the component number with "
+"count less than maximum count will be removed"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:433
-msgid "The following query creates a function to find the closest road vertex."
+#: ../../build/docs/un_sdg/sdg3-health.rst:418
+#: ../../build/docs/un_sdg/sdg3-health.rst:733
+msgid "Follow the steps given below to complete this task."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:442
-msgid "pgr_drivingDistance"
+#: ../../build/docs/un_sdg/sdg3-health.rst:421
+msgid "Exercise 12: Remove disconnected components"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:443
+#: ../../build/docs/un_sdg/sdg3-health.rst:423
msgid ""
-"For the next step ``pgr_drivingDistance`` will be used. This returns the "
-"driving distance from a start node. It uses the Dijkstra algorithm to "
-"extract all the nodes that have costs less than or equal to the value "
-"distance. The edges that are extracted conform to the corresponding "
-"spanning tree."
+"To remove the disconnected components on the road network, the following "
+"pgRouting functions, discussed on :doc:`../basic/graph_views`, will be "
+"used:"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:449
-msgid "Signatures"
+#: ../../build/docs/un_sdg/sdg3-health.rst:426
+msgid "``pgr_extractVertices``"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:457
-msgid "Using defaults"
+#: ../../build/docs/un_sdg/sdg3-health.rst:427
+msgid "``pgr_connectedComponents``"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:464
-msgid "Single Vertex"
+#: ../../build/docs/un_sdg/sdg3-health.rst:430
+msgid "Create a vertices table."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:471
-msgid "Multiple Vertices"
+#: ../../build/docs/un_sdg/sdg3-health.rst:441
+msgid "Fill up the ``x``, ``y`` and ``geom`` columns."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:477
-msgid ""
-"`pgr_drivingDistance Documentation "
-"`__ can be found "
-"at this link for more information."
+#: ../../build/docs/un_sdg/sdg3-health.rst:452
+msgid "Add a ``component`` column on the edges and vertices tables."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:481
-msgid "Exercise 15: Finding the served roads using pgr_drivingDistance"
+#: ../../build/docs/un_sdg/sdg3-health.rst:463
+msgid "Fill up the ``component`` column on the vertices table."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:482
-msgid ""
-"In this exercise, the roads served based on travel-time are calculated. "
-"This can be calculated using ``pgrdrivingDistance`` function of "
-"pgRouting. Time in minutes is considered as ``cost``. The ``agg_cost`` "
-"column would show the total time required to reach the hospital."
+#: ../../build/docs/un_sdg/sdg3-health.rst:474
+msgid "Fill up the ``component`` column on the edges table."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:487
-msgid "For the following query,"
+#: ../../build/docs/un_sdg/sdg3-health.rst:485
+msgid "Get the component number with the most number of edges."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:489
-msgid ""
-"In line 3, Pedestrian speed is assumed to be as ``1 m/s``. As ``time`` = "
-"``distance/speed``, ``length_m`` / ``1 m/s`` / ``60`` gives the time in "
-"minutes"
+#: ../../build/docs/un_sdg/sdg3-health.rst:496
+msgid "Delete edges not belonging to the most connected component."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:491
-msgid ""
-"In line 7, ``tag_id = '318'`` as 318 is the tag_id of hospital in the "
-"configuration file of buildings. Reference for Tag ID : "
-":ref:`un_sdg/data:Appendix`"
+#: ../../build/docs/un_sdg/sdg3-health.rst:507
+msgid "Delete vertices not belonging to the most connected component."
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg3-health.rst:518
+msgid "Find the roads served by the hospitals"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:493
+#: ../../build/docs/un_sdg/sdg3-health.rst:519
msgid ""
-"In line 8, ``10`` is written for 10 minutes which is a threshold for "
-"``agg_cost``"
+"After pre-processing the data, next step is to find the area served by "
+"the hospital. This area can be computed from the entrance of the hospital"
+" or from any point on road near the hospital. In this exercise it is "
+"computed from closest road vertex. ``pgr_drivingDistance`` will be used "
+"to find the roads served. The steps to be followed are:"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:494
-msgid "In line 8, ``FALSE`` is written as the query is for undirected graph"
+#: ../../build/docs/un_sdg/sdg3-health.rst:525
+msgid "Finding the closest road vertex"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:502
-#: ../../build/docs/un_sdg/sdg3-health.rst:534
-msgid "``LIMIT 10`` displays the first 10 rows of the output."
+#: ../../build/docs/un_sdg/sdg3-health.rst:526
+msgid "Finding the roads served"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:506
-msgid ":ref:`un_sdg/appendix:**Exercise:** 15 (**Chapter:** SDG 3)`"
+#: ../../build/docs/un_sdg/sdg3-health.rst:527
+msgid "Generalising the roads served"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:508
+#: ../../build/docs/un_sdg/sdg3-health.rst:530
+msgid "pgr_drivingDistance"
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg3-health.rst:531
msgid ""
-"Following figure shows the visualised output of the above query. The "
-"lines highlighted by ``red`` colour show the area from where the hospital"
-" can be reached within 10 minutes of walking at the speed of ``1 m/s``. "
-"It is evident from the output figure that some of the roads which are "
-"near to the hospital are not highlighted. For example, to roads in the "
-"north of the hospital. This is because the only one edge per road vertex "
-"was selected by the query. Next section will solve this issue by doing a "
-"small modification in the query."
+"For the next step ``pgr_drivingDistance`` will be used. This returns the "
+"driving distance from a start node. It uses the Dijkstra algorithm to "
+"extract all the nodes that have costs less than or equal to the value "
+"distance. The edges that are extracted conform to the corresponding "
+"spanning tree."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:521
-msgid "Exercise 16: Generalising the served roads"
+#: ../../build/docs/un_sdg/sdg3-health.rst:537
+msgid "Signatures"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:522
+#: ../../build/docs/un_sdg/sdg3-health.rst:544
msgid ""
-"The edges which are near to to hospital should also be selected in the "
-"roads served as the hospital also serves those buildings. The following "
-"query takes the query from previous section as a ``subquery`` and selects"
-" all the edges from ``roads_ways`` that have the same ``source`` and "
-"``target`` to that of ``subquery`` (Line 14)."
+"`pgr_drivingDistance Documentation "
+"`__ can be found "
+"at this link for more information."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:538
-msgid ":ref:`un_sdg/appendix:**Exercise:** 16 (**Chapter:** SDG 3)`"
+#: ../../build/docs/un_sdg/sdg3-health.rst:548
+msgid "Exercise 13: Find the closest road vertex"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:540
+#: ../../build/docs/un_sdg/sdg3-health.rst:549
msgid ""
-"Following figure shows the visualised output of the above query. Lines "
-"highlighted in ``yellow`` show the `generalised the roads served`. This "
-"gives a better estimate of the areas from where the hospital can be "
-"reached by a particular speed."
+"There are multiple road vertices near the hospital. Create a function to "
+"find the geographically closest road vertex. ``closest_vertex`` function "
+"takes geometry of other table as input and gives the gid of the closest "
+"vertex as output by comparing ``geom`` of both the tables."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:549
-msgid "Calculating the total population served by the hospital"
+#: ../../build/docs/un_sdg/sdg3-health.rst:558
+msgid "The following query creates a function to find the closest road vertex."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:550
-msgid ""
-"Now the next step is to estimate the dependant population. Official "
-"source of population is Census conducted by the government. But for this "
-"exercise, population will be estimated from the ``area`` as well as the "
-"``category`` of the building. This area will be stored in the nearest "
-"roads. Following steps explain this process in detail."
+#: ../../build/docs/un_sdg/sdg3-health.rst:570
+msgid "Testing the function"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:557
-msgid "Exercise 17: Estimating the population of buildings"
+#: ../../build/docs/un_sdg/sdg3-health.rst:583
+msgid "Exercise 14: Finding the served roads using pgr_drivingDistance"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:558
-msgid ""
-"Population of an building can be estimated by its area and its category. "
-"Buildings of OpenStreetMap data are classified into various categories. "
-"For this exercise, the buildings are classified into the following "
-"classes:"
+#: ../../build/docs/un_sdg/sdg3-health.rst:586
+msgid "Problem"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:562
+#: ../../build/docs/un_sdg/sdg3-health.rst:587
msgid ""
-"Negligible: People do not live in these places. But the default is 1 "
-"because of homeless people."
+"Find the roads within 10 minutes walking distance from the hospitals. Use"
+" ``1 m/s`` as walking speed."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:564
-msgid ""
-"Very Sparse: People do not live in these places. But the default is 2 "
-"because there may be people guarding the place."
+#: ../../build/docs/un_sdg/sdg3-health.rst:591
+msgid "Solution"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:566
+#: ../../build/docs/un_sdg/sdg3-health.rst:592
msgid ""
-"Sparse: Buildings with low population density. Also, considering the "
-"universities and college because the students live there."
+"In this exercise, the roads served are calculated based on a walking time"
+" of ``1 m/s``, by using ``pgrdrivingDistance`` function from pgRouting "
+"extension."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:568
-msgid "Moderate: A family unit housing kind of location."
+#: ../../build/docs/un_sdg/sdg3-health.rst:595
+msgid "Time in minutes is considered as ``cost``."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:569
-msgid "Dense: A medium sized residential building."
+#: ../../build/docs/un_sdg/sdg3-health.rst:596
+msgid "the graph is undirected."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:570
-msgid "Very Dense: A large sized residential building."
+#: ../../build/docs/un_sdg/sdg3-health.rst:598
+msgid "Preparing a query"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:572
-msgid "Reference: :ref:`un_sdg/data:Appendix`"
+#: ../../build/docs/un_sdg/sdg3-health.rst:610
+msgid "For the following query,"
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg3-health.rst:612
+msgid "The prepared statement is used."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:574
+#: ../../build/docs/un_sdg/sdg3-health.rst:613
+msgid "Pedestrian speed is set to be ``1 m/s``."
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg3-health.rst:615
msgid ""
-"This class-specific factor is multiplied with the area of each building "
-"to get the population. Follow the steps given below to complete this "
-"task."
+"As ``time`` = ``distance/speed``, ``length_m`` / ``1 m/s`` / ``60`` gives"
+" the time in minutes."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:577
-msgid "Create a function to find population using class-specific factor and area."
+#: ../../build/docs/un_sdg/sdg3-health.rst:618
+msgid ""
+"``tag_id = '318'`` as 318 is the value for hospital in the configuration "
+"table of the buildings."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:584
+#: ../../build/docs/un_sdg/sdg3-health.rst:621
+msgid "``10`` for 10 minutes, which is a threshold for ``agg_cost``"
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg3-health.rst:632
msgid ""
-"All these are estimations based on this particular area. More complicated"
-" functions can be done that consider height of the apartments but the "
-"design of a function is going to depend on the availability of the data. "
-"For example, using census data can achieve more accurate estimation."
+"Following figure shows the visualised output of the above query. The "
+"lines highlighted by red colour show the area from where the hospital can"
+" be reached within 10 minutes of walking at the speed of ``1 m/s``."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:589
-msgid "Add a column for storing the population in the ``buildings_ways``"
+#: ../../build/docs/un_sdg/sdg3-health.rst:636
+msgid ""
+"It is noticable from the output figure that some of the roads which are "
+"near to the hospital are not highlighted. For example, to roads in the "
+"north of the hospital. This is because the only one edge per road vertex "
+"was selected by the query."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:597
+#: ../../build/docs/un_sdg/sdg3-health.rst:646
+msgid "Exercise 15: Generalising the served roads"
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg3-health.rst:648
msgid ""
-"3. Use the ``population`` function to store the population in the new "
-"column created in the ``building_ways``."
+"The edges which are near to to hospital should also be selected in the "
+"roads served as the hospital also serves those buildings. The following "
+"query takes the query from previous section as a ``subquery`` and selects"
+" all the edges from ``roads_ways`` that have the same ``source`` and "
+"``target`` to that of ``subquery`` (Line 14)."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:608
-msgid ":ref:`un_sdg/appendix:**Exercise:** 17 (**Chapter:** SDG 3)`"
+#: ../../build/docs/un_sdg/sdg3-health.rst:663
+msgid ""
+"Following figure shows the visualised output of the above query. Lines "
+"highlighted in ``yellow`` show the `generalised the roads served`. This "
+"gives a better estimate of the areas from where the hospital can be "
+"reached by a particular speed."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:612
-msgid "Exercise 18: Finding the nearest roads to store the population"
+#: ../../build/docs/un_sdg/sdg3-health.rst:672
+msgid "Calculating the total population served by the hospital"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:613
+#: ../../build/docs/un_sdg/sdg3-health.rst:674
+msgid ""
+"Now the next step is to estimate the dependant population. Official "
+"source of population is Census conducted by the government. But for this "
+"exercise, population will be estimated from the ``area`` as well as the "
+"``category`` of the building. This area will be stored in the nearest "
+"roads. Following steps explain this process in detail."
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg3-health.rst:682
+msgid "Exercise 16: Finding the nearest roads of the buildings"
+msgstr ""
+
+#: ../../build/docs/un_sdg/sdg3-health.rst:684
msgid ""
"To store the population of buildings in the roads, nearest road to a "
"building is to be found. Follow the steps given below to complete this "
"task."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:616
+#: ../../build/docs/un_sdg/sdg3-health.rst:687
msgid "Create Function for finding the closest edge."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:623
+#: ../../build/docs/un_sdg/sdg3-health.rst:698
msgid "Add a column in ``buildings_ways`` for storing the id of closest edge"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:631
+#: ../../build/docs/un_sdg/sdg3-health.rst:710
msgid ""
"Store the edge id of the closest edge in the new column of "
"``buildings_ways``"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:641
-msgid ":ref:`un_sdg/appendix:**Exercise:** 18 (**Chapter:** SDG 3)`"
+#: ../../build/docs/un_sdg/sdg3-health.rst:723
+msgid "Exercise 17: Storing the population in the roads"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:644
-msgid "Exercise 19: Storing the population in the roads"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg3-health.rst:645
+#: ../../build/docs/un_sdg/sdg3-health.rst:724
msgid ""
"After finding the nearest road, the sum of population of all the nearest "
"buildings is stored in the population column of the roads table. "
@@ -737,37 +741,25 @@ msgid ""
"shows the population stored in roads."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:656
+#: ../../build/docs/un_sdg/sdg3-health.rst:735
msgid "Add a column in ``roads_ways`` for storing population"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:664
+#: ../../build/docs/un_sdg/sdg3-health.rst:746
msgid "Update the roads with the sum of population of buildings closest to it"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:672
+#: ../../build/docs/un_sdg/sdg3-health.rst:758
msgid "Verify is the population is stored using the following query."
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:683
-msgid ":ref:`un_sdg/appendix:**Exercise:** 19 (**Chapter:** SDG 3)`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg3-health.rst:686
-msgid "Exercise 20: Finding total population"
+#: ../../build/docs/un_sdg/sdg3-health.rst:771
+msgid "Exercise 18: Find total population served by the hospital"
msgstr ""
-#: ../../build/docs/un_sdg/sdg3-health.rst:687
+#: ../../build/docs/un_sdg/sdg3-health.rst:773
msgid ""
"Final step is to find the total population served by the hospital based "
-"on travel-time. Use the query from `Exercise 16: Generalising the served "
-"roads`_ as a subquery to get all the edges in the roads served. Note that"
-" ``s.population`` is added in line 14 which gives the population. After "
-"getting the population for each edge/road, use ``sum()`` to get the total"
-" population which is dependant on the hospital."
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg3-health.rst:701
-msgid ":ref:`un_sdg/appendix:**Exercise:** 20 (**Chapter:** SDG 3)`"
+"on travel time."
msgstr ""
diff --git a/locale/en/LC_MESSAGES/un_sdg/sdg7-energy.po b/locale/en/LC_MESSAGES/un_sdg/sdg7-energy.po
index 6fb4eb209..367346062 100644
--- a/locale/en/LC_MESSAGES/un_sdg/sdg7-energy.po
+++ b/locale/en/LC_MESSAGES/un_sdg/sdg7-energy.po
@@ -1,15 +1,15 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2023 pgRouting Developers
+# Copyright (C) 2010-2024 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
-# FIRST AUTHOR , 2023.
+# Belém package.
+# FIRST AUTHOR , 2024.
#
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:49-0600\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -18,7 +18,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/un_sdg/sdg7-energy.rst:11
msgid "Affordable and Clean Energy"
@@ -38,7 +38,7 @@ msgid ""
" equipment."
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:-1
+#: ../../build/docs/un_sdg/sdg7-energy.rst:22
msgid "Sustainable Development Goal 7: Affordable and Clean Energy"
msgstr ""
@@ -82,7 +82,6 @@ msgid "**Approach**"
msgstr ""
#: ../../build/docs/un_sdg/sdg7-energy.rst:51
-#: ../../build/docs/un_sdg/sdg7-energy.rst:181
msgid "Extract connected components of roads"
msgstr ""
@@ -100,13 +99,12 @@ msgstr ""
#: ../../build/docs/un_sdg/sdg7-energy.rst:58
msgid ""
-"First step is to pre-process the data obtained from "
-":ref:`un_sdg/data:Data for Sustainable Development Goals`. This section "
-"will work the graph that is going to be used for processing. While "
-"building the graph, the data has to be inspected to determine if there is"
-" any invalid data. This is a very important step to make sure that the "
-"data is of required quality. pgRouting can also be used to do some Data "
-"Adjustments. This will be discussed in further sections."
+"First step is to pre-process the data obtained from :doc:`data`. This "
+"section will work the graph that is going to be used for processing. "
+"While building the graph, the data has to be inspected to determine if "
+"there is any invalid data. This is a very important step to make sure "
+"that the data is of required quality. pgRouting can also be used to do "
+"some Data Adjustments. This will be discussed in further sections."
msgstr ""
#: ../../build/docs/un_sdg/sdg7-energy.rst:66
@@ -121,210 +119,75 @@ msgid ""
msgstr ""
#: ../../build/docs/un_sdg/sdg7-energy.rst:72
-msgid "Exercise 1: Inspecting the current schemas"
+msgid "Exercise 1: Set the seach path"
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:73
+#: ../../build/docs/un_sdg/sdg7-energy.rst:74
msgid ""
-"Inspect the schemas by displaying all the present schemas using the "
-"following command"
+"In this case, search path of roads table is search path to ``roads`` and "
+"``buildings`` schemas. Following query is used to adjust the search path."
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:89
-msgid ""
-"The schema names are ``roads`` and ``public``. The owner depends on who "
-"has the rights to the database."
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:92
-msgid "Exercise 2: Inspecting the current search path"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:93
-msgid "Display the current search path using the following query."
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:106
-msgid "This is the current search path. Tables cannot be accessed using this."
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:109
-msgid "Exercise 3: Fixing the current search path"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:110
-msgid ""
-"In this case, search path of roads table is set to ``roads`` schema. "
-"Following query is used to fix the search path"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:126
-msgid "Exercise 4: Enumerating the tables"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:127
-msgid ""
-"Finally, ``\\dt`` is used to verify if the Schema have bees changed "
-"correctly."
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:146
-msgid "Exercise 5: Counting the number of Roads"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:147
-msgid ""
-"The importance of counting the information on this workshop is to make "
-"sure that the same data is used and consequently the results are same. "
-"Also, some of the rows can be seen to understand the structure of the "
-"table and how the data is stored in it."
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:158
-msgid ":ref:`un_sdg/appendix:**Exercise:** 5 (**Chapter:** SDG 7)`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:161
-msgid "pgr_connectedComponents for preprocessing roads"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:162
-msgid ""
-"For the next step ``pgr_connectedComponents`` will be used. It is used to"
-" find the connected components of an undirected graph using a Depth First"
-" Search-based approach."
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:165
-msgid "**Signatures**"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:177
-msgid ""
-"`pgr_connectedComponents Documentation "
-"`__ can "
-"be found at this link for more information."
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:182
-msgid ""
-"Similar to :doc:`sdg3-health`, the disconnected roads have to be removed "
-"from their network to get appropriate results."
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:185
-msgid "Follow the steps given below to complete this task."
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:188
-msgid "Exercise 6: Find the Component ID for Road vertices"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:189
-msgid ""
-"First step in Preprocessing Roads is to find the connected component ID "
-"for Road vertices. Follow the steps given below to complete this task."
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:192
-msgid "Add a column named ``component`` to store component number."
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:200
-msgid ""
-"Update the ``component`` column in ``roads_ways_vertices_pgr`` ith the "
-"component number"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:208
-msgid ""
-"This will store the component number of each edge in the table. Now, the "
-"completely connected network of roads should have the maximum count in "
-"the ``component`` table."
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:213
-msgid ""
-"if done before: :ref:`un_sdg/appendix:**Exercise:** 10 (**Chapter:** SDG "
-"3)` if not done before: :ref:`un_sdg/appendix:**Exercise:** 6 "
-"(**Chapter:** SDG 7)`"
+#: ../../build/docs/un_sdg/sdg7-energy.rst:85
+msgid "Checking the search path again"
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:217
-msgid "Exercise 7: Finding the components which are to be removed"
+#: ../../build/docs/un_sdg/sdg7-energy.rst:97
+msgid "Exercise 2: Remove disconnected components"
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:219
+#: ../../build/docs/un_sdg/sdg7-energy.rst:99
msgid ""
-"This query selects all the components which are not equal to the "
-"component number with maximum count using a subquery which groups the "
-"rows in ``roads_ways_vertices_pgr`` by the component."
+"To remove the disconnected components on the road network, the following "
+"pgRouting functions, discussed on :doc:`../basic/graph_views`, will be "
+"used:"
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:232
-msgid ""
-"if done before: :ref:`un_sdg/appendix:**Exercise:** 11 (**Chapter:** SDG "
-"3)` if not done before: :ref:`un_sdg/appendix:**Exercise:** 7 "
-"(**Chapter:** SDG 7)`"
+#: ../../build/docs/un_sdg/sdg7-energy.rst:102
+msgid "``pgr_extractVertices``"
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:236
-msgid "Exercise 8: Finding the road vertices of these components"
+#: ../../build/docs/un_sdg/sdg7-energy.rst:103
+msgid "``pgr_connectedComponents``"
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:238
-msgid ""
-"Find the road vertices if these components which belong to those "
-"components which are to be removed. The following query selects all the "
-"road vertices which have the component number from Exercise 7."
+#: ../../build/docs/un_sdg/sdg7-energy.rst:106
+msgid "Create a vertices table."
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:251
-msgid ""
-"if done before: :ref:`un_sdg/appendix:**Exercise:** 12 (**Chapter:** SDG "
-"3)` if not done before: :ref:`un_sdg/appendix:**Exercise:** 8 "
-"(**Chapter:** SDG 7)`"
+#: ../../build/docs/un_sdg/sdg7-energy.rst:117
+msgid "Fill up the ``x``, ``y`` and ``geom`` columns."
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:255
-msgid "Exercise 9: Removing the unwanted edges and vertices"
+#: ../../build/docs/un_sdg/sdg7-energy.rst:128
+msgid "Add a ``component`` column on the edges and vertices tables."
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:257
-msgid "Removing the unwanted edges"
+#: ../../build/docs/un_sdg/sdg7-energy.rst:139
+msgid "Fill up the ``component`` column on the vertices table."
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:259
-msgid ""
-"In ``roads_ways`` table (edge table) ``source`` and ``target`` have the "
-"``id`` of the vertices from where the edge starts and ends. To delete all"
-" the disconnected edges the following query takes the output from the "
-"query of Step 4 and deletes all the edges having the same ``source`` as "
-"the ``id``."
+#: ../../build/docs/un_sdg/sdg7-energy.rst:150
+msgid "Fill up the ``component`` column on the edges table."
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:270
-msgid "Removing unused vertices"
+#: ../../build/docs/un_sdg/sdg7-energy.rst:161
+msgid "Get the component number with the most number of edges."
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:272
-msgid ""
-"The following query uses the output of Step 4 to remove the vertices of "
-"the disconnected edges."
+#: ../../build/docs/un_sdg/sdg7-energy.rst:172
+msgid "Delete edges not belonging to the most connected component."
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:284
-msgid ""
-"if done before: :ref:`un_sdg/appendix:**Exercise:** 13 (**Chapter:** SDG "
-"3)` if not done before: :ref:`un_sdg/appendix:**Exercise:** 9 "
-"(**Chapter:** SDG 7)`"
+#: ../../build/docs/un_sdg/sdg7-energy.rst:183
+msgid "Delete vertices not belonging to the most connected component."
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:288
+#: ../../build/docs/un_sdg/sdg7-energy.rst:195
msgid "pgr_kruskalDFS"
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:289
+#: ../../build/docs/un_sdg/sdg7-energy.rst:197
msgid ""
"For the next step ``pgr_kruskalDFS`` will be used. Kruskal algorithm is "
"used for getting the Minimum Spanning Tree with Depth First Search "
@@ -333,30 +196,22 @@ msgid ""
"without any cycles such that sum of edge weights is as small as possible."
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:296
+#: ../../build/docs/un_sdg/sdg7-energy.rst:204
msgid "Signatures"
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:308
-msgid "Single vertex"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:317
-msgid "Multiple vertices"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:324
+#: ../../build/docs/un_sdg/sdg7-energy.rst:212
msgid ""
"`pgr_kruskalDFS Documentation "
"`__ can be found "
"at this link for more information."
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:328
-msgid "Exercise 10: Find the minimum spanning tree"
+#: ../../build/docs/un_sdg/sdg7-energy.rst:216
+msgid "Exercise 3: Find the minimum spanning tree"
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:329
+#: ../../build/docs/un_sdg/sdg7-energy.rst:218
msgid ""
"The road network has a minimum spanning forest which is a union of the "
"minimum spanning trees for its connected components. This minimum "
@@ -364,93 +219,66 @@ msgid ""
"components."
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:333
+#: ../../build/docs/un_sdg/sdg7-energy.rst:222
msgid "To complete this task, execute the query below."
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:341
+#: ../../build/docs/un_sdg/sdg7-energy.rst:233
msgid ""
"The following query will give the results with the source vertex, target "
"vertex, edge id, aggregate cost."
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:350
-msgid "``LIMIT 10`` displays the first 10 rows of the output."
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:354
-msgid ":ref:`un_sdg/appendix:**Exercise:** 10 (**Chapter:** SDG 7)`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:358
+#: ../../build/docs/un_sdg/sdg7-energy.rst:246
msgid "Comparison between Total and Optimal lengths"
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:359
+#: ../../build/docs/un_sdg/sdg7-energy.rst:248
msgid ""
"Total lengths of the network and the minimum spanning tree can be "
"compared to see the difference between both. To do the same, follow the "
"steps below:"
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:363
-msgid "Exercise 11: Compute total length of material required in km"
+#: ../../build/docs/un_sdg/sdg7-energy.rst:252
+msgid "Exercise 4: Compute total length of material required in km"
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:364
+#: ../../build/docs/un_sdg/sdg7-energy.rst:254
msgid ""
"Compute the total length of the minimum spanning tree which is an "
"estimate of the total length of material required."
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:373
-#: ../../build/docs/un_sdg/sdg7-energy.rst:389
-msgid "``(length_m)/1000`` is used to fine the length in kilometres"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:377
-msgid ":ref:`un_sdg/appendix:**Exercise:** 11 (**Chapter:** SDG 7)`"
+#: ../../build/docs/un_sdg/sdg7-energy.rst:268
+msgid "Exercise 5: Compute total length of roads"
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:380
-msgid "Exercise 12: Compute total length of roads"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:381
+#: ../../build/docs/un_sdg/sdg7-energy.rst:270
msgid "Compute the total length of the road network of the given area.."
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:391
-msgid "For this area we are getting following outputs:"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:393
-msgid "Total Road Length: ``55.68 km``"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:394
-msgid "Optimal Network Length: ``29.89 km``"
+#: ../../build/docs/un_sdg/sdg7-energy.rst:281
+msgid ""
+"-For this area we are getting following outputs: - -* Total Road Length: "
+"``55.68 km`` -* Optimal Network Length: ``29.89 km``"
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:396
+#: ../../build/docs/un_sdg/sdg7-energy.rst:286
msgid ""
"Length of minimum spanning tree is about half of the length of total road"
" network."
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:400
-msgid ":ref:`un_sdg/appendix:**Exercise:** 12 (**Chapter:** SDG 7)`"
-msgstr ""
-
-#: ../../build/docs/un_sdg/sdg7-energy.rst:403
+#: ../../build/docs/un_sdg/sdg7-energy.rst:289
msgid "Further possible extensions to the exercise"
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:404
-msgid "Finding the optimal network of roads such that it reaches every building"
+#: ../../build/docs/un_sdg/sdg7-energy.rst:291
+msgid "Find the optimal network of roads such that it reaches every building"
msgstr ""
-#: ../../build/docs/un_sdg/sdg7-energy.rst:405
-msgid "Finding the optimal number and locations of Electricity Transformers"
+#: ../../build/docs/un_sdg/sdg7-energy.rst:292
+msgid "Find the optimal number and locations of Electricity Transformers"
msgstr ""
diff --git a/locale/es/LC_MESSAGES/advanced/chapter-12.po b/locale/es/LC_MESSAGES/advanced/chapter-12.po
index 56ddfe47d..b606524ec 100644
--- a/locale/es/LC_MESSAGES/advanced/chapter-12.po
+++ b/locale/es/LC_MESSAGES/advanced/chapter-12.po
@@ -8,10 +8,10 @@
# Vicky Vergara , 2022
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-04 09:41-0600\n"
-"PO-Revision-Date: 2024-03-19 05:57+0000\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
+"PO-Revision-Date: 2024-12-16 19:42+0000\n"
"Last-Translator: Celia Virginia Vergara Castillo \n"
"Language-Team: Spanish \n"
@@ -20,8 +20,8 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.3\n"
-"Generated-By: Babel 2.9.1\n"
+"X-Generator: Weblate 5.4.3\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/advanced/chapter-12.rst:11
msgid "Create a Network Topology"
@@ -157,8 +157,9 @@ msgid ""
msgstr ""
"Asegurarse de que los datos proporcionan una correcta `Red Topológica de "
"ruteo` que consta de información sobre los identificadores de origen y "
-"destino para cada vínculo de carretera. Los resultados anteriores muestran "
-"que la topología de red no tiene ninguna información de origen y destino."
+"destino para cada vínculo de carretera. Los resultados anteriores "
+"muestran que la topología de red no tiene ninguna información de origen y"
+" destino."
#: ../../build/docs/advanced/chapter-12.rst:89
msgid "Creation of the `Routing Network Topology` is necessary."
@@ -207,16 +208,16 @@ msgid ""
"For additional information see `pgr_createTopology "
"`_."
msgstr ""
-"Para obtener más información, consultar `pgr_createTopology `_."
+"Para obtener más información, consultar `pgr_createTopology "
+"`_."
#: ../../build/docs/advanced/chapter-12.rst:112
msgid ""
"First add source and target column, then run the ``pgr_createTopology`` "
"function ... and wait."
msgstr ""
-"Primero, agregar la columna de origen y destino y, a continuación, ejecutar "
-"la función ``pgr_createTopology`` ... esperar."
+"Primero, agregar la columna de origen y destino y, a continuación, "
+"ejecutar la función ``pgr_createTopology`` ... esperar."
#: ../../build/docs/advanced/chapter-12.rst:115
msgid "Depending on the network size this process may take from minutes to hours."
@@ -288,17 +289,19 @@ msgstr "Las columnas adicionales son para analizar la topología."
#: ../../build/docs/advanced/chapter-12.rst:165
msgid ""
-"Now we are ready for our first routing query with "
-":ref:`basic/pedestrian:pgr_dijkstra`"
+"Now we are ready for our first routing query with `pgr_dijkstra "
+"`__ or any other "
+"pgRouting query."
msgstr ""
-"Ahora estamos listos para nuestra primera consulta de enrutamiento con "
-":ref:`basic/pedestrian:pgr_dijkstra`"
+"Ahora estamos listos para nuestra primera consulta de ruteo con `"
+"pgr_dijkstra `__ o "
+"cualquier otra función de pgRouting."
-#: ../../build/docs/advanced/chapter-12.rst:170
+#: ../../build/docs/advanced/chapter-12.rst:172
msgid "Analyze and Adjust the Routing Network Topology"
msgstr "Analizar y ajustar la Topología de Red de Ruteo"
-#: ../../build/docs/advanced/chapter-12.rst:172
+#: ../../build/docs/advanced/chapter-12.rst:174
msgid ""
"Analyzing the topology with `pgr_analyzeGraph "
"`_:"
@@ -306,19 +309,19 @@ msgstr ""
"Analizando la topología con `pgr_analyzeGraph "
"`_:"
-#: ../../build/docs/advanced/chapter-12.rst:179
+#: ../../build/docs/advanced/chapter-12.rst:181
msgid "Adjusting the topology is not an easy task:"
msgstr "Ajustar la topología no es una tarea fácil:"
-#: ../../build/docs/advanced/chapter-12.rst:181
+#: ../../build/docs/advanced/chapter-12.rst:183
msgid "Is an isolated segment an error in the data?"
msgstr "¿Es un segmento aislado un error en los datos?"
-#: ../../build/docs/advanced/chapter-12.rst:182
+#: ../../build/docs/advanced/chapter-12.rst:184
msgid "Is an isolated segment because its on the edge of the bounding box?"
msgstr "¿Es un segmento aislado porque está en el borde del cuadro delimitador?"
-#: ../../build/docs/advanced/chapter-12.rst:183
+#: ../../build/docs/advanced/chapter-12.rst:185
msgid ""
"Do the potential gaps found near dead ends because the tolerance was too "
"small?"
@@ -326,21 +329,21 @@ msgstr ""
"¿Las brechas potenciales encontradas cerca de los sin salida porque la "
"tolerancia era demasiado pequeña?"
-#: ../../build/docs/advanced/chapter-12.rst:185
+#: ../../build/docs/advanced/chapter-12.rst:187
msgid "Are the intersections real intersections and need to be nodded?"
msgstr ""
"¿Las intersecciones son verdaderas intersecciones y necesitan ser "
"admitidas?"
-#: ../../build/docs/advanced/chapter-12.rst:186
+#: ../../build/docs/advanced/chapter-12.rst:188
msgid "Are the intersections bridges or tunnels and do not need to be nodded?"
msgstr "¿Las intersecciones son puentes o túneles y no necesitan ser admitidos?"
-#: ../../build/docs/advanced/chapter-12.rst:188
+#: ../../build/docs/advanced/chapter-12.rst:190
msgid "Depending on the application some adjustments need to be made."
msgstr "Dependiendo de la aplicación es necesario realizar algunos ajustes."
-#: ../../build/docs/advanced/chapter-12.rst:190
+#: ../../build/docs/advanced/chapter-12.rst:192
msgid ""
"Some `topology manipulation `_ functions help to detect and fix some of the "
diff --git a/locale/es/LC_MESSAGES/appendix/appendix-2.po b/locale/es/LC_MESSAGES/appendix/appendix-2.po
index 50e745c33..27e8bfec1 100644
--- a/locale/es/LC_MESSAGES/appendix/appendix-2.po
+++ b/locale/es/LC_MESSAGES/appendix/appendix-2.po
@@ -3,26 +3,25 @@
# This file is distributed under the same license as the Workshop FOSS4G
# Argentina package.
# FIRST AUTHOR , 2021.
-#
+#
# Translators:
# Vicky Vergara , 2022
-#
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-10 17:38+0000\n"
-"PO-Revision-Date: 2024-03-19 05:57+0000\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
+"PO-Revision-Date: 2024-12-16 19:42+0000\n"
"Last-Translator: Celia Virginia Vergara Castillo \n"
"Language-Team: Spanish \n"
"Language: es\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.3\n"
-"Generated-By: Babel 2.9.1\n"
+"X-Generator: Weblate 5.4.3\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/appendix/appendix-2.rst:11
msgid "Appendix: Installation"
@@ -43,12 +42,12 @@ msgstr "Un editor como Gedit, Medit o similar"
#: ../../build/docs/appendix/appendix-2.rst:17
msgid ""
"`Geoserver "
-"`__ for the "
-"routing application"
+"`__ for "
+"the routing application"
msgstr ""
"`Geoserver "
-"`__ para la "
-"aplicación de ruteo"
+"`__ para "
+"la aplicación de ruteo"
#: ../../build/docs/appendix/appendix-2.rst:19
msgid "Internet connection"
@@ -64,11 +63,11 @@ msgstr ""
#: ../../build/docs/appendix/appendix-2.rst:23
msgid ""
-"The following reference is a quick summary of how to install it on your own "
-"computer running Ubuntu 14.04 or later."
+"The following reference is a quick summary of how to install it on your "
+"own computer running Ubuntu 14.04 or later."
msgstr ""
-"La siguiente referencia es un resumen de cómo instalarlo en su computadora "
-"ejecutando Ubuntu 14.04 o posterior."
+"La siguiente referencia es un resumen de cómo instalarlo en su "
+"computadora ejecutando Ubuntu 14.04 o posterior."
#: ../../build/docs/appendix/appendix-2.rst:27
msgid "Ubuntu"
@@ -79,8 +78,9 @@ msgid ""
"pgRouting on Ubuntu can be installed using packages from a `PostgreSQL "
"repository `__:"
msgstr ""
-"pgRouting en Ubuntu se puede instalar utilizando paquetes de un `repositorio "
-"de PostgreSQL `__:"
+"pgRouting en Ubuntu se puede instalar utilizando paquetes de un "
+"`repositorio de PostgreSQL "
+"`__:"
#: ../../build/docs/appendix/appendix-2.rst:31
msgid "Using a terminal window:"
@@ -88,8 +88,8 @@ msgstr "Usando una ventana de terminal:"
#: ../../build/docs/appendix/appendix-2.rst:46
msgid ""
-"This will also install all required packages such as PostgreSQL and PostGIS "
-"if not installed yet."
+"This will also install all required packages such as PostgreSQL and "
+"PostGIS if not installed yet."
msgstr ""
"Esto también instalará todos los paquetes necesarios como PostgreSQL y "
"PostGIS si todavía no están instalados."
@@ -101,13 +101,13 @@ msgstr "Para estar al día con los cambios y mejoras"
#: ../../build/docs/appendix/appendix-2.rst:54
msgid ""
"To avoid permission denied errors for local users you can set connection "
-"method to ``trust`` in ``/etc/postgresql//main/pg_hba.conf`` and "
-"restart PostgreSQL server with ``sudo service postgresql restart``."
+"method to ``trust`` in ``/etc/postgresql//main/pg_hba.conf`` and"
+" restart PostgreSQL server with ``sudo service postgresql restart``."
msgstr ""
"Para evitar errores de permiso denegado para los usuarios locales, se puede "
-"ajustar el método de conexión a ``trust`` en "
-"``/etc/postgresql//main/pg_hba.conf`` y reiniciar el servidor "
-"PostgreSQL con ``sudo service postgresql restart``."
+"ajustar el método de conexión a ``trust`` en ``/etc/postgresql//"
+"main/pg_hba.conf`` y reiniciar el servidor PostgreSQL con ``sudo service "
+"postgresql restart``."
#: ../../build/docs/appendix/appendix-2.rst:58
msgid "Following the example with PostgreSQL 10:"
diff --git a/locale/es/LC_MESSAGES/appendix/appendix-3.po b/locale/es/LC_MESSAGES/appendix/appendix-3.po
index 30137b366..d8611bb63 100644
--- a/locale/es/LC_MESSAGES/appendix/appendix-3.po
+++ b/locale/es/LC_MESSAGES/appendix/appendix-3.po
@@ -3,27 +3,26 @@
# This file is distributed under the same license as the Workshop FOSS4G
# Argentina package.
# FIRST AUTHOR , 2021.
-#
+#
# Translators:
# Vicky Vergara , 2021
# MarPetra , 2021
-#
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-10 17:38+0000\n"
-"PO-Revision-Date: 2024-03-19 05:57+0000\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
+"PO-Revision-Date: 2024-12-16 19:42+0000\n"
"Last-Translator: Celia Virginia Vergara Castillo \n"
"Language-Team: Spanish \n"
"Language: es\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.3\n"
-"Generated-By: Babel 2.9.1\n"
+"X-Generator: Weblate 5.4.3\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/appendix/appendix-3.rst:13
msgid "Appendix: osm2pgrouting Import Tool"
@@ -31,14 +30,15 @@ msgstr "Apéndice: Herramienta de Importación osm2pgrouting"
#: ../../build/docs/appendix/appendix-3.rst:15
msgid ""
-"**osm2pgrouting** is a command line tool that allows to import OpenStreetMap"
-" data into a pgRouting database. It builds the routing network topology "
-"automatically and creates tables for feature types and road classes."
+"**osm2pgrouting** is a command line tool that allows to import "
+"OpenStreetMap data into a pgRouting database. It builds the routing "
+"network topology automatically and creates tables for feature types and "
+"road classes."
msgstr ""
"**osm2pgrouting** es una herramienta de línea de comandos que permite "
"importar datos de OpenStreetMap a una base de datos pgRouting. Crea "
-"automáticamente la topología de red de ruteo y crea tablas para atributos de "
-"tipos y clases de caminos."
+"automáticamente la topología de red de ruteo y crea tablas para atributos"
+" de tipos y clases de caminos."
#: ../../build/docs/appendix/appendix-3.rst:19
msgid "Website: |osm2pgrouting-web|"
@@ -50,19 +50,19 @@ msgstr "Documentación: |osm2pgrouting-wiki|"
#: ../../build/docs/appendix/appendix-3.rst:23
msgid ""
-"There are some limitations, especially regarding the network size. The way "
-"to handle large data sets is to current version of osm2pgrouting needs to "
-"load all data into memory, which makes it fast but also requires a lot or "
-"memory for large datasets. An alternative tool to osm2pgrouting without the "
-"network size limitation is **osm2po** (https://osm2po.de). It's available "
-"under \"Freeware License\"."
+"There are some limitations, especially regarding the network size. The "
+"way to handle large data sets is to current version of osm2pgrouting "
+"needs to load all data into memory, which makes it fast but also requires"
+" a lot or memory for large datasets. An alternative tool to osm2pgrouting"
+" without the network size limitation is **osm2po** (https://osm2po.de). "
+"It's available under \"Freeware License\"."
msgstr ""
-"Hay algunas limitaciones, especialmente con respecto al tamaño de la red. "
-"La forma de manejar conjuntos de datos grandes es la versión actual de "
+"Hay algunas limitaciones, especialmente con respecto al tamaño de la red. La "
+"forma de manejar conjuntos de datos grandes es la versión actual de "
"osm2pgrouting necesita cargar todos los datos en la memoria, lo que lo hace "
-"rápido, pero también requiere mucha memoria para grandes conjuntos de datos."
-" Una herramienta alternativa a osm2pgrouting sin la limitación del tamaño de"
-" la red es **osm2po** (https://osm2po.de). Está disponible en \"Freeware "
+"rápido, pero también requiere mucha memoria para grandes conjuntos de datos. "
+"Una herramienta alternativa a osm2pgrouting sin la limitación del tamaño de "
+"la red es **osm2po** (https://osm2po.de). Está disponible en \"Freeware "
"License\"."
#: ../../build/docs/appendix/appendix-3.rst:30
@@ -71,10 +71,10 @@ msgid ""
"needed for routing. Also the format is not suitable for pgRouting out-of-"
"the-box. An ``.osm`` XML file consists of three major feature types:"
msgstr ""
-"Los datos sin procesar de OpenStreetMap contienen muchas más características "
-"e información de la necesaria para el enrutamiento. Además, el formato no es "
-"adecuado para usar automáticamente en pgRouting. Un archivo XML ``.osm`` "
-"consta de tres tipos de atributos principales:"
+"Los datos sin procesar de OpenStreetMap contienen muchas más "
+"características e información de la necesaria para el enrutamiento. "
+"Además, el formato no es adecuado para usar automáticamente en pgRouting."
+" Un archivo XML ``.osm`` consta de tres tipos de atributos principales:"
#: ../../build/docs/appendix/appendix-3.rst:34
msgid "nodes"
@@ -102,13 +102,13 @@ msgstr "Un ejemplo de archivo osm tiene este aspecto:"
#: ../../build/docs/appendix/appendix-3.rst:55
msgid ""
-"The detailed description of all possible OpenStretMap types and classes are "
-"described as `map features "
+"The detailed description of all possible OpenStretMap types and classes "
+"are described as `map features "
"`__"
msgstr ""
"La descripción detallada de todos los tipos y clases de OpenStretMap "
-"posibles se describen como `características del mapa `__"
+"posibles se describen como `características del mapa "
+"`__"
#: ../../build/docs/appendix/appendix-3.rst:59
msgid "mapconfig.xml"
@@ -116,28 +116,29 @@ msgstr "mapconfig.xml"
#: ../../build/docs/appendix/appendix-3.rst:60
msgid ""
-"When using osm2pgrouting, we take only nodes and ways of types and classes "
-"specified in a ``mapconfig.xml`` file that will be imported into the routing"
-" database:"
+"When using osm2pgrouting, we take only nodes and ways of types and "
+"classes specified in a ``mapconfig.xml`` file that will be imported into "
+"the routing database:"
msgstr ""
-"Cuando se utiliza osm2pgrouting, solo tomamos nodos y caminos y las clases "
-"especificados en un archivo ``mapconfig.xml`` que se importará a la base de "
-"datos de ruteo:"
+"Cuando se utiliza osm2pgrouting, solo tomamos nodos y caminos y las "
+"clases especificados en un archivo ``mapconfig.xml`` que se importará a "
+"la base de datos de ruteo:"
#: ../../build/docs/appendix/appendix-3.rst:67
msgid ""
-"The default ``mapconfig.xml`` is installed in ``/usr/share/osm2pgrouting/``."
+"The default ``mapconfig.xml`` is installed in "
+"``/usr/share/osm2pgrouting/``."
msgstr ""
"Por defecto, ``mapconfig.xml`` es instalado en "
"``/usr/share/osm2pgrouting/``."
#: ../../build/docs/appendix/appendix-3.rst:69
msgid ""
-"osm2pgrouting creates more tables and imports more attributes than we will "
-"use in this workshop."
+"osm2pgrouting creates more tables and imports more attributes than we "
+"will use in this workshop."
msgstr ""
-"osm2pgrouting crea más tablas e importa más atributos de los que usaremos en"
-" este taller."
+"osm2pgrouting crea más tablas e importa más atributos de los que usaremos"
+" en este taller."
#: ../../build/docs/appendix/appendix-3.rst:71
msgid "See the description of the tables the |osm2pgrouting-wiki|"
diff --git a/locale/es/LC_MESSAGES/appendix/appendix-4.po b/locale/es/LC_MESSAGES/appendix/appendix-4.po
index 282364287..b758304c4 100644
--- a/locale/es/LC_MESSAGES/appendix/appendix-4.po
+++ b/locale/es/LC_MESSAGES/appendix/appendix-4.po
@@ -10,7 +10,7 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-10-10 17:38+0000\n"
"PO-Revision-Date: 2021-10-10 17:39+0000\n"
diff --git a/locale/es/LC_MESSAGES/basic/appendix.po b/locale/es/LC_MESSAGES/basic/appendix.po
deleted file mode 100644
index 8a74bccd2..000000000
--- a/locale/es/LC_MESSAGES/basic/appendix.po
+++ /dev/null
@@ -1,362 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2021 Daniel Kastl, Vicky Vergara
-# This file is distributed under the same license as the Workshop FOSS4G
-# Argentina package.
-# FIRST AUTHOR , 2021.
-#
-# Translators:
-# Manuel Retamozo , 2021
-# MarPetra , 2021
-# Vicky Vergara , 2022
-msgid ""
-msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-03 13:41-0600\n"
-"PO-Revision-Date: 2024-03-22 16:47+0000\n"
-"Last-Translator: Celia Virginia Vergara Castillo \n"
-"Language-Team: Spanish \n"
-"Language: es\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.3\n"
-"Generated-By: Babel 2.9.1\n"
-
-#: ../../build/docs/basic/appendix.rst:11
-msgid "Appendix: Basic workshop solutions"
-msgstr "Apéndice: Soluciones básicas para el taller"
-
-#: ../../build/docs/basic/appendix.rst:14
-msgid "Solutions to :doc:`pedestrian`"
-msgstr "Soluciones a :doc:`pedestrian`"
-
-#: ../../build/docs/basic/appendix.rst:17
-msgid "**Exercise**: 1 (**Chapter:** Pedestrian)"
-msgstr "**Ejercicio**: 1 (**Capítulo:** Peatón)"
-
-#: ../../build/docs/basic/appendix.rst:19
-msgid ":ref:`basic/pedestrian:Exercise 1: Single pedestrian routing`"
-msgstr ":ref:`basic/pedestrian:Exercise 1: Single pedestrian routing`"
-
-#: ../../build/docs/basic/appendix.rst:25
-msgid "**Exercise**: 2 (**Chapter:** Pedestrian)"
-msgstr "**Ejercicio**: 2 (**Capítulo:** Peatón)"
-
-#: ../../build/docs/basic/appendix.rst:27
-msgid ""
-":ref:`basic/pedestrian:Exercise 2: Many Pedestrians going to the same "
-"destination`"
-msgstr ""
-":ref:`basic/pedestrian:Exercise 2: Many Pedestrians going to the same "
-"destination`"
-
-#: ../../build/docs/basic/appendix.rst:33
-msgid "**Exercise**: 3 (**Chapter:** Pedestrian)"
-msgstr "**Ejercicio**: 3 (**Capítulo:** Peatón)"
-
-#: ../../build/docs/basic/appendix.rst:35
-msgid ""
-":ref:`basic/pedestrian:Exercise 3: Many Pedestrians departing from the "
-"same location`"
-msgstr ""
-":ref:`basic/pedestrian:Exercise 3: Many Pedestrians departing from the "
-"same location`"
-
-#: ../../build/docs/basic/appendix.rst:41
-msgid "**Exercise**: 4 (**Chapter:** Pedestrian)"
-msgstr "**Ejercicio**: 4 (**Capítulo:** Peatón)"
-
-#: ../../build/docs/basic/appendix.rst:43
-msgid ""
-":ref:`basic/pedestrian:Exercise 4: Many Pedestrians going to different "
-"destinations`"
-msgstr ""
-":ref:`basic/pedestrian:Exercise 4: Many Pedestrians going to different "
-"destinations`"
-
-#: ../../build/docs/basic/appendix.rst:49
-msgid "**Exercise**: 5 (**Chapter:** Pedestrian)"
-msgstr "**Ejercicio**: 5 (**Capítulo:** Peatón)"
-
-#: ../../build/docs/basic/appendix.rst:51
-msgid ""
-":ref:`basic/pedestrian:Exercise 5: Many Pedestrians going to different "
-"destinations returning aggregate costs`"
-msgstr ""
-":ref:`basic/pedestrian:Ejercicio 5: Muchos Peatones que van a diferentes "
-"destinos devolviendo costos agregados`"
-
-#: ../../build/docs/basic/appendix.rst:57
-msgid "**Exercise**: 6 (**Chapter:** Pedestrian)"
-msgstr "**Ejercicio**: 6 (**Capítulo:** Peatón)"
-
-#: ../../build/docs/basic/appendix.rst:59
-msgid ""
-":ref:`basic/pedestrian:Exercise 6: Many Pedestrians going to different "
-"destinations summarizing the total costs per departure`"
-msgstr ""
-":ref:`basic/pedestrian:Exercise 6: Many Pedestrians going to different "
-"destinations summarizing the total costs per departure`"
-
-#: ../../build/docs/basic/appendix.rst:65
-msgid "Solutions to :doc:`vehicle`"
-msgstr "Soluciones a :doc:`vehicle`"
-
-#: ../../build/docs/basic/appendix.rst:68
-msgid "**Exercise**: 1 (**Chapter:** Vehicle)"
-msgstr "**Ejercicio**: 1 (**Capítulo:** vehículo)"
-
-#: ../../build/docs/basic/appendix.rst:70
-msgid ":ref:`basic/vehicle:Exercise 1: Vehicle routing - going`"
-msgstr ":ref:`basic/vehicle:Exercise 1: Vehicle routing - going`"
-
-#: ../../build/docs/basic/appendix.rst:76
-msgid "**Exercise**: 2 (**Chapter:** Vehicle)"
-msgstr "**Ejercicio**: 2 (**Capítulo:** Vehículo)"
-
-#: ../../build/docs/basic/appendix.rst:78
-msgid ":ref:`basic/vehicle:Exercise 2: Vehicle routing - returning`"
-msgstr ":ref:`basic/vehicle:Exercise 2: Vehicle routing - returning`"
-
-#: ../../build/docs/basic/appendix.rst:84
-msgid "**Exercise**: 3 (**Chapter:** Vehicle)"
-msgstr "**Ejercicio**: 3 (**Capítulo:** Vehículo)"
-
-#: ../../build/docs/basic/appendix.rst:86
-msgid ":ref:`basic/vehicle:Exercise 3: Vehicle routing when time is money`"
-msgstr ":ref:`basic/vehicle:Exercise 3: Vehicle routing when time is money`"
-
-#: ../../build/docs/basic/appendix.rst:92
-msgid "**Exercise**: 4 (**Chapter:** Vehicle)"
-msgstr "**Ejercicio**: 4 (**Capítulo:** Vehículo)"
-
-#: ../../build/docs/basic/appendix.rst:94
-msgid ":ref:`basic/vehicle:Exercise 4: Vehicle routing without penalization`"
-msgstr ":ref:`basic/vehicle:Exercise 4: Vehicle routing without penalization`"
-
-#: ../../build/docs/basic/appendix.rst:100
-msgid "**Exercise**: 5 (**Chapter:** Vehicle)"
-msgstr "**Ejercicio**: 5 (**Capítulo:** Vehículo)"
-
-#: ../../build/docs/basic/appendix.rst:102
-msgid ":ref:`basic/vehicle:Exercise 5: Vehicle routing with penalization`"
-msgstr ":ref:`basic/vehicle:Exercise 5: Vehicle routing with penalization`"
-
-#: ../../build/docs/basic/appendix.rst:109
-msgid "Solutions to :doc:`sql_function`"
-msgstr "Soluciones a :doc:`sql_function`"
-
-#: ../../build/docs/basic/appendix.rst:113
-msgid "**Exercise**: 1 (**Chapter:** SQL)"
-msgstr "**Ejercicio**: 1 (**Capítulo:** SQL)"
-
-#: ../../build/docs/basic/appendix.rst:115
-msgid ":ref:`basic/sql_function:Exercise 1: Creating a view for routing`"
-msgstr ":ref:`basic/sql_function:Exercise 1: Creating a view for routing`"
-
-#: ../../build/docs/basic/appendix.rst:121
-msgid "**Exercise**: 2 (**Chapter:** SQL)"
-msgstr "**Ejercicio**: 2 (**Capítulo:** SQL)"
-
-#: ../../build/docs/basic/appendix.rst:123
-msgid ""
-":ref:`basic/sql_function:Exercise 2: Limiting the road network within an "
-"area`"
-msgstr ""
-":ref:`basic/sql_function:Exercise 2: Limiting the road network within an "
-"area`"
-
-#: ../../build/docs/basic/appendix.rst:128
-msgid "**Exercise**: 3 (**Chapter:** SQL)"
-msgstr "**Ejercicio**: 3 (**Capítulo:** SQL)"
-
-#: ../../build/docs/basic/appendix.rst:130
-msgid ""
-":ref:`basic/sql_function:Exercise 3: Creating a materialized view for "
-"routing pedestrians`"
-msgstr ""
-":ref:`basic/sql_function:Exercise 3: Creating a materialized view for "
-"routing pedestrians`"
-
-#: ../../build/docs/basic/appendix.rst:136
-msgid "**Exercise**: 4 (**Chapter:** SQL)"
-msgstr "**Ejercicio**: 4 (**Capítulo:** SQL)"
-
-#: ../../build/docs/basic/appendix.rst:138
-msgid ":ref:`basic/sql_function:Exercise 4: Testing the views for routing`"
-msgstr ":ref:`basic/sql_function:Exercise 4: Testing the views for routing`"
-
-#: ../../build/docs/basic/appendix.rst:145
-msgid "**Exercise**: 5 (**Chapter:** SQL)"
-msgstr "**Ejercicio**: 5 (**Capítulo:** SQL)"
-
-#: ../../build/docs/basic/appendix.rst:147
-msgid ":ref:`basic/sql_function:Exercise 5: Get additional information`"
-msgstr ":ref:`basic/sql_function:Exercise 5: Get additional information`"
-
-#: ../../build/docs/basic/appendix.rst:153
-msgid "**Exercise**: 6 (**Chapter:** SQL)"
-msgstr "**Ejercicio**: 6 (**Capítulo:** SQL)"
-
-#: ../../build/docs/basic/appendix.rst:155
-msgid ":ref:`basic/sql_function:Exercise 6: Route geometry (human readable)`"
-msgstr ":ref:`basic/sql_function:Exercise 6: Route geometry (human readable)`"
-
-#: ../../build/docs/basic/appendix.rst:161
-msgid "**Exercise**: 7 (**Chapter:** SQL)"
-msgstr "**Ejercicio**: 7 (**Capítulo:** SQL)"
-
-#: ../../build/docs/basic/appendix.rst:163
-msgid ":ref:`basic/sql_function:Exercise 7: Route geometry (binary format)`"
-msgstr ":ref:`basic/sql_function:Exercise 7: Route geometry (binary format)`"
-
-#: ../../build/docs/basic/appendix.rst:169
-msgid "**Exercise**: 8 (**Chapter:** SQL)"
-msgstr "**Ejercicio**: 8 (**Capítulo:** SQL)"
-
-#: ../../build/docs/basic/appendix.rst:171
-msgid ":ref:`basic/sql_function:Exercise 8: Route geometry directionality`"
-msgstr ":ref:`basic/sql_function:Exercise 8: Route geometry directionality`"
-
-#: ../../build/docs/basic/appendix.rst:177
-msgid "**Exercise**: 9 (**Chapter:** SQL)"
-msgstr "**Ejercicio**: 9 (**Capítulo:** SQL)"
-
-#: ../../build/docs/basic/appendix.rst:179
-msgid ":ref:`basic/sql_function:Exercise 9: Using the geometry`"
-msgstr ":ref:`basic/sql_function:Exercise 9: Using the geometry`"
-
-#: ../../build/docs/basic/appendix.rst:185
-msgid "**Exercise**: 10 (**Chapter:** SQL)"
-msgstr "**Ejercicio**: 10 (**Capítulo:** SQL)"
-
-#: ../../build/docs/basic/appendix.rst:187
-msgid ":ref:`basic/sql_function:Exercise 10: Function for an application`"
-msgstr ":ref:`basic/sql_function:Exercise 10: Function for an application`"
-
-#: ../../build/docs/basic/appendix.rst:192
-msgid "**Exercise**: 11 (**Chapter:** SQL)"
-msgstr "**Ejercicio**: 11 (**Capítulo:** SQL)"
-
-#: ../../build/docs/basic/appendix.rst:194
-msgid ":ref:`basic/sql_function:Exercise 11: Using the function`"
-msgstr ":ref:`basic/sql_function:Exercise 11: Using the function`"
-
-#: ../../build/docs/basic/appendix.rst:200
-msgid "Solutions to :doc:`plpgsql_function`"
-msgstr "Soluciones a :doc:`plpgsql_function`"
-
-#: ../../build/docs/basic/appendix.rst:203
-msgid "**Exercise**: 1 (**Chapter:** pl/pgsql)"
-msgstr "**Ejercicio**: 1 (**Capítulo:** pl/pgsql)"
-
-#: ../../build/docs/basic/appendix.rst:205
-msgid ":ref:`basic/plpgsql_function:Exercise 1: Number of Vertices`"
-msgstr ":ref:`basic/plpgsql_function:Exercise 1: Number of Vertices`"
-
-#: ../../build/docs/basic/appendix.rst:207
-#: ../../build/docs/basic/appendix.rst:246
-#: ../../build/docs/basic/appendix.rst:275
-msgid "For ``ways_vertices_pgr``:"
-msgstr "Para ``ways_vertices_pgr``:"
-
-#: ../../build/docs/basic/appendix.rst:211
-#: ../../build/docs/basic/appendix.rst:228
-msgid "For ``vehicle_net``:"
-msgstr "Para ``vehicle_net``:"
-
-#: ../../build/docs/basic/appendix.rst:215
-#: ../../build/docs/basic/appendix.rst:232
-msgid "For ``taxi_net``:"
-msgstr "Para ``taxi_net``:"
-
-#: ../../build/docs/basic/appendix.rst:219
-#: ../../build/docs/basic/appendix.rst:236
-msgid "For ``walk_net``:"
-msgstr "Para ``walk_net``:"
-
-#: ../../build/docs/basic/appendix.rst:224
-msgid "**Exercise**: 2 (**Chapter:** pl/pgsql)"
-msgstr "**Ejercicio**: 2 (**Capítulo:** pl/pgsql)"
-
-#: ../../build/docs/basic/appendix.rst:226
-msgid ":ref:`basic/plpgsql_function:Exercise 2: Vertices on a table`"
-msgstr ":ref:`basic/plpgsql_function:Exercise 2: Vertices on a table`"
-
-#: ../../build/docs/basic/appendix.rst:242
-msgid "**Exercise**: 3 (**Chapter:** pl/pgsql)"
-msgstr "**Ejercicio**: 3 (**Capítulo:** pl/pgsql)"
-
-#: ../../build/docs/basic/appendix.rst:244
-msgid ":ref:`basic/plpgsql_function:Exercise 3: Nearest Vertex`"
-msgstr ":ref:`basic/plpgsql_function:Exercise 3: Nearest Vertex`"
-
-#: ../../build/docs/basic/appendix.rst:250
-#: ../../build/docs/basic/appendix.rst:279
-msgid "For ``vehicle_net_vertices_pgr``:"
-msgstr "Para``vehicle_net_vertices_pgr``:"
-
-#: ../../build/docs/basic/appendix.rst:254
-#: ../../build/docs/basic/appendix.rst:283
-msgid "For ``taxi_net_vertices_pgr``:"
-msgstr "Para ``taxi_net_vertices_pgr``:"
-
-#: ../../build/docs/basic/appendix.rst:258
-#: ../../build/docs/basic/appendix.rst:287
-msgid "For ``walk_net_vertices_pgr``:"
-msgstr "Para ``walk_net_vertices_pgr``:"
-
-#: ../../build/docs/basic/appendix.rst:264
-msgid "**Exercise**: 4 (**Chapter:** pl/pgsql)"
-msgstr "**Ejercicio**: 4 (**Capítulo:** pl/pgsql)"
-
-#: ../../build/docs/basic/appendix.rst:266
-msgid ":ref:`basic/plpgsql_function:Exercise 4: Nearest vertex function`"
-msgstr ":ref:`basic/plpgsql_function:Exercise 4: Nearest vertex function`"
-
-#: ../../build/docs/basic/appendix.rst:271
-msgid "**Exercise**: 5 (**Chapter:** pl/pgsql)"
-msgstr "**Ejercicio**: 5 (**Capítulo:** pl/pgsql)"
-
-#: ../../build/docs/basic/appendix.rst:273
-msgid ":ref:`basic/plpgsql_function:Exercise 5: Test nearest vertex function`"
-msgstr ":ref:`basic/plpgsql_function:Exercise 5: Test nearest vertex function`"
-
-#: ../../build/docs/basic/appendix.rst:293
-msgid "**Exercise**: 6 (**Chapter:** pl/pgsql)"
-msgstr "**Ejercicio**: 6 (**Capítulo:** pl/pgsql)"
-
-#: ../../build/docs/basic/appendix.rst:295
-msgid ":ref:`basic/plpgsql_function:Exercise 6: Creating the main function`"
-msgstr ":ref:`basic/plpgsql_function:Exercise 6: Creating the main function`"
-
-#: ../../build/docs/basic/appendix.rst:300
-msgid "**Exercise**: 7 (**Chapter:** pl/pgsql)"
-msgstr "**Ejercicio**: 7 (**Capítulo:** pl/pgsql)"
-
-#: ../../build/docs/basic/appendix.rst:302
-msgid ":ref:`basic/plpgsql_function:Exercise 7: Using the main function`"
-msgstr ":ref:`basic/plpgsql_function:Exercise 7: Using the main function`"
-
-#: ../../build/docs/basic/appendix.rst:304
-msgid "For ``vehicle_net``"
-msgstr "Para ``vehicle_net``"
-
-#: ../../build/docs/basic/appendix.rst:308
-msgid "For ``taxi_net``"
-msgstr "Para ``taxi_net``"
-
-#: ../../build/docs/basic/appendix.rst:310
-msgid "The ``WARNING`` message:"
-msgstr "El mensaje ``ADVERTENCIA``:"
-
-#: ../../build/docs/basic/appendix.rst:315
-msgid "The query results:"
-msgstr "Los resultados de la consulta:"
-
-#: ../../build/docs/basic/appendix.rst:319
-msgid "For ``walk_net``"
-msgstr "Para ``walk_net``"
diff --git a/locale/es/LC_MESSAGES/basic/data.po b/locale/es/LC_MESSAGES/basic/data.po
index db024db8f..925de4a6c 100644
--- a/locale/es/LC_MESSAGES/basic/data.po
+++ b/locale/es/LC_MESSAGES/basic/data.po
@@ -10,10 +10,10 @@
# Vicky Vergara , 2022
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-08 16:17+0000\n"
-"PO-Revision-Date: 2024-03-22 16:47+0000\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
+"PO-Revision-Date: 2024-12-16 19:42+0000\n"
"Last-Translator: Celia Virginia Vergara Castillo \n"
"Language-Team: Spanish \n"
@@ -22,8 +22,8 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.3\n"
-"Generated-By: Babel 2.12.1\n"
+"X-Generator: Weblate 5.4.3\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/basic/data.rst:12
msgid "Prepare Data"
@@ -46,38 +46,44 @@ msgid "pgRouting is installed as extension. This requires:"
msgstr "pgRouting se instala como extensión. Esto requiere:"
#: ../../build/docs/basic/data.rst:27
-msgid "Supported PostgreSQL version"
-msgstr "Versión PostgreSQL compatible"
+msgid "PostgreSQL"
+msgstr "PostgreSQL"
#: ../../build/docs/basic/data.rst:28
-msgid "Supported PostGIS version"
-msgstr "Versión PostGIS compatible"
+msgid "PostGIS"
+msgstr "PostGIS"
#: ../../build/docs/basic/data.rst:30
msgid ""
"These requirements are met on OSGeoLive. When the required software is "
"installed, open a terminal window by pressing :code:`ctrl-alt-t` and "
-"follow the instructions. Information about installing OSGeoLive can be "
-"found on :doc:`../general-intro/osgeolive`."
+"follow the instructions."
msgstr ""
"Estos requisitos se cumplen en OSGeoLive. Cuando se instale el software "
-"necesario, abrir una ventana de terminal presionando :code:`ctrl-alt-t` y "
-"siguir las instrucciones. Se puede encontrar información sobre la "
-"instalación de OSGeoLive en :doc:`../general-intro/osgeolive`."
+"necesario, abrir una ventana de terminal presionando :code:`ctrl-alt-t` y"
+" siguir las instrucciones."
-#: ../../build/docs/basic/data.rst:33
+#: ../../build/docs/basic/data.rst:34
+msgid ""
+"Information about installing OSGeoLive can be found on :doc:`../general-"
+"intro/osgeolive`."
+msgstr ""
+"Puede encontrar información sobre la instalación de OSGeoLive en :doc"
+":`../general-intro/osgeolive`."
+
+#: ../../build/docs/basic/data.rst:37
msgid ""
"If OSGeoLive is not being used, please refer to the chapter's appendix to"
-" set up the user \"user\"."
+" set up the user ``user``."
msgstr ""
"Si OSGeoLive no se está utilizando, consulte el apéndice del capítulo "
-"para configurar el usuario \"user\"."
+"para configurar el usuario ``user``."
-#: ../../build/docs/basic/data.rst:36
+#: ../../build/docs/basic/data.rst:41
msgid "Create a pgRouting compatible database"
msgstr "Crear una base de datos compatible con pgRouting"
-#: ../../build/docs/basic/data.rst:38
+#: ../../build/docs/basic/data.rst:43
msgid ""
"Depending on the postgres configuration :code:`-U ` is needed on "
":code:`psql` commands"
@@ -85,57 +91,63 @@ msgstr ""
"Dependiendo de la configuración de postgres :code:`-U ` es "
"necesario en los comandos"
-#: ../../build/docs/basic/data.rst:47
+#: ../../build/docs/basic/data.rst:51
+msgid "To exit the database use ``\\q``"
+msgstr "Para salir de la base de datos utilizar ``\\q``"
+
+#: ../../build/docs/basic/data.rst:54
msgid "Get the Workshop Data"
msgstr "Obtenga los Datos del Taller"
-#: ../../build/docs/basic/data.rst:51
+#: ../../build/docs/basic/data.rst:58
msgid ""
"The pgRouting workshop will make use of OpenStreetMap data, which is "
-"already available on `OSGeoLive `_. This workshop "
-"will use the ``Prizren`` city data and is a snapshot of March 2023."
+"already available on `OSGeoLive `_. This workshop"
+" will use the ``Belém`` city data and is a snapshot of Sep 2024."
msgstr ""
"El taller pgRouting hará uso de los datos de OpenStreetMap, que ya están "
-"disponibles en `OSGeoLive `_. Este taller utilizará "
-"los datos de la ciudad de ``Prizren`` y es una instantánea de Marzo 2023."
+"disponibles en `OSGeoLive `_. Este taller "
+"utilizará los datos de la ciudad de ``Belém`` y es una instantánea de Sep"
+" 2024."
-#: ../../build/docs/basic/data.rst:56
+#: ../../build/docs/basic/data.rst:63
msgid "Getting the data"
msgstr "Obtención de los datos"
-#: ../../build/docs/basic/data.rst:59
+#: ../../build/docs/basic/data.rst:66
msgid "Option 1) When using OSGeoLive"
msgstr "Opción 1) Cuando esté usando OSGeoLive"
-#: ../../build/docs/basic/data.rst:61
-msgid "OSGeoLive comes with osm data from the city of Prizren."
-msgstr "OSGeoLive viene con datos de OSM de la ciudad de Prizren."
+#: ../../build/docs/basic/data.rst:68
+msgid "OSGeoLive comes with OSM data from the city of Belém."
+msgstr "OSGeoLive viene con datos de OSM de la ciudad de Belém."
-#: ../../build/docs/basic/data.rst:69
+#: ../../build/docs/basic/data.rst:76
msgid "Option 2) Download data form OSGeoLive website"
msgstr "Opción 2) Descargar datos de sitio web de OSGeoLive"
-#: ../../build/docs/basic/data.rst:71
+#: ../../build/docs/basic/data.rst:78
msgid "The exact same data can be found on the OSGeoLive download page."
msgstr ""
"Los mismos datos exactos se pueden encontrar en la página de descarga de "
"OSGeoLive."
-#: ../../build/docs/basic/data.rst:80
+#: ../../build/docs/basic/data.rst:86
msgid "Option 3) Download using Overpass XAPI"
msgstr "Opción 3) Descargar usando Overpass XAPI"
-#: ../../build/docs/basic/data.rst:82
+#: ../../build/docs/basic/data.rst:88
msgid ""
"The following downloads the latest OSM data on using the same area. Using"
" this data in the workshop can generate variations in the results, due to"
-" changes since March 2023."
+" changes since Sep 2024."
msgstr ""
-"A continuación se descargan los datos de OSM más recientes sobre el uso de "
-"la misma área. El uso de estos datos en el taller puede generar variaciones "
-"en los resultados, debido a los cambios desde Marzo 2023."
+"A continuación se descargan los datos de OSM más recientes sobre el uso "
+"de la misma área. El uso de estos datos en el taller puede generar "
+"variaciones en los resultados, debido a los cambios desde Septiembre de "
+"2024."
-#: ../../build/docs/basic/data.rst:92
+#: ../../build/docs/basic/data.rst:98
msgid ""
"More information about how to download OpenStreetMap data can be found in"
" https://wiki.openstreetmap.org/wiki/Downloading_data"
@@ -143,81 +155,81 @@ msgstr ""
"Puede encontrar más información sobre cómo descargar datos de "
"OpenStreetMap en https://wiki.openstreetmap.org/wiki/Downloading_data"
-#: ../../build/docs/basic/data.rst:95
+#: ../../build/docs/basic/data.rst:101
msgid ""
"An alternative for very large areas is to use the download services of "
-"`Geofabrik `_."
+"`Geofabrik `_."
msgstr ""
"Una alternativa para zonas muy grandes es utilizar los servicios de "
"descarga de `Geofabrik `_."
-#: ../../build/docs/basic/data.rst:100
+#: ../../build/docs/basic/data.rst:106
msgid "Upload data to the database"
msgstr "Cargar datos en la base de datos"
-#: ../../build/docs/basic/data.rst:102
+#: ../../build/docs/basic/data.rst:108
msgid ""
"The next step is to run ``osm2pgrouting`` converter, which is a command "
"line tool that inserts the data in the database, \"ready\" to be used "
"with pgRouting. Additional information about ``osm2pgrouting`` can be "
-"found at the :ref:`osm2pgrouting`"
+"found at the :doc:`../appendix/appendix-3`"
msgstr ""
-"El siguiente paso es ejecutar el convertidor ``osm2pgrouting'', que es "
-"una herramienta de línea de comandos que inserta los datos en la base de "
-"datos, \"listo\" para ser utilizado con pgRouting. Puede encontrar "
-"información adicional sobre ``osm2pgrouting`` en :ref:`osm2pgrouting`"
+"El siguiente paso es ejecutar el convertidor ``osm2pgrouting'', que es una "
+"herramienta de línea de comandos que inserta los datos en la base de datos, "
+"\"listo\" para ser utilizado con pgRouting. Puede encontrar información "
+"adicional sobre ``osm2pgrouting :doc:`../appendix/appendix-3`"
-#: ../../build/docs/basic/data.rst:106
+#: ../../build/docs/basic/data.rst:112
msgid "For this step:"
msgstr "Para este paso:"
-#: ../../build/docs/basic/data.rst:108
+#: ../../build/docs/basic/data.rst:114
msgid "the osm2pgrouting default ``mapconfig.xml`` configuration file is used"
msgstr ""
"se utiliza el archivo de configuración predeterminado de osm2pgrouting "
"``mapconfig.xml``"
-#: ../../build/docs/basic/data.rst:109
-msgid "and the ``~/Desktop/workshop/Prizren_XK.osm`` data"
-msgstr "y los datos de ``~/Desktop/workshop/Prizren_XK.osm``"
+#: ../../build/docs/basic/data.rst:115
+msgid "and the ``~/Desktop/workshop/BELEM_BR.osm`` data"
+msgstr "y los datos de ``~/Desktop/workshop/BELEM_BR.osm``"
-#: ../../build/docs/basic/data.rst:110
+#: ../../build/docs/basic/data.rst:116
msgid "with the ``city_routing`` database"
msgstr "con la base de datos ``city_routing``"
-#: ../../build/docs/basic/data.rst:112
+#: ../../build/docs/basic/data.rst:118
msgid "From a terminal window :code:`ctrl-alt-t`."
msgstr "Desde una ventana de terminal :code:`ctrl-alt-t`."
-#: ../../build/docs/basic/data.rst:115
+#: ../../build/docs/basic/data.rst:121
msgid "Run the osm2pgrouting converter"
msgstr "Ejecute el convertidor osm2pgrouting"
-#: ../../build/docs/basic/data.rst:123
+#: ../../build/docs/basic/data.rst:128
msgid "Depending on the osm2pgrouting version `-W password` is needed"
msgstr "Dependiendo de la versión osm2pgrouting `-W password` es necesario"
-#: ../../build/docs/basic/data.rst:126
+#: ../../build/docs/basic/data.rst:131
msgid "Output:"
msgstr "Salida:"
-#: ../../build/docs/basic/data.rst:133
+#: ../../build/docs/basic/data.rst:148
msgid "Tables on the database"
msgstr "Tablas en la base de datos"
-#: ../../build/docs/basic/data.rst:140
+#: ../../build/docs/basic/data.rst:154
msgid "If everything went well the result should look like this:"
msgstr "Si todo salió bien el resultado debería verse así:"
-#: ../../build/docs/basic/data.rst:146
+#: ../../build/docs/basic/data.rst:160
msgid "Chapter: Appendix"
msgstr "Capítulo: Apéndice"
-#: ../../build/docs/basic/data.rst:149
+#: ../../build/docs/basic/data.rst:163
msgid ""
-"OSGeoLive's account name on the database is ``\"user\"``. To easily use "
-"the workshop when not using OSGeoLive this extra steps are needed:"
+"OSGeoLive's account name on the database is ``user``. To easily use the "
+"workshop when not using OSGeoLive this extra steps are needed:"
msgstr ""
"El nombre de cuenta de OSGeoLive en la base de datos es ``user``. Para "
-"utilizar fácilmente el taller cuando no se utiliza OSGeoLive se necesitan "
-"estos pasos adicionales:"
+"utilizar fácilmente el taller cuando no se utiliza OSGeoLive se necesitan"
+" estos pasos adicionales:"
diff --git a/locale/es/LC_MESSAGES/basic/graph_views.po b/locale/es/LC_MESSAGES/basic/graph_views.po
new file mode 100644
index 000000000..902f51833
--- /dev/null
+++ b/locale/es/LC_MESSAGES/basic/graph_views.po
@@ -0,0 +1,732 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2010-2024 pgRouting Developers
+# This file is distributed under the same license as the Workshop FOSS4G
+# package.
+# FIRST AUTHOR , 2024.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Workshop FOSS4G 3.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-11-10 17:09+0000\n"
+"PO-Revision-Date: 2024-12-16 19:42+0000\n"
+"Last-Translator: Celia Virginia Vergara Castillo \n"
+"Language-Team: Spanish \n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 5.4.3\n"
+"Generated-By: Babel 2.16.0\n"
+
+#: ../../build/docs/basic/graph_views.rst:12
+msgid "Graph views"
+msgstr "Vistas de grafos"
+
+#: ../../build/docs/basic/graph_views.rst:18
+msgid "Chapter Contents"
+msgstr "Contenido del Capítulo"
+
+#: ../../build/docs/basic/graph_views.rst:20
+msgid ""
+"Different application require different graphs. This chapter covers how "
+"to discard disconnected segments and different approaches to create "
+"graphs."
+msgstr ""
+"Diferentes aplicaciones requieren diferentes gráficos. En este capítulo "
+"se explica cómo descartar segmentos desconectados y los distintos métodos"
+" para crear gráficos."
+
+#: ../../build/docs/basic/graph_views.rst:24
+msgid "The graph requirements"
+msgstr "Requisitos del grafo"
+
+#: ../../build/docs/basic/graph_views.rst:26
+msgid ""
+"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_osm`` and "
+"``target_osm``."
+msgstr ""
+"En este capítulo hay tres requisitos gráficos. Se trata de tres grafos "
+"derivados de un grafo **completamente conectado** extraído de ``ways``: dos "
+"para distintos tipos de vehículos y uno para peatones. En todos ellos, el "
+"origen y el destino se basan en ``source_osm`` y el ``target_osm``."
+
+#: ../../build/docs/basic/graph_views.rst:31
+msgid "The description of the graphs:"
+msgstr "La descripción de los grafos:"
+
+#: ../../build/docs/basic/graph_views.rst:33
+msgid "Particular vehicle:"
+msgstr "Vehículo particular:"
+
+#: ../../build/docs/basic/graph_views.rst:35
+msgid "Circulate on the whole Belém area."
+msgstr "Circular por toda la zona de Belém."
+
+#: ../../build/docs/basic/graph_views.rst:37
+#: ../../build/docs/basic/graph_views.rst:46
+msgid "Do not use `steps`, `footway`, `path`, `cycleway`."
+msgstr "No usar `steps`, `footway`, `path`, `cycleway`."
+
+#: ../../build/docs/basic/graph_views.rst:39
+msgid "Speed is the default speed from OSM information."
+msgstr "La velocidad es la velocidad predeterminada de la información de OSM."
+
+#: ../../build/docs/basic/graph_views.rst:41
+msgid "Taxi vehicle:"
+msgstr "Vehículo Taxi:"
+
+#: ../../build/docs/basic/graph_views.rst:43
+msgid "Circulate on a smaller area:"
+msgstr "Circula en un área más pequeña:"
+
+#: ../../build/docs/basic/graph_views.rst:45
+msgid "Bounding box: ``(-48.52,-1.46,-48.45,-1.41)``"
+msgstr "Caja delimitadora: ``(-48.52,-1.46,-48.45,-1.41)``"
+
+#: ../../build/docs/basic/graph_views.rst:48
+#, python-format
+msgid "Speed is 10% slower than that of the particular vehicles."
+msgstr "La velocidad es 10% inferior a la de los vehículos particulares."
+
+#: ../../build/docs/basic/graph_views.rst:50
+msgid "Pedestrians:"
+msgstr "Peatones:"
+
+#: ../../build/docs/basic/graph_views.rst:52
+msgid "Walk on the whole Belém area."
+msgstr "Caminar por toda la zona de Belém."
+
+#: ../../build/docs/basic/graph_views.rst:53
+msgid "Can not walk on exclusive vehicle ways"
+msgstr "No se puede caminar por vías exclusivas para vehículos"
+
+#: ../../build/docs/basic/graph_views.rst:55
+msgid "`motorways` and on `primary` segments."
+msgstr "En segmentos `motorways` y `primary`."
+
+#: ../../build/docs/basic/graph_views.rst:57
+#: ../../build/docs/basic/graph_views.rst:488
+msgid "The speed is ``2 mts/sec``."
+msgstr "La velocidad es de ``2 mts/sec``."
+
+#: ../../build/docs/basic/graph_views.rst:60
+msgid "pgr_extractVertices"
+msgstr "pgr_extractVertices"
+
+#: ../../build/docs/basic/graph_views.rst:62
+msgid ""
+"``pgr_extractVertices`` compute the connected components of an undirected"
+" graph using a Depth First Search approach. A connected component of an "
+"undirected graph is a set of vertices that are all reachable from each "
+"other."
+msgstr ""
+"``pgr_extractVertices`` calcula los componentes conectados de un grafo no"
+" dirigido utilizando el método de búsqueda en profundidad. Un componente "
+"conectado de un grafo no dirigido es un conjunto de vértices que son "
+"todos alcanzables entre sí."
+
+#: ../../build/docs/basic/graph_views.rst:67
+#: ../../build/docs/basic/graph_views.rst:214
+msgid "Signature summary"
+msgstr "Resumen de la firma"
+
+#: ../../build/docs/basic/graph_views.rst:75
+msgid ""
+"Description of the function can be found in `pgr_extractVertices "
+"`__"
+msgstr ""
+"La descripción de la función se encuentra en `pgr_extractVertices "
+"`__"
+
+#: ../../build/docs/basic/graph_views.rst:79
+msgid "Exercise 1: Create a vertices table"
+msgstr "Ejercicio 1: Crear una tabla de vértices"
+
+#: ../../build/docs/basic/graph_views.rst:82
+#: ../../build/docs/basic/graph_views.rst:130
+#: ../../build/docs/basic/graph_views.rst:230
+#: ../../build/docs/basic/graph_views.rst:278
+#: ../../build/docs/basic/graph_views.rst:355
+#: ../../build/docs/basic/graph_views.rst:426
+#: ../../build/docs/basic/graph_views.rst:484
+#: ../../build/docs/basic/graph_views.rst:548
+msgid "Problem"
+msgstr "Problema"
+
+#: ../../build/docs/basic/graph_views.rst:83
+msgid "Create the vertices table corresponding to the edges in ``ways``."
+msgstr "Crea la tabla de vértices correspondiente a las aristas en ``ways``."
+
+#: ../../build/docs/basic/graph_views.rst:86
+#: ../../build/docs/basic/graph_views.rst:134
+#: ../../build/docs/basic/graph_views.rst:234
+#: ../../build/docs/basic/graph_views.rst:287
+#: ../../build/docs/basic/graph_views.rst:369
+#: ../../build/docs/basic/graph_views.rst:435
+#: ../../build/docs/basic/graph_views.rst:499
+#: ../../build/docs/basic/graph_views.rst:567
+msgid "Solution"
+msgstr "Solución"
+
+#: ../../build/docs/basic/graph_views.rst:87
+msgid "A graph consists of a set of vertices and a set of edges."
+msgstr ""
+"Un grafo está formado por un conjunto de vértices y un conjunto de "
+"aristas."
+
+#: ../../build/docs/basic/graph_views.rst:88
+msgid "In this case, the ``ways`` table is a set of edges."
+msgstr "En este caso, la tabla ``ways`` es un conjunto de aristas."
+
+#: ../../build/docs/basic/graph_views.rst:89
+msgid ""
+"In order to make use of all the graph functions from pgRouting, it is "
+"required have the set of vertices defined."
+msgstr ""
+"Para poder hacer uso de todas las funciones sobre grafos de pgRouting, es"
+" necesario tener definido el conjunto de vértices."
+
+#: ../../build/docs/basic/graph_views.rst:91
+msgid "From the requirements, the graph is going to be based on OSM identifiers."
+msgstr "Según los requisitos, el grafo se basará en identificadores OSM."
+
+#: ../../build/docs/basic/graph_views.rst:104
+msgid "Reviewing the description of the vertices table"
+msgstr "Revisando de la descripción de la tabla de vértices"
+
+#: ../../build/docs/basic/graph_views.rst:114
+msgid "Inspecting the information on the vertices table"
+msgstr "Inspeccionando la información de la tabla de vértices"
+
+#: ../../build/docs/basic/graph_views.rst:127
+msgid "Exercise 2: Fill up other columns in the vertices table"
+msgstr "Ejercicio 2: Llenar las otras columnas de la tabla de vértices"
+
+#: ../../build/docs/basic/graph_views.rst:131
+msgid "Fill up geometry information on the vertices table."
+msgstr "Llena la información de geometría en la tabla de vértices."
+
+#: ../../build/docs/basic/graph_views.rst:135
+msgid "Count the number of rows that need to be filled up."
+msgstr "Contar el número de filas que hay que rellenar."
+
+#: ../../build/docs/basic/graph_views.rst:145
+msgid ""
+"Update the ``geom`` columns based on the ``source_osm`` column from "
+"``ways`` table."
+msgstr ""
+"Actualizar la columna ``geom`` basándose en la columna ``source_osm`` de "
+"la tabla ``ways``."
+
+#: ../../build/docs/basic/graph_views.rst:147
+msgid "Use the start point of the geometry."
+msgstr "Utilizar el punto inicial de la geometría."
+
+#: ../../build/docs/basic/graph_views.rst:158
+msgid ""
+"Not expecting to be done due to the fact that some vertices are only dead"
+" ends."
+msgstr ""
+"No se espera haber terminado debido a que algunos vértices son sólo "
+"callejones sin salida."
+
+#: ../../build/docs/basic/graph_views.rst:169
+msgid ""
+"Update the ``geom`` columns based on the ``target_osm`` column from "
+"``ways`` table."
+msgstr ""
+"Actualizar las columnas ``geom`` basándose en la columna ``target_osm`` "
+"de la tabla ``ways``."
+
+#: ../../build/docs/basic/graph_views.rst:171
+msgid "Use the end point of the geometry."
+msgstr "Utilizar el punto final de la geometría."
+
+#: ../../build/docs/basic/graph_views.rst:182
+msgid ""
+"Expecting to be done, that is the geometry column should not have a "
+"``NULL`` value."
+msgstr ""
+"Se espera haber terminado, es decir la columna geometría no debe tener un"
+" valor ``NULL``."
+
+#: ../../build/docs/basic/graph_views.rst:194
+msgid "Update the ``x`` and ``y`` columns based on the ``geom`` column."
+msgstr "Actualizar las columnas ``x`` e ``y`` en función de la columna ``geom``."
+
+#: ../../build/docs/basic/graph_views.rst:207
+msgid "pgr_connectedComponents"
+msgstr "pgr_connectedComponents"
+
+#: ../../build/docs/basic/graph_views.rst:209
+msgid ""
+"``pgr_connectedComponents`` compute the connected components of an "
+"undirected graph using a Depth First Search approach. A connected "
+"component of an undirected graph is a set of vertices that are all "
+"reachable from each other."
+msgstr ""
+"``pgr_connectedComponents`` calcula los componentes conectados de un "
+"grafo no dirigido utilizando un método de búsqueda en profundidad. Un "
+"componente conectado de un grafo no dirigido es un conjunto de vértices "
+"que son todos alcanzables entre sí."
+
+#: ../../build/docs/basic/graph_views.rst:222
+msgid ""
+"Description of the function can be found in `pgr_connectedComponents "
+"`__"
+msgstr ""
+"La descripción de la función se encuentra en `pgr_connectedComponents "
+"`__"
+
+#: ../../build/docs/basic/graph_views.rst:227
+msgid "Exercise 3: Set components on edges and vertices tables"
+msgstr "Ejercicio 3: Establecer componentes en tablas de aristas y vértices"
+
+#: ../../build/docs/basic/graph_views.rst:231
+msgid "Get the information about the graph components."
+msgstr "Obtener la información sobre los componentes del grafo."
+
+#: ../../build/docs/basic/graph_views.rst:235
+msgid "Create additional columns on the edges and vertices tables."
+msgstr "Crear columnas adicionales en las tablas de aristas y vértices."
+
+#: ../../build/docs/basic/graph_views.rst:246
+msgid "Use the ``pgr_connectedComponents`` to fill up the vertices table."
+msgstr "Utilizar ``pgr_connectedComponents`` para llenar la tabla de vértices."
+
+#: ../../build/docs/basic/graph_views.rst:248
+msgid ""
+"Use the results to store the component numbers on the vertices table. "
+"(**line 1**)"
+msgstr ""
+"Utilizar los resultados para almacenar los números de los componentes en "
+"la tabla de vértices. (**línea 1**)"
+
+#: ../../build/docs/basic/graph_views.rst:250
+msgid "Use the OSM identifiers of the vertices. (**lines 4-5**)"
+msgstr "Utilizar los identificadores OSM de los vértices. (**líneas 4-5**)"
+
+#: ../../build/docs/basic/graph_views.rst:262
+msgid "Update the edges table with based on the component number of the vertex"
+msgstr ""
+"Actualizar la tabla de aristas con en función del número de componente "
+"del vértice"
+
+#: ../../build/docs/basic/graph_views.rst:275
+msgid "Exercise 4: Inspect the components"
+msgstr "Ejercicio 4: Inspeccionar los componentes"
+
+#: ../../build/docs/basic/graph_views.rst:279
+msgid "Answer the following questions:"
+msgstr "Responder a las siguientes preguntas:"
+
+#: ../../build/docs/basic/graph_views.rst:281
+#: ../../build/docs/basic/graph_views.rst:288
+msgid "How many components are in the vertices table?"
+msgstr "¿Cuántos componentes hay en la tabla de vértices?"
+
+#: ../../build/docs/basic/graph_views.rst:282
+#: ../../build/docs/basic/graph_views.rst:301
+msgid "How many components are in the edges table?"
+msgstr "¿Cuántos componentes hay en la tabla de bordes?"
+
+#: ../../build/docs/basic/graph_views.rst:283
+#: ../../build/docs/basic/graph_views.rst:314
+msgid "List the 10 components with more edges."
+msgstr "Enumerar los 10 componentes con más aristas."
+
+#: ../../build/docs/basic/graph_views.rst:284
+#: ../../build/docs/basic/graph_views.rst:328
+msgid "Get the component with the maximum number of edges."
+msgstr "Obtiener el componente con el máximo número de aristas."
+
+#: ../../build/docs/basic/graph_views.rst:290
+#: ../../build/docs/basic/graph_views.rst:303
+msgid "Count the distinct components."
+msgstr "Contar los componentes distintos."
+
+#: ../../build/docs/basic/graph_views.rst:316
+msgid "Count number of rows grouped by component. (**line 1**)"
+msgstr "Número de filas agrupadas por componente. (**línea 1**)"
+
+#: ../../build/docs/basic/graph_views.rst:317
+msgid "Inverse order to display the top 10. (**line 2**)"
+msgstr "Orden inverso para mostrar los 10 primeros. (**línea 2**)"
+
+#: ../../build/docs/basic/graph_views.rst:330
+msgid "Use the query from last question to get the maximum count"
+msgstr "Utilizar la consulta de la última pregunta para obtener el recuento máximo"
+
+#: ../../build/docs/basic/graph_views.rst:331
+msgid "Get the component that matches the maximum value."
+msgstr "Obtiene el componente que coincide con el valor máximo."
+
+#: ../../build/docs/basic/graph_views.rst:345
+msgid "Preparing the graphs"
+msgstr "Preparación de los grafos"
+
+#: ../../build/docs/basic/graph_views.rst:348
+msgid "Exercise 5: Creating a view for routing"
+msgstr "Ejercicio 5: Creación de una vista para el ruteo"
+
+#: ../../build/docs/basic/graph_views.rst:350
+msgid "View of roads for vehicles"
+msgstr "Vista de carreteras para vehículos"
+
+#: ../../build/docs/basic/graph_views.rst:356
+msgid ""
+"Create a view with minimal amount of information for processing the "
+"particular vehicles."
+msgstr ""
+"Crear una vista con una cantidad mínima de información para procesar los "
+"vehículos particulares."
+
+#: ../../build/docs/basic/graph_views.rst:357
+msgid "Use the OSM identifiers on the vertices."
+msgstr "Utilizar los identificadores OSM en los vértices."
+
+#: ../../build/docs/basic/graph_views.rst:358
+msgid ""
+"Routing `cost` and `reverse_cost` in terms of seconds for routing "
+"calculations."
+msgstr ""
+"El `cost` y `reverse_cost` del ruteo en términos de segundos para los "
+"cálculos de ruteo."
+
+#: ../../build/docs/basic/graph_views.rst:359
+msgid "Exclude `steps`, `footway`, `path`, `cycleway` segments."
+msgstr "Excluye los segmentos `steps`, `footway`, `path`, `cycleway`."
+
+#: ../../build/docs/basic/graph_views.rst:360
+#: ../../build/docs/basic/graph_views.rst:491
+msgid "Data needed in the view for further processing."
+msgstr "Datos necesarios en la vista para su posterior procesamiento."
+
+#: ../../build/docs/basic/graph_views.rst:362
+msgid "`name` The name of the segment."
+msgstr "`name` El nombre del segmento."
+
+#: ../../build/docs/basic/graph_views.rst:363
+msgid "`length_m` The length in meters rename to ``length``."
+msgstr "`length_m` La longitud en metros renombrar a ``length``."
+
+#: ../../build/docs/basic/graph_views.rst:364
+msgid "`the_geom` The geometry rename to ``geom``."
+msgstr "`the_geom` El cambio de nombre de la geometría a ``geom``."
+
+#: ../../build/docs/basic/graph_views.rst:366
+#: ../../build/docs/basic/graph_views.rst:496
+msgid "Verify the number of edges was reduced."
+msgstr "Comprobar que se ha reducido el número de aristas."
+
+#: ../../build/docs/basic/graph_views.rst:370
+#: ../../build/docs/basic/graph_views.rst:436
+#: ../../build/docs/basic/graph_views.rst:500
+msgid "Creating the view:"
+msgstr "Creación de la vista:"
+
+#: ../../build/docs/basic/graph_views.rst:372
+msgid ""
+"If you need to reconstruct the view, first drop it using the command on "
+"**line 1**."
+msgstr ""
+"Si necesita reconstruir la vista, primero borrarla usando el comando en "
+"línea **1**."
+
+#: ../../build/docs/basic/graph_views.rst:374
+msgid "Get the component with maximum number of edges (**lines 6-10**)"
+msgstr "Obtener el componente con el máximo número de aristas (**líneas 6-10**)"
+
+#: ../../build/docs/basic/graph_views.rst:375
+msgid ""
+"The `source` and `target` requirements for the function are to be with "
+"OSM identifiers. (line **14**)"
+msgstr ""
+"Los requisitos `source` y `target` para la función deben ser con "
+"identificadores OSM. (línea **14**)"
+
+#: ../../build/docs/basic/graph_views.rst:377
+msgid "The ``cost`` and ``reverse_cost`` are in terms of seconds. (line **15**)"
+msgstr "El ``coste`` y el ``reverse_cost`` se expresan en segundos. (línea **15**)"
+
+#: ../../build/docs/basic/graph_views.rst:378
+msgid ""
+"The additional parameters ``length_m`` and ``the_geom`` are renamed, "
+"``name`` is also included. (line **16**)"
+msgstr ""
+"Los parámetros adicionales ``length_m`` y ``the_geom`` se renombran, "
+"también se incluye ``name``. (línea **16**)"
+
+#: ../../build/docs/basic/graph_views.rst:380
+msgid "``JOIN`` with the `configuration`:"
+msgstr "``JOIN`` con `configuration`:"
+
+#: ../../build/docs/basic/graph_views.rst:382
+msgid "Exclude `steps`, `footway`, `path`, `cycleway`. (line **18**)"
+msgstr "Excluir `steps`, `footway`, `path`, `cycleway`. (línea **18**)"
+
+#: ../../build/docs/basic/graph_views.rst:395
+msgid "Verification:"
+msgstr "Verificación:"
+
+#: ../../build/docs/basic/graph_views.rst:397
+msgid "Count the rows on the original ``ways`` and on ``vehicle_net``."
+msgstr "Contar las filas en ``ways`` original y en ``vehicle_net``."
+
+#: ../../build/docs/basic/graph_views.rst:407
+msgid "Get the description of the view"
+msgstr "Obtener la descripción de la vista"
+
+#: ../../build/docs/basic/graph_views.rst:419
+msgid "Exercise 6: Limiting the road network within an area"
+msgstr "Ejercicio 6: Limitar la red de carreteras de una zona"
+
+#: ../../build/docs/basic/graph_views.rst:421
+msgid "View of smaller set of roads for vehicles"
+msgstr "Vista de un conjunto más pequeño de carreteras para vehículos"
+
+#: ../../build/docs/basic/graph_views.rst:427
+msgid "Create a view ``taxi_net`` for the `taxi`:"
+msgstr "Crar una vista ``taxi_net`` para el `taxi`:"
+
+#: ../../build/docs/basic/graph_views.rst:429
+msgid ""
+"The taxi can only circulate inside this Bounding Box: "
+"``(-48.52,-1.46,-48.45,-1.41)``"
+msgstr ""
+"El taxi sólo puede circular dentro de este recuadro: "
+"``(-48.52,-1.46,-48.45,-1.41)``"
+
+#: ../../build/docs/basic/graph_views.rst:430
+#, python-format
+msgid "The taxi speed is 10% slower than the particular vehicle."
+msgstr "La velocidad de taxi es 10% inferior a la del vehículo particular."
+
+#: ../../build/docs/basic/graph_views.rst:432
+msgid "Verify the reduced number of road segments."
+msgstr "Verificar el número reducido de segmentos de carretera."
+
+#: ../../build/docs/basic/graph_views.rst:438
+#, python-format
+msgid ""
+"Adjust the taxi's ``cost`` and ``reverse_cost`` to be 10% slower than of "
+"the particular vehicle. (line **7**)"
+msgstr ""
+"Ajustar el ``cost`` y el ``reverse_cost`` del taxi para que sean 10% más "
+"bajos que los del vehículo particular. (línea **7**)"
+
+#: ../../build/docs/basic/graph_views.rst:440
+msgid ""
+"The graph for the taxi is a subset of the ``vehicle_net`` graph. (line "
+"**9**)"
+msgstr ""
+"El grafo del taxi es un subconjunto del grafo ``vehicle_net``. (línea "
+"**9**)"
+
+#: ../../build/docs/basic/graph_views.rst:441
+msgid ""
+"Can only circulate inside the bounding box: "
+"``(-48.52,-1.46,-48.45,-1.41)``. (line **10**)"
+msgstr ""
+"Sólo puede circular dentro de la caja delimitadora: "
+"``(-48.52,-1.46,-48.45,-1.41)``. (línea **10**)"
+
+#: ../../build/docs/basic/graph_views.rst:455
+msgid "Count the rows on ``taxi_net``."
+msgstr "Contar las filas en ``taxi_net``."
+
+#: ../../build/docs/basic/graph_views.rst:466
+#: ../../build/docs/basic/graph_views.rst:529
+msgid "Get the description."
+msgstr "Obtener la descripción."
+
+#: ../../build/docs/basic/graph_views.rst:477
+msgid "Exercise 7: Creating a materialized view for routing pedestrians"
+msgstr "Ejercicio 7: Creación de una vista materializada para el ruteo de peatones"
+
+#: ../../build/docs/basic/graph_views.rst:479
+msgid "View of roads for pedestrians"
+msgstr "Vista de las carreteras para peatones"
+
+#: ../../build/docs/basic/graph_views.rst:485
+msgid ""
+"Create a materialized view with minimal amount of information for "
+"processing pedestrians."
+msgstr ""
+"Crear una vista materializada con una cantidad mínima de información para"
+" procesar peatones."
+
+#: ../../build/docs/basic/graph_views.rst:486
+msgid ""
+"Routing `cost` and `reverse_cost` will be on seconds for routing "
+"calculations."
+msgstr ""
+"El costo de ruteo en `cost` y `reverse_cost` será en segundos para los "
+"cálculos de ruteo."
+
+#: ../../build/docs/basic/graph_views.rst:490
+msgid "Exclude `motorway` , `primary` and `secondary` segments."
+msgstr "Excluir segmentos `motorway` , `primary` y `secondary`."
+
+#: ../../build/docs/basic/graph_views.rst:493
+msgid "`length_m` The length in meters."
+msgstr "`length_m` La longitud en metros."
+
+#: ../../build/docs/basic/graph_views.rst:494
+msgid "`the_geom` The geometry."
+msgstr "`the_geom` La geometría."
+
+#: ../../build/docs/basic/graph_views.rst:502
+msgid "Similar to `Exercise 5: Creating a view for routing`_:"
+msgstr "Similar al `Ejercicio 5: Creación de una vista para el enrutamiento`_:"
+
+#: ../../build/docs/basic/graph_views.rst:504
+msgid ""
+"The ``cost`` and ``reverse_cost`` are in terms of seconds with speed of "
+"``2 mts/sec``. (line **7**)"
+msgstr ""
+"``cost`` y ``reverse_cost`` se expresan en términos de segundos con "
+"velocidad de ``2 mts/sec``. (línea **7**)"
+
+#: ../../build/docs/basic/graph_views.rst:505
+msgid "Exclude `motorway`, `primary` and `secondary` . (line **11**)"
+msgstr "Excluir `motorway`, `primary` y `secondary`. (línea **11**)"
+
+#: ../../build/docs/basic/graph_views.rst:518
+msgid "Count the rows on the view ``walk_net``."
+msgstr "Contar las filas de la vista ``walk_net``."
+
+#: ../../build/docs/basic/graph_views.rst:541
+msgid "Exercise 8: Testing the views for routing"
+msgstr "Ejercicio 8: Comprobación de las vistas para el ruteo"
+
+#: ../../build/docs/basic/graph_views.rst:543
+msgid "From the |ch7_place_1| to the |ch7_place_2|"
+msgstr "Desde |ch7_place_1| hacia |ch7_place_2|"
+
+#: ../../build/docs/basic/graph_views.rst:549
+msgid "Test the created views"
+msgstr "Probar las vistas creadas"
+
+#: ../../build/docs/basic/graph_views.rst:551
+msgid "In particular:"
+msgstr "En particular:"
+
+#: ../../build/docs/basic/graph_views.rst:553
+msgid "From the |ch7_place_1| to the \"|ch7_place_2| using the OSM identifier"
+msgstr ""
+"Desde \"|ch7_place_1|\" hacia \"|ch7_place_2|\" usando el identificador OSM"
+
+#: ../../build/docs/basic/graph_views.rst:554
+msgid "the views to be tested are:"
+msgstr "las vistas a probar son:"
+
+#: ../../build/docs/basic/graph_views.rst:556
+msgid "``vehicle_net``"
+msgstr "``vehicle_net``"
+
+#: ../../build/docs/basic/graph_views.rst:557
+msgid "``taxi_net``"
+msgstr "``taxi_net``"
+
+#: ../../build/docs/basic/graph_views.rst:558
+msgid "``walk_net``"
+msgstr "``walk_net``"
+
+#: ../../build/docs/basic/graph_views.rst:560
+msgid ""
+"Only show the following results, as the other columns are to be ignored "
+"on the function."
+msgstr ""
+"Mostrar únicamente los siguientes resultados, ya que las demás columnas "
+"deben omitirse en la función."
+
+#: ../../build/docs/basic/graph_views.rst:562
+msgid "``seq``"
+msgstr "``seq``"
+
+#: ../../build/docs/basic/graph_views.rst:563
+msgid "``edge`` with the name ``id``"
+msgstr "``edge`` con el nombre ``id``"
+
+#: ../../build/docs/basic/graph_views.rst:564
+msgid "``cost`` with the name: ``seconds``"
+msgstr "``cost`` con el nombre: ``seconds``"
+
+#: ../../build/docs/basic/graph_views.rst:568
+msgid "In general"
+msgstr "En general"
+
+#: ../../build/docs/basic/graph_views.rst:570
+msgid "The departure is |ch7_place_1| with OSM identifier |ch7_osmid_1|."
+msgstr ""
+"El punto de partida es |ch7_place_1| con el identificador OSM "
+"|ch7_osmid_1|."
+
+#: ../../build/docs/basic/graph_views.rst:571
+msgid "The destination is |ch7_place_2| with OSM identifier |ch7_osmid_2|."
+msgstr "El destino es |ch7_place_2| con el identificador OSM |ch7_osmid_2|."
+
+#: ../../build/docs/basic/graph_views.rst:573
+msgid "For ``vehicle_net``:"
+msgstr "Para ``vehicle_net``:"
+
+#: ../../build/docs/basic/graph_views.rst:575
+msgid "``vehicle_net`` is used."
+msgstr "Se utiliza ``vehicle_net``."
+
+#: ../../build/docs/basic/graph_views.rst:576
+msgid "Selection of the columns with the corresponding names are on line **1**."
+msgstr ""
+"La selección de las columnas con los nombres correspondientes está en "
+"línea **1**."
+
+#: ../../build/docs/basic/graph_views.rst:577
+msgid "The view is prepared with the column names that pgRouting use."
+msgstr "La vista se prepara con los nombres de columna que pgRouting utiliza."
+
+#: ../../build/docs/basic/graph_views.rst:579
+msgid "There is no need to rename columns. (line **3**)"
+msgstr "No es necesario cambiar el nombre de las columnas. (línea **3**)"
+
+#: ../../build/docs/basic/graph_views.rst:581
+msgid ""
+"The OSM identifiers of the departure and destination are used. (line "
+"**4**)"
+msgstr ""
+"Se utilizan los identificadores OSM del punto de partida y del destino. "
+"(línea **4**)"
+
+#: ../../build/docs/basic/graph_views.rst:594
+msgid "For ``taxi_net``:"
+msgstr "Para ``taxi_net``:"
+
+#: ../../build/docs/basic/graph_views.rst:596
+msgid "Similar as the previous one but with ``taxi_net``. (line **3**)"
+msgstr "Similar al anterior pero con ``taxi_net`` (línea **3**)"
+
+#: ../../build/docs/basic/graph_views.rst:597
+msgid ""
+"The results give the same route as with ``vehicle_net`` but ``cost`` is "
+"higher."
+msgstr ""
+"Los resultados dan la misma ruta que con ``vehicle_net`` pero ``cost`` es "
+"mayor."
+
+#: ../../build/docs/basic/graph_views.rst:610
+msgid "For ``walk_net``:"
+msgstr "Para ``walk_net``:"
+
+#: ../../build/docs/basic/graph_views.rst:612
+msgid "Similar as the previous one but with ``walk_net``. (line **3**)"
+msgstr "Similar al anterior pero con ``walk_net``. (línea **3**)"
+
+#: ../../build/docs/basic/graph_views.rst:613
+msgid "The results give a different route than of the vehicles."
+msgstr "Los resultados dan una ruta diferente a la de los vehículos."
diff --git a/locale/es/LC_MESSAGES/basic/pedestrian.po b/locale/es/LC_MESSAGES/basic/pedestrian.po
index 35efa6079..c1b1a51fe 100644
--- a/locale/es/LC_MESSAGES/basic/pedestrian.po
+++ b/locale/es/LC_MESSAGES/basic/pedestrian.po
@@ -9,10 +9,10 @@
# Vicky Vergara , 2022
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-08 16:17+0000\n"
-"PO-Revision-Date: 2024-03-22 16:47+0000\n"
+"POT-Creation-Date: 2024-11-10 17:09+0000\n"
+"PO-Revision-Date: 2024-12-16 19:42+0000\n"
"Last-Translator: Celia Virginia Vergara Castillo \n"
"Language-Team: Spanish \n"
@@ -21,8 +21,8 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.3\n"
-"Generated-By: Babel 2.12.1\n"
+"X-Generator: Weblate 5.4.3\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/basic/pedestrian.rst:11
msgid "Pedestrian Routing"
@@ -50,12 +50,12 @@ msgstr "pgr_dijkstra"
#: ../../build/docs/basic/pedestrian.rst:27
msgid ""
"Dijkstra algorithm was the first algorithm implemented in pgRouting. It "
-"doesn't require other attributes than ``id``, ``source`` and ``target`` "
-"ID and ``cost`` and ``reverse_cost``."
+"doesn't require other attributes than the identifiers ``id``, ``source`` "
+"and ``target`` and the weights ``cost`` and ``reverse_cost``."
msgstr ""
-"El algoritmo Dijkstra fue el primer algoritmo implementado en pgRouting. No "
-"requiere otros atributos más que los identificadores ``id``, ``source`` y "
-"``target`` y los pesos ``cost`` y ``reverse_cost``."
+"El algoritmo Dijkstra fue el primer algoritmo implementado en pgRouting. "
+"No requiere otros atributos más que los identificadores ``id``, "
+"``source`` y ``target`` y los valores ``cost`` y ``reverse_cost``."
#: ../../build/docs/basic/pedestrian.rst:31
msgid ""
@@ -66,19 +66,17 @@ msgstr ""
"`__ o sin dirección."
#: ../../build/docs/basic/pedestrian.rst:35
-#: ../../build/docs/basic/pedestrian.rst:256
+#: ../../build/docs/basic/pedestrian.rst:282
msgid "Signature Summary"
msgstr "Resumen de funciones"
#: ../../build/docs/basic/pedestrian.rst:47
msgid ""
-"Description of the parameters can be found in `pgr_dijkstra "
-"`__."
+"Description of the function can be found in `pgr_dijkstra "
+"`__."
msgstr ""
-"La descripción de los parámetros se puede encontrar en `pgr_dijkstra "
-"`__."
+"La descripción de la función se puede encontrar en `pgr_dijkstra "
+"`__."
#: ../../build/docs/basic/pedestrian.rst:51
msgid ""
@@ -88,11 +86,12 @@ msgid ""
" as long as the returned result contains the required number of "
"attributes and the correct attribute names."
msgstr ""
-"Muchas funciones pgRouting tienen ``sql::text`` como uno de sus argumentos. "
-"Aunque esto puede parecer confuso al principio, hace que las funciones sean "
-"muy flexibles, ya que el usuario puede pasar una instrucción ``SELECT`` como "
-"argumento de función siempre y cuando el resultado devuelto contenga el "
-"número necesario de atributos y los nombres correctos."
+"Muchas funciones pgRouting tienen ``sql::text`` como uno de sus "
+"argumentos. Aunque esto puede parecer confuso al principio, hace que las "
+"funciones sean muy flexibles, ya que el usuario puede pasar una "
+"instrucción ``SELECT`` como argumento de función siempre y cuando el "
+"resultado devuelto contenga el número necesario de atributos y los "
+"nombres correctos."
#: ../../build/docs/basic/pedestrian.rst:56
msgid "Most of pgRouting implemented algorithms do not require the **geometry**."
@@ -118,13 +117,14 @@ msgid ""
"columns may be different, the following exercises will use the results of"
" this query. For the workshop, some locations near of the FOSS4G event "
"are going to be used. These locations are within this area "
-"https://www.openstreetmap.org#map=15/-34.5847/-58.3970"
+"https://www.openstreetmap.org/#map=14/-1.44228/-48.46069"
msgstr ""
-"La asignación de los identificadores de vértices en las columnas de origen y "
-"destino puede ser diferentes, los siguientes ejercicios usarán los "
-"resultados de esta consulta. Para el taller, se van a utilizar algunos "
-"lugares cercanos al evento FOSS4G. Estas ubicaciones se encuentran dentro de "
-"esta área https://www.openstreetmap.org#map=15/-34.5847/-58.3970"
+"La asignación de los identificadores de vértices en las columnas de "
+"origen y destino puede ser diferentes, los siguientes ejercicios usarán "
+"los resultados de esta consulta. Para el taller, se van a utilizar "
+"algunos lugares cercanos al evento FOSS4G. Estas ubicaciones se "
+"encuentran dentro de esta área "
+"https://www.openstreetmap.org#map=14/-1.44228/-48.46069"
#: ../../build/docs/basic/pedestrian.rst:67
msgid "|osmid_1| |place_1|"
@@ -154,27 +154,27 @@ msgstr "Conéctese a la base de datos, si no está conectado:"
msgid "Get the vertex identifiers"
msgstr "Obtener los identificadores de vértice"
-#: ../../build/docs/basic/pedestrian.rst:93
-msgid "|osmid_1| |place_1| (|id_1|)"
+#: ../../build/docs/basic/pedestrian.rst:91
+msgid "|osmid_1| |place_1| (|id_1|)"
msgstr "|osmid_1| |place_1| (|id_1|)"
-#: ../../build/docs/basic/pedestrian.rst:94
-msgid "|osmid_2| |place_2| (|id_2|)"
+#: ../../build/docs/basic/pedestrian.rst:92
+msgid "|osmid_2| |place_2| (|id_2|)"
msgstr "|osmid_2| |place_2| (|id_2|)"
-#: ../../build/docs/basic/pedestrian.rst:95
-msgid "|osmid_3| |place_3| (|id_3|)"
+#: ../../build/docs/basic/pedestrian.rst:93
+msgid "|osmid_3| |place_3| (|id_3|)"
msgstr "|osmid_3| |place_3| (|id_3|)"
-#: ../../build/docs/basic/pedestrian.rst:96
-msgid "|osmid_4| |place_4| (|id_4|)"
+#: ../../build/docs/basic/pedestrian.rst:94
+msgid "|osmid_4| |place_4| (|id_4|)"
msgstr "|osmid_4| |place_4| (|id_4|)"
-#: ../../build/docs/basic/pedestrian.rst:97
-msgid "|osmid_5| |place_5| (|id_5|)"
+#: ../../build/docs/basic/pedestrian.rst:95
+msgid "|osmid_5| |place_5| (|id_5|)"
msgstr "|osmid_5| |place_5| (|id_5|)"
-#: ../../build/docs/basic/pedestrian.rst:100
+#: ../../build/docs/basic/pedestrian.rst:98
msgid ""
"The corresponding :code:`id` are shown in the following image, and a "
"sample route from \"|place_3|\" to \"|place_5|\"."
@@ -182,57 +182,59 @@ msgstr ""
"El correspondiente :code:`id` se muestra en la siguiente imagen y una "
"ruta de ejemplo de \"|place_3|\" a \"|place_5|\"."
-#: ../../build/docs/basic/pedestrian.rst:107
+#: ../../build/docs/basic/pedestrian.rst:105
msgid "Exercise 1: Single pedestrian routing"
msgstr "Ejercicio 1: Ruteo para un solo peatón"
-#: ../../build/docs/basic/pedestrian.rst:110
-#: ../../build/docs/basic/pedestrian.rst:153
-#: ../../build/docs/basic/pedestrian.rst:187
-#: ../../build/docs/basic/pedestrian.rst:218
-#: ../../build/docs/basic/pedestrian.rst:276
-#: ../../build/docs/basic/pedestrian.rst:313
+#: ../../build/docs/basic/pedestrian.rst:108
+#: ../../build/docs/basic/pedestrian.rst:150
+#: ../../build/docs/basic/pedestrian.rst:182
+#: ../../build/docs/basic/pedestrian.rst:214
+#: ../../build/docs/basic/pedestrian.rst:248
+#: ../../build/docs/basic/pedestrian.rst:302
+#: ../../build/docs/basic/pedestrian.rst:338
msgid "Problem:"
msgstr "Problema:"
-#: ../../build/docs/basic/pedestrian.rst:111
-#: ../../build/docs/basic/pedestrian.rst:154
-#: ../../build/docs/basic/pedestrian.rst:188
-#: ../../build/docs/basic/pedestrian.rst:219
-#: ../../build/docs/basic/pedestrian.rst:277
-#: ../../build/docs/basic/pedestrian.rst:314
+#: ../../build/docs/basic/pedestrian.rst:109
+#: ../../build/docs/basic/pedestrian.rst:151
+#: ../../build/docs/basic/pedestrian.rst:183
+#: ../../build/docs/basic/pedestrian.rst:215
+#: ../../build/docs/basic/pedestrian.rst:249
+#: ../../build/docs/basic/pedestrian.rst:303
+#: ../../build/docs/basic/pedestrian.rst:339
msgid "Walking"
msgstr "Caminando"
-#: ../../build/docs/basic/pedestrian.rst:113
+#: ../../build/docs/basic/pedestrian.rst:111
msgid "from \"|place_1|\""
msgstr "desde \"|place_1|\""
-#: ../../build/docs/basic/pedestrian.rst:114
+#: ../../build/docs/basic/pedestrian.rst:112
msgid "to \"|place_3|\"."
msgstr "hacia \"|place_3|\"."
-#: ../../build/docs/basic/pedestrian.rst:116
-#: ../../build/docs/basic/pedestrian.rst:159
-msgid "Calculate routes with costs in *osm2pgRouting* `length` default units."
+#: ../../build/docs/basic/pedestrian.rst:114
+msgid "Calculate routes with costs in *osm2pgRouting* ``length`` default units."
msgstr ""
-"Calcular rutas con costos en longitud con unidades por defecto generadoa por "
-"*osm2pgRouting*."
+"Calcular rutas con costos ``length`` de longitud con unidades por defecto "
+"generados por *osm2pgRouting*."
-#: ../../build/docs/basic/pedestrian.rst:-1
+#: ../../build/docs/basic/pedestrian.rst:116
msgid "From the |place_1| to the |place_3|"
msgstr "Desde el |place_1| al |place_3|"
-#: ../../build/docs/basic/pedestrian.rst:123
-#: ../../build/docs/basic/pedestrian.rst:166
-#: ../../build/docs/basic/pedestrian.rst:199
-#: ../../build/docs/basic/pedestrian.rst:230
-#: ../../build/docs/basic/pedestrian.rst:289
-#: ../../build/docs/basic/pedestrian.rst:322
+#: ../../build/docs/basic/pedestrian.rst:121
+#: ../../build/docs/basic/pedestrian.rst:163
+#: ../../build/docs/basic/pedestrian.rst:194
+#: ../../build/docs/basic/pedestrian.rst:226
+#: ../../build/docs/basic/pedestrian.rst:260
+#: ../../build/docs/basic/pedestrian.rst:315
+#: ../../build/docs/basic/pedestrian.rst:347
msgid "Solution:"
msgstr "Solución:"
-#: ../../build/docs/basic/pedestrian.rst:124
+#: ../../build/docs/basic/pedestrian.rst:122
msgid ""
"The pedestrian wants to go from vertex |id_1| to vertex |id_3| (lines "
"**9** and **10**)."
@@ -240,7 +242,7 @@ msgstr ""
"El peatón quiere pasar del vértice |id_1| al vértice |id_3| (líneas **9**"
" y **10**)."
-#: ../../build/docs/basic/pedestrian.rst:125
+#: ../../build/docs/basic/pedestrian.rst:123
msgid ""
"The pedestrian's cost is in terms of length. In this case ``length`` "
"(line **6**), which was calculated by osm2pgrouting, is in unit "
@@ -250,7 +252,7 @@ msgstr ""
"(línea **6**), que fue calculada por osm2pgrouting, está en la unidad "
"``degrees``."
-#: ../../build/docs/basic/pedestrian.rst:127
+#: ../../build/docs/basic/pedestrian.rst:125
msgid ""
"From a pedestrian perspective the graph is ``undirected`` (line **11**), "
"that is, the pedestrian can move in both directions on all segments."
@@ -260,10 +262,6 @@ msgstr ""
"los segmentos."
#: ../../build/docs/basic/pedestrian.rst:139
-msgid ":ref:`basic/appendix:**Exercise**: 1 (**Chapter:** Pedestrian)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 1 (**Chapter:** Pedestrian)`"
-
-#: ../../build/docs/basic/pedestrian.rst:142
msgid ""
"The returned cost attribute represents the cost specified in the inner "
"SQL query (``edges_sql::text`` argument). In this example cost is "
@@ -271,12 +269,12 @@ msgid ""
"combination of both or any other attributes or a custom formula."
msgstr ""
"El atributo de costo devuelto representa el costo especificado en la "
-"consulta SQL interna (argumento ``edges_sql::text``). En este ejemplo, el "
-"costo es ``length`` en la unidad \"grados\". El costo puede ser tiempo, "
-"distancia o cualquier combinación de ambos o cualquier otro atributo o una "
-"fórmula personalizada."
+"consulta SQL interna (argumento ``edges_sql::text``). En este ejemplo, el"
+" costo es ``length`` en la unidad \"grados\". El costo puede ser tiempo, "
+"distancia o cualquier combinación de ambos o cualquier otro atributo o "
+"una fórmula personalizada."
-#: ../../build/docs/basic/pedestrian.rst:146
+#: ../../build/docs/basic/pedestrian.rst:143
msgid ""
"``node`` and ``edge`` results may vary depending on the assignment of the"
" identifiers to the vertices given by osm2pgrouting."
@@ -284,64 +282,68 @@ msgstr ""
"Los resultados de ``node`` y ``edge`` pueden variar dependiendo de la "
"asignación de los identificadores a los vértices dados por osm2pgrouting."
-#: ../../build/docs/basic/pedestrian.rst:150
+#: ../../build/docs/basic/pedestrian.rst:147
msgid "Exercise 2: Many Pedestrians going to the same destination"
msgstr "Ejercicio 2: Muchos peatones van al mismo destino"
-#: ../../build/docs/basic/pedestrian.rst:156
-#: ../../build/docs/basic/pedestrian.rst:221
+#: ../../build/docs/basic/pedestrian.rst:153
+#: ../../build/docs/basic/pedestrian.rst:217
msgid "from \"|place_1|\" and \"|place_2|\""
msgstr "desde \"|place_1|\" y \"|place_2|\""
-#: ../../build/docs/basic/pedestrian.rst:157
+#: ../../build/docs/basic/pedestrian.rst:154
msgid "to the \"|place_3|\"."
msgstr "hacia el \"|place_3|\"."
-#: ../../build/docs/basic/pedestrian.rst:-1
+#: ../../build/docs/basic/pedestrian.rst:156
+msgid ""
+"Calculate routes with costs in *osm2pgRouting* ``length_m`` which is in "
+"meters."
+msgstr ""
+"Calcula rutas con costos, provenientes de *osm2pgRouting*, en metros "
+"usando ``length_m``."
+
+#: ../../build/docs/basic/pedestrian.rst:158
msgid "From |place_1| and |place_2| to |place_3|"
msgstr "Desde |place_1| y |place_2| a |place_3|"
-#: ../../build/docs/basic/pedestrian.rst:167
+#: ../../build/docs/basic/pedestrian.rst:164
msgid "The pedestrians are departing at vertices |id_1| and |id_2| (line **9**)."
msgstr "Los peatones están saliendo en los vértices |id_1| y |id_2| (línea **9**)."
-#: ../../build/docs/basic/pedestrian.rst:168
+#: ../../build/docs/basic/pedestrian.rst:165
msgid "All pedestrians want to go to vertex |id_3| (line **10**)."
msgstr "Todos los peatones quieren ir al vértice |id_3| (línea **10**)."
-#: ../../build/docs/basic/pedestrian.rst:169
+#: ../../build/docs/basic/pedestrian.rst:166
msgid "The cost to be in meters using attribute ``length_m`` (line **6**)."
msgstr "El costo de estar en metros usando el atributo ``length_m`` (línea **6**)."
-#: ../../build/docs/basic/pedestrian.rst:180
-msgid ":ref:`basic/appendix:**Exercise**: 2 (**Chapter:** Pedestrian)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 2 (**Chapter:** Pedestrian)`"
-
-#: ../../build/docs/basic/pedestrian.rst:184
+#: ../../build/docs/basic/pedestrian.rst:179
msgid "Exercise 3: Many Pedestrians departing from the same location"
msgstr "Ejercicio 3: Muchos peatones que salen de la misma ubicación"
-#: ../../build/docs/basic/pedestrian.rst:190
+#: ../../build/docs/basic/pedestrian.rst:185
msgid "from \"|place_3|\""
msgstr "desde \"|place_3|\""
-#: ../../build/docs/basic/pedestrian.rst:191
+#: ../../build/docs/basic/pedestrian.rst:186
msgid "to \"|place_1|\" and \"|place_2|\""
msgstr "hacia \"|place_1|\" y \"|place_2|\""
-#: ../../build/docs/basic/pedestrian.rst:193
+#: ../../build/docs/basic/pedestrian.rst:188
msgid "Calculate routes with costs in seconds."
msgstr "Calcular rutas con costos en segundos."
-#: ../../build/docs/basic/pedestrian.rst:200
+#: ../../build/docs/basic/pedestrian.rst:195
msgid "All pedestrians are departing from vertex |id_3| (line **9**)."
msgstr "Todos los peatones están saliendo del vértice |id_3| (línea **9**)."
-#: ../../build/docs/basic/pedestrian.rst:201
+#: ../../build/docs/basic/pedestrian.rst:196
msgid "Pedestrians want to go to locations |id_1| and |id_2| (line **10**)."
msgstr "Los peatones quieren ir a lugares |id_1| y |id_2| (línea **10**)."
-#: ../../build/docs/basic/pedestrian.rst:202
+#: ../../build/docs/basic/pedestrian.rst:197
msgid ""
"The cost to be in seconds, with a walking speed ``s = 1.3 m/s`` and ``t ="
" d/s`` (line **6**)."
@@ -350,32 +352,34 @@ msgstr ""
" ``t = d/s`` (línea **6**)."
#: ../../build/docs/basic/pedestrian.rst:211
-msgid ":ref:`basic/appendix:**Exercise**: 3 (**Chapter:** Pedestrian)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 3 (**Chapter:** Pedestrian)`"
-
-#: ../../build/docs/basic/pedestrian.rst:215
msgid "Exercise 4: Many Pedestrians going to different destinations"
msgstr "Ejercicio 4: Muchos peatones que van a diferentes destinos"
-#: ../../build/docs/basic/pedestrian.rst:222
+#: ../../build/docs/basic/pedestrian.rst:218
msgid "to \"|place_4|\" and \"|place_5|\""
msgstr "hacia \"|place_4|\" y \"|place_5|\""
-#: ../../build/docs/basic/pedestrian.rst:224
+#: ../../build/docs/basic/pedestrian.rst:220
+#: ../../build/docs/basic/pedestrian.rst:254
msgid "Calculate routes with costs in minutes."
msgstr "Calcular rutas con costos en minutos."
-#: ../../build/docs/basic/pedestrian.rst:231
+#: ../../build/docs/basic/pedestrian.rst:227
+#: ../../build/docs/basic/pedestrian.rst:316
+#: ../../build/docs/basic/pedestrian.rst:348
msgid "The pedestrians depart from |id_1| and |id_2| (line **9**)."
msgstr "Los peatones parten de |id_1| y |id_2| (línea **9**)."
-#: ../../build/docs/basic/pedestrian.rst:232
+#: ../../build/docs/basic/pedestrian.rst:228
+#: ../../build/docs/basic/pedestrian.rst:317
+#: ../../build/docs/basic/pedestrian.rst:349
msgid ""
"The pedestrians want to go to destinations |id_4| and |id_5| (line "
"**10**)."
msgstr "Los peatones quieren ir a destinos |id_4| y |id_5| (línea **10**)."
-#: ../../build/docs/basic/pedestrian.rst:233
+#: ../../build/docs/basic/pedestrian.rst:229
+#: ../../build/docs/basic/pedestrian.rst:318
msgid ""
"The cost to be in minutes, with a walking speed ``s = 1.3 m/s`` and ``t ="
" d/s`` (line **6**)."
@@ -383,40 +387,68 @@ msgstr ""
"El costo a ser en minutos, con una velocidad de caminata ``s = 1.3 m/s`` "
"y ``t = d/s`` (línea **6**)."
-#: ../../build/docs/basic/pedestrian.rst:234
-#: ../../build/docs/basic/pedestrian.rst:326
+#: ../../build/docs/basic/pedestrian.rst:230
+#: ../../build/docs/basic/pedestrian.rst:351
msgid "Result adds the costs per destination."
msgstr "El resultado suma los costes por destino."
-#: ../../build/docs/basic/pedestrian.rst:245
-msgid ":ref:`basic/appendix:**Exercise**: 4 (**Chapter:** Pedestrian)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 4 (**Chapter:** Pedestrian)`"
-
#: ../../build/docs/scripts/basic/chapter_5/note_1.txt:1
msgid "Inspecting the results, looking for totals (edge = -1):"
msgstr "Inspección de los resultados, buscando totales (`edge = -1`):"
#: ../../build/docs/scripts/basic/chapter_5/note_1.txt:3
-msgid "From 3770 to vertex 5912 takes 26.22 minutes (seq = 94)"
-msgstr "Desde 3770 al vértice 5912 toma 26.22 minutos (seq = 94)"
+msgid "From 20297 to vertex 6548 takes 92.58 minutes (seq = 147)"
+msgstr "Desde 20297 al vértice 6548 toma 92.58 minutos (seq = 147)"
#: ../../build/docs/scripts/basic/chapter_5/note_1.txt:5
-msgid "From 3770 to vertex 3829 takes 7.11 minutes (seq = 48)"
-msgstr "Desde 3770 al vértice 3829 toma 7.11 minutos (seq = 48)"
+msgid "From 20297 to vertex 12712 takes 83.18 minutes (seq = 267)"
+msgstr "Desde 20297 al vértice 12712 toma 83.18 minutos (seq = 267)"
#: ../../build/docs/scripts/basic/chapter_5/note_1.txt:7
-msgid "From 2592 to vertex 5912 takes 8.31 minutes (seq = 33)"
-msgstr "Desde 2592 al vértice 5912 toma 8.31 minutos (seq = 33)"
+msgid "From 23872 to vertex 6548 takes 76.26 minutes (seq = 385)"
+msgstr "Desde 23872 al vértice 6548 toma 76.26 minutos (seq = 385)"
#: ../../build/docs/scripts/basic/chapter_5/note_1.txt:9
-msgid "From 2592 to vertex 3829 takes 12.56 minutes (seq = 20)"
-msgstr "Desde 2592 al vértice 3829 toma 12.56 minutos (seq = 20)"
+msgid "From 23872 to vertex 12712 takes 67.76 minutes (seq = 495)"
+msgstr "Desde 23872 al vértice 12712 toma 67.76 minutos (seq = 495)"
+
+#: ../../build/docs/basic/pedestrian.rst:245
+msgid "Exercise 5: Combination of routes"
+msgstr "Ejercicio 5: Combinación de rutas"
+
+#: ../../build/docs/basic/pedestrian.rst:251
+msgid "First pedestrian goes from \"|place_1|\" to \"|place_4|\""
+msgstr "El primer peatón va desde \"|place_1|\" hacia \"|place_4|\""
+
+#: ../../build/docs/basic/pedestrian.rst:252
+msgid "Second pedestrian goes from \"|place_2|\" to \"|place_5|\""
+msgstr "El segundo peatón va de \"|place_2|\" hacia \"|place_5|\""
+
+#: ../../build/docs/basic/pedestrian.rst:261
+msgid ""
+"First pedestrian departs from |id_1| and the destination is |id_4| (line "
+"**11**)."
+msgstr "El primer peatón sale de |id_1| y el destino es |id_4| (línea **11**)."
-#: ../../build/docs/basic/pedestrian.rst:250
+#: ../../build/docs/basic/pedestrian.rst:262
+msgid ""
+"Second pedestrian departs from |id_2| and the destination is |id_5| (line"
+" **12**)."
+msgstr "El segundo peatón sale de |id_2| y el destino es |id_5| (línea **12**)."
+
+#: ../../build/docs/basic/pedestrian.rst:263
+msgid ""
+"The cost to be in minutes, with a walking speed ``s = 1.3 m/s`` and ``t ="
+" d/s``"
+msgstr ""
+"El costo a ser en minutos, con una velocidad de caminata ``s = 1.3 m/s`` "
+"y ``t = d/s``"
+
+#: ../../build/docs/basic/pedestrian.rst:276
msgid "pgr_dijkstraCost"
msgstr "pgr_dijkstraCost"
-#: ../../build/docs/basic/pedestrian.rst:252
+#: ../../build/docs/basic/pedestrian.rst:278
msgid ""
"When the main goal is to calculate the total cost, without \"inspecting\""
" the `pgr_dijkstra` results, using ``pgr_dijkstraCost`` returns a more "
@@ -426,7 +458,7 @@ msgstr ""
"\"inspeccionar\" los resultados de la `pgr_dijkstra` usando "
"``pgr_dijkstraCost`` devuelve un resultado más compacto."
-#: ../../build/docs/basic/pedestrian.rst:268
+#: ../../build/docs/basic/pedestrian.rst:294
msgid ""
"Description of the parameters can be found in `pgr_dijkstraCost "
"`__"
-#: ../../build/docs/basic/pedestrian.rst:273
-msgid ""
-"Exercise 5: Many Pedestrians going to different destinations returning "
-"aggregate costs"
-msgstr ""
-"Ejercicio 5: Muchos peatones que van a diferentes destinos devolviendo "
-"costos agregados"
+#: ../../build/docs/basic/pedestrian.rst:299
+msgid "Exercise 6: Time for many Pedestrians going to different destinations"
+msgstr "Ejercicio 6: Tiempo para muchos peatones que van a diferentes destinos"
-#: ../../build/docs/basic/pedestrian.rst:279
-#: ../../build/docs/basic/pedestrian.rst:316
+#: ../../build/docs/basic/pedestrian.rst:305
+#: ../../build/docs/basic/pedestrian.rst:341
msgid "from \"|place_1|\" or \"|place_2|\""
msgstr "desde \"|place_1|\" o \"|place_2|\""
-#: ../../build/docs/basic/pedestrian.rst:280
-#: ../../build/docs/basic/pedestrian.rst:317
+#: ../../build/docs/basic/pedestrian.rst:306
+#: ../../build/docs/basic/pedestrian.rst:342
msgid "to \"|place_4|\" or \"|place_5|\""
msgstr "desde \"|place_4|\" o \"|place_5|\""
-#: ../../build/docs/basic/pedestrian.rst:282
+#: ../../build/docs/basic/pedestrian.rst:308
msgid "Get only the cost in minutes."
msgstr "Obtener solo el costo en minutos."
-#: ../../build/docs/basic/pedestrian.rst:-1
+#: ../../build/docs/basic/pedestrian.rst:310
msgid "From the hotels to the |place_4| and |place_5|"
msgstr "De los hoteles a |place_4| y |place_5|"
-#: ../../build/docs/basic/pedestrian.rst:290
-#: ../../build/docs/basic/pedestrian.rst:323
-msgid "The pedestrians depart from |id_1| and |id_2| (line **10**)."
-msgstr "Los peatones parten de |id_1| y |id_2| (línea **10**)."
-
-#: ../../build/docs/basic/pedestrian.rst:291
-#: ../../build/docs/basic/pedestrian.rst:324
-msgid ""
-"The pedestrians want to go to destinations |id_4| and |id_5| (line "
-"**11**)."
-msgstr "Los peatones quieren ir a destinos |id_4| y |id_5| (línea **11**)."
-
-#: ../../build/docs/basic/pedestrian.rst:292
-msgid ""
-"The cost to be in minutes, with a walking speed ``s = 1.3 m/s`` and ``t ="
-" d/s`` (line **7**)."
-msgstr ""
-"El costo a ser en minutos, con una velocidad de caminata ``s = 1.3 m/s`` y ``"
-"t = d/s`` (línea **7**)."
-
-#: ../../build/docs/basic/pedestrian.rst:293
+#: ../../build/docs/basic/pedestrian.rst:319
msgid "Result as aggregated costs."
msgstr "Resultado como costos agregados."
-#: ../../build/docs/basic/pedestrian.rst:304
-msgid ":ref:`basic/appendix:**Exercise**: 5 (**Chapter:** Pedestrian)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 5 (**Chapter:** Pedestrian)`"
-
-#: ../../build/docs/basic/pedestrian.rst:306
+#: ../../build/docs/basic/pedestrian.rst:331
msgid ""
"Compare with `Exercise 4: Many Pedestrians going to different "
"destinations`_ 's note."
@@ -498,34 +502,32 @@ msgstr ""
"Compárese con las notas del `Ejercicio 4: Muchos peatones que van a "
"diferentes destinos`_."
-#: ../../build/docs/basic/pedestrian.rst:310
+#: ../../build/docs/basic/pedestrian.rst:335
msgid ""
-"Exercise 6: Many Pedestrians going to different destinations summarizing "
+"Exercise 7: Many Pedestrians going to different destinations summarizing "
"the total costs per departure"
msgstr ""
-"Ejercicio 6: Muchos peatones van a diferentes destinos resumiendo costos "
-"totales por salida"
+"Ejercicio 7: Muchos peatones que van a diferentes destinos resumiendo los"
+" costos totales por salida"
-#: ../../build/docs/basic/pedestrian.rst:319
+#: ../../build/docs/basic/pedestrian.rst:344
msgid "Summarize cost in minutes."
msgstr "Reportar costos en minutos."
-#: ../../build/docs/basic/pedestrian.rst:325
+#: ../../build/docs/basic/pedestrian.rst:350
msgid ""
"The cost to be in minutes, with a walking speed s = 1.3 m/s and t = d/s "
-"(line **7**)."
+"(line **6**)."
msgstr ""
"El costo a ser en minutos, con una velocidad de caminata s = 1.3 m/s y t "
-"= d/s (línea **7**)."
-
-#: ../../build/docs/basic/pedestrian.rst:337
-msgid ":ref:`basic/appendix:**Exercise**: 6 (**Chapter:** Pedestrian)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 6 (**Chapter:** Pedestrian)`"
+"= d/s (línea **6**)."
#: ../../build/docs/scripts/basic/chapter_5/note_2.txt:1
msgid ""
"An interpretation of the result can be: In general, it is faster to "
-"depart from \"Qendra Sprotive\" than from \"Nadir Xhemali Danijolli\""
+"depart from \"Instituto Federal do Pará, Campus Belém\" than from "
+"\"Hangar Convention Center\""
msgstr ""
-"Una interpretación del resultado puede ser: En general, es más rápido salir "
-"de \"Qendra Sprotive\" que de \"Nadir Xhemali Danijolli\""
+"Una interpretación del resultado puede ser: En general, es más rápido "
+"salir de \"Instituto Federal do Pará, Campus Belém\" que de \"Hangar "
+"Convention Center\""
diff --git a/locale/es/LC_MESSAGES/basic/plpgsql_function.po b/locale/es/LC_MESSAGES/basic/plpgsql_function.po
index 8fccc03bb..2ef3bc3b7 100644
--- a/locale/es/LC_MESSAGES/basic/plpgsql_function.po
+++ b/locale/es/LC_MESSAGES/basic/plpgsql_function.po
@@ -10,10 +10,10 @@
# Vicky Vergara , 2022
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-08 16:17+0000\n"
-"PO-Revision-Date: 2024-03-22 16:47+0000\n"
+"POT-Creation-Date: 2024-11-10 17:09+0000\n"
+"PO-Revision-Date: 2024-12-16 19:42+0000\n"
"Last-Translator: Celia Virginia Vergara Castillo \n"
"Language-Team: Spanish \n"
@@ -22,8 +22,8 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.3\n"
-"Generated-By: Babel 2.12.1\n"
+"X-Generator: Weblate 5.4.3\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/basic/plpgsql_function.rst:11
msgid "pl/pgsql function"
@@ -39,153 +39,154 @@ msgstr ""
"Otro tipo de funciones son `pl/pgsql "
"`__. A medida que "
"los requisitos de las aplicaciones se vuelven más complejos, el uso de "
-"contenedores de funciones previamente definidas se hace necesario para "
+"envoltorios de funciones previamente definidas se hacen necesarios para "
"mayor claridad."
-#: ../../build/docs/basic/plpgsql_function.rst:21
+#: ../../build/docs/basic/plpgsql_function.rst:22
msgid "Chapter contents"
msgstr "Contenido del capítulo"
-#: ../../build/docs/basic/plpgsql_function.rst:24
+#: ../../build/docs/basic/plpgsql_function.rst:25
msgid "Requirements for routing from A to B"
msgstr "Requisitos para el ruteo de A a B"
-#: ../../build/docs/basic/plpgsql_function.rst:27
+#: ../../build/docs/basic/plpgsql_function.rst:28
msgid "Chapter problem:"
msgstr "Problema del capítulo:"
-#: ../../build/docs/basic/plpgsql_function.rst:28
+#: ../../build/docs/basic/plpgsql_function.rst:29
msgid "Create a function ``wrk_fromAtoB`` that allows routing from 2 geometries."
msgstr "Cree una función ``wrk_fromAtoB`` que permita el ruteo desde 2 geometrías."
-#: ../../build/docs/basic/plpgsql_function.rst:29
+#: ../../build/docs/basic/plpgsql_function.rst:30
msgid "The function takes latitude/longitude points as input parameters."
msgstr "La función toma los puntos de latitud/longitud como parámetros de entrada."
-#: ../../build/docs/basic/plpgsql_function.rst:30
+#: ../../build/docs/basic/plpgsql_function.rst:31
msgid ""
-"Returns a route that includes a geometry so that if can be displayed, "
-"for example, in QGIS."
+"Returns a route that includes a geometry so that if can be displayed, for"
+" example, in QGIS."
msgstr ""
-"Devuelve una ruta que incluye una geometría para que si se puede mostrar,"
-" por ejemplo, en QGIS."
+"Devuelve una ruta que incluye una geometría para que si se puede "
+"desplegar, por ejemplo, en QGIS."
-#: ../../build/docs/basic/plpgsql_function.rst:31
+#: ../../build/docs/basic/plpgsql_function.rst:32
msgid "Will also return some other attributes."
msgstr "También devolverá algunos otros atributos."
-#: ../../build/docs/basic/plpgsql_function.rst:33
+#: ../../build/docs/basic/plpgsql_function.rst:34
msgid "The detailed description:"
msgstr "La descripción detallada:"
-#: ../../build/docs/basic/plpgsql_function.rst:36
+#: ../../build/docs/basic/plpgsql_function.rst:37
msgid "Input parameters"
msgstr "Parámetros de entrada"
-#: ../../build/docs/basic/plpgsql_function.rst:38
-#: ../../build/docs/basic/plpgsql_function.rst:52
-#: ../../build/docs/basic/plpgsql_function.rst:185
-#: ../../build/docs/basic/plpgsql_function.rst:332
-msgid "Column"
-msgstr "Columna"
+#: ../../build/docs/basic/plpgsql_function.rst:39
+msgid "Parameter"
+msgstr "Parámetro"
-#: ../../build/docs/basic/plpgsql_function.rst:38
-#: ../../build/docs/basic/plpgsql_function.rst:332
-#: ../../build/docs/basic/plpgsql_function.rst:342
+#: ../../build/docs/basic/plpgsql_function.rst:39
+#: ../../build/docs/basic/plpgsql_function.rst:204
+#: ../../build/docs/basic/plpgsql_function.rst:214
msgid "type"
msgstr "tipo"
-#: ../../build/docs/basic/plpgsql_function.rst:38
-#: ../../build/docs/basic/plpgsql_function.rst:52
-#: ../../build/docs/basic/plpgsql_function.rst:185
-#: ../../build/docs/basic/plpgsql_function.rst:332
-#: ../../build/docs/basic/plpgsql_function.rst:342
+#: ../../build/docs/basic/plpgsql_function.rst:39
+#: ../../build/docs/basic/plpgsql_function.rst:54
+#: ../../build/docs/basic/plpgsql_function.rst:204
+#: ../../build/docs/basic/plpgsql_function.rst:214
msgid "Description"
msgstr "Descripción"
-#: ../../build/docs/basic/plpgsql_function.rst:40
-msgid "edges_subset"
-msgstr "edges_subset"
+#: ../../build/docs/basic/plpgsql_function.rst:41
+msgid "``edges_subset``"
+msgstr "``edges_subset``"
-#: ../../build/docs/basic/plpgsql_function.rst:40
-#: ../../build/docs/basic/plpgsql_function.rst:334
+#: ../../build/docs/basic/plpgsql_function.rst:41
+#: ../../build/docs/basic/plpgsql_function.rst:206
msgid "REGCLASS"
msgstr "REGCLASS"
-#: ../../build/docs/basic/plpgsql_function.rst:40
+#: ../../build/docs/basic/plpgsql_function.rst:41
msgid "Edge table name identifier."
msgstr "Identificador de nombre de tabla perimetral."
-#: ../../build/docs/basic/plpgsql_function.rst:41
-msgid "lat1"
-msgstr "lat1"
+#: ../../build/docs/basic/plpgsql_function.rst:42
+msgid "``lat1``"
+msgstr "``lat1``"
-#: ../../build/docs/basic/plpgsql_function.rst:41
#: ../../build/docs/basic/plpgsql_function.rst:42
#: ../../build/docs/basic/plpgsql_function.rst:43
#: ../../build/docs/basic/plpgsql_function.rst:44
-#: ../../build/docs/basic/plpgsql_function.rst:335
-#: ../../build/docs/basic/plpgsql_function.rst:336
+#: ../../build/docs/basic/plpgsql_function.rst:45
+#: ../../build/docs/basic/plpgsql_function.rst:207
+#: ../../build/docs/basic/plpgsql_function.rst:208
msgid "NUMERIC"
msgstr "NUMERIC"
-#: ../../build/docs/basic/plpgsql_function.rst:41
-msgid "The latitude of the `departure` point."
-msgstr "La latitud del punto de `partida`."
-
-#: ../../build/docs/basic/plpgsql_function.rst:42
-msgid "lon1"
-msgstr "lon1"
-
#: ../../build/docs/basic/plpgsql_function.rst:42
-msgid "The longitude of the `departure` point."
-msgstr "La longitud del punto de `partida`."
+msgid "The latitude of the `departure` point."
+msgstr "La latitud del punto de `partida`."
#: ../../build/docs/basic/plpgsql_function.rst:43
-msgid "lat2"
-msgstr "lat2"
+msgid "``lon1``"
+msgstr "``lon1``"
#: ../../build/docs/basic/plpgsql_function.rst:43
-msgid "The latitude of the `destination` point."
-msgstr "La latitud del punto de `destino`."
+msgid "The longitude of the `departure` point."
+msgstr "La longitud del punto de `partida`."
#: ../../build/docs/basic/plpgsql_function.rst:44
-msgid "lon2"
-msgstr "lon2"
+msgid "``lat2``"
+msgstr "``lat2``"
#: ../../build/docs/basic/plpgsql_function.rst:44
-msgid "The longitude of the `destination` point."
-msgstr "La longitud del punto de `destino`."
+msgid "The latitude of the `destination` point."
+msgstr "La latitud del punto de `destino`."
#: ../../build/docs/basic/plpgsql_function.rst:45
-msgid "do_debug"
-msgstr "do_debug"
+msgid "``lon2``"
+msgstr "``lon2``"
#: ../../build/docs/basic/plpgsql_function.rst:45
+msgid "The longitude of the `destination` point."
+msgstr "La longitud del punto de `destino`."
+
+#: ../../build/docs/basic/plpgsql_function.rst:46
+msgid "``do_debug``"
+msgstr "``do_debug``"
+
+#: ../../build/docs/basic/plpgsql_function.rst:46
msgid "BOOLEAN"
msgstr "BOOLEAN"
-#: ../../build/docs/basic/plpgsql_function.rst:45
+#: ../../build/docs/basic/plpgsql_function.rst:46
msgid "Flag to create a ``WARNING`` with the query that is been executed"
msgstr "Marcar para crear una ``ADVERTENCIA`` con la consulta que se ha ejecutado"
-#: ../../build/docs/basic/plpgsql_function.rst:50
+#: ../../build/docs/basic/plpgsql_function.rst:52
msgid "Output columns"
msgstr "Columnas de resultados"
#: ../../build/docs/basic/plpgsql_function.rst:54
-msgid "*seq*"
-msgstr "*seq*"
+#: ../../build/docs/basic/plpgsql_function.rst:204
+msgid "Column"
+msgstr "Columna"
-#: ../../build/docs/basic/plpgsql_function.rst:54
+#: ../../build/docs/basic/plpgsql_function.rst:56
+msgid "``seq``"
+msgstr "``seq``"
+
+#: ../../build/docs/basic/plpgsql_function.rst:56
msgid "For ordering purposes."
msgstr "Para fines ordenamiento."
-#: ../../build/docs/basic/plpgsql_function.rst:55
-msgid "*gid*"
-msgstr "*gid*"
+#: ../../build/docs/basic/plpgsql_function.rst:57
+msgid "``gid``"
+msgstr "``gid``"
-#: ../../build/docs/basic/plpgsql_function.rst:55
+#: ../../build/docs/basic/plpgsql_function.rst:57
msgid ""
"The edge identifier that can be used to JOIN the results to the ``ways`` "
"table."
@@ -193,485 +194,256 @@ msgstr ""
"Identificador de bordes que se puede utilizar para unir los resultados a "
"la tabla ``ways``."
-#: ../../build/docs/basic/plpgsql_function.rst:56
-msgid "*name*"
-msgstr "*name*"
+#: ../../build/docs/basic/plpgsql_function.rst:58
+msgid "``name``"
+msgstr "``name``"
-#: ../../build/docs/basic/plpgsql_function.rst:56
+#: ../../build/docs/basic/plpgsql_function.rst:58
msgid "The street name."
msgstr "El nombre de la calle."
-#: ../../build/docs/basic/plpgsql_function.rst:57
-msgid "*azimuth*"
-msgstr "*azimuth*"
+#: ../../build/docs/basic/plpgsql_function.rst:59
+msgid "``azimuth``"
+msgstr "``azimuth``"
-#: ../../build/docs/basic/plpgsql_function.rst:57
+#: ../../build/docs/basic/plpgsql_function.rst:59
msgid "Between start and end node of an edge."
msgstr "Entre el nodo inicial y final de una arista."
-#: ../../build/docs/basic/plpgsql_function.rst:58
-msgid "*length*"
-msgstr "*length*"
+#: ../../build/docs/basic/plpgsql_function.rst:60
+msgid "``length``"
+msgstr "``length``"
-#: ../../build/docs/basic/plpgsql_function.rst:58
+#: ../../build/docs/basic/plpgsql_function.rst:60
msgid "In meters."
msgstr "En metros."
-#: ../../build/docs/basic/plpgsql_function.rst:59
-msgid "*minutes*"
-msgstr "*minutes*"
+#: ../../build/docs/basic/plpgsql_function.rst:61
+msgid "``minutes``"
+msgstr "``minutes``"
-#: ../../build/docs/basic/plpgsql_function.rst:59
+#: ../../build/docs/basic/plpgsql_function.rst:61
msgid "Minutes taken to traverse the segment."
msgstr "Minutos tomados para atravesar el segmento."
-#: ../../build/docs/basic/plpgsql_function.rst:60
-msgid "*route_geom*"
-msgstr "*route_geom*"
+#: ../../build/docs/basic/plpgsql_function.rst:62
+msgid "``route_geom``"
+msgstr "``route_geom``"
-#: ../../build/docs/basic/plpgsql_function.rst:60
+#: ../../build/docs/basic/plpgsql_function.rst:62
msgid "The road geometry with corrected directionality."
msgstr "La geometría de la carretera con direccionalidad corregida."
-#: ../../build/docs/basic/plpgsql_function.rst:64
+#: ../../build/docs/basic/plpgsql_function.rst:66
msgid "For this chapter, the following points will be used for testing."
msgstr "Para este capítulo, se utilizarán los siguientes puntos para las pruebas."
-#: ../../build/docs/basic/plpgsql_function.rst:66
-msgid "(lat,lon) = (42.2151, 20.729354)"
-msgstr "(lat,lon) = (42.2151, 20.729354)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:67
-msgid "(lat,lon) = (42.2147, 20.7312)"
-msgstr "(lat,lon) = (42.2147, 20.7312)"
+#: ../../build/docs/basic/plpgsql_function.rst:68
+msgid "(lat,lon) = (-1.455829, -48.446044)"
+msgstr "(lat,lon) = (-1.455829, -48.446044)"
#: ../../build/docs/basic/plpgsql_function.rst:69
-msgid "Saving this information on a table:"
-msgstr "Guardar esta información en una tabla:"
-
-#: ../../build/docs/basic/plpgsql_function.rst:71
-msgid "The ``X`` value of a geometry is the longitude."
-msgstr "El valor ``X`` de una geometría es la longitud."
+msgid "(lat,lon) = (-1.453448, -48.447142)"
+msgstr "(lat,lon) = (-1.453448, -48.447142)"
#: ../../build/docs/basic/plpgsql_function.rst:72
-msgid "The ``Y`` value of a geometry is the latitude."
-msgstr "El valor ``Y`` de una geometría es la latitud."
-
-#: ../../build/docs/basic/plpgsql_function.rst:73
-msgid "Natural language to form the point is ``(latitude, longitude)``."
-msgstr "El lenguaje natural para formar el punto es ``(latitud, longitud)``."
-
-#: ../../build/docs/basic/plpgsql_function.rst:74
-msgid "For geometry processing to form the point is ``(longitude, latitude)``."
-msgstr ""
-"Para que el procesamiento de geometría forme el punto es ``(longitud, "
-"latitud)``."
-
-#: ../../build/docs/basic/plpgsql_function.rst:75
-msgid "lines **4** and **6** show the inverse order of the (lat,lon) pairs."
-msgstr "líneas **4** y **6** muestran el orden inverso de los pares (lat,lon)."
-
-#: ../../build/docs/basic/plpgsql_function.rst:85
-msgid "The Vertex Table"
+msgid "The Vertices Table"
msgstr "La Tabla de Vértices"
-#: ../../build/docs/basic/plpgsql_function.rst:87
-msgid "Graphs have a `set of edges` and a `set of vertices` associated to it."
+#: ../../build/docs/basic/plpgsql_function.rst:74
+msgid ""
+"Graphs have a `set of edges` and a `set of vertices` associated to it. "
+"The views need their vertices table."
msgstr ""
"Los grafos tienen un `conjunto de aristas` y un `conjunto de vértices` "
-"asociados a él."
+"asociados a él. Las vistas necesitan su tabla de vértices."
-#: ../../build/docs/basic/plpgsql_function.rst:89
-msgid ""
-"`osm2pgrouting` provides the `ways_vertices_pgr` table which is "
-"associated with the `ways` table."
-msgstr ""
-"`osm2pgrouting` proporciona la tabla `ways_vertices_pgr`, asociada a la "
-"tabla `formas`."
+#: ../../build/docs/basic/plpgsql_function.rst:78
+msgid "Exercise 1: Create vertices table"
+msgstr "Ejercicio 1: Crear la tabla de vértices"
-#: ../../build/docs/basic/plpgsql_function.rst:92
-msgid ""
-"When a subset of `edges` is used like in ``vehicle_net`` or in "
-"``taxi_net``, the set of vertices associated to each one must be used in "
-"order to, for example, locate the nearest vertex to a lat/lon location."
-msgstr ""
-"Cuando se utiliza un subconjunto de `edges` como en ``vehicle_net`` or in"
-" ``taxi_net`` se debe utilizar el conjunto de vértices asociados a cada "
-"una para, por ejemplo, localizar el vértice más cercano a una ubicación "
-"lat/lon."
-
-#: ../../build/docs/basic/plpgsql_function.rst:97
-msgid "Exercise 1: Number of vertices"
-msgstr "Ejercicio 1: Número de vértices"
-
-#: ../../build/docs/basic/plpgsql_function.rst:100
-#: ../../build/docs/basic/plpgsql_function.rst:171
-#: ../../build/docs/basic/plpgsql_function.rst:246
-#: ../../build/docs/basic/plpgsql_function.rst:321
-#: ../../build/docs/basic/plpgsql_function.rst:387
-#: ../../build/docs/basic/plpgsql_function.rst:468
-#: ../../build/docs/basic/plpgsql_function.rst:542
+#: ../../build/docs/basic/plpgsql_function.rst:81
+#: ../../build/docs/basic/plpgsql_function.rst:128
+#: ../../build/docs/basic/plpgsql_function.rst:193
+#: ../../build/docs/basic/plpgsql_function.rst:256
+#: ../../build/docs/basic/plpgsql_function.rst:329
+#: ../../build/docs/basic/plpgsql_function.rst:405
msgid "Problem"
msgstr "Problema"
-#: ../../build/docs/basic/plpgsql_function.rst:101
-msgid "Calculate the number of vertices in a graph."
-msgstr "Calcular el número de vértices en un grafo."
-
-#: ../../build/docs/basic/plpgsql_function.rst:103
-msgid "Depending on the graph calculate the number of vertices of:"
-msgstr "Dependiendo del grafo calcular el número de vértices de:"
-
-#: ../../build/docs/basic/plpgsql_function.rst:105
-#: ../../build/docs/basic/plpgsql_function.rst:177
-msgid "``ways``"
-msgstr "``ways``"
+#: ../../build/docs/basic/plpgsql_function.rst:82
+msgid "Create a vertices table for the views:"
+msgstr "Crear una tabla de vértices:"
-#: ../../build/docs/basic/plpgsql_function.rst:106
-#: ../../build/docs/basic/plpgsql_function.rst:178
+#: ../../build/docs/basic/plpgsql_function.rst:84
msgid "``vehicle_net``"
msgstr "``vehicle_net``"
-#: ../../build/docs/basic/plpgsql_function.rst:107
-#: ../../build/docs/basic/plpgsql_function.rst:179
+#: ../../build/docs/basic/plpgsql_function.rst:85
msgid "``taxi_net``"
msgstr "``taxi_net``"
-#: ../../build/docs/basic/plpgsql_function.rst:108
-#: ../../build/docs/basic/plpgsql_function.rst:180
+#: ../../build/docs/basic/plpgsql_function.rst:86
msgid "``walk_net``"
msgstr "``walk_net``"
-#: ../../build/docs/basic/plpgsql_function.rst:111
-#: ../../build/docs/basic/plpgsql_function.rst:192
-#: ../../build/docs/basic/plpgsql_function.rst:263
-#: ../../build/docs/basic/plpgsql_function.rst:348
-#: ../../build/docs/basic/plpgsql_function.rst:404
-#: ../../build/docs/basic/plpgsql_function.rst:481
-#: ../../build/docs/basic/plpgsql_function.rst:565
+#: ../../build/docs/basic/plpgsql_function.rst:90
+#: ../../build/docs/basic/plpgsql_function.rst:141
+#: ../../build/docs/basic/plpgsql_function.rst:220
+#: ../../build/docs/basic/plpgsql_function.rst:273
+#: ../../build/docs/basic/plpgsql_function.rst:342
+#: ../../build/docs/basic/plpgsql_function.rst:428
msgid "Solution"
msgstr "Solución"
-#: ../../build/docs/basic/plpgsql_function.rst:112
-#: ../../build/docs/basic/plpgsql_function.rst:193
-msgid "For ``ways``:"
-msgstr "Para ``ways``:"
-
-#: ../../build/docs/basic/plpgsql_function.rst:114
-#: ../../build/docs/basic/plpgsql_function.rst:195
+#: ../../build/docs/basic/plpgsql_function.rst:91
msgid ""
-"`osm2pgrouting` automatically created the ``ways_vertices_pgr`` table "
-"that contains all the vertices in ``ways`` table."
+"Use ``pgr_extractVertices`` (explained in :doc:`graph_views`) to create "
+"the vertices table"
msgstr ""
-"`osm2pgrouting` creó automáticamente la tabla ``ways_vertices_pgr`` que "
-"contiene todos los vértices en la tabla ``ways``."
+"Utilizar ``pgr_extractVertices`` (explicado en :doc:`graph_views`) para "
+"crear la tabla de vértices"
-#: ../../build/docs/basic/plpgsql_function.rst:116
+#: ../../build/docs/basic/plpgsql_function.rst:93
msgid ""
-"Using `aggregate function `__ ``count``. (line **1**)"
+"``JOIN`` the vertices table with ``ways_vertices`` (created in "
+":doc:`graph_views`) to get the ``x``, ``y``, ``geom`` information."
msgstr ""
-"Uso de la `función agregada `__ ``count``. (line **1**)"
+"``JOIN`` la tabla de vértices con ``ways_vertices`` (creada en "
+":doc:`graph_views`) para obtener la información de ``x``, ``y``, "
+"``geom``."
-#: ../../build/docs/basic/plpgsql_function.rst:118
-msgid "Count all the rows of ``ways_vertices_pgr`` table. (line **2**)"
-msgstr "Cuente todas las filas de la tabla ``ways_vertices_pgr``. (line **2**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:127
-#: ../../build/docs/basic/plpgsql_function.rst:202
-#: ../../build/docs/basic/plpgsql_function.rst:547
-#: ../../build/docs/basic/plpgsql_function.rst:566
+#: ../../build/docs/basic/plpgsql_function.rst:96
+#: ../../build/docs/basic/plpgsql_function.rst:410
+#: ../../build/docs/basic/plpgsql_function.rst:429
msgid "For ``vehicle_net``:"
msgstr "Para ``vehicle_net``:"
-#: ../../build/docs/basic/plpgsql_function.rst:129
-msgid "Extract the vertices identifiers of the ``source`` column. (line **3**)"
-msgstr ""
-"Extraiga los identificadores de vértices de la columna ``fuente``. (línea"
-" **3**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:130
-msgid "Extract the vertices identifiers of the ``target`` column. (line **8**)"
-msgstr ""
-"Extraiga los identificadores de vértices de la columna ``target``. (línea"
-" **8**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:131
-msgid ""
-"`UNION `__ both results (line **6**)"
-msgstr ""
-"`UNIÓN `__ "
-"de ambos resultados (línea **6**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:141
-#: ../../build/docs/basic/plpgsql_function.rst:218
-#: ../../build/docs/basic/plpgsql_function.rst:551
-#: ../../build/docs/basic/plpgsql_function.rst:579
+#: ../../build/docs/basic/plpgsql_function.rst:104
+#: ../../build/docs/basic/plpgsql_function.rst:414
+#: ../../build/docs/basic/plpgsql_function.rst:444
msgid "For ``taxi_net``:"
msgstr "Para ``taxi_net``:"
-#: ../../build/docs/basic/plpgsql_function.rst:143
-msgid ""
-"Similar solution as in previous query but on ``taxi_net``. (lines **4** "
-"and **9**)"
-msgstr ""
-"Solución similar a la de la consulta anterior pero en ``taxi_net``. "
-"(líneas **4** y **9**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:152
-#: ../../build/docs/basic/plpgsql_function.rst:228
-#: ../../build/docs/basic/plpgsql_function.rst:555
-#: ../../build/docs/basic/plpgsql_function.rst:591
+#: ../../build/docs/basic/plpgsql_function.rst:110
+#: ../../build/docs/basic/plpgsql_function.rst:418
+#: ../../build/docs/basic/plpgsql_function.rst:457
msgid "For ``walk_net``:"
msgstr "Para ``walk_net``:"
-#: ../../build/docs/basic/plpgsql_function.rst:154
-msgid ""
-"Similar solution as in previous query but on ``walk_net``. (lines **4** "
-"and **9**)"
-msgstr ""
-"Solución similar a la de la consulta anterior pero en ``walk_net``. "
-"(líneas **4** y **9**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:165
-msgid ":ref:`basic/appendix:**Exercise**: 1 (**Chapter:** pl/pgsql)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 1 (**Chapter:** pl/pgsql)`"
-
-#: ../../build/docs/basic/plpgsql_function.rst:168
-msgid "Exercise 2: Vertices on a table"
-msgstr "Ejercicio 2: Vértices en una tabla"
-
-#: ../../build/docs/basic/plpgsql_function.rst:172
-msgid "Create a vertices table."
-msgstr "Crear una tabla de vértices."
-
-#: ../../build/docs/basic/plpgsql_function.rst:173
-msgid "Follow the suffix naming ``_vertices_pgr``."
-msgstr "Siga el sufijo que nombra ``_vertices_pgr``."
-
-#: ../../build/docs/basic/plpgsql_function.rst:175
-msgid "Depending on the graph create a vertices table of:"
-msgstr "Dependiendo del grafo cree una tabla de vértices de:"
-
-#: ../../build/docs/basic/plpgsql_function.rst:182
-msgid "The vertices table should contain:"
-msgstr "La tabla de vértices debe contener:"
-
-#: ../../build/docs/basic/plpgsql_function.rst:187
-msgid "osm_id"
-msgstr "osm_id"
-
-#: ../../build/docs/basic/plpgsql_function.rst:187
-msgid "OSM Identifier of the vertex."
-msgstr "Identificador de OSM del vértice."
-
-#: ../../build/docs/basic/plpgsql_function.rst:188
-msgid "the_geom"
-msgstr "the_geom"
-
-#: ../../build/docs/basic/plpgsql_function.rst:188
-msgid "The geometry of the vertex."
-msgstr "La geometría del vértice."
-
-#: ../../build/docs/basic/plpgsql_function.rst:197
-msgid "The vertices are already on a table."
-msgstr "Los vértices ya se encuentran en una tabla."
-
-#: ../../build/docs/basic/plpgsql_function.rst:198
-msgid "The table suffix follows is as requested."
-msgstr "El sufijo de tabla que sigue es el solicitado."
-
-#: ../../build/docs/basic/plpgsql_function.rst:199
-msgid "There is no need to create a table."
-msgstr "No es necesario crear una tabla."
-
-#: ../../build/docs/basic/plpgsql_function.rst:200
-msgid ""
-"The source and target columns are in terms of ``id`` column of "
-"``ways_vertices_pgr``"
-msgstr ""
-"Las columnas de origen y destino son en términos de columna ``id`` de "
-"``ways_vertices_pgr``"
-
-#: ../../build/docs/basic/plpgsql_function.rst:204
-msgid ""
-"Using the query ``id_list`` from `Exercise 1: Number of vertices`_. (not "
-"highlighted lines **2** to **8**)"
-msgstr ""
-"Uso de la consulta ``id_list`` de `Ejercicio 1: Número de vértices`_. "
-"(líneas no resaltadas **2** a **8**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:205
-msgid ""
-"``JOIN`` with ``ways_vertices_pgr`` that has the OSM identifier and the "
-"geometry information. (line **13**)"
-msgstr ""
-"``JOIN`` con ``ways_vertices_pgr`` que tiene el identificador OSM y la "
-"información de geometría. (línea **13**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:206
-msgid "Extract the ``osm_id`` and ``the_geom``. (line **10**)"
-msgstr "Extraer el ``osm_id`` y ``the_geom``. (línea **10**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:207
-msgid "Save in table ``vehicle_net_vertices_pgr``. (line **11**)"
-msgstr "Guardar en la tabla ``vehicle_net_vertices_pgr``. (línea **11**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:208
-msgid ""
-"The source and target columns values have the ``osm_id`` therefore the "
-"``id`` column of ``vehicle_net_vertices_pgr`` must also have the "
-"``osm_id`` values"
+#: ../../build/docs/basic/plpgsql_function.rst:112
+msgid "Modify the above queries to create the ``walk_net_vertices`` table."
msgstr ""
-"Los valores de las columnas de origen y destino tienen los valores ``osm_id``"
-", por lo tanto, la columna ``id`` de ``vehicle_net_vertices_pgr`` también "
-"debe tener los valores ``osm_id``"
+"Modificar las consultas anteriores para crear la tabla "
+"``walk_net_vertices``."
-#: ../../build/docs/basic/plpgsql_function.rst:220
-#: ../../build/docs/basic/plpgsql_function.rst:230
-msgid ""
-"Similar solution as in previous query but on ``taxi_net``. (lines **3**, "
-"**8** and **11**)"
+#: ../../build/docs/basic/plpgsql_function.rst:120
+msgid "It is left to the reader to remove disconected components on the views."
msgstr ""
-"Solución similar a la de la consulta anterior pero en ``taxi_net``. "
-"(líneas **3**, **8** y **11**)"
+"Se deja al lector la tarea de eliminar los componentes desconectados en "
+"las vistas."
-#: ../../build/docs/basic/plpgsql_function.rst:240
-msgid ":ref:`basic/appendix:**Exercise**: 2 (**Chapter:** pl/pgsql)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 2 (**Chapter:** pl/pgsql)`"
+#: ../../build/docs/basic/plpgsql_function.rst:122
+msgid "See :doc:`graph_views`"
+msgstr "Ver :doc:`graph_views`"
-#: ../../build/docs/basic/plpgsql_function.rst:243
+#: ../../build/docs/basic/plpgsql_function.rst:125
msgid "Exercise 3: Nearest Vertex"
msgstr "Ejercicio 3: Vértice más cercano"
-#: ../../build/docs/basic/plpgsql_function.rst:247
-msgid "Calculate the OSM identifier of the nearest vertex to a point."
-msgstr "Calcule el identificador OSM del vértice más cercano a un punto."
+#: ../../build/docs/basic/plpgsql_function.rst:129
+msgid "Calculate the (OSM) identifier of the nearest vertex to a point."
+msgstr "Calculer el identificador( OSM) del vértice más cercano a un punto."
-#: ../../build/docs/basic/plpgsql_function.rst:249
+#: ../../build/docs/basic/plpgsql_function.rst:131
msgid ""
-"In particular use the following (lat,lon) value: ``(42.2151, "
-"20.729354)``."
+"In particular use the following (lat, lon) value: ``(-1.455829, "
+"-48.446044)``."
msgstr ""
-"En particular, utilice el siguiente valor (lat,lon): ``(42.2151, 20."
-"729354)``."
+"En particular, utilizar el siguiente valor (lat,lon): ``(-1.455829, "
+"-48.446044)``."
-#: ../../build/docs/basic/plpgsql_function.rst:251
-#: ../../build/docs/basic/plpgsql_function.rst:396
+#: ../../build/docs/basic/plpgsql_function.rst:133
+#: ../../build/docs/basic/plpgsql_function.rst:265
msgid "calculate the nearest OSM identifier of the vertex to:"
msgstr "calcular el identificador OSM más cercano del vértice a:"
-#: ../../build/docs/basic/plpgsql_function.rst:253
-#: ../../build/docs/basic/plpgsql_function.rst:399
-msgid "``vehicle_net_vertices_pgr``"
-msgstr "``vehicle_net_vertices_pgr``"
+#: ../../build/docs/basic/plpgsql_function.rst:135
+#: ../../build/docs/basic/plpgsql_function.rst:267
+msgid "``ways_vertices``"
+msgstr "``ways_vertices``"
-#: ../../build/docs/basic/plpgsql_function.rst:254
-#: ../../build/docs/basic/plpgsql_function.rst:400
-msgid "``taxi_net_vertices_pgr``"
-msgstr "``taxi_net_vertices_pgr``"
+#: ../../build/docs/basic/plpgsql_function.rst:136
+#: ../../build/docs/basic/plpgsql_function.rst:268
+msgid "``vehicle_net_vertices``"
+msgstr "``vehicle_net_vertices``"
-#: ../../build/docs/basic/plpgsql_function.rst:255
-#: ../../build/docs/basic/plpgsql_function.rst:401
-msgid "``walk_net_vertices_pgr``"
-msgstr "``walk_net_vertices_pgr``"
+#: ../../build/docs/basic/plpgsql_function.rst:137
+#: ../../build/docs/basic/plpgsql_function.rst:269
+msgid "``taxi_net_vertices``"
+msgstr "``taxi_net_vertices``"
-#: ../../build/docs/basic/plpgsql_function.rst:257
-msgid ""
-"The ``ways`` and the ``ways_vertices_pgr`` tables are not used on the "
-"**final applications**"
-msgstr ""
-"Las tablas ``ways`` y ``ways_vertices_pgr`` no se utilizan en las **"
-"aplicaciones finales**"
+#: ../../build/docs/basic/plpgsql_function.rst:138
+#: ../../build/docs/basic/plpgsql_function.rst:270
+msgid "``walk_net_vertices``"
+msgstr "``walk_net_vertices``"
-#: ../../build/docs/basic/plpgsql_function.rst:259
+#: ../../build/docs/basic/plpgsql_function.rst:142
msgid ""
-"The *net* views and *vertices* tables have been prepared in such a way "
-"that the ``AS`` statement is not needed any more on a pgRouting function."
+"Remember that the ``id`` has an OSM vertex identifier on the vertices "
+"tables."
msgstr ""
-"Las vistas *net* y las tablas *vértices* se han preparado de tal manera "
-"que la instrucción ``AS`` ya no se necesita en una función pgRouting."
-
-#: ../../build/docs/basic/plpgsql_function.rst:264
-#: ../../build/docs/basic/plpgsql_function.rst:405
-msgid "For ``ways_vertices_pgr``:"
-msgstr "Para ``ways_vertices_pgr``:"
-
-#: ../../build/docs/basic/plpgsql_function.rst:266
-msgid "Get the osm_id. (line **1**)"
-msgstr "Obtener la osm_id. (línea **1**)"
+"Recordar que el ``id`` tiene un identificador de vértice OSM en las "
+"tablas de vértices."
-#: ../../build/docs/basic/plpgsql_function.rst:267
+#: ../../build/docs/basic/plpgsql_function.rst:143
msgid ""
-"Using the distance operator `<-> "
+"Using the Postgis distance operator `<-> "
"`__ to order by "
-"distance. (line **3**)"
+"distance."
msgstr ""
"Usando el operador de distancia `<-> "
"`__ para ordenar por"
-" distancia (línea **3**)"
+" distancia."
-#: ../../build/docs/basic/plpgsql_function.rst:268
-msgid ""
-"Get only the first row, to obtain the nearest OSM identifier of the "
-"vertex. (line **4**)"
+#: ../../build/docs/basic/plpgsql_function.rst:144
+msgid "Get only the first row, to obtain the nearest identifier of the vertex."
msgstr ""
-"Obtenga solo la primera fila para obtener el identificador de OSM más "
-"cercano del vértice. (línea **4**)"
+"Obtenga solo la primera fila para obtener el identificador más cercano "
+"del vértice."
-#: ../../build/docs/basic/plpgsql_function.rst:277
-msgid "For ``vehicle_net_vertices_pgr``:"
-msgstr "Para``vehicle_net_vertices_pgr``:"
-
-#: ../../build/docs/basic/plpgsql_function.rst:279
-msgid "Similar solution as in previous query but:"
-msgstr "Solución similar a la de la consulta anterior, pero:"
-
-#: ../../build/docs/basic/plpgsql_function.rst:281
-msgid "Extracting the ``id`` columns. (line **1**)"
-msgstr "Extracción de las columnas ``id``. (línea **1**)"
+#: ../../build/docs/basic/plpgsql_function.rst:146
+#: ../../build/docs/basic/plpgsql_function.rst:274
+msgid "For ``ways_vertices``:"
+msgstr "Para ``ways_vertices``:"
-#: ../../build/docs/basic/plpgsql_function.rst:282
-msgid "On ``vehicle_net_vertices_pgr``. (line **2**)"
-msgstr "En ``vehicle_net_vertices_pgr``. (línea **2**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:291
-#: ../../build/docs/basic/plpgsql_function.rst:431
-msgid "For ``taxi_net_vertices_pgr``:"
-msgstr "Para ``taxi_net_vertices_pgr``:"
+#: ../../build/docs/basic/plpgsql_function.rst:157
+msgid "For ``vehicle_net_vertices``:"
+msgstr "Para``vehicle_net_vertices``:"
+#: ../../build/docs/basic/plpgsql_function.rst:159
+#: ../../build/docs/basic/plpgsql_function.rst:174
+#: ../../build/docs/basic/plpgsql_function.rst:182
#: ../../build/docs/basic/plpgsql_function.rst:293
-msgid ""
-"Similar solution as in previous query but on ``taxi_net_vertices_pgr``. "
-"(line **2**)"
-msgstr ""
-"Solución similar a la de la consulta anterior pero en "
-"``taxi_net_vertices_pgr``. (línea **2**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:302
-#: ../../build/docs/basic/plpgsql_function.rst:442
-msgid "For ``walk_net_vertices_pgr``:"
-msgstr "Para ``walk_net_vertices_pgr``:"
+#: ../../build/docs/basic/plpgsql_function.rst:306
+msgid "Modify the previous query."
+msgstr "Modificar la consulta anterior."
+#: ../../build/docs/basic/plpgsql_function.rst:172
#: ../../build/docs/basic/plpgsql_function.rst:304
-msgid ""
-"Similar solution as in previous query but on ``walk_net_vertices_pgr``. "
-"(line **2**)"
-msgstr ""
-"Solución similar a la de la consulta anterior pero en "
-"``walk_net_vertices_pgr``. (línea **2**)"
+msgid "For ``taxi_net_vertices``:"
+msgstr "Para ``taxi_net_vertices``:"
-#: ../../build/docs/basic/plpgsql_function.rst:315
-msgid ":ref:`basic/appendix:**Exercise**: 3 (**Chapter:** pl/pgsql)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 3 (**Chapter:** pl/pgsql)`"
+#: ../../build/docs/basic/plpgsql_function.rst:180
+#: ../../build/docs/basic/plpgsql_function.rst:312
+msgid "For ``walk_net_vertices``:"
+msgstr "Para ``walk_net_vertices``:"
-#: ../../build/docs/basic/plpgsql_function.rst:318
+#: ../../build/docs/basic/plpgsql_function.rst:190
msgid "Exercise 4: Nearest vertex function"
msgstr "Ejercicio 4: Función de vértice más cercano"
-#: ../../build/docs/basic/plpgsql_function.rst:322
+#: ../../build/docs/basic/plpgsql_function.rst:194
msgid ""
"When operations look similar for different tables, a function can be "
"created."
@@ -679,7 +451,7 @@ msgstr ""
"Cuando las operaciones se ven similares para diferentes tablas, se puede "
"crear una función."
-#: ../../build/docs/basic/plpgsql_function.rst:324
+#: ../../build/docs/basic/plpgsql_function.rst:196
msgid ""
"Create a function that calculates the OSM identifier of the nearest "
"vertex to a point."
@@ -687,151 +459,129 @@ msgstr ""
"Cree una función que calcule el identificador OSM del vértice más cercano"
" a un punto."
-#: ../../build/docs/basic/plpgsql_function.rst:325
-msgid "Function name: ``wrk_NearestOSM``."
-msgstr "Nombre de la función: ``wrk_NearestOSM``."
+#: ../../build/docs/basic/plpgsql_function.rst:197
+msgid "Function name: ``wrk_nearest``."
+msgstr "Nombre de la función: ``wrk_Nearest``."
-#: ../../build/docs/basic/plpgsql_function.rst:326
+#: ../../build/docs/basic/plpgsql_function.rst:198
msgid "Needs to work only for the **final application** views and table."
msgstr "Solo tiene que funcionar para las vistas y la tabla **aplicación final**."
-#: ../../build/docs/basic/plpgsql_function.rst:329
+#: ../../build/docs/basic/plpgsql_function.rst:201
msgid "The input parameters:"
msgstr "Los parámetros de entrada:"
-#: ../../build/docs/basic/plpgsql_function.rst:334
+#: ../../build/docs/basic/plpgsql_function.rst:206
msgid "vertex_table"
msgstr "vertex_table"
-#: ../../build/docs/basic/plpgsql_function.rst:334
+#: ../../build/docs/basic/plpgsql_function.rst:206
msgid "Table name identifier."
msgstr "Identificador de nombre de tabla."
-#: ../../build/docs/basic/plpgsql_function.rst:335
+#: ../../build/docs/basic/plpgsql_function.rst:207
msgid "lat"
msgstr "lat"
-#: ../../build/docs/basic/plpgsql_function.rst:335
+#: ../../build/docs/basic/plpgsql_function.rst:207
msgid "The latitude of a point."
msgstr "La latitud de un punto."
-#: ../../build/docs/basic/plpgsql_function.rst:336
+#: ../../build/docs/basic/plpgsql_function.rst:208
msgid "lon"
msgstr "lon"
-#: ../../build/docs/basic/plpgsql_function.rst:336
+#: ../../build/docs/basic/plpgsql_function.rst:208
msgid "The longitude of a point."
msgstr "La longitud de un punto."
-#: ../../build/docs/basic/plpgsql_function.rst:339
+#: ../../build/docs/basic/plpgsql_function.rst:211
msgid "The output:"
msgstr "La salida:"
-#: ../../build/docs/basic/plpgsql_function.rst:344
+#: ../../build/docs/basic/plpgsql_function.rst:216
msgid "BIGINT"
msgstr "BIGINT"
-#: ../../build/docs/basic/plpgsql_function.rst:344
+#: ../../build/docs/basic/plpgsql_function.rst:216
msgid "the OSM identifier that is nearest to (lat,lon)."
msgstr "el identificador OSM más cercano a (lat,lon)."
-#: ../../build/docs/basic/plpgsql_function.rst:349
-msgid "The function returns only one value. (line **5**)"
-msgstr "La función devuelve solo un valor. (línea **5**)"
+#: ../../build/docs/basic/plpgsql_function.rst:221
+msgid "The function returns only one ``BIGINT`` value."
+msgstr "La función devuelve sólo un valor ``BIGINT``."
-#: ../../build/docs/basic/plpgsql_function.rst:350
+#: ../../build/docs/basic/plpgsql_function.rst:222
msgid ""
"Using `format `__ to build the query. (line **10**)"
+"#FUNCTIONS-STRING-FORMAT>`__ to build the query."
msgstr ""
"Usando `format `__ para construir la consulta. (línea **10**)"
+"#FUNCTIONS-STRING-FORMAT>`__ para construir la consulta."
-#: ../../build/docs/basic/plpgsql_function.rst:352
+#: ../../build/docs/basic/plpgsql_function.rst:226
msgid ""
"The structure of the query is similar to `Exercise 3: Nearest Vertex`_ "
-"solutions. (lines **12** to **16**)"
+"solutions."
msgstr ""
"La estructura de la consulta es similar a las soluciones `Ejercicio 3: "
-"Vértice más cercano`_. (líneas **12** a **16**)"
+"Vértice más cercano`_."
-#: ../../build/docs/basic/plpgsql_function.rst:353
-msgid "``%1$I`` for the table name identifier. (line **13**)"
-msgstr "``%1$I`` para el identificador de nombre de tabla. (línea **13**)"
+#: ../../build/docs/basic/plpgsql_function.rst:228
+msgid "``%1$I`` for the table name identifier."
+msgstr "``%1$I`` para el identificador de nombre de tabla."
-#: ../../build/docs/basic/plpgsql_function.rst:354
+#: ../../build/docs/basic/plpgsql_function.rst:229
msgid "``%2$s`` and ``%3$s`` for the latitude and longitude."
msgstr "``%2$s`` y ``%3$s`` para la latitud y longitud."
-#: ../../build/docs/basic/plpgsql_function.rst:356
-msgid "The point is formed with (lon/lat) ``(%3$s, %2$s)``. (line **15**)"
-msgstr "El punto se forma con (lon/lat) ``(%3$s, %2$s)``. (línea **15**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:358
-msgid ""
-"The additional parameters of function ``format``, are the parameters of "
-"the function we are creating. (line **19**)"
-msgstr ""
-"Los parámetros adicionales de la función ``format``, son los parámetros "
-"de la función que estamos creando. (línea **19**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:368
-msgid ":ref:`basic/appendix:**Exercise**: 4 (**Chapter:** pl/pgsql)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 4 (**Chapter:** pl/pgsql)`"
+#: ../../build/docs/basic/plpgsql_function.rst:231
+msgid "The point is formed with (lon/lat) ``(%3$s, %2$s)``."
+msgstr "El punto se forma con (lon/lat) ``(%3$s, %2$s)``."
-#: ../../build/docs/basic/plpgsql_function.rst:372
+#: ../../build/docs/basic/plpgsql_function.rst:241
msgid "Exercise 5: Test nearest vertex function"
msgstr "Ejercicio 5: Prueba de la función vértice más cercano"
-#: ../../build/docs/basic/plpgsql_function.rst:-1
+#: ../../build/docs/basic/plpgsql_function.rst:243
msgid "Nearest Vertex in vehicle network"
msgstr "Nodo más cercano en la red vehicular"
-#: ../../build/docs/basic/plpgsql_function.rst:-1
-msgid "Nearest Vertex in taki network"
-msgstr "Nodo más cercano en la red de taxis"
+#: ../../build/docs/basic/plpgsql_function.rst:247
+msgid "Nearest Vertex in taxi network"
+msgstr "Vértice más cercano en la red de taxis"
-#: ../../build/docs/basic/plpgsql_function.rst:-1
+#: ../../build/docs/basic/plpgsql_function.rst:251
msgid "Nearest Vertex in walk network"
msgstr "Nodo más cercano en la red peatonal"
-#: ../../build/docs/basic/plpgsql_function.rst:388
-msgid "Test the ``wrk_NearestOSM`` function."
-msgstr "Pruebe la función ``wrk_NearestOSM``."
+#: ../../build/docs/basic/plpgsql_function.rst:257
+msgid "Test the ``wrk_Nearest`` function."
+msgstr "Probar la función ``wrk_Nearest``."
-#: ../../build/docs/basic/plpgsql_function.rst:390
-msgid ""
-"In particular use the following (lat,lon) values: ``(42.2151, "
-"20.729354)``."
-msgstr ""
-"En particular, utilice los siguientes valores (lat,lon): ``(42.2151, 20."
-"729354)``."
+#: ../../build/docs/basic/plpgsql_function.rst:259
+msgid "Use the following (lat,lon) values: ``(-1.455829, -48.446044)``."
+msgstr "Usar los siguientes valores (lat,lon): ``(-1.455829, -48.446044)``."
-#: ../../build/docs/basic/plpgsql_function.rst:392
+#: ../../build/docs/basic/plpgsql_function.rst:261
msgid "The point is the same as in `Exercise 3: Nearest Vertex`_ problem."
msgstr "El punto es el mismo que en `Ejercicio 3: Vértice más cercano`_."
-#: ../../build/docs/basic/plpgsql_function.rst:394
+#: ../../build/docs/basic/plpgsql_function.rst:263
msgid "Verify the results are the same."
msgstr "Compruebe que los resultados son los mismos."
-#: ../../build/docs/basic/plpgsql_function.rst:398
-msgid "``ways_vertices_pgr``"
-msgstr "``ways_vertices_pgr``"
-
-#: ../../build/docs/basic/plpgsql_function.rst:407
-msgid ""
-"Use the function with ``ways_vertices_pgr`` as the ``vertex_table`` "
-"parameter. (line **2**)"
+#: ../../build/docs/basic/plpgsql_function.rst:276
+msgid "Use the function with ``ways_vertices`` as the ``vertex_table`` parameter."
msgstr ""
-"Utilizar la función con ``ways_vertices_pgr`` como parámetro "
-"``vertex_table``. (línea **2**)"
+"Utilizar la función con ``ways_vertices`` como parámetro de "
+"``vertex_table``."
-#: ../../build/docs/basic/plpgsql_function.rst:408
-msgid "Pass the (lat,lon) values as second and third parameters. (line **3**)"
-msgstr "Pasar los valores (lat,lon) como segundo y tercer parámetro. (línea **3**)"
+#: ../../build/docs/basic/plpgsql_function.rst:277
+msgid "Pass the (lat,lon) values as second and third parameters."
+msgstr "Pasar los valores (lat,lon) como segundo y tercer parámetro."
-#: ../../build/docs/basic/plpgsql_function.rst:409
+#: ../../build/docs/basic/plpgsql_function.rst:278
msgid ""
"Using the function on the original data does not return the OSM "
"identifier."
@@ -839,291 +589,199 @@ msgstr ""
"El uso de la función en los datos originales no devuelve el identificador"
" de OSM."
-#: ../../build/docs/basic/plpgsql_function.rst:411
+#: ../../build/docs/basic/plpgsql_function.rst:280
msgid "The value stored in ``id`` column is not the OSM identifier."
msgstr "El valor almacenado en la columna ``id`` no es el identificador de OSM."
-#: ../../build/docs/basic/plpgsql_function.rst:420
-msgid "For ``vehicles_net_vertices_pgr``:"
-msgstr "Para ``vehicles_net_vertices_pgr``:"
-
-#: ../../build/docs/basic/plpgsql_function.rst:422
-msgid ""
-"Similar solution as in previous query but on "
-"``vehicles_net_vertices_pgr``. (lines **2**)"
-msgstr ""
-"Solución similar a la de la consulta anterior pero en "
-"``vehicles_net_vertices_pgr``. (líneas **2**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:433
-msgid ""
-"Similar solution as in previous query but on ``taxi_net_vertices_pgr``. "
-"(lines **2**)"
-msgstr ""
-"Solución similar a la de la consulta anterior pero en "
-"``taxi_net_vertices_pgr``. (líneas **2**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:444
-msgid ""
-"Similar solution as in previous query but on ``walk_net_vertices_pgr``. "
-"(lines **2**)"
-msgstr ""
-"Solución similar a la de la consulta anterior pero en "
-"``walk_net_vertices_pgr``. (líneas **2**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:455
-msgid ":ref:`basic/appendix:**Exercise**: 5 (**Chapter:** pl/pgsql)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 5 (**Chapter:** pl/pgsql)`"
+#: ../../build/docs/basic/plpgsql_function.rst:291
+msgid "For ``vehicles_net_vertices``:"
+msgstr "Para ``vehicles_net_vertices``:"
-#: ../../build/docs/basic/plpgsql_function.rst:459
+#: ../../build/docs/basic/plpgsql_function.rst:320
msgid "wrk_fromAtoB function"
msgstr "función wrk_fromAtoB"
-#: ../../build/docs/basic/plpgsql_function.rst:461
+#: ../../build/docs/basic/plpgsql_function.rst:322
msgid ""
-"In this section, creation and testing the requiered function will be "
+"In this section, creation and testing the required function will be "
"tackled."
-msgstr "En esta sección, se abordará la creación y prueba de la función resonada."
+msgstr "En esta sección, se abordará la creación y prueba de la función requerida."
-#: ../../build/docs/basic/plpgsql_function.rst:465
+#: ../../build/docs/basic/plpgsql_function.rst:326
msgid "Exercise 6: Creating the main function"
msgstr "Ejercicio 6: Creación de la función principal"
-#: ../../build/docs/basic/plpgsql_function.rst:469
+#: ../../build/docs/basic/plpgsql_function.rst:330
msgid "Create the function ``wrk_fromAtoB``."
msgstr "Crear la función ``wrk_fromAtoB``."
-#: ../../build/docs/basic/plpgsql_function.rst:470
+#: ../../build/docs/basic/plpgsql_function.rst:331
msgid "Follow the description given at `Requirements for routing from A to B`_."
msgstr "Siga la descripción dada en `Requisitos para el ruteo de A a B`_."
-#: ../../build/docs/basic/plpgsql_function.rst:471
-msgid ""
-"Use specialized functions already created ``wrk_dijkstra`` and "
-"``wrk_NearestOSM``."
-msgstr ""
-"Utilice funciones especializadas ya creadas ``wrk_dijkstra`` y "
-"``wrk_NearestOSM``."
+#: ../../build/docs/basic/plpgsql_function.rst:332
+msgid "Use specialized functions:"
+msgstr "Utilizar funciones especializadas:"
-#: ../../build/docs/basic/plpgsql_function.rst:473
+#: ../../build/docs/basic/plpgsql_function.rst:334
msgid "``wrk_NearestOSM`` created on `Exercise 4: Nearest vertex function`_."
msgstr ""
"``wrk_NearestOSM`` creado en `Ejercicio 4: Función de vértice más "
"cercano`_."
-#: ../../build/docs/basic/plpgsql_function.rst:475
+#: ../../build/docs/basic/plpgsql_function.rst:336
msgid "It receives the point in natural language format."
msgstr "Recibe el punto en formato de lenguaje natural."
-#: ../../build/docs/basic/plpgsql_function.rst:476
+#: ../../build/docs/basic/plpgsql_function.rst:337
msgid "Obtains the OSM identifier needed by ``wrk_dijkstra``."
msgstr "Obtiene el identificador OSM necesario por ``wrk_dijkstra``."
-#: ../../build/docs/basic/plpgsql_function.rst:478
-msgid ""
-"``wrk_dijkstra`` created on :ref:`basic/sql_function:Exercise 10: "
-"Function for an application`."
-msgstr ""
-"``wrk_dijkstra`` creado en :ref:`basic/sql_function:Exercise 10: "
-"Function for an application`."
+#: ../../build/docs/basic/plpgsql_function.rst:339
+msgid "``wrk_dijkstra`` created in :doc:`sql_function`"
+msgstr "``wrk_dijkstra`` creado en :doc:`sql_function`"
-#: ../../build/docs/basic/plpgsql_function.rst:482
+#: ../../build/docs/basic/plpgsql_function.rst:343
msgid "The function's signature:"
msgstr "Firma de la función:"
-#: ../../build/docs/basic/plpgsql_function.rst:484
-msgid "The input parameters highlited on lines **2** to **5**."
-msgstr "Los parámetros de entrada se resaltan en las líneas **2** a **5**."
+#: ../../build/docs/basic/plpgsql_function.rst:345
+msgid "The input parameters highlighted."
+msgstr "Los parámetros de entrada están resaltados."
-#: ../../build/docs/basic/plpgsql_function.rst:485
-msgid "The output columns are not higlighted on lines **7** to **13**."
-msgstr "Las columnas de salida no se resaltan en las líneas **7** a **13**."
+#: ../../build/docs/basic/plpgsql_function.rst:346
+msgid "The output columns are not highlighted."
+msgstr "Las columnas de salida no están resaltadas."
-#: ../../build/docs/basic/plpgsql_function.rst:486
-msgid "The function returns a set of values. (line **15**)"
-msgstr "La función devuelve un conjunto de valores. (línea **15**)"
+#: ../../build/docs/basic/plpgsql_function.rst:347
+msgid "The function returns a set of values."
+msgstr "La función devuelve un conjunto de valores."
-#: ../../build/docs/basic/plpgsql_function.rst:496
+#: ../../build/docs/basic/plpgsql_function.rst:357
msgid "The function's body:"
msgstr "Cuerpo de la función:"
-#: ../../build/docs/basic/plpgsql_function.rst:498
-msgid "Call to the function ``wrk_dijkstra`` (line **8**)"
-msgstr "Llamada a la función ``wrk_dijkstra`` (línea **8**)"
+#: ../../build/docs/basic/plpgsql_function.rst:359
+msgid "Call to the function ``wrk_dijkstra``"
+msgstr "Llamada a la función ``wrk_dijkstra``"
-#: ../../build/docs/basic/plpgsql_function.rst:500
-msgid "``wrk_dijkstra`` obtains many of the result values"
-msgstr "``wrk_dijkstra`` obtiene muchos de los valores de resultados"
+#: ../../build/docs/basic/plpgsql_function.rst:361
+msgid "Using PostgreSQL ``format`` to make substitutions"
+msgstr "Usando ``format`` de PostgreSQL para realizar sustituciones"
-#: ../../build/docs/basic/plpgsql_function.rst:501
-msgid "Parameters are passed on lines **9** to **13**."
-msgstr "Los parámetros se pasan en las líneas **9** a **13**."
+#: ../../build/docs/basic/plpgsql_function.rst:363
+msgid "The first parameter is the string to be replaced"
+msgstr "El primer parámetro es la cadena que debe ser sustituida"
-#: ../../build/docs/basic/plpgsql_function.rst:502
-msgid "The ``edges_subset``:"
-msgstr "Los ``edges_subset``:"
+#: ../../build/docs/basic/plpgsql_function.rst:364
+msgid "The rest are the data parameters, are the strings use for replacement."
+msgstr "El resto son los parámetros de datos, son las cadenas para la sustitución."
-#: ../../build/docs/basic/plpgsql_function.rst:504
-msgid ""
-"First parameters of the ``format`` function is the table name. (line "
-"**16**)"
-msgstr ""
-"Los primeros parámetros de la función ``format`` es el nombre de la "
-"tabla. (línea **16**)"
+#: ../../build/docs/basic/plpgsql_function.rst:366
+msgid "``wrk_dijkstra`` obtains the values for the output"
+msgstr "``wrk_dijkstra`` obtiene los valores para la salida"
-#: ../../build/docs/basic/plpgsql_function.rst:505
-msgid "Is passed as ``%1$I``. (line **9**)"
-msgstr "Se pasa como ``%1$I``. (línea **9**)"
+#: ../../build/docs/basic/plpgsql_function.rst:367
+msgid "The ``edges_subset`` value will replace ``%1$I``:"
+msgstr "El valor de ``edges_subset`` sustituirá a ``%1$I``:"
-#: ../../build/docs/basic/plpgsql_function.rst:507
-msgid "For the `departure` point:"
-msgstr "Para el punto de `salida`:"
-
-#: ../../build/docs/basic/plpgsql_function.rst:509
-msgid "``wrk_NearestOSM`` is used to find the OSM identifier. (line **10**)"
-msgstr ""
-"``wrk_NearestOSM`` se utiliza para encontrar el identificador OSM. (línea"
-" **10**)"
+#: ../../build/docs/basic/plpgsql_function.rst:368
+msgid "For the ``source`` and ``target``:"
+msgstr "Para el ``source`` y ``target``:"
-#: ../../build/docs/basic/plpgsql_function.rst:511
-msgid ""
-"The vertices table name is formed with ``%1$I_vertices_pgr``. (line "
-"**11**)"
-msgstr ""
-"El nombre de la tabla de vértices se forma con ``%1$I_vertices_pgr``. "
-"(línea **11**)"
+#: ../../build/docs/basic/plpgsql_function.rst:370
+msgid "``wrk_Nearest`` is used to find the identifier."
+msgstr "``wrk_Nearest`` se utiliza para encontrar el identificador."
-#: ../../build/docs/basic/plpgsql_function.rst:512
-msgid ""
-"Second and third parameters of the ``format`` function are ``%2$s``, "
-"``%3$s``. (line **17**)"
-msgstr ""
-"Los parámetros segundo y tercero de la función ``formato`` son ``%2$s``, "
-"``%3$s``. (línea **17**)"
+#: ../../build/docs/basic/plpgsql_function.rst:372
+msgid "The vertices table name is formed with ``%1$I_vertices``."
+msgstr "El nombre de la tabla de vértices se forma con ``%1$I_vertices``."
-#: ../../build/docs/basic/plpgsql_function.rst:513
-msgid ""
-"The latitude and longitude are given in natural language form. (line "
-"**12**)"
+#: ../../build/docs/basic/plpgsql_function.rst:374
+msgid "``lat1``, ``lon1`` values will replace ``%2$s, %3$s`` respectively."
msgstr ""
-"La latitud y la longitud se dan en forma de lenguaje natural. (línea "
-"**12**)"
+"Los valores ``lat1``, ``lon1`` sustituirán a ``%2$s, %3$s`` "
+"respectivamente."
-#: ../../build/docs/basic/plpgsql_function.rst:515
-msgid "For the `destination` point:"
-msgstr "Para el punto de `destino`:"
-
-#: ../../build/docs/basic/plpgsql_function.rst:517
-msgid ""
-"Similar query is constructed but with the destination information. (line "
-"**13**)"
+#: ../../build/docs/basic/plpgsql_function.rst:375
+msgid "``lat2``, ``lon2`` values will replace ``%4$s, %5$s`` respectively."
msgstr ""
-"Se construye una consulta similar pero con la información de destino. "
-"(línea **13**)"
+"Los valores ``lat2``, ``lon2`` sustituirán a ``%4$s, %5$s`` "
+"respectivamente."
-#: ../../build/docs/basic/plpgsql_function.rst:518
-msgid "Fourth and fifth parameters of the ``format`` function. (line **18**)"
-msgstr "Cuarto y quinto parámetros de la función `formato`. (línea **18**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:520
+#: ../../build/docs/basic/plpgsql_function.rst:377
msgid "To get the constructed query in form of a warning:"
msgstr "Para obtener la consulta construida en forma de advertencia:"
-#: ../../build/docs/basic/plpgsql_function.rst:522
-msgid ""
-"The ``WARNING`` will be issued only when ``do_debug`` is true. (lines "
-"**20** to **22**)"
-msgstr ""
-"La ``ADVERTENCIA`` se emitirá sólo cuando ``do_debug`` sea cierto. "
-"(líneas **20** a **22**)"
+#: ../../build/docs/basic/plpgsql_function.rst:379
+msgid "The ``WARNING`` will be issued only when ``do_debug`` is true."
+msgstr "El ``WARNING`` se emitirá sólo cuando ``do_debug`` sea cierto."
-#: ../../build/docs/basic/plpgsql_function.rst:532
-msgid ":ref:`basic/appendix:**Exercise**: 6 (**Chapter:** pl/pgsql)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 6 (**Chapter:** pl/pgsql)`"
+#: ../../build/docs/basic/plpgsql_function.rst:380
+msgid "No output will be generated."
+msgstr "No se generará ninguna salida."
-#: ../../build/docs/basic/plpgsql_function.rst:535
+#: ../../build/docs/basic/plpgsql_function.rst:398
msgid "Exercise 7: Using the main function"
msgstr "Ejercicio 7: Uso de la función principal"
-#: ../../build/docs/basic/plpgsql_function.rst:-1
+#: ../../build/docs/basic/plpgsql_function.rst:400
msgid "View of roads for taxis along with source and destination"
msgstr "Vista de las calles para taxis junto con el origen y el destino"
-#: ../../build/docs/basic/plpgsql_function.rst:543
+#: ../../build/docs/basic/plpgsql_function.rst:406
msgid "Use ``wrk_fromAtoB``"
msgstr "Usar ``wrk_fromAtoB``"
-#: ../../build/docs/basic/plpgsql_function.rst:545
-msgid "Departure point is: (lat,lon) = ``(42.2151, 20.729354)``"
-msgstr "El punto de partida es: (lat,lon) = ``(42.2151, 20.729354)``"
+#: ../../build/docs/basic/plpgsql_function.rst:408
+msgid "Departure point is: (lat,lon) = ``(-1.455829, -48.446044)``"
+msgstr "El punto de partida es: (lat,lon) = ``(-1.455829, -48.446044)``"
-#: ../../build/docs/basic/plpgsql_function.rst:546
-msgid "Destination point is: (lat,lon) = ``(42.2147, 20.7312)``"
-msgstr "El punto de destino es: (lat,lon) = ``(42.2147, 20.7312)``"
+#: ../../build/docs/basic/plpgsql_function.rst:409
+msgid "Destination point is: (lat,lon) = ``(-1.453448, -48.447142)``"
+msgstr "El punto de destino es: (lat,lon) = ``(-1.453448, -48.447142)``"
-#: ../../build/docs/basic/plpgsql_function.rst:549
-#: ../../build/docs/basic/plpgsql_function.rst:557
+#: ../../build/docs/basic/plpgsql_function.rst:412
+#: ../../build/docs/basic/plpgsql_function.rst:420
msgid "Use with default value of ``do_debug``."
msgstr "Utilizar con el valor predeterminado de ``do_debug``."
-#: ../../build/docs/basic/plpgsql_function.rst:553
+#: ../../build/docs/basic/plpgsql_function.rst:416
msgid "Use with ``do_debug`` set to ``true``."
msgstr "Utilizar con ``do_debug`` establecido en ``true``."
-#: ../../build/docs/basic/plpgsql_function.rst:558
+#: ../../build/docs/basic/plpgsql_function.rst:421
msgid "Store results on a table."
msgstr "Almacene los resultados en una tabla."
-#: ../../build/docs/basic/plpgsql_function.rst:559
+#: ../../build/docs/basic/plpgsql_function.rst:422
msgid "Show the table contents."
msgstr "Mostrar el contenido de la tabla."
-#: ../../build/docs/basic/plpgsql_function.rst:562
+#: ../../build/docs/basic/plpgsql_function.rst:425
msgid "The function is not meant to be used with ``ways``"
msgstr "La función no está destinada a ser utilizada con ``formas``"
-#: ../../build/docs/basic/plpgsql_function.rst:568
-msgid "The first parameter is the table name. (line **2**)"
-msgstr "El primer parámetro es el nombre de la tabla. (línea **2**)"
+#: ../../build/docs/basic/plpgsql_function.rst:431
+msgid "The first parameter is the table name."
+msgstr "El primer parámetro es el nombre de la tabla."
-#: ../../build/docs/basic/plpgsql_function.rst:569
+#: ../../build/docs/basic/plpgsql_function.rst:432
msgid ""
-"The next two parameters are the latitude and longitude of the departure "
-"point. (line **3**)"
+"The next two parameters are the latitude and longitude of the departure "
+"point."
msgstr ""
"Los dos siguientes dos parámetros son la latitud y longitud del punto de "
-"partida. (línea **3**)"
+"partida."
-#: ../../build/docs/basic/plpgsql_function.rst:570
+#: ../../build/docs/basic/plpgsql_function.rst:433
msgid ""
-"The next two parameters are the latitude and longitude of the "
-"destination point. (line **4**)"
+"The next two parameters are the latitude and longitude of the destination"
+" point."
msgstr ""
"Los dos siguientes dos parámetros son la latitud y longitud del punto de "
-"destino. (línea **4**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:581
-msgid "Similar to previous solution, but with ``taxi_net`` (line **2**)"
-msgstr "Similar a la solución anterior, pero con ``taxi_net`` (línea **2**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:582
-msgid "Adding ``true`` to get the query that is executed. (line **5**)"
-msgstr "Agregar ``true`` para obtener la consulta que se ejecuta. (línea **5**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:593
-msgid "Similar to a previous solution, but with ``ways`` (line **4**)"
-msgstr "Similar a una solución anterior, pero con ``ways`` (línea **4**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:594
-msgid "Store results on a table. (line **2**)"
-msgstr "Almacene los resultados en una tabla. (línea **2**)"
-
-#: ../../build/docs/basic/plpgsql_function.rst:595
-msgid "Show the table contents using a ``SELECT`` clause (lines **8** and **9**)."
-msgstr ""
-"Mostrar el contenido de la tabla mediante una cláusula ``SELECT`` (líneas"
-" **8** y **9**)."
+"destino."
-#: ../../build/docs/basic/plpgsql_function.rst:605
-msgid ":ref:`basic/appendix:**Exercise**: 7 (**Chapter:** pl/pgsql)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 7 (**Chapter:** pl/pgsql)`"
+#: ../../build/docs/basic/plpgsql_function.rst:446
+msgid "Do a dry run by adding ``true`` to get the query that is executed."
+msgstr "Agregar ``true`` para obtener la consulta que es ejecutuda."
diff --git a/locale/es/LC_MESSAGES/basic/sql_function.po b/locale/es/LC_MESSAGES/basic/sql_function.po
index 04b0c62b8..f56a79d04 100644
--- a/locale/es/LC_MESSAGES/basic/sql_function.po
+++ b/locale/es/LC_MESSAGES/basic/sql_function.po
@@ -10,20 +10,19 @@
# Vicky Vergara , 2022
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-08 16:17+0000\n"
-"PO-Revision-Date: 2024-03-22 16:47+0000\n"
+"POT-Creation-Date: 2024-12-16 18:21+0000\n"
+"PO-Revision-Date: 2024-11-10 17:27+0000\n"
"Last-Translator: Celia Virginia Vergara Castillo \n"
-"Language-Team: Spanish \n"
"Language: es\n"
+"Language-Team: Spanish \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.3\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/basic/sql_function.rst:12
msgid "SQL function"
@@ -59,114 +58,46 @@ msgid "The application requirements"
msgstr "Los requisitos de aplicación"
#: ../../build/docs/basic/sql_function.rst:32
-msgid ""
-"In this chapter there are three requirements that follow the same logic. "
-"It consists on 2 types of vehicles and the pedestrian routing:"
-msgstr ""
-"En este capítulo hay tres requisitos que siguen la misma lógica. Consta "
-"de 2 tipos de vehículos y el trazado peatonal:"
-
-#: ../../build/docs/basic/sql_function.rst:35
-msgid "Particular vehicle:"
-msgstr "Vehículo en particular:"
-
-#: ../../build/docs/basic/sql_function.rst:37
-msgid ""
-"Circulate on the whole Prizren area. - Do not use `steps`, `footway`, "
-"`path`."
-msgstr ""
-"Circular por toda la zona de Prizren. - No usar `steps`, `footway`, `path`."
-
-#: ../../build/docs/basic/sql_function.rst:39
-msgid "Speed is the default speed from OSM information."
-msgstr "La velocidad es la velocidad predeterminada de la información de OSM."
-
-#: ../../build/docs/basic/sql_function.rst:41
-msgid "Taxi vehicle:"
-msgstr "Vehículo Taxi:"
-
-#: ../../build/docs/basic/sql_function.rst:43
-msgid "Circulate on a smaller area near \"|place_4|\"."
-msgstr "Circular en un área más pequeña cerca de \"|place_4|\"."
-
-#: ../../build/docs/basic/sql_function.rst:45
-msgid "Bounding box: ``(20.73,42.20891,20.76,42.23)``"
-msgstr "Cuadro delimitador: ``(20.73,42.20891,20.76,42.23)``"
-
-#: ../../build/docs/basic/sql_function.rst:46
-msgid "Do not use `steps`, `footway`, `path`"
-msgstr "No usar `steps`, `footway`, `path`"
-
-#: ../../build/docs/basic/sql_function.rst:48
-msgid "Speed is 10% faster than the Particular vehicles."
-msgstr "La velocidad es 10% más lenta que la de los vehículos Particulares."
-
-#: ../../build/docs/basic/sql_function.rst:50
-msgid "Pedestrians:"
-msgstr "Peatones:"
-
-#: ../../build/docs/basic/sql_function.rst:52
-msgid "Walk on the whole Prizren area."
-msgstr "Caminar en toda el área de Prizren."
-
-#: ../../build/docs/basic/sql_function.rst:53
-msgid "Can not circulate on `motorways` and on `primary` segments."
-msgstr "No se puede circular en `autopistas` ni en segmentos `primarios`."
-
-#: ../../build/docs/basic/sql_function.rst:54
-#: ../../build/docs/basic/sql_function.rst:215
-msgid "The speed is ``2 mts/sec``."
-msgstr "La velocidad es de ``2 mts/sec``."
-
-#: ../../build/docs/basic/sql_function.rst:64
msgid "A front end needs the following routing information:"
msgstr "Una interfaz necesita la siguiente información de ruteo:"
-#: ../../build/docs/basic/sql_function.rst:57
-msgid "seq - A unique identifier of the rows"
-msgstr "seq - Un identificador único de las filas"
+#: ../../build/docs/basic/sql_function.rst:33
+msgid "``seq`` - A unique identifier of the rows"
+msgstr "``seq`` - Un identificador único de las filas"
-#: ../../build/docs/basic/sql_function.rst:58
-msgid "gid - The segment's identifier"
-msgstr "gid - El identificador del segmento"
+#: ../../build/docs/basic/sql_function.rst:34
+msgid "``id`` - The segment's identifier"
+msgstr "``id`` - El identificador del segmento"
-#: ../../build/docs/basic/sql_function.rst:59
-msgid "name - The segment's name"
-msgstr "name - El nombre del segmento"
-
-#: ../../build/docs/basic/sql_function.rst:60
-msgid "length - The segment's length"
-msgstr "length - La longitud del segmento"
+#: ../../build/docs/basic/sql_function.rst:35
+msgid "``name`` - The segment's name"
+msgstr "``name`` - El nombre del segmento"
-#: ../../build/docs/basic/sql_function.rst:61
-msgid "seconds - Number of seconds to traverse the segment"
-msgstr "seconds - Número de segundos para atravesar el segmento"
+#: ../../build/docs/basic/sql_function.rst:36
+msgid "``length`` - The segment's length"
+msgstr "``length`` - La longitud del segmento"
-#: ../../build/docs/basic/sql_function.rst:62
-msgid "azimuth - The azimuth of the segment"
-msgstr "azimuth - El azimuth del segmento"
+#: ../../build/docs/basic/sql_function.rst:37
+msgid "``seconds`` - Number of seconds to traverse the segment"
+msgstr "``seconds`` - Cantidad de segundos para atravesar el segmento"
-#: ../../build/docs/basic/sql_function.rst:63
-msgid "route_geom - The routing geometry"
-msgstr "route_geom - La geometría del ruteo"
+#: ../../build/docs/basic/sql_function.rst:38
+msgid "``azimuth`` - The azimuth of the segment"
+msgstr "``azimuth`` - El azimut del segmento"
-#: ../../build/docs/basic/sql_function.rst:64
-msgid "route_readable - The geometry in human readable form."
-msgstr "route_readable - La geometría en forma humanamente legible."
+#: ../../build/docs/basic/sql_function.rst:39
+msgid "``route_geom`` - The routing geometry"
+msgstr "``route_geom`` - La geometría de la ruta"
-#: ../../build/docs/basic/sql_function.rst:66
-msgid ""
-"and it needs to work based on the graph, and the OSM identifiers of the "
-"vertices."
-msgstr ""
-"y necesita trabajar en función del grafo y los identificadores OSM de los"
-" vértices."
+#: ../../build/docs/basic/sql_function.rst:40
+msgid "``route_readable`` - The geometry in human readable form."
+msgstr "``route_readable`` - La geometría en forma legible para humanos."
-#: ../../build/docs/basic/sql_function.rst:69
+#: ../../build/docs/basic/sql_function.rst:43
msgid "Design of the function"
msgstr "Diseño de la función"
-#: ../../build/docs/basic/sql_function.rst:70
+#: ../../build/docs/basic/sql_function.rst:44
msgid ""
"The function to be created ``wrk_dijkstra`` with the following input "
"parameters and output columns:"
@@ -174,642 +105,282 @@ msgstr ""
"La función ``wrk_dijkstra`` se creará con los siguientes parámetros de "
"entrada y columnas de salida:"
-#: ../../build/docs/basic/sql_function.rst:74
+#: ../../build/docs/basic/sql_function.rst:48
msgid "Input parameters"
msgstr "Parámetros de entrada"
-#: ../../build/docs/basic/sql_function.rst:76
-#: ../../build/docs/basic/sql_function.rst:86
-msgid "Name"
-msgstr "Nombre"
+#: ../../build/docs/basic/sql_function.rst:50
+#, fuzzy
+msgid "Parameter"
+msgstr "Parámetros de entrada"
-#: ../../build/docs/basic/sql_function.rst:76
-#: ../../build/docs/basic/sql_function.rst:86
+#: ../../build/docs/basic/sql_function.rst:50
+#: ../../build/docs/basic/sql_function.rst:60
msgid "Type"
msgstr "Tipo"
-#: ../../build/docs/basic/sql_function.rst:76
-#: ../../build/docs/basic/sql_function.rst:86
+#: ../../build/docs/basic/sql_function.rst:50
+#: ../../build/docs/basic/sql_function.rst:60
msgid "Description"
msgstr "Descripción"
-#: ../../build/docs/basic/sql_function.rst:78
-msgid "edges_subset"
-msgstr "edges_subset"
+#: ../../build/docs/basic/sql_function.rst:52
+msgid "``edges_subset``"
+msgstr "``edges_subset``"
-#: ../../build/docs/basic/sql_function.rst:78
+#: ../../build/docs/basic/sql_function.rst:52
msgid "REGCLASS"
msgstr "REGCLASS"
-#: ../../build/docs/basic/sql_function.rst:78
+#: ../../build/docs/basic/sql_function.rst:52
msgid "The table/view that is going to be used for processing"
msgstr "La tabla/vista que se utilizará para procesar"
-#: ../../build/docs/basic/sql_function.rst:79
-msgid "source_osm"
-msgstr "source_osm"
+#: ../../build/docs/basic/sql_function.rst:53
+msgid "``source_osm``"
+msgstr "``source_osm``"
-#: ../../build/docs/basic/sql_function.rst:79
-#: ../../build/docs/basic/sql_function.rst:80
-#: ../../build/docs/basic/sql_function.rst:89
+#: ../../build/docs/basic/sql_function.rst:53
+#: ../../build/docs/basic/sql_function.rst:54
+#: ../../build/docs/basic/sql_function.rst:63
msgid "BIGINT"
msgstr "BIGINT"
-#: ../../build/docs/basic/sql_function.rst:79
+#: ../../build/docs/basic/sql_function.rst:53
msgid "The OSM identifier of the `departure` location."
msgstr "El identificador OSM de la ubicación de la `salida`."
-#: ../../build/docs/basic/sql_function.rst:80
-msgid "target_osm"
-msgstr "target_osm"
+#: ../../build/docs/basic/sql_function.rst:54
+msgid "``target_osm``"
+msgstr "``target_osm``"
-#: ../../build/docs/basic/sql_function.rst:80
+#: ../../build/docs/basic/sql_function.rst:54
msgid "The OSM identifier of the `destination` location."
msgstr "El identificador OSM de la ubicación del `destino`."
-#: ../../build/docs/basic/sql_function.rst:84
+#: ../../build/docs/basic/sql_function.rst:58
msgid "output columns"
msgstr "columnas de salida"
-#: ../../build/docs/basic/sql_function.rst:88
-msgid "seq"
-msgstr "seq"
+#: ../../build/docs/basic/sql_function.rst:60
+msgid "Name"
+msgstr "Nombre"
+
+#: ../../build/docs/basic/sql_function.rst:62
+#: ../../build/docs/basic/sql_function.rst:94
+msgid "``seq``"
+msgstr "``seq``"
-#: ../../build/docs/basic/sql_function.rst:88
+#: ../../build/docs/basic/sql_function.rst:62
msgid "INTEGER"
msgstr "INTEGER"
-#: ../../build/docs/basic/sql_function.rst:88
+#: ../../build/docs/basic/sql_function.rst:62
msgid "A unique number for each result row."
msgstr "Un único número para cada fila de resultados."
-#: ../../build/docs/basic/sql_function.rst:89
-msgid "id"
-msgstr "id"
+#: ../../build/docs/basic/sql_function.rst:63
+#: ../../build/docs/basic/sql_function.rst:95
+msgid "``id``"
+msgstr "``id``"
-#: ../../build/docs/basic/sql_function.rst:89
+#: ../../build/docs/basic/sql_function.rst:63
msgid "The edge identifier."
msgstr "El identificador de arista."
-#: ../../build/docs/basic/sql_function.rst:90
-msgid "name"
-msgstr "name"
+#: ../../build/docs/basic/sql_function.rst:64
+#: ../../build/docs/basic/sql_function.rst:96
+msgid "``name``"
+msgstr "``name``"
-#: ../../build/docs/basic/sql_function.rst:90
-#: ../../build/docs/basic/sql_function.rst:94
+#: ../../build/docs/basic/sql_function.rst:64
+#: ../../build/docs/basic/sql_function.rst:68
msgid "TEXT"
msgstr "TEXT"
-#: ../../build/docs/basic/sql_function.rst:90
+#: ../../build/docs/basic/sql_function.rst:64
msgid "The name of the segment."
msgstr "El nombre del segmento."
-#: ../../build/docs/basic/sql_function.rst:91
-msgid "seconds"
-msgstr "seconds"
+#: ../../build/docs/basic/sql_function.rst:65
+#: ../../build/docs/basic/sql_function.rst:97
+msgid "``seconds``"
+msgstr "``seconds``"
-#: ../../build/docs/basic/sql_function.rst:91
-#: ../../build/docs/basic/sql_function.rst:92
-#: ../../build/docs/basic/sql_function.rst:93
+#: ../../build/docs/basic/sql_function.rst:65
+#: ../../build/docs/basic/sql_function.rst:66
+#: ../../build/docs/basic/sql_function.rst:67
msgid "FLOAT"
msgstr "FLOAT"
-#: ../../build/docs/basic/sql_function.rst:91
+#: ../../build/docs/basic/sql_function.rst:65
msgid "The number of seconds it takes to traverse the segment."
msgstr "El número de segundos que se tarda en atravesar el segmento."
-#: ../../build/docs/basic/sql_function.rst:92
-msgid "azimuth"
-msgstr "azimuth"
+#: ../../build/docs/basic/sql_function.rst:66
+msgid "``azimuth``"
+msgstr "``azimuth``"
-#: ../../build/docs/basic/sql_function.rst:92
+#: ../../build/docs/basic/sql_function.rst:66
msgid "The azimuth of the segment."
msgstr "El azimuth del segmento."
-#: ../../build/docs/basic/sql_function.rst:93
-msgid "length_m"
-msgstr "length_m"
+#: ../../build/docs/basic/sql_function.rst:67
+#: ../../build/docs/basic/sql_function.rst:98
+msgid "``length``"
+msgstr "``length``"
-#: ../../build/docs/basic/sql_function.rst:93
+#: ../../build/docs/basic/sql_function.rst:67
msgid "The leng in meters of the segment."
msgstr "Longitud en metros del segmento."
-#: ../../build/docs/basic/sql_function.rst:94
-msgid "route_readable"
-msgstr "route_readable"
+#: ../../build/docs/basic/sql_function.rst:68
+msgid "``route_readable``"
+msgstr "``route_readable``"
-#: ../../build/docs/basic/sql_function.rst:94
+#: ../../build/docs/basic/sql_function.rst:68
msgid "The geometry in human readable form."
msgstr "La geometría en forma humanamente legible."
-#: ../../build/docs/basic/sql_function.rst:95
-msgid "route_geom"
-msgstr "route_geom"
+#: ../../build/docs/basic/sql_function.rst:69
+msgid "``route_geom``"
+msgstr "``route_geom``"
-#: ../../build/docs/basic/sql_function.rst:95
+#: ../../build/docs/basic/sql_function.rst:69
msgid "geometry"
msgstr "geometry"
-#: ../../build/docs/basic/sql_function.rst:95
+#: ../../build/docs/basic/sql_function.rst:69
msgid "The geometry of the segment in the correct direction."
msgstr "La geometría del segmento en la dirección correcta."
-#: ../../build/docs/basic/sql_function.rst:99
-msgid "Preparing processing graphs"
-msgstr "Preparación de grafos de procesamiento"
-
-#: ../../build/docs/basic/sql_function.rst:102
-msgid "Exercise 1: Creating a view for routing"
-msgstr "Ejercicio 1: Creación de una vista para el ruteo"
-
-#: ../../build/docs/basic/sql_function.rst:-1
-msgid "View of roads for vehicles"
-msgstr "Vista de carreteras para vehículos"
-
-#: ../../build/docs/basic/sql_function.rst:109
-#: ../../build/docs/basic/sql_function.rst:166
-#: ../../build/docs/basic/sql_function.rst:211
-#: ../../build/docs/basic/sql_function.rst:264
-#: ../../build/docs/basic/sql_function.rst:349
-#: ../../build/docs/basic/sql_function.rst:396
-#: ../../build/docs/basic/sql_function.rst:444
-#: ../../build/docs/basic/sql_function.rst:503
-#: ../../build/docs/basic/sql_function.rst:558
-#: ../../build/docs/basic/sql_function.rst:609
-#: ../../build/docs/basic/sql_function.rst:660
-msgid "Problem"
-msgstr "Problema"
-
-#: ../../build/docs/basic/sql_function.rst:110
-msgid ""
-"Create a view with minimal amount of information for processing the "
-"particular vehicles."
-msgstr ""
-"Cree una vista con una cantidad mínima de información para procesar los "
-"vehículos en particular."
-
-#: ../../build/docs/basic/sql_function.rst:111
-#: ../../build/docs/basic/sql_function.rst:213
-msgid ""
-"Routing `cost` and `reverse_cost` will be on seconds for routing "
-"calculations."
-msgstr ""
-"El costo de ruteo en `cost` y `reverse_cost` será en segundos para los "
-"cálculos de ruteo."
-
-#: ../../build/docs/basic/sql_function.rst:112
-msgid "Exclude `steps`, `footway`, `path` segments."
-msgstr "Excluir los segmentos de `camino peatonal`, `senda`, `caminitos`."
-
-#: ../../build/docs/basic/sql_function.rst:113
-#: ../../build/docs/basic/sql_function.rst:218
-msgid "Data needed in the view for further prossesing."
-msgstr "Datos necesarios en la vista para su posterior procesamiento."
-
-#: ../../build/docs/basic/sql_function.rst:115
-#: ../../build/docs/basic/sql_function.rst:220
-msgid "`length_m` The length in meters."
-msgstr "`length_m` La longitud en metros."
-
-#: ../../build/docs/basic/sql_function.rst:116
-#: ../../build/docs/basic/sql_function.rst:221
-msgid "`the_geom` The geometry."
-msgstr "`the_geom` La geometría|."
-
-#: ../../build/docs/basic/sql_function.rst:118
-#: ../../build/docs/basic/sql_function.rst:223
-msgid "Verify the number of edges was reduced."
-msgstr "Comprobar que se ha reducido el número de aristas."
-
-#: ../../build/docs/basic/sql_function.rst:121
-#: ../../build/docs/basic/sql_function.rst:175
-#: ../../build/docs/basic/sql_function.rst:226
-#: ../../build/docs/basic/sql_function.rst:283
-#: ../../build/docs/basic/sql_function.rst:358
-#: ../../build/docs/basic/sql_function.rst:410
-#: ../../build/docs/basic/sql_function.rst:453
-#: ../../build/docs/basic/sql_function.rst:515
-#: ../../build/docs/basic/sql_function.rst:570
-#: ../../build/docs/basic/sql_function.rst:624
-#: ../../build/docs/basic/sql_function.rst:665
-msgid "Solution"
-msgstr "Solución"
-
-#: ../../build/docs/basic/sql_function.rst:122
-#: ../../build/docs/basic/sql_function.rst:176
-#: ../../build/docs/basic/sql_function.rst:227
-msgid "Creating the view:"
-msgstr "Creación de la vista:"
-
-#: ../../build/docs/basic/sql_function.rst:124
+#: ../../build/docs/basic/sql_function.rst:73
msgid ""
-"The `source` and `target` requirements for the function are to be with "
-"OSM identifiers. (line **6**)"
+"For the following exercises only ``vehicle_net`` will be used, but you "
+"can test the queries with the other views."
msgstr ""
-"Los requisitos de `source` and `target` para la función deben ser con "
-"identificadores OSM. (línea **6**)"
-
-#: ../../build/docs/basic/sql_function.rst:127
-msgid "The ``cost`` and ``reverse_cost`` are in terms of seconds. (line **7**)"
-msgstr "``cost`` y ``reverse_cost`` son en términos de segundos. (línea **7**)"
-
-#: ../../build/docs/basic/sql_function.rst:128
-msgid "The additional parameters `length_m` and `the_geom`. (line **8**)"
-msgstr "Los parámetros adicionales `length_m` y `the_geom`. (línea **8**)"
-
-#: ../../build/docs/basic/sql_function.rst:129
-msgid "``JOIN`` with the `configuration`:"
-msgstr "``JOIN`` con `configuration`:"
-
-#: ../../build/docs/basic/sql_function.rst:131
-msgid "Exclude `steps`, `footway`, `path`. (line **11**)"
-msgstr "Excluir `pasos`, `senda`, `recorrido`. (línea **11**)"
-
-#: ../../build/docs/basic/sql_function.rst:133
-msgid ""
-"If you need to reconstruct the view, first drop it using the command on "
-"line **1**."
-msgstr ""
-"Si necesita reconstruir la vista, primero borrarla usando el comando en "
-"línea **1**."
-
-#: ../../build/docs/basic/sql_function.rst:142
-#: ../../build/docs/basic/sql_function.rst:189
-#: ../../build/docs/basic/sql_function.rst:241
-msgid "Verification:"
-msgstr "Verificación:"
-
-#: ../../build/docs/basic/sql_function.rst:144
-msgid "Count the rows on the original ``ways`` (line **1**)"
-msgstr "Contar las filas en los ``caminos`` originales (línea **1**)"
-
-#: ../../build/docs/basic/sql_function.rst:145
-msgid "Count the rows on the view ``vehicle_net`` (line **2**)"
-msgstr "Contar las filas en la vista ``vehicle_net`` (línea **2**)"
-
-#: ../../build/docs/basic/sql_function.rst:155
-msgid ":ref:`basic/appendix:**Exercise**: 1 (**Chapter:** SQL)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 1 (**Chapter:** SQL)`"
-
-#: ../../build/docs/basic/sql_function.rst:159
-msgid "Exercise 2: Limiting the road network within an area"
-msgstr "Ejercicio 2: Limitar la red viaria dentro de un área"
-
-#: ../../build/docs/basic/sql_function.rst:-1
-msgid "View of smaller set of roads for vehicles"
-msgstr "Vista de un conjunto más pequeño de carreteras para vehículos"
+"Para los siguientes ejercicios sólo se utilizará ``vehicle_net``, pero "
+"usted puede probar las consultas con las otras vistas."
-#: ../../build/docs/basic/sql_function.rst:167
-msgid "Create a view ``taxi_net`` for the `taxi`:"
-msgstr "Cree una vista ``taxi_net`` para el `taxi`:"
-
-#: ../../build/docs/basic/sql_function.rst:169
-msgid ""
-"The taxi can only circulate inside this Bounding Box: "
-"``(20.73,42.20891,20.76,42.23)``"
-msgstr ""
-"El taxi solo puede circular dentro de este delimitador: ``(20.73,42.20891,20."
-"76,42.23)``"
-
-#: ../../build/docs/basic/sql_function.rst:170
-#, python-format
-msgid "The taxi speed is 10% faster than the particular vehicle."
-msgstr ""
-"La velocidad del taxi es un 10 por ciento más rápida que el vehículo en "
-"particular."
-
-#: ../../build/docs/basic/sql_function.rst:172
-msgid "Verify the reduced number of road segments."
-msgstr "Verifique el número reducido de segmentos de carretera."
-
-#: ../../build/docs/basic/sql_function.rst:178
-msgid ""
-"The graph for the taxi is a subset of the ``vehicle_net`` graph. (line "
-"**9**)"
-msgstr ""
-"El grafo del taxi es un subconjunto del grafo ``vehicle_net``. (línea "
-"**9**)"
-
-#: ../../build/docs/basic/sql_function.rst:179
-msgid ""
-"Can only circulate inside the bounding box: "
-"``(20.73,42.20891,20.76,42.23)``. (line **10**)"
-msgstr ""
-"Sólo puede circular dentro del cuadro delimitador: ``(20.73,42.20891,20.76,42"
-".23)``. (línea **10**)"
-
-#: ../../build/docs/basic/sql_function.rst:180
-#, python-format
-msgid ""
-"Adjust the taxi's ``cost`` and ``reverse_cost`` to be 90% of the "
-"particular vehicle. (line **7**)"
-msgstr ""
-"Ajustar el ``cost`` y ``reverse_cost`` del taxi para que sea el 90 por "
-"ciento del vehículo en particular. (línea **7**)"
-
-#: ../../build/docs/basic/sql_function.rst:191
-msgid "Count the rows on the original ``taxi_net``"
-msgstr "Contar las filas en el ``taxi_net`` original"
-
-#: ../../build/docs/basic/sql_function.rst:201
-msgid ":ref:`basic/appendix:**Exercise**: 2 (**Chapter:** SQL)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 2 (**Chapter:** SQL)`"
-
-#: ../../build/docs/basic/sql_function.rst:204
-msgid "Exercise 3: Creating a materialized view for routing pedestrians"
-msgstr ""
-"Ejercicio 3: Creación de una vista materializada para ruteo de los "
-"peatones"
+#: ../../build/docs/basic/sql_function.rst:77
+msgid "Additional information handling"
+msgstr "Manipulación de la información adicional"
-#: ../../build/docs/basic/sql_function.rst:212
-msgid ""
-"Create a materialized view with minimal amount of information for "
-"processing pedestrians."
-msgstr ""
-"Crear una vista materializada con una cantidad mínima de información para"
-" procesar peatones."
-
-#: ../../build/docs/basic/sql_function.rst:217
-msgid "Exclude `motorway` , `primary` and `secondary` segments."
-msgstr "Excluir segmentos `motorway` , `primary` y `secondary`."
-
-#: ../../build/docs/basic/sql_function.rst:229
-msgid "Similar to `Exercise 1: Creating a view for routing`_:"
-msgstr "Similar a `Ejercicio 1: Creación de una vista para el ruteo`_:"
-
-#: ../../build/docs/basic/sql_function.rst:231
-msgid ""
-"The ``cost`` and ``reverse_cost`` are in terms of seconds with speed of "
-"``2 mts/sec``. (line **7**)"
-msgstr ""
-"``cost`` y ``reverse_cost`` se expresan en términos de segundos con "
-"velocidad de ``2 mts/sec``. (línea **7**)"
-
-#: ../../build/docs/basic/sql_function.rst:232
-msgid "Exclude `motorway`, `primary` and `secondary` . (line **11**)"
-msgstr "Excluir `motorway`, `primary` y `secondary`. (línea **11**)"
-
-#: ../../build/docs/basic/sql_function.rst:243
-msgid "Count the rows on the view ``walk_net`` (line **1**)"
-msgstr "Cuente las filas de la vista ``walk_net`` (line **1**)"
-
-#: ../../build/docs/basic/sql_function.rst:253
-msgid ":ref:`basic/appendix:**Exercise**: 3 (**Chapter:** SQL)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 3 (**Chapter:** SQL)`"
-
-#: ../../build/docs/basic/sql_function.rst:257
-msgid "Exercise 4: Testing the views for routing"
-msgstr "Ejercicio 4: Probar las vistas para el ruteo"
-
-#: ../../build/docs/basic/sql_function.rst:-1
-msgid "From the Venue to the hotel using the osm_id."
-msgstr "Desde la sede hasta el hotel utilizando el `osm_id`."
-
-#: ../../build/docs/basic/sql_function.rst:265
-msgid "Test the created views"
-msgstr "Pruebe las vistas creadas"
-
-#: ../../build/docs/basic/sql_function.rst:267
-msgid "In particular:"
-msgstr "En particular:"
-
-#: ../../build/docs/basic/sql_function.rst:269
-msgid ""
-"From the \"|ch7_place_1|\" to the \"|ch7_place_2|\" using the OSM "
-"identifier"
-msgstr ""
-"Desde \"|ch7_place_1|\" hacia \"|ch7_place_2|\" usando el identificador OSM"
-
-#: ../../build/docs/basic/sql_function.rst:270
-msgid "the views to be tested are:"
-msgstr "las vistas a probar son:"
-
-#: ../../build/docs/basic/sql_function.rst:272
-msgid "``vehicle_net``"
-msgstr "``vehicle_net``"
-
-#: ../../build/docs/basic/sql_function.rst:273
-msgid "``taxi_net``"
-msgstr "``taxi_net``"
-
-#: ../../build/docs/basic/sql_function.rst:274
-msgid "``walk_net``"
-msgstr "``walk_net``"
-
-#: ../../build/docs/basic/sql_function.rst:276
-msgid ""
-"Only show the following results, as the other columns are to be ignored "
-"on the function."
-msgstr ""
-"Mostrar únicamente los siguientes resultados, ya que las demás columnas "
-"deben omitirse en la función."
-
-#: ../../build/docs/basic/sql_function.rst:278
-msgid "``seq``"
-msgstr "``seq``"
-
-#: ../../build/docs/basic/sql_function.rst:279
-msgid "``edge`` with the name ``id``"
-msgstr "``edge`` con el nombre ``id``"
-
-#: ../../build/docs/basic/sql_function.rst:280
-msgid "``cost`` with the name: ``seconds``"
-msgstr "``cost`` con el nombre: ``seconds``"
-
-#: ../../build/docs/basic/sql_function.rst:284
-msgid "In general"
-msgstr "En general"
-
-#: ../../build/docs/basic/sql_function.rst:286
-msgid "The departure is |ch7_place_1| with OSM identifier |ch7_osmid_1|."
-msgstr ""
-"El punto de partida es \"|ch7_place_1|\" con el identificador OSM "
-"|ch7_osmid_1|."
-
-#: ../../build/docs/basic/sql_function.rst:287
-msgid "The destination is |ch7_place_2| with OSM identifier |ch7_osmid_2|."
-msgstr "El destino es \"|ch7_place_2|\" con el identificador OSM |ch7_osmid_2|."
-
-#: ../../build/docs/basic/sql_function.rst:289
-msgid "For ``vehicle_net``:"
-msgstr "Para ``vehicle_net``:"
-
-#: ../../build/docs/basic/sql_function.rst:291
-msgid "``vehicle_net`` is used."
-msgstr "Se utiliza ``vehicle_net``."
-
-#: ../../build/docs/basic/sql_function.rst:292
-msgid "Selection of the columns with the corresponding names are on line **1**."
-msgstr ""
-"La selección de las columnas con los nombres correspondientes está en "
-"línea **1**."
-
-#: ../../build/docs/basic/sql_function.rst:293
-msgid "The view is prepared with the column names that pgRouting use."
-msgstr "La vista se prepara con los nombres de columna que pgRouting utilizan."
-
-#: ../../build/docs/basic/sql_function.rst:295
-msgid "There is no need to rename columns. (line **3**)"
-msgstr "No es necesario cambiar el nombre de las columnas. (línea **3**)"
-
-#: ../../build/docs/basic/sql_function.rst:297
-msgid ""
-"The OSM identifiers of the departure and destination are used. (line "
-"**4**)"
-msgstr ""
-"Se utilizan los identificadores OSM del punto de partida y del destino. "
-"(línea **4**)"
-
-#: ../../build/docs/basic/sql_function.rst:306
-msgid "For ``taxi_net``:"
-msgstr "Para ``taxi_net``:"
-
-#: ../../build/docs/basic/sql_function.rst:308
-msgid "Similar as the previous one but with ``taxi_net``. (line **3**)"
-msgstr "Similar al anterior pero con ``taxi_net`` (línea **3**)"
-
-#: ../../build/docs/basic/sql_function.rst:309
-msgid ""
-"The results give the same route as with ``vehicle_net`` but ``cost`` is "
-"lower"
-msgstr ""
-"Los resultados dan la misma ruta que con ``vehicle_net`` pero ``cost`` es "
-"menor"
-
-#: ../../build/docs/basic/sql_function.rst:318
-msgid "For ``walk_net``:"
-msgstr "Para ``walk_net``:"
-
-#: ../../build/docs/basic/sql_function.rst:320
-msgid "Similar as the previous one but with ``walk_net``. (line **3**)"
-msgstr "Similar al anterior pero con ``walk_net``. (línea **3**)"
-
-#: ../../build/docs/basic/sql_function.rst:321
-msgid "The results give a different route than of the vehicles."
-msgstr "Los resultados dan una ruta diferente a la de los vehículos."
-
-#: ../../build/docs/basic/sql_function.rst:331
+#: ../../build/docs/basic/sql_function.rst:79
msgid ""
-"From these queries, it can be deduced that what we design for one view "
-"will work for the other views. On the following exercises only "
-"``vehicle_net`` will be used, but you can test the queries with the other"
-" views."
+"When the application needs additional information, like the name of the "
+"street, ``JOIN`` the results with other tables."
msgstr ""
-"De estas consultas, se puede deducir que lo que diseñamos para una vista "
-"funcionará para las otras vistas. En los siguientes ejercicios solo se usará "
-"``vehicle_net``, pero puede probar las consultas con las otras vistas."
-
-#: ../../build/docs/basic/sql_function.rst:337
-msgid ":ref:`basic/appendix:**Exercise**: 4 (**Chapter:** SQL)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 4 (**Chapter:** SQL)`"
+"Cuando la aplicación necesita información adicional, como el nombre de la"
+" calle, ``JOIN`` los resultados con otras tablas."
-#: ../../build/docs/basic/sql_function.rst:341
-msgid "Exercise 5: Get additional information"
-msgstr "Ejercicio 5: Obtener información adicional"
+#: ../../build/docs/basic/sql_function.rst:83
+msgid "Exercise 1: Get additional information"
+msgstr "Ejercicio 1: Obtener información adicional"
-#: ../../build/docs/basic/sql_function.rst:-1
+#: ../../build/docs/basic/sql_function.rst:85
msgid "Route showing names"
msgstr "Ruta que muestra nombres"
-#: ../../build/docs/basic/sql_function.rst:350
-msgid "From |ch7_place_1| to |ch7_place_2|, using OSM identifiers."
-msgstr ""
-"Desde |ch7_place_1| hasta |ch7_place_2|, utilizando identificadores OSM."
+#: ../../build/docs/basic/sql_function.rst:90
+#: ../../build/docs/basic/sql_function.rst:137
+#: ../../build/docs/basic/sql_function.rst:188
+#: ../../build/docs/basic/sql_function.rst:244
+#: ../../build/docs/basic/sql_function.rst:308
+#: ../../build/docs/basic/sql_function.rst:352
+#: ../../build/docs/basic/sql_function.rst:403
+msgid "Problem"
+msgstr "Problema"
-#: ../../build/docs/basic/sql_function.rst:351
-msgid ""
-"additionally to the `Exercise 4: Testing the views for routing`_ results "
-"also get information found on the edges subset:"
-msgstr ""
-"además de `Ejercicio 4: Probar las vistas para el ruteo`_ resultados "
-"también obtienen información que se encuentra en el subconjunto de "
-"bordes:"
+#: ../../build/docs/basic/sql_function.rst:91
+msgid "From |ch7_place_1| to |ch7_place_2|, using OSM identifiers."
+msgstr "Desde |ch7_place_1| hasta |ch7_place_2|, utilizando identificadores OSM."
-#: ../../build/docs/basic/sql_function.rst:354
-msgid "``name``"
-msgstr "``name``"
+#: ../../build/docs/basic/sql_function.rst:92
+msgid "Get the following information:"
+msgstr "Obtener la siguiente información:"
+
+#: ../../build/docs/basic/sql_function.rst:101
+#: ../../build/docs/basic/sql_function.rst:150
+#: ../../build/docs/basic/sql_function.rst:196
+#: ../../build/docs/basic/sql_function.rst:254
+#: ../../build/docs/basic/sql_function.rst:316
+#: ../../build/docs/basic/sql_function.rst:366
+#: ../../build/docs/basic/sql_function.rst:408
+msgid "Solution"
+msgstr "Solución"
-#: ../../build/docs/basic/sql_function.rst:355
-msgid "``length_m``"
-msgstr "``length_m``"
+#: ../../build/docs/basic/sql_function.rst:102
+msgid "The columns asked (line **2**)."
+msgstr "Las columnas requeridas (línea **2**)."
-#: ../../build/docs/basic/sql_function.rst:359
+#: ../../build/docs/basic/sql_function.rst:103
msgid ""
-"The query from `Exercise 4: Testing the views for routing`_ used as a "
-"subquery named ``results`` (not highlighted lines **5** to **9**)"
+"Rename ``pgr_dijkstra`` results to application requirements names. (line "
+"**4**)."
msgstr ""
-"La consulta de `Ejercicio 4: Probar las vistas para el ruteo`_ se utiliza"
-" como una subconsulta denominada ``results`` (no líneas resaltadas **5** "
-"a **9**)"
+"Renombrar los resultados de ``pgr_dijkstra`` a los nombres de requeridos "
+"por la aplicación. (línea **4**)."
-#: ../../build/docs/basic/sql_function.rst:361
-msgid "The ``SELECT`` clause contains"
-msgstr "La cláusula ``SELECT`` contiene"
-
-#: ../../build/docs/basic/sql_function.rst:363
-msgid "All the columns of ``results``. (line **2**)"
-msgstr "Todas las columnas de ``results``. (línea **2**)"
-
-#: ../../build/docs/basic/sql_function.rst:364
-msgid "The ``name`` and the ``length_m`` values. (line **3**)"
-msgstr "Los valores ``name`` y ``length_m``. (línea **3**)"
-
-#: ../../build/docs/basic/sql_function.rst:366
+#: ../../build/docs/basic/sql_function.rst:104
msgid ""
-"A ``LEFT JOIN`` with ``vehicle_net`` is needed to get the additional "
-"information. (line **10**)"
+"``LEFT JOIN`` the results with ``vehicle_net`` to get the additional "
+"information. (line **9**)"
msgstr ""
-"Se necesita un ``LEFT JOIN`` con ``vehicle_net`` para obtener la "
-"información adicional. (línea **10**)"
+"Se necesita un ``LEFT JOIN`` de los resultados con ``vehicle_net`` para "
+"obtener la información adicional. (línea **9**)"
-#: ../../build/docs/basic/sql_function.rst:368
+#: ../../build/docs/basic/sql_function.rst:106
msgid ""
-"Has to be ``LEFT`` because there is a row with ``id = -1`` that does not "
-"exist on ``vehicle_net``"
+"``LEFT`` to include the row with ``id = -1`` because it does not exist on"
+" ``vehicle_net``"
msgstr ""
"Tiene que ser ``LEFT`` porque hay una fila con ``id = -1`` que no existe "
"en ``vehicle_net``"
-#: ../../build/docs/basic/sql_function.rst:379
-msgid ":ref:`basic/appendix:**Exercise**: 5 (**Chapter:** SQL)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 5 (**Chapter:** SQL)`"
-
-#: ../../build/docs/basic/sql_function.rst:385
+#: ../../build/docs/basic/sql_function.rst:122
msgid "Geometry handling"
msgstr "Manejo de geometría"
-#: ../../build/docs/basic/sql_function.rst:388
-msgid "Exercise 6: Route geometry (human readable)"
-msgstr "Ejercicio 6: Geometría de la ruta (legible para humanos)"
+#: ../../build/docs/basic/sql_function.rst:124
+msgid ""
+"From pgRouting point of view, the geometry is part of the additional "
+"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."
+msgstr ""
+"Desde el punto de vista de pgRouting, la geometría es parte de la "
+"información adicional, necesaria en los resultados para una aplicación. "
+"Por lo tanto ``JOIN`` los resultados con otras tablas que contienen la "
+"geometría y para su posterior procesamiento con funciones de PostGIS."
-#: ../../build/docs/basic/sql_function.rst:-1
+#: ../../build/docs/basic/sql_function.rst:130
+msgid "Exercise 2: Route geometry (human readable)"
+msgstr "Ejercicio 2: Geometría de la ruta (legible para humanos)"
+
+#: ../../build/docs/basic/sql_function.rst:132
+#: ../../build/docs/basic/sql_function.rst:218
msgid "From |ch7_place_1| to |ch7_place_2|"
msgstr "Desde |ch7_place_1| hasta |ch7_place_2|"
-#: ../../build/docs/basic/sql_function.rst:397
-msgid ""
-"From the |ch7_place_1| to the |ch7_place_2|, additionally get the "
-"geometry in human readable form."
-msgstr ""
-"Desde \"|ch7_place_1|\" hasta \"|ch7_place_2|\", además, se obtiene la "
-"geometría en forma legible por humanos."
+#: ../../build/docs/basic/sql_function.rst:138
+#: ../../build/docs/basic/sql_function.rst:189
+#: ../../build/docs/basic/sql_function.rst:245
+msgid "Route from the |ch7_place_1| to |ch7_place_2|"
+msgstr "Ruteo desde |ch7_place_1| hasta |ch7_place_2|"
-#: ../../build/docs/basic/sql_function.rst:400
-#: ../../build/docs/basic/sql_function.rst:447
-#: ../../build/docs/basic/sql_function.rst:506
-msgid ""
-"Additionally to the `Exercise 4: Testing the views for routing`_ results "
-"also get information found on the edges subset of:"
-msgstr ""
-"Además de `Ejercicio 4: Probar las vistas para el ruteo`_ resultados "
-"también obtener información encontrada en el subconjunto de bordes de:"
+#: ../../build/docs/basic/sql_function.rst:140
+#: ../../build/docs/basic/sql_function.rst:191
+msgid "Additionally to the previous exercise, get the"
+msgstr "Además del ejercicio anterior, obtener"
-#: ../../build/docs/basic/sql_function.rst:403
-#: ../../build/docs/basic/sql_function.rst:509
-msgid "``the_geom`` in human readable form named as ``route_readable``"
-msgstr "``the_geom`` en forma legible por humanos nombrado como ``route_readable``"
+#: ../../build/docs/basic/sql_function.rst:142
+msgid "geometry ``geom`` in human readable form named as ``route_readable``"
+msgstr ""
+"la geometría ``geom`` en forma legible por humanos denominado como "
+"``route_readable``"
-#: ../../build/docs/basic/sql_function.rst:406
+#: ../../build/docs/basic/sql_function.rst:146
msgid ""
"``WITH`` provides a way to write auxiliary statements in larger queries. "
"It can be thought of as defining temporary tables that exist just for one"
@@ -819,105 +390,81 @@ msgstr ""
"consultas más grandes. Se puede considerar como la definición de tablas "
"temporales que existen solo para una consulta."
-#: ../../build/docs/basic/sql_function.rst:411
+#: ../../build/docs/basic/sql_function.rst:151
msgid ""
-"The query from `Exercise 4: Testing the views for routing`_ used as a "
-"subquery named ``results`` this time in a WITH clause. (not highlighted "
-"lines **2** to **6**)"
+"The routing query named ``results`` in a WITH clause. (lines **2** to "
+"**5**)"
msgstr ""
-"La consulta de `Ejercicio 4: Probar las vistas para el ruteo`_ se utiliza"
-" como una subconsulta denominada ``results`` esta vez en una cláusula "
-"WITH. (líneas no resaltadas **2** a **6**)"
+"La consulta de ruteo llamada ``results`` en una cláusula WITH. (líneas "
+"**2** a **5**)"
-#: ../../build/docs/basic/sql_function.rst:413
-#: ../../build/docs/basic/sql_function.rst:456
-msgid "The ``SELECT`` clause contains:"
-msgstr "La cláusula ``SELECT`` contiene:"
+#: ../../build/docs/basic/sql_function.rst:152
+msgid "The results from the previous exercise. (lines **8** and **9**)"
+msgstr "Los resultados del ejercicio anterior. (líneas **8** y **9**)"
-#: ../../build/docs/basic/sql_function.rst:415
-msgid "All the columns of ``results``. (line **8**)"
-msgstr "Todas las columnas de ``results``. (línea **8**)"
-
-#: ../../build/docs/basic/sql_function.rst:416
+#: ../../build/docs/basic/sql_function.rst:154
msgid ""
-"The ``the_geom`` processed with ``ST_AsText`` to get the human readable "
-"form. (line **9**)"
+"For result reading purposes, the result columns from the previous are in "
+"a comment. Uncomment to see the complete results for the problem."
msgstr ""
-"El ``the_geom`` procesado con ``ST_AsText`` para obtener la forma legible"
-" por humanos. (línea **9**)"
+"Para efectos de lectura de resultados, las columnas de resultados del "
+"anterior están en un comentario. Des-comentar para ver los resultados "
+"completos del problema."
-#: ../../build/docs/basic/sql_function.rst:418
-msgid "Renames the result to ``route_readable``"
-msgstr "Cambia el nombre del resultado a ``route_readable``"
+#: ../../build/docs/basic/sql_function.rst:157
+msgid ""
+"The ``geom`` processed with ``ST_AsText`` to get the human readable form."
+" (line **12**)"
+msgstr ""
+"La ``geom`` procesado con ``ST_AsText`` para obtener la forma legible por"
+" humanos. (línea **12**)"
-#: ../../build/docs/basic/sql_function.rst:420
-msgid "Like before ``LEFT JOIN`` with ``vehicle_net``. (line **11**)"
-msgstr "Como antes ``LEFT JOIN`` con ``vehicle_net``. (línea **11**)"
+#: ../../build/docs/basic/sql_function.rst:160
+msgid "Renaming the result to ``route_readable``"
+msgstr "Cambiando el nombre del resultado a ``route_readable``"
-#: ../../build/docs/basic/sql_function.rst:432
-msgid ":ref:`basic/appendix:**Exercise**: 6 (**Chapter:** SQL)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 6 (**Chapter:** SQL)`"
+#: ../../build/docs/basic/sql_function.rst:162
+msgid "The ``LEFT JOIN`` with ``vehicle_net``. (line **14**)"
+msgstr "El ``LEFT JOIN`` con ``vehicle_net``. (línea **14**)"
-#: ../../build/docs/basic/sql_function.rst:437
-msgid "Exercise 7: Route geometry (binary format)"
-msgstr "Ejercicio 7: Geometría de ruta (formato binario)"
+#: ../../build/docs/basic/sql_function.rst:181
+msgid "Exercise 3: Route geometry (binary format)"
+msgstr "Ejercicio 3: Geometría de ruta (formato binario)"
-#: ../../build/docs/basic/sql_function.rst:-1
+#: ../../build/docs/basic/sql_function.rst:183
msgid "From |ch7_place_1| to |ch7_place_2| showing arrows."
msgstr "Desde |ch7_place_1| al |ch7_place_2| mostrando flechas."
-#: ../../build/docs/basic/sql_function.rst:445
-msgid "From the |ch7_place_1| to |ch7_place_2|, the geometry in binary format."
-msgstr ""
-"Desde \"|ch7_place_1|\" hasta \"|ch7_place_2|\", la geometría en formato "
-"binario."
-
-#: ../../build/docs/basic/sql_function.rst:450
-#: ../../build/docs/basic/sql_function.rst:510
-msgid "``the_geom`` in binary format with the name ``route_geom``"
-msgstr "``the_geom`` en formato binario con el nombre ``route_geom``"
-
-#: ../../build/docs/basic/sql_function.rst:454
-msgid "The query from `Exercise 6: Route geometry (human readable)`_ used;"
-msgstr ""
-"La consulta de `Ejercicio 6: Geometría de la ruta (legible para "
-"humanos)`_ utilizada;"
-
-#: ../../build/docs/basic/sql_function.rst:458
-msgid "The ``the_geom`` including the renaming (line **9**)"
-msgstr "``the_geom``, incluido el cambio de nombre (línea **9**)"
+#: ../../build/docs/basic/sql_function.rst:193
+#: ../../build/docs/basic/sql_function.rst:250
+msgid "``geom`` in binary format with the name ``route_geom``"
+msgstr "``geom`` en formato binario con el nombre ``route_geom``"
-#: ../../build/docs/basic/sql_function.rst:470
-msgid ":ref:`basic/appendix:**Exercise**: 7 (**Chapter:** SQL)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 7 (**Chapter:** SQL)`"
+#: ../../build/docs/basic/sql_function.rst:197
+msgid "The query from the previous exercise is used"
+msgstr "Se utiliza la consulta del ejercicio anterior"
-#: ../../build/docs/basic/sql_function.rst:474
-msgid "Exercise 8: Route geometry directionality"
-msgstr "Ejercicio 8: Direccionalidad de la geometría de la ruta"
+#: ../../build/docs/basic/sql_function.rst:198
+msgid "The ``SELECT`` clause also contains:"
+msgstr "La cláusula ``SELECT`` también contiene:"
-#: ../../build/docs/basic/sql_function.rst:482
-msgid ""
-"Inspecting the detail image of `Exercise 7: Route geometry (binary "
-"format)`_ there are arrows that do not match the directionality of the "
-"route."
-msgstr ""
-"Inspeccionando la imagen detallada de `Ejercicio 7: Geometría de ruta "
-"(formato binario)`_ hay flechas que no coinciden con la direccionalidad "
-"de la ruta."
+#: ../../build/docs/basic/sql_function.rst:200
+msgid "The ``geom`` including the renaming (line **9**)"
+msgstr "La ``geom``, incluido el cambio de nombre (línea **9**)"
-#: ../../build/docs/basic/sql_function.rst:-1
-msgid "detail"
-msgstr "detalle"
+#: ../../build/docs/basic/sql_function.rst:216
+msgid "Exercise 4: Route geometry directionality"
+msgstr "Ejercicio 4: Direccionalidad de la geometría de la ruta"
-#: ../../build/docs/basic/sql_function.rst:491
+#: ../../build/docs/basic/sql_function.rst:222
msgid ""
-"Inspecting the a detail of the results of `Exercise 6: Route geometry "
-"(human readable)`_"
+"Visually, with the route displayed with arrows, it can be found that "
+"there are arrows that do not match the directionality of the route."
msgstr ""
-"Inspeccionar el detalle de los resultados de `Ejercicio 6: Geometría de "
-"la ruta (legible para humanos)`_"
+"Visualmente, con la ruta mostrada con flechas, se puede ver que hay "
+"flechas que no coinciden con la direccionalidad de la ruta."
-#: ../../build/docs/basic/sql_function.rst:493
+#: ../../build/docs/basic/sql_function.rst:225
msgid ""
"To have correct directionality, the ending point of a geometry must match"
" the starting point of the next geometry"
@@ -925,39 +472,43 @@ msgstr ""
"Para tener una direccionalidad correcta, el punto final de una geometría "
"debe coincidir con el punto inicial de la geometría siguiente"
-#: ../../build/docs/basic/sql_function.rst:494
-msgid "Lines **2** and **3** do not match that criteria"
-msgstr "Las líneas **2** y **3** no coinciden con ese criterio"
+#: ../../build/docs/basic/sql_function.rst:228
+msgid ""
+"Inspecting the detail of the results of `Exercise 2: Route geometry "
+"(human readable)`_"
+msgstr ""
+"Inspeccionando el detalle de los resultados de `Ejercicio 2: Geometría de"
+" la ruta (legible para humanos)`_"
+
+#: ../../build/docs/basic/sql_function.rst:231
+msgid "Rows **59** to **61** do not match that criteria"
+msgstr "Las filas **59** a **61** no coinciden con ese criterio"
+
+#: ../../build/docs/basic/sql_function.rst:247
+msgid "Fix the directionality of the geometries of the previous exercise"
+msgstr "Para arreglar la direccionalidad de las geometrías del ejercicio anterior"
-#: ../../build/docs/basic/sql_function.rst:504
-msgid "From |ch7_place_1| to |ch7_place_2|,"
-msgstr "Desde |ch7_place_1| hasta |ch7_place_2|,"
+#: ../../build/docs/basic/sql_function.rst:249
+msgid "``geom`` in human readable form named as ``route_readable``"
+msgstr "``geom`` en forma legible por humanos nombrado como ``route_readable``"
-#: ../../build/docs/basic/sql_function.rst:511
+#: ../../build/docs/basic/sql_function.rst:251
msgid "Both columns must have the geometry fixed for directionality."
msgstr "Ambas columnas deben tener la geometría corregida para la direccionalidad."
-#: ../../build/docs/basic/sql_function.rst:516
+#: ../../build/docs/basic/sql_function.rst:255
msgid "To get the correct direction some geometries need to be reversed:"
msgstr "Para obtener la dirección correcta, algunas geometrías deben invertirse:"
-#: ../../build/docs/basic/sql_function.rst:518
+#: ../../build/docs/basic/sql_function.rst:257
msgid ""
"Reversing a geometry will depend on the ``node`` column of the query to "
-"dijkstra (line **3**)"
+"Dijkstra (line **2**)"
msgstr ""
"Invertir una geometría dependerá de la columna ``node`` de la consulta a "
-"dijkstra (línea **3**)"
-
-#: ../../build/docs/basic/sql_function.rst:520
-msgid ""
-"That ``node`` is not needed on the ouput of the query, so explicitly "
-"naming required columns at line **9**."
-msgstr ""
-"Ese ``nodo`` no es necesario en la salida de la consulta, por lo que se "
-"nombra explícitamente las columnas necesarias en la línea **9**."
+"dijkstra (línea **2**)"
-#: ../../build/docs/basic/sql_function.rst:521
+#: ../../build/docs/basic/sql_function.rst:260
msgid ""
"A conditional ``CASE`` statement that returns the geometry in human "
"readable form:"
@@ -965,11 +516,11 @@ msgstr ""
"Una instrucción condicional ``CASE`` que devuelve la geometría en forma "
"legible por humanos:"
-#: ../../build/docs/basic/sql_function.rst:523
+#: ../../build/docs/basic/sql_function.rst:263
msgid "Of the geometry when ``node`` is the ``source`` column. (line **11**)"
msgstr "De la geometría cuando ``node`` es la columna ``source``. (línea **11**)"
-#: ../../build/docs/basic/sql_function.rst:524
+#: ../../build/docs/basic/sql_function.rst:264
msgid ""
"Of the reversed geometry when ``node`` is not the ``source`` column. "
"(line **12**)"
@@ -977,11 +528,15 @@ msgstr ""
"De la geometría invertida cuando ``node`` no es la columna ``source``. "
"(línea **12**)"
-#: ../../build/docs/basic/sql_function.rst:526
+#: ../../build/docs/basic/sql_function.rst:266
msgid "A conditional ``CASE`` statement that returns:"
msgstr "Una instrucción condicional ``CASE`` que devuelve:"
-#: ../../build/docs/basic/sql_function.rst:528
+#: ../../build/docs/basic/sql_function.rst:268
+msgid "The geometry when ``node`` is the ``source`` column. (line **17**)"
+msgstr "La geometría cuando ``node`` es la columna ``source``. (línea **17**)"
+
+#: ../../build/docs/basic/sql_function.rst:269
msgid ""
"The reversed geometry when ``node`` is not the ``source`` column. (line "
"**16**)"
@@ -989,23 +544,21 @@ msgstr ""
"La geometría invertida cuando ``node`` no es la columna ``source``. "
"(línea **16**)"
-#: ../../build/docs/basic/sql_function.rst:529
-msgid "The geometry when ``node`` is the ``source`` column. (line **17**)"
-msgstr "La geometría cuando ``node`` es la columna ``source``. (línea **17**)"
-
-#: ../../build/docs/basic/sql_function.rst:540
-msgid ":ref:`basic/appendix:**Exercise**: 8 (**Chapter:** SQL)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 8 (**Chapter:** SQL)`"
+#: ../../build/docs/basic/sql_function.rst:282
+msgid "Inspecting some the problematic rows, the directionality has been fixed."
+msgstr ""
+"Inspeccionando algunas de las filas problemáticas, se ha corregido la "
+"direccionalidad."
-#: ../../build/docs/basic/sql_function.rst:545
-msgid "Exercise 9: Using the geometry"
-msgstr "Ejercicio 9: Uso de la geometría"
+#: ../../build/docs/basic/sql_function.rst:295
+msgid "Exercise 5: Using the geometry"
+msgstr "Ejercicio 5: Uso de la geometría"
-#: ../../build/docs/basic/sql_function.rst:-1
+#: ../../build/docs/basic/sql_function.rst:297
msgid "From |ch7_place_1| to the |ch7_place_2| show azimuth"
msgstr "Desde |ch7_place_1| al |ch7_place_2| mostrar el azimut"
-#: ../../build/docs/basic/sql_function.rst:552
+#: ../../build/docs/basic/sql_function.rst:302
msgid ""
"There are many geometry functions in PostGIS, the workshop already "
"covered some of them like ``ST_AsText``, ``ST_Reverse``, ``ST_EndPoint``,"
@@ -1015,69 +568,51 @@ msgstr ""
" de ellas como ``ST_AsText``, ``ST_Reverse``, ``ST_EndPoint``, etc. Este "
"ejercicio hará uso de una función adicional ``ST_Azimuth``."
-#: ../../build/docs/basic/sql_function.rst:559
-msgid "Modify the query from `Exercise 8: Route geometry directionality`_."
-msgstr ""
-"Modifique la consulta de `Ejercicio 8: Direccionalidad de la geometría de"
-" la ruta`_."
-
-#: ../../build/docs/basic/sql_function.rst:560
-msgid "Aditionally obtain the azimuth of the correct geometry."
-msgstr "Además, obtenga el azimut de la geometría correcta."
-
-#: ../../build/docs/basic/sql_function.rst:561
-msgid "keep the output small:"
-msgstr "mantenga la salida pequeña:"
-
-#: ../../build/docs/basic/sql_function.rst:563
-msgid "Even that other columns are calculated only output:"
-msgstr "Incluso que otras columnas se calculan solo como salida:"
+#: ../../build/docs/basic/sql_function.rst:309
+msgid "Modify the query from the previous exercise"
+msgstr "Modificar la consulta del ejercicio anterior"
-#: ../../build/docs/basic/sql_function.rst:565
-msgid "``seq``, ``id``, ``seconds`` and the ``azimuth``"
-msgstr "``seq``, ``id``, ``seconds`` y el ``azimuth``"
+#: ../../build/docs/basic/sql_function.rst:311
+msgid "Additionally obtain the azimuth of the correct geometry."
+msgstr "Además, obtener el azimut de la geometría correcta."
-#: ../../build/docs/basic/sql_function.rst:567
+#: ../../build/docs/basic/sql_function.rst:312
msgid ""
-"Because ``vehicle_net`` is a subgraph of ``ways``, do the ``JOIN`` with "
-"``ways``."
+"Because ``vehicle_net`` and the other 2 views are sub graphs of ``ways``,"
+" do the ``JOIN`` with ``ways``."
msgstr ""
-"Dado que ``vehicle_net`` es un subgrafo de ``ways``, realizar el ``JOIN``"
-" con ``ways``."
+"Dado que ``vehicle_net``y las otras 2 vistas son subgráfos de ``ways``, "
+"realizar el ``JOIN`` con ``ways``."
-#: ../../build/docs/basic/sql_function.rst:571
+#: ../../build/docs/basic/sql_function.rst:317
msgid ""
-"Moving the query that gets the additional information into the ``WITH`` "
+"Move the query that gets the additional information into the ``WITH`` "
"statement."
msgstr ""
-"Mover la consulta que obtiene la información adicional en la instrucción "
-"``WITH``."
+"Mover la consulta que obtiene la información adicional dentro la cláusula"
+" ``WITH``."
+
+#: ../../build/docs/basic/sql_function.rst:319
+msgid "Name it ``additional``. (line **6**)"
+msgstr "Asignar el nombre ``additional``. (línea **6**)"
-#: ../../build/docs/basic/sql_function.rst:573
-msgid "Naming it ``additional``. (line **9**)"
-msgstr "Asígnele el nombre ``adicional``. (línea **9**)"
+#: ../../build/docs/basic/sql_function.rst:321
+msgid "The ``ways`` table geometry name is ``the_geom``."
+msgstr "El nombre de la geometría de la tabla ``ways`` es ``the_geom``."
-#: ../../build/docs/basic/sql_function.rst:575
+#: ../../build/docs/basic/sql_function.rst:322
msgid "Final ``SELECT`` statements gets:"
msgstr "Las instrucciones ``SELECT`` finales obtienen:"
-#: ../../build/docs/basic/sql_function.rst:577
-msgid "The requested information. (line **25**)"
-msgstr "La información solicitada. (línea **25**)"
-
-#: ../../build/docs/basic/sql_function.rst:578
-msgid "Calculates the azimuth of ``route_geom``. (line **26**)"
-msgstr "Calcula el azimut de ``route_geom``. (línea **26**)"
-
-#: ../../build/docs/basic/sql_function.rst:589
-msgid ":ref:`basic/appendix:**Exercise**: 9 (**Chapter:** SQL)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 9 (**Chapter:** SQL)`"
+#: ../../build/docs/basic/sql_function.rst:324
+msgid "Calculates the azimuth of ``route_geom``. (line **27**)"
+msgstr "Calcula el azimut de ``route_geom``. (línea **27**)"
-#: ../../build/docs/basic/sql_function.rst:594
+#: ../../build/docs/basic/sql_function.rst:337
msgid "Creating the Function"
msgstr "Crear la función"
-#: ../../build/docs/basic/sql_function.rst:596
+#: ../../build/docs/basic/sql_function.rst:339
msgid ""
"The following function simplifies (and sets default values) when it calls"
" the shortest path Dijkstra function."
@@ -1085,77 +620,77 @@ msgstr ""
"La siguiente función simplifica (y establece los valores por defecto) "
"cuando se llama a la función del camino más corto de Dijkstra."
-#: ../../build/docs/basic/sql_function.rst:600
+#: ../../build/docs/basic/sql_function.rst:343
msgid "pgRouting uses heavely function overloading:"
msgstr "pgRouting utiliza una gran sobrecarga de funciones:"
-#: ../../build/docs/basic/sql_function.rst:602
+#: ../../build/docs/basic/sql_function.rst:345
msgid "Avoid creating functions with a name of a pgRouting routing function"
msgstr ""
"Evite crear funciones con un nombre de una función de enrutamiento "
"pgRouting"
-#: ../../build/docs/basic/sql_function.rst:603
+#: ../../build/docs/basic/sql_function.rst:346
msgid "Avoid the name of a function to start with `pgr_`, `_pgr` or `ST_`"
msgstr "Evite el nombre de una función para comenzar con `pgr_`, `_pgr` o `ST_`"
-#: ../../build/docs/basic/sql_function.rst:606
-msgid "Exercise 10: Function for an application"
-msgstr "Ejercicio 10: Función para una aplicación"
+#: ../../build/docs/basic/sql_function.rst:349
+msgid "Exercise 6: Function for an application"
+msgstr "Ejercicio 6: Función para una aplicación"
-#: ../../build/docs/basic/sql_function.rst:610
+#: ../../build/docs/basic/sql_function.rst:353
msgid "Putting all together in a SQL function"
msgstr "Poner todo junto en una función SQL"
-#: ../../build/docs/basic/sql_function.rst:612
+#: ../../build/docs/basic/sql_function.rst:355
msgid "function name ``wrk_dijkstra``"
msgstr "nombre de función ``wrk_dijkstra``"
-#: ../../build/docs/basic/sql_function.rst:613
+#: ../../build/docs/basic/sql_function.rst:356
msgid "Should work for any given view."
msgstr "Debe funcionar para cualquier vista dada."
-#: ../../build/docs/basic/sql_function.rst:615
+#: ../../build/docs/basic/sql_function.rst:358
msgid "Allow a view as a parameter"
msgstr "Permitir una vista como parámetro"
-#: ../../build/docs/basic/sql_function.rst:617
+#: ../../build/docs/basic/sql_function.rst:359
msgid "A table can be used if the columns have the correct names."
msgstr "Se puede utilizar una tabla si las columnas tienen los nombres correctos."
-#: ../../build/docs/basic/sql_function.rst:619
+#: ../../build/docs/basic/sql_function.rst:361
msgid "``source`` and ``target`` are in terms of ``osm_id``."
msgstr "``source`` y ``target`` son en términos de ``osm_id``."
-#: ../../build/docs/basic/sql_function.rst:620
+#: ../../build/docs/basic/sql_function.rst:362
msgid ""
-"The result should meet the requirements indicated at the begining of the "
-"chapter"
+"The result should meet the requirements indicated at the beginning of the"
+" chapter"
msgstr ""
"El resultado debe cumplir los requisitos indicados al principio del "
"capítulo"
-#: ../../build/docs/basic/sql_function.rst:625
+#: ../../build/docs/basic/sql_function.rst:367
msgid "The signature of the function:"
msgstr "La firma de la función:"
-#: ../../build/docs/basic/sql_function.rst:627
+#: ../../build/docs/basic/sql_function.rst:369
msgid "The input parameters are from line **4** to **6**."
msgstr "Los parámetros de entrada son de la línea **4** a **6**."
-#: ../../build/docs/basic/sql_function.rst:628
-msgid "The output columns are from line **7** to **14** (not highlited)."
-msgstr "Las columnas de salida van de la línea **7** a **14** (sin resltar)."
+#: ../../build/docs/basic/sql_function.rst:370
+msgid "The output columns are from line **7** to **14** (not highlighted)."
+msgstr "Las columnas de salida van de la línea **7** a **14** (sin resaltar)."
-#: ../../build/docs/basic/sql_function.rst:629
+#: ../../build/docs/basic/sql_function.rst:371
msgid "The function returns a set. (line **16**)"
msgstr "La función devuelve un conjunto. (línea **16**)"
-#: ../../build/docs/basic/sql_function.rst:637
+#: ../../build/docs/basic/sql_function.rst:379
msgid "The body of the function:"
msgstr "El cuerpo de la función:"
-#: ../../build/docs/basic/sql_function.rst:639
+#: ../../build/docs/basic/sql_function.rst:381
msgid ""
"Appending the view name on line **7** in the ``SELECT`` query to "
"``pgr_dijkstra``."
@@ -1163,7 +698,7 @@ msgstr ""
"Anexar el nombre de la vista en la línea **7** en la consulta ``SELECT`` "
"a ``pgr_dijkstra``."
-#: ../../build/docs/basic/sql_function.rst:640
+#: ../../build/docs/basic/sql_function.rst:382
msgid ""
"Using the data to get the route from ``source`` to ``target``. (line "
"**8**)"
@@ -1171,7 +706,7 @@ msgstr ""
"Usar los datos para obtener la ruta de ``source`` a ``target``. (línea "
"**8**)"
-#: ../../build/docs/basic/sql_function.rst:641
+#: ../../build/docs/basic/sql_function.rst:383
msgid ""
"The ``JOIN`` with ``ways`` is necessary, as the views are subset of "
"``ways`` (line **25**)"
@@ -1179,59 +714,62 @@ msgstr ""
"El ``JOIN`` con ``ways`` es necesario, ya que las vistas son un "
"subconjunto de ``ways`` (línea **25**)"
-#: ../../build/docs/basic/sql_function.rst:652
-msgid ":ref:`basic/appendix:**Exercise**: 10 (**Chapter:** SQL)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 10 (**Chapter:** SQL)`"
-
-#: ../../build/docs/basic/sql_function.rst:657
-msgid "Exercise 11: Using the function"
-msgstr "Ejercicio 11: Uso de la función"
+#: ../../build/docs/basic/sql_function.rst:400
+msgid "Exercise 7: Using the function"
+msgstr "Ejercicio 7: Uso de la función"
-#: ../../build/docs/basic/sql_function.rst:661
+#: ../../build/docs/basic/sql_function.rst:404
msgid "Test the function with the three views"
msgstr "Probar la función con las tres vistas"
-#: ../../build/docs/basic/sql_function.rst:662
-msgid "From the \"|ch7_place_1|\" to the |ch7_place_2| using the OSM identifier"
+#: ../../build/docs/basic/sql_function.rst:405
+#, fuzzy
+msgid "From the |ch7_place_1| to the |ch7_place_2| using the OSM identifier"
msgstr ""
-"Desde \"|ch7_place_1|\" hacia |ch7_place_2| utilizando el identificador OSM"
+"Desde \"|ch7_place_1|\" hacia |ch7_place_2| utilizando el identificador "
+"OSM"
-#: ../../build/docs/basic/sql_function.rst:666
+#: ../../build/docs/basic/sql_function.rst:409
msgid "Use the function on the ``SELECT`` statement"
msgstr "Usar la función en la instrucción ``SELECT``"
-#: ../../build/docs/basic/sql_function.rst:667
+#: ../../build/docs/basic/sql_function.rst:410
msgid "The first parameter changes based on the view to be tested"
msgstr "El primer parámetro cambia en función de la vista que se va a probar"
-#: ../../build/docs/basic/sql_function.rst:674
-msgid ":ref:`basic/appendix:**Exercise**: 11 (**Chapter:** SQL)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 11 (**Chapter:** SQL)`"
+#: ../../build/docs/basic/sql_function.rst:412
+msgid "Names of the streets in the route"
+msgstr "Nombres de las calles de la ruta"
-#: ../../build/docs/basic/sql_function.rst:677
-msgid "Use the function"
-msgstr "Utilizar la función"
+#: ../../build/docs/basic/sql_function.rst:423
+msgid "Total seconds spent in each street"
+msgstr "Total de segundos pasados en cada calle"
-#: ../../build/docs/basic/sql_function.rst:678
+#: ../../build/docs/basic/sql_function.rst:434
+msgid "Get all the information of the route"
+msgstr "Obtener toda la información de la ruta"
+
+#: ../../build/docs/basic/sql_function.rst:445
msgid "Try the function with a combination of the interesting places:"
msgstr "Pruebe la función con una combinación de los lugares interesantes:"
-#: ../../build/docs/basic/sql_function.rst:680
+#: ../../build/docs/basic/sql_function.rst:447
msgid "|osmid_1| |place_1|"
msgstr "|osmid_1| |place_1|"
-#: ../../build/docs/basic/sql_function.rst:681
+#: ../../build/docs/basic/sql_function.rst:448
msgid "|osmid_2| |place_2|"
msgstr "|osmid_2| |place_2|"
-#: ../../build/docs/basic/sql_function.rst:682
+#: ../../build/docs/basic/sql_function.rst:449
msgid "|osmid_3| |place_3|"
msgstr "|osmid_3| |place_3|"
-#: ../../build/docs/basic/sql_function.rst:683
+#: ../../build/docs/basic/sql_function.rst:450
msgid "|osmid_4| |place_4|"
msgstr "|osmid_4| |place_4|"
-#: ../../build/docs/basic/sql_function.rst:684
+#: ../../build/docs/basic/sql_function.rst:451
msgid "|osmid_5| |place_5|"
msgstr "|osmid_5| |place_5|"
+
diff --git a/locale/es/LC_MESSAGES/basic/vehicle.po b/locale/es/LC_MESSAGES/basic/vehicle.po
index 60bc31183..3a75eca88 100644
--- a/locale/es/LC_MESSAGES/basic/vehicle.po
+++ b/locale/es/LC_MESSAGES/basic/vehicle.po
@@ -10,10 +10,10 @@
# Vicky Vergara , 2022
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:37-0600\n"
-"PO-Revision-Date: 2024-03-22 16:47+0000\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
+"PO-Revision-Date: 2024-12-16 19:42+0000\n"
"Last-Translator: Celia Virginia Vergara Castillo \n"
"Language-Team: Spanish \n"
@@ -22,8 +22,8 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.3\n"
-"Generated-By: Babel 2.12.1\n"
+"X-Generator: Weblate 5.4.3\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/basic/vehicle.rst:12
msgid "Vehicle Routing"
@@ -82,8 +82,8 @@ msgid "Dollars"
msgstr "Dólares"
#: ../../build/docs/basic/vehicle.rst:36
-msgid "CO\\ :sub:`2`\\ emissions"
-msgstr "CO\\ :sub:`2`\\ emisiones"
+msgid "CO\\ :sub:`2`\\ emissions"
+msgstr "CO\\ :sub:`2`\\ emisiones"
#: ../../build/docs/basic/vehicle.rst:37
msgid "Wear and tear on the vehicle, etc."
@@ -135,12 +135,12 @@ msgid ""
"length; they can be almost anything, for example - time, slope, surface, "
"road type, etc., or they can be a combination of multiple parameters."
msgstr ""
-"**Carreteras bidireccionales** -``IF cost >= 0 AND reverse_cost >= 0`` y sus "
-"valores pueden ser diferentes. Por ejemplo, es más rápido ir cuesta abajo en "
-"una carretera inclinada. En general, ``cost`` y ``reverse_cost`` no "
-"necesitan ser de longitud; pueden ser casi cualquier cosa, por ejemplo, "
-"tiempo, pendiente, superficie, tipo de carretera, etc., o pueden ser una "
-"combinación de múltiples parámetros."
+"**Carreteras bidireccionales** -``IF cost >= 0 AND reverse_cost >= 0`` y "
+"sus valores pueden ser diferentes. Por ejemplo, es más rápido ir cuesta "
+"abajo en una carretera inclinada. En general, ``cost`` y ``reverse_cost``"
+" no necesitan ser de longitud; pueden ser casi cualquier cosa, por "
+"ejemplo, tiempo, pendiente, superficie, tipo de carretera, etc., o pueden"
+" ser una combinación de múltiples parámetros."
#: ../../build/docs/basic/vehicle.rst:61
msgid ""
@@ -154,7 +154,7 @@ msgstr ""
msgid "Number of (``source, target``) segments with ``cost < 0`` (line **3**)."
msgstr "Número de (``source, target``) segmentos con ``cost < 0`` (line **3**)."
-#: ../../build/docs/basic/vehicle.rst:74
+#: ../../build/docs/basic/vehicle.rst:72
msgid ""
"Number of (``target, source``) segments with ``reverse_cost < 0`` (line "
"**3**)."
@@ -162,43 +162,35 @@ msgstr ""
"Número de segmentos (``target, source``) segmentos con ``reverse_cost < "
"0`` (line **3**)."
-#: ../../build/docs/basic/vehicle.rst:88
+#: ../../build/docs/basic/vehicle.rst:84
msgid "Exercise 1: Vehicle routing - going"
msgstr "Ejercicio 1: Ruteo de vehículos - ida"
-#: ../../build/docs/basic/vehicle.rst:91 ../../build/docs/basic/vehicle.rst:119
-#: ../../build/docs/basic/vehicle.rst:149
-#: ../../build/docs/basic/vehicle.rst:256
-#: ../../build/docs/basic/vehicle.rst:306
+#: ../../build/docs/basic/vehicle.rst:87 ../../build/docs/basic/vehicle.rst:115
+#: ../../build/docs/basic/vehicle.rst:145
+#: ../../build/docs/basic/vehicle.rst:246
+#: ../../build/docs/basic/vehicle.rst:310
+#: ../../build/docs/basic/vehicle.rst:352
msgid "Problem:"
msgstr "Problema:"
-#: ../../build/docs/basic/vehicle.rst:92
+#: ../../build/docs/basic/vehicle.rst:88
msgid "From the \"|place_1|\" to the \"|place_3|\" by car."
msgstr "Desde \"|place_1|\" hacia \"|place_3|\" en automóvil."
-#: ../../build/docs/basic/vehicle.rst:-1
+#: ../../build/docs/basic/vehicle.rst:90
msgid "From |place_1| to the |place_3| by car."
msgstr "Desde |place_1| al |place_3| en coche."
-#: ../../build/docs/basic/vehicle.rst:99 ../../build/docs/basic/vehicle.rst:127
-#: ../../build/docs/basic/vehicle.rst:157
-#: ../../build/docs/basic/vehicle.rst:264
-#: ../../build/docs/basic/vehicle.rst:314
+#: ../../build/docs/basic/vehicle.rst:95 ../../build/docs/basic/vehicle.rst:123
+#: ../../build/docs/basic/vehicle.rst:153
+#: ../../build/docs/basic/vehicle.rst:254
+#: ../../build/docs/basic/vehicle.rst:318
+#: ../../build/docs/basic/vehicle.rst:356
msgid "Solution:"
msgstr "Solución:"
-#: ../../build/docs/basic/vehicle.rst:100
-#: ../../build/docs/basic/vehicle.rst:158
-msgid ""
-"The vehicle is going from vertex |id_1| (line **10**) to |id_3| (line "
-"**11**)."
-msgstr ""
-"El vehículo va desde vértice |id_1| (line **10**) hacia |id_3| (line "
-"**11**)."
-
-#: ../../build/docs/basic/vehicle.rst:101
-#: ../../build/docs/basic/vehicle.rst:129
+#: ../../build/docs/basic/vehicle.rst:96
msgid ""
"Use ``cost`` (line **6**) and ``reverse_cost`` (line **7**) columns, "
"which are in unit ``degrees``."
@@ -206,23 +198,36 @@ msgstr ""
"Utilice las columnas ``cost`` (línea **6**) y ``reverse_cost`` (línea "
"**7**), que están en la unidad ``grados``."
-#: ../../build/docs/basic/vehicle.rst:112
-msgid ":ref:`basic/appendix:**Exercise**: 1 (**Chapter:** Vehicle)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 1 (**Chapter:** Vehicle)`"
+#: ../../build/docs/basic/vehicle.rst:97
+msgid ""
+"The vehicle is going from vertex |id_1| (line **10**) to |id_3| (line "
+"**11**)."
+msgstr ""
+"El vehículo va desde vértice |id_1| (line **10**) hacia |id_3| (line "
+"**11**)."
-#: ../../build/docs/basic/vehicle.rst:116
+#: ../../build/docs/basic/vehicle.rst:112
msgid "Exercise 2: Vehicle routing - returning"
msgstr "Ejercicio 2: Ruteo de vehículos - regreso"
-#: ../../build/docs/basic/vehicle.rst:120
+#: ../../build/docs/basic/vehicle.rst:116
msgid "From \"|place_3|\" to the \"|place_1|\" by car."
msgstr "Desde \"|place_3|\" hacia \"|place_1|\" en automóvil."
-#: ../../build/docs/basic/vehicle.rst:-1
+#: ../../build/docs/basic/vehicle.rst:118
msgid "From |place_3| to the |place_1| by car."
msgstr "Desde |place_3| al |place_1| en coche."
-#: ../../build/docs/basic/vehicle.rst:128
+#: ../../build/docs/basic/vehicle.rst:124
+msgid ""
+"Use ``cost_s`` (line **6**) and ``reverse_cost_s`` (line **7**) columns, "
+"in units seconds."
+msgstr ""
+"Utilizar las columnas ``cost_s`` (línea **6**) y ``reverse_cost_s`` (línea "
+"**7**) que están en unidad de segundos."
+
+#: ../../build/docs/basic/vehicle.rst:126
+#: ../../build/docs/basic/vehicle.rst:161
msgid ""
"The vehicle is going from vertex |id_3| (line **10**) to |id_1| (line "
"**11**)."
@@ -230,11 +235,7 @@ msgstr ""
"El vehículo va de vértice |id_3| (línea **10**) para |id_1| (línea "
"**11**)."
-#: ../../build/docs/basic/vehicle.rst:140
-msgid ":ref:`basic/appendix:**Exercise**: 2 (**Chapter:** Vehicle)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 2 (**Chapter:** Vehicle)`"
-
-#: ../../build/docs/basic/vehicle.rst:142
+#: ../../build/docs/basic/vehicle.rst:138
msgid ""
"On a directed graph, going and coming back routes, most of the time are "
"different."
@@ -242,68 +243,64 @@ msgstr ""
"En un grafo dirigido, las rutas para ir y volver, la mayoría de las veces"
" son diferentes."
-#: ../../build/docs/basic/vehicle.rst:146
+#: ../../build/docs/basic/vehicle.rst:142
msgid "Exercise 3: Vehicle routing when time is money"
msgstr "Ejercicio 3: Ruteo de vehículos cuando el tiempo es dinero"
-#: ../../build/docs/basic/vehicle.rst:150
-msgid "From \"|place_1|\" to the \"|place_3|\" by taxi."
-msgstr "Desde \"|place_1|\" hacia \"|place_3|\" en taxi."
+#: ../../build/docs/basic/vehicle.rst:146
+msgid "From \"|place_3|\" to the \"|place_1|\" by taxi."
+msgstr "Desde \"|place_3|\" hacia \"|place_1|\" en taxi."
-#: ../../build/docs/basic/vehicle.rst:-1
-msgid "From |place_1| to |place_3| by taxi."
-msgstr "Desde |place_1| a |place_3| en taxi."
+#: ../../build/docs/basic/vehicle.rst:148
+msgid "From |place_3| to |place_1| by taxi."
+msgstr "Desde |place_3| a |place_1| en taxi."
-#: ../../build/docs/basic/vehicle.rst:159
+#: ../../build/docs/basic/vehicle.rst:154
msgid "The cost is ``$100 per hour``."
msgstr "El costo es de ``$100 por hora``."
-#: ../../build/docs/basic/vehicle.rst:160
-#: ../../build/docs/basic/vehicle.rst:316
+#: ../../build/docs/basic/vehicle.rst:156
+#: ../../build/docs/basic/vehicle.rst:319
msgid ""
-"Use ``cost_s`` (line **6**) and ``reverse_cost_s`` (line **7**) columns, "
-"which are in unit ``seconds``."
+"Using ``cost_s`` (line **6**) and ``reverse_cost_s`` (line **7**) "
+"columns, which are in unit ``seconds``."
msgstr ""
-"Utilizar las columnas ``cost_s`` (línea **6**) y ``reverse_cost_s`` (línea "
-"**7**) que están en unidad de ``segundos``."
+"Utilizar las columnas ``cost_s`` (línea **6**) y ``reverse_cost_s`` "
+"(línea **7**) que están en unidad de ``segundos``."
-#: ../../build/docs/basic/vehicle.rst:161
+#: ../../build/docs/basic/vehicle.rst:158
msgid "The duration in hours is ``cost_s / 3600``."
msgstr "La duración en horas es ``cost_s / 3600``."
-#: ../../build/docs/basic/vehicle.rst:162
-msgid "The cost in ``$`` is ``cost_s / 3600 * 100``."
-msgstr "El costo en ``$`` es ``cost_s / 3600 * 100``."
-
-#: ../../build/docs/basic/vehicle.rst:173
-msgid ":ref:`basic/appendix:**Exercise**: 3 (**Chapter:** Vehicle)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 3 (**Chapter:** Vehicle)`"
+#: ../../build/docs/basic/vehicle.rst:159
+msgid "The cost in ``dollars`` is ``cost_s / 3600 * 100``."
+msgstr "El costo en ``dollars`` es ``cost_s / 3600 * 100``."
-#: ../../build/docs/basic/vehicle.rst:176
+#: ../../build/docs/basic/vehicle.rst:174
msgid "Comparing with `Exercise 2: Vehicle routing - returning`_:"
msgstr "Comparación con `Ejercicio 2: Ruteo de vehículos - regreso`_:"
-#: ../../build/docs/basic/vehicle.rst:178
+#: ../../build/docs/basic/vehicle.rst:176
msgid "The total number of records are identical."
msgstr "El número total de registros es idéntico."
-#: ../../build/docs/basic/vehicle.rst:179
+#: ../../build/docs/basic/vehicle.rst:177
msgid "The node sequence is identical."
msgstr "La secuencia de nodos es idéntica."
-#: ../../build/docs/basic/vehicle.rst:180
+#: ../../build/docs/basic/vehicle.rst:178
msgid "The edge sequence is identical."
msgstr "La secuencia de aristas es idéntica."
-#: ../../build/docs/basic/vehicle.rst:181
+#: ../../build/docs/basic/vehicle.rst:179
msgid "The cost and agg_cost results are directly proportional."
msgstr "El coste y los resultados agg_cost son directamente proporcionales."
-#: ../../build/docs/basic/vehicle.rst:187
+#: ../../build/docs/basic/vehicle.rst:183
msgid "Cost manipulations"
msgstr "Manipulaciones de costes"
-#: ../../build/docs/basic/vehicle.rst:189
+#: ../../build/docs/basic/vehicle.rst:185
msgid ""
"When dealing with data, being aware of what kind of data is being used "
"can improve results."
@@ -311,11 +308,11 @@ msgstr ""
"Al tratar con datos, ser consciente de qué tipo de datos se están "
"utilizando puede mejorar los resultados."
-#: ../../build/docs/basic/vehicle.rst:191
+#: ../../build/docs/basic/vehicle.rst:187
msgid "Vehicles can not circulate on pedestrian ways"
msgstr "Los vehículos no pueden circular por vías peatonales"
-#: ../../build/docs/basic/vehicle.rst:199
+#: ../../build/docs/basic/vehicle.rst:195
msgid ""
"Penalizing or removal of pedestrian ways will make the results closer to "
"reality."
@@ -323,7 +320,7 @@ msgstr ""
"Penalizar o eliminar las vías peatonales hará que los resultados se "
"acerquen a la realidad."
-#: ../../build/docs/basic/vehicle.rst:201
+#: ../../build/docs/basic/vehicle.rst:197
msgid ""
"When converting data from OSM format using the `osm2pgrouting` tool, "
"there is an additional table: ``configuration``."
@@ -331,7 +328,7 @@ msgstr ""
"Al convertir datos del formato OSM mediante la herramienta "
"`osm2pgrouting`, hay una tabla adicional: ``configuration``."
-#: ../../build/docs/basic/vehicle.rst:205
+#: ../../build/docs/basic/vehicle.rst:201
msgid ""
"The ``configuration`` table structure can be obtained with the following "
"command."
@@ -339,19 +336,19 @@ msgstr ""
"La estructura de tabla ``configuration`` se puede obtener con el "
"siguiente comando."
-#: ../../build/docs/basic/vehicle.rst:-1
+#: ../../build/docs/basic/vehicle.rst:210
msgid "tag_id values"
msgstr "valores de `tag_id`"
-#: ../../build/docs/basic/vehicle.rst:222
+#: ../../build/docs/basic/vehicle.rst:216
msgid "In the image above there is a detail of the ``tag_id`` of the roads."
msgstr "En la imagen de arriba hay un detalle de la ``tag_id`` de las carreteras."
-#: ../../build/docs/basic/vehicle.rst:225
+#: ../../build/docs/basic/vehicle.rst:219
msgid "The ``OSM way`` types:"
msgstr "Los tipos ``OSM way``:"
-#: ../../build/docs/basic/vehicle.rst:235
+#: ../../build/docs/basic/vehicle.rst:227
msgid ""
"Also, on the ``ways`` table there is a column that can be used to "
"``JOIN`` with the ``configuration`` table."
@@ -359,11 +356,11 @@ msgstr ""
"Además, en la tabla ``ways`` hay una columna que se puede utilizar para "
"``JOIN`` con la tabla ``configuration``."
-#: ../../build/docs/basic/vehicle.rst:238
+#: ../../build/docs/basic/vehicle.rst:230
msgid "The ``ways`` types:"
msgstr "Los tipos de ``caminos``:"
-#: ../../build/docs/basic/vehicle.rst:249
+#: ../../build/docs/basic/vehicle.rst:239
msgid ""
"In this workshop, costs are going to be manipulated using the "
"``configuration`` table."
@@ -371,35 +368,36 @@ msgstr ""
"En este taller, los costes se van a manipular utilizando la tabla "
"``configuración``."
-#: ../../build/docs/basic/vehicle.rst:253
+#: ../../build/docs/basic/vehicle.rst:243
msgid "Exercise 4: Vehicle routing without penalization"
msgstr "Ejercicio 4: Ruteo de vehículos sin penalización"
-#: ../../build/docs/basic/vehicle.rst:257
+#: ../../build/docs/basic/vehicle.rst:247
msgid "From the \"|place_3|\" to \"|place_1|\""
msgstr "Desde \"|place_3|\" hacia \"|place_1|\""
-#: ../../build/docs/basic/vehicle.rst:-1
+#: ../../build/docs/basic/vehicle.rst:249
+#: ../../build/docs/basic/vehicle.rst:313
msgid "From |place_3| to |place_1|"
msgstr "Desde |place_3| a |place_1|"
-#: ../../build/docs/basic/vehicle.rst:265
-msgid ""
-"The vehicle is going from vertex |id_3| (line **17**) to vertex |id_1| "
-"(line **18**)."
-msgstr ""
-"El vehículo va desde el vértice |id_3| (línea **17**) al vértice |id_1| "
-"(línea **18**)."
-
-#: ../../build/docs/basic/vehicle.rst:266
-msgid "The vehicle's cost in this case will be in seconds."
-msgstr "El costo del vehículo en este caso será en segundos."
+#: ../../build/docs/basic/vehicle.rst:256
+msgid "Add a penalty column"
+msgstr "Agregar una columna de penalización"
-#: ../../build/docs/basic/vehicle.rst:267
+#: ../../build/docs/basic/vehicle.rst:257
msgid "All roads have a ``penalty`` of ``1`` (line **3**)."
msgstr "Todas las carreteras tienen una ``penalización`` de ``1`` (línea **3**)."
-#: ../../build/docs/basic/vehicle.rst:268
+#: ../../build/docs/basic/vehicle.rst:260
+msgid "Query"
+msgstr "Consulta"
+
+#: ../../build/docs/basic/vehicle.rst:261
+msgid "The vehicle's cost in this case will be in penalized seconds."
+msgstr "El costo del vehículo en este caso será penalizado en segundos."
+
+#: ../../build/docs/basic/vehicle.rst:263
msgid ""
"Costs (in seconds) are to be multiplied by :code:`penalty` (lines **12** "
"and **13**)."
@@ -407,11 +405,11 @@ msgstr ""
"Los costos (en segundos) deben multiplicarse por :code:`penalty` (líneas "
"**12** y **13**)."
-#: ../../build/docs/basic/vehicle.rst:269
+#: ../../build/docs/basic/vehicle.rst:264
msgid "Costs wont change (times 1 leaves the value unchanged)."
msgstr "Los costes no cambiarán (las veces 1 dejan el valor sin cambios)."
-#: ../../build/docs/basic/vehicle.rst:270
+#: ../../build/docs/basic/vehicle.rst:266
msgid ""
"The :code:`configuration` table is linked with the :code:`ways` table by "
"the :code:`tag_id` field using a ``JOIN`` (lines **14** and **15**)."
@@ -420,19 +418,23 @@ msgstr ""
"mediante el campo :code:`tag_id` y usando un ``JOIN`` (líneas **14** y "
"**15**)."
-#: ../../build/docs/basic/vehicle.rst:282
-msgid ":ref:`basic/appendix:**Exercise**: 4 (**Chapter:** Vehicle)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 4 (**Chapter:** Vehicle)`"
+#: ../../build/docs/basic/vehicle.rst:268
+msgid ""
+"The vehicle is going from vertex |id_3| (line **17**) to vertex |id_1| "
+"(line **18**)."
+msgstr ""
+"El vehículo va desde el vértice |id_3| (línea **17**) al vértice |id_1| "
+"(línea **18**)."
-#: ../../build/docs/basic/vehicle.rst:286
+#: ../../build/docs/basic/vehicle.rst:282
msgid "Exercise 5: Vehicle routing with penalization"
msgstr "Ejercicio 5: Ruteo de vehículos con penalización"
-#: ../../build/docs/basic/vehicle.rst:289
+#: ../../build/docs/basic/vehicle.rst:285
msgid "Concept:"
msgstr "Concepto:"
-#: ../../build/docs/basic/vehicle.rst:290
+#: ../../build/docs/basic/vehicle.rst:286
msgid ""
"Change the cost values for the :code:`configuration` table, in such a "
"way, that the"
@@ -440,47 +442,47 @@ msgstr ""
"Cambiar los valores de coste de la tabla :code:`configuration` de forma "
"que el"
-#: ../../build/docs/basic/vehicle.rst:292
+#: ../../build/docs/basic/vehicle.rst:288
msgid "Pedestrian roads are not used."
msgstr "No se utilizan carreteras peatonales."
-#: ../../build/docs/basic/vehicle.rst:293
+#: ../../build/docs/basic/vehicle.rst:290
+msgid "``penalty < 0`` makes the road not to be included in the graph."
+msgstr "``penalty < 0`` hace que el segmento no se incluya en el grafo."
+
+#: ../../build/docs/basic/vehicle.rst:292
msgid "Using residential roads is not encouraged."
msgstr "No se fomenta el uso de carreteras residenciales."
#: ../../build/docs/basic/vehicle.rst:294
+msgid "``penalty > 1`` makes the road slower for the calculations."
+msgstr "``penalty > 1`` hace que el segmento sea más lento para los cálculos."
+
+#: ../../build/docs/basic/vehicle.rst:296
msgid "Using \"faster\" roads is highly encouraged."
msgstr "El uso de carreteras \"más rápidas\" es muy alentador."
-#: ../../build/docs/basic/vehicle.rst:295
+#: ../../build/docs/basic/vehicle.rst:298
+msgid "``penalty < 1`` makes the road faster for the calculations."
+msgstr "``penalty < 1`` hace que el segmento más rápido para los cálculos."
+
+#: ../../build/docs/basic/vehicle.rst:300
msgid "The ``penalty`` values can be changed with ``UPDATE`` queries."
msgstr "Los valores ``penalty`` se pueden cambiar con las consultas ``UPDATE``."
-#: ../../build/docs/basic/vehicle.rst:297
+#: ../../build/docs/basic/vehicle.rst:302
msgid "These values are an exaggeration."
msgstr "Estos valores son una exageración."
-#: ../../build/docs/basic/vehicle.rst:307
+#: ../../build/docs/basic/vehicle.rst:311
msgid "From the \"|place_3|\" to \"|place_1|\" with penalization."
msgstr "Desde \"|place_3|\" hacia \"|place_1|\" con la penalización."
-#: ../../build/docs/basic/vehicle.rst:-1
-msgid "From |place_5| to |place_3|"
-msgstr "Desde |place_5| a |place_3|"
-
-#: ../../build/docs/basic/vehicle.rst:315
-msgid ""
-"The vehicle is going from vertex |id_3| (line **11**) to vertex |id_1| "
-"(line **12**)."
-msgstr ""
-"El vehículo va de vértice |id_3| (línea **11**) al vértice |id_1| (línea "
-"**12**)."
-
-#: ../../build/docs/basic/vehicle.rst:317
+#: ../../build/docs/basic/vehicle.rst:321
msgid "Costs are to be multiplied by :code:`penalty` (lines **6** and **7**)."
msgstr "Los costos deben multiplicarse por :code:`penalty` (líneas **6** y **7**)."
-#: ../../build/docs/basic/vehicle.rst:318
+#: ../../build/docs/basic/vehicle.rst:323
msgid ""
"The :code:`configuration` table is linked with the :code:`ways` table by "
"the :code:`tag_id` field using a ``JOIN`` (lines **8** and **9**)."
@@ -489,38 +491,76 @@ msgstr ""
" el campo:code:`tag_id` mediante un campo ``JOIN`` (líneas **8** y "
"**9**)."
-#: ../../build/docs/basic/vehicle.rst:329
-msgid ":ref:`basic/appendix:**Exercise**: 5 (**Chapter:** Vehicle)`"
-msgstr ":ref:`basic/appendix:**Exercise**: 5 (**Chapter:** Vehicle)`"
+#: ../../build/docs/basic/vehicle.rst:325
+msgid ""
+"The vehicle is going from vertex |id_3| (line **11**) to vertex |id_1| "
+"(line **12**)."
+msgstr ""
+"El vehículo va de vértice |id_3| (línea **11**) al vértice |id_1| (línea "
+"**12**)."
-#: ../../build/docs/basic/vehicle.rst:332
+#: ../../build/docs/basic/vehicle.rst:337
msgid "Comparing with `Exercise 3: Vehicle routing when time is money`_:"
msgstr ""
-"Comparando con `Ejercicio 3: Ruteo de vehículos cuando el tiempo es dinero`_:"
+"Comparando con `Ejercicio 3: Ruteo de vehículos cuando el tiempo es "
+"dinero`_:"
-#: ../../build/docs/basic/vehicle.rst:334
+#: ../../build/docs/basic/vehicle.rst:339
msgid "The total number of records changed."
msgstr "El número total de registros cambió."
-#: ../../build/docs/basic/vehicle.rst:335
+#: ../../build/docs/basic/vehicle.rst:341
msgid "The node sequence changed."
msgstr "La secuencia de nodos cambió."
-#: ../../build/docs/basic/vehicle.rst:336
+#: ../../build/docs/basic/vehicle.rst:342
msgid "The edge sequence changed."
msgstr "La secuencia de bordes cambió."
-#: ../../build/docs/basic/vehicle.rst:337
+#: ../../build/docs/basic/vehicle.rst:344
msgid "The route is avoiding the residential roads that have ``tag_id = 110``."
msgstr ""
"La ruta está evitando las carreteras residenciales que tienen ``tag_id = "
"110``."
-#: ../../build/docs/basic/vehicle.rst:338
-msgid ""
-"The cost did not change proportionally because of the penalty to some of "
-"the roads which was uniform (penalty=1) while routing with cost as money."
+#: ../../build/docs/basic/vehicle.rst:345
+msgid "The costs do not change proportionally."
+msgstr "Los costos no cambian proporcionalmente."
+
+#: ../../build/docs/basic/vehicle.rst:348
+msgid "Exercise 6: Time in seconds of penalized route"
+msgstr "Ejercicio 6: Tiempo en segundos de la ruta penalizada"
+
+#: ../../build/docs/basic/vehicle.rst:353
+msgid "Get the times in seconds of a penalized route"
+msgstr "Obtener el tiempo en segundos de una ruta penalizada"
+
+#: ../../build/docs/basic/vehicle.rst:357
+msgid "Use as inner query the penalized query joined with the ways table"
msgstr ""
-"El costo no cambió proporcionalmente debido a la penalización a algunas "
-"de las carreteras que era uniforme (penalización = 1) mientras que el "
-"enrutamiento con el costo como dinero."
+"Utilizar como consulta interna la consulta penalizada unida a la tabla "
+"``ways``"
+
+#: ../../build/docs/basic/vehicle.rst:359
+msgid "Keep the ``edge`` as ``gid`` (line **6**)"
+msgstr "Mantener el ``edge`` como ``gid`` (línea **6**)"
+
+#: ../../build/docs/basic/vehicle.rst:360
+msgid "Join using ``gid`` (line **18**)"
+msgstr "Unir usando ``gid`` (línea **18**)"
+
+#: ../../build/docs/basic/vehicle.rst:373
+msgid "Comparing with `Exercise 5: Vehicle routing with penalization`_:"
+msgstr "Comparando con `Ejercicio 5: Ruteo de vehículos con penalización`_:"
+
+#: ../../build/docs/basic/vehicle.rst:375
+msgid "The total number of records is the same."
+msgstr "El número total de registros es el mismo."
+
+#: ../../build/docs/basic/vehicle.rst:376
+msgid "The route is the same"
+msgstr "La ruta es la misma"
+
+#: ../../build/docs/basic/vehicle.rst:377
+msgid "The ``cost`` column have the original vales from the ways table."
+msgstr "La columna ``cost`` tiene los valores originales de la tabla ``ways``."
diff --git a/locale/es/LC_MESSAGES/chapters/appendix-1.po b/locale/es/LC_MESSAGES/chapters/appendix-1.po
deleted file mode 100644
index e081e5c3e..000000000
--- a/locale/es/LC_MESSAGES/chapters/appendix-1.po
+++ /dev/null
@@ -1,344 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2021 Daniel Kastl, Vicky Vergara
-# This file is distributed under the same license as the Workshop FOSS4G
-# Argentina package.
-# FIRST AUTHOR , 2021.
-#
-# Translators:
-# Vicky Vergara , 2021
-# MarPetra , 2021
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-14 19:30+0000\n"
-"PO-Revision-Date: 2021-04-23 15:22+0000\n"
-"Last-Translator: MarPetra , 2021\n"
-"Language-Team: Spanish (https://www.transifex.com/pgrouting/teams/1219/es/)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.9.1\n"
-"Language: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: ../../build/docs/chapters/appendix-1.rst:15
-msgid "Appendix: Workshop Solutions"
-msgstr "Apéndice: Soluciones del taller"
-
-#: ../../build/docs/chapters/appendix-1.rst:18
-msgid "Solutions to :doc:`chapter-5`"
-msgstr "Soluciones para :doc:`chapter-5`"
-
-#: ../../build/docs/chapters/appendix-1.rst:22
-msgid "Query results for chapter 5 exercise 1"
-msgstr "Resultados de la consulta para el ejercicio 1 del capítulo 5"
-
-#: ../../build/docs/chapters/appendix-1.rst:24
-msgid ":ref:`Exercise 1: Single pedestrian routing`"
-msgstr ":ref:`Ejercicio 1: Ruteo para un sólo peatón`"
-
-#: ../../build/docs/chapters/appendix-1.rst:30
-msgid "Query results for chapter 5 exercise 2"
-msgstr "Resultados de la consulta para el ejercicio 2 del capítulo 5"
-
-#: ../../build/docs/chapters/appendix-1.rst:32
-msgid ":ref:`Exercise 2: Many Pedestrians going to the same destination`"
-msgstr ":ref:`Ejercicio 2: Muchos peatones van al mismo destino`"
-
-#: ../../build/docs/chapters/appendix-1.rst:38
-msgid "Query results for chapter 5 exercise 3"
-msgstr "Resultados de la consulta para el ejercicio 3 del capítulo 5"
-
-#: ../../build/docs/chapters/appendix-1.rst:40
-msgid ":ref:`Exercise 3: Many Pedestrians departing from the same location`"
-msgstr ":ref:`Ejercicio 3: Muchos peatones que salen de la misma ubicación`"
-
-#: ../../build/docs/chapters/appendix-1.rst:46
-msgid "Query results for chapter 5 exercise 4"
-msgstr "Resultados de la consulta para el ejercicio 4 del capítulo 5"
-
-#: ../../build/docs/chapters/appendix-1.rst:48
-msgid ":ref:`Exercise 4: Many Pedestrians going to different destinations`"
-msgstr ":ref:`Ejercicio 4: Muchos peatones que van a diferentes destinos`"
-
-#: ../../build/docs/chapters/appendix-1.rst:54
-msgid "Query results for chapter 5 exercise 5"
-msgstr "Resultados de la consulta para el ejercicio 5 del capítulo 5"
-
-#: ../../build/docs/chapters/appendix-1.rst:56
-msgid ""
-":ref:`Exercise 5: Many Pedestrians going to different destinations returning"
-" aggregate costs`"
-msgstr ""
-":ref:`Ejercicio 5: Muchos Peatones que van a diferentes destinos devolviendo"
-" costos agregados`"
-
-#: ../../build/docs/chapters/appendix-1.rst:62
-msgid "Query results for chapter 5 exercise 6"
-msgstr "Resultados de la consulta para el ejercicio 6 del capítulo 5"
-
-#: ../../build/docs/chapters/appendix-1.rst:64
-msgid ""
-":ref:`Exercise 6: Many Pedestrians going to different destinations "
-"summarizing the total costs per departure`"
-msgstr ""
-":ref:`Ejercicio 6: Muchos peatones van a diferentes destinos resumiendo "
-"costos totales por salida`"
-
-#: ../../build/docs/chapters/appendix-1.rst:69
-msgid "Solutions to :doc:`chapter-6`"
-msgstr "Soluciones para :doc:`chapter-6`"
-
-#: ../../build/docs/chapters/appendix-1.rst:73
-msgid "Query results for chapter 6 exercise 1"
-msgstr "Resultados de la consulta para el ejercicio 1 del capítulo 6"
-
-#: ../../build/docs/chapters/appendix-1.rst:75
-msgid ":ref:`Exercise 1: Vehicle routing - going`"
-msgstr ":ref:`Ejercicio 1: Ruteo de vehículos - ida`"
-
-#: ../../build/docs/chapters/appendix-1.rst:81
-msgid "Query results for chapter 6 exercise 2"
-msgstr "Resultados de la consulta para el ejercicio 2 del capítulo 6"
-
-#: ../../build/docs/chapters/appendix-1.rst:83
-msgid ":ref:`Exercise 2: Vehicle routing - returning`"
-msgstr ":ref:`Ejercicio 2: Ruteo de vehículos - regreso`"
-
-#: ../../build/docs/chapters/appendix-1.rst:89
-msgid "Query results for chapter 6 exercise 3"
-msgstr "Resultados de la consulta para el ejercicio 3 del capítulo 6"
-
-#: ../../build/docs/chapters/appendix-1.rst:91
-msgid ":ref:`Exercise 3: Vehicle routing when time is money`"
-msgstr ":ref:`Ejercicio 3: Ruteo de vehículos cuando el tiempo es dinero`"
-
-#: ../../build/docs/chapters/appendix-1.rst:97
-msgid "Query results for chapter 6 exercise 4"
-msgstr "Resultados de la consulta para el ejercicio 4 del capítulo 6"
-
-#: ../../build/docs/chapters/appendix-1.rst:99
-msgid ":ref:`Exercise 4: Vehicle routing without penalization`"
-msgstr ":ref:`Ejercicio 4: Ruteo de vehículos sin penalización`"
-
-#: ../../build/docs/chapters/appendix-1.rst:105
-msgid "Query results for chapter 6 exercise 5"
-msgstr "Resultados de la consulta para el ejercicio 5 del capítulo 6"
-
-#: ../../build/docs/chapters/appendix-1.rst:107
-msgid ":ref:`Exercise 5: Vehicle routing with penalization`"
-msgstr ":ref:`Ejercicio 5: Ruteo de vehículos con penalización`"
-
-#: ../../build/docs/chapters/appendix-1.rst:114
-msgid "Solutions to :doc:`chapter-7`"
-msgstr "Soluciones para :doc:`chapter-7`"
-
-#: ../../build/docs/chapters/appendix-1.rst:118
-msgid "Query results for chapter 7 exercise 1"
-msgstr "Resultados de la consulta para el ejercicio 1 del capítulo 7"
-
-#: ../../build/docs/chapters/appendix-1.rst:120
-msgid ":ref:`Exercise 1: Creating a view for routing`"
-msgstr ":ref:`Ejercicio 1: Creación de una vista para el ruteo`"
-
-#: ../../build/docs/chapters/appendix-1.rst:126
-msgid "Query results for chapter 7 exercise 2"
-msgstr "Resultados de la consulta para el ejercicio 2 del capítulo 7"
-
-#: ../../build/docs/chapters/appendix-1.rst:128
-msgid ":ref:`Exercise 2: Limiting the road network within an area`"
-msgstr ":ref:`Ejercicio 2: Limitar la red viaria dentro de un área`"
-
-#: ../../build/docs/chapters/appendix-1.rst:133
-msgid "Query results for chapter 7 exercise 3"
-msgstr "Resultados de la consulta para el ejercicio 3 del capítulo 7"
-
-#: ../../build/docs/chapters/appendix-1.rst:135
-msgid ""
-":ref:`Exercise 3: Creating a materialized view for routing pedestrians`"
-msgstr ""
-":ref:`Ejercicio 3: Creación de una vista materializada para ruteo de los "
-"peatones`"
-
-#: ../../build/docs/chapters/appendix-1.rst:141
-msgid "Query results for chapter 7 exercise 4"
-msgstr "Resultados de la consulta para el ejercicio 4 del capítulo 7"
-
-#: ../../build/docs/chapters/appendix-1.rst:143
-msgid ":ref:`Exercise 4: Testing the views for routing`"
-msgstr ":ref:`Ejercicio 4: Probar las vistas para el ruteo`"
-
-#: ../../build/docs/chapters/appendix-1.rst:150
-msgid "Query results for chapter 7 exercise 5"
-msgstr "Resultados de la consulta para el ejercicio 5 del capítulo 7"
-
-#: ../../build/docs/chapters/appendix-1.rst:152
-msgid ":ref:`Exercise 5: Get additional information`"
-msgstr ":ref:`Ejercicio 5: Obtener información adicional`"
-
-#: ../../build/docs/chapters/appendix-1.rst:158
-msgid "Query results for chapter 7 exercise 6"
-msgstr "Resultados de la consulta para el ejercicio 6 del capítulo 7"
-
-#: ../../build/docs/chapters/appendix-1.rst:160
-msgid ":ref:`Exercise 6: Route geometry (human readable)`"
-msgstr ":ref:`Ejercicio 6: Geometría de la ruta (legible para humanos)`"
-
-#: ../../build/docs/chapters/appendix-1.rst:166
-msgid "Query results for chapter 7 exercise 7"
-msgstr "Resultados de la consulta para el ejercicio 7 del capítulo 7"
-
-#: ../../build/docs/chapters/appendix-1.rst:168
-msgid ":ref:`Exercise 7: Route geometry (binary format)`"
-msgstr ":ref:`Ejercicio 7: Geometría de ruta (formato binario)`"
-
-#: ../../build/docs/chapters/appendix-1.rst:174
-msgid "Query results for chapter 7 exercise 8"
-msgstr "Resultados de la consulta para el ejercicio 8 del capítulo 7"
-
-#: ../../build/docs/chapters/appendix-1.rst:176
-msgid ":ref:`Exercise 8: Route geometry directionality`"
-msgstr ":ref:`Ejercicio 8: Direccionalidad de la geometría de la ruta`"
-
-#: ../../build/docs/chapters/appendix-1.rst:182
-msgid "Query results for chapter 7 exercise 9"
-msgstr "Resultados de la consulta para el ejercicio 9 del capítulo 7"
-
-#: ../../build/docs/chapters/appendix-1.rst:184
-msgid ":ref:`Exercise 9: Using the geometry`"
-msgstr ":ref:`Ejercicio 9: Uso de la geometría`"
-
-#: ../../build/docs/chapters/appendix-1.rst:190
-msgid "Query results for chapter 7 exercise 10"
-msgstr "Resultados de la consulta para el ejercicio 10 del capítulo 7"
-
-#: ../../build/docs/chapters/appendix-1.rst:192
-msgid ":ref:`Exercise 10: Function for an application`"
-msgstr ":ref:`Ejercicio 10: Función para una aplicación`"
-
-#: ../../build/docs/chapters/appendix-1.rst:197
-msgid "Query results for chapter 7 exercise 11"
-msgstr "Resultados de la consulta para el ejercicio 11 del capítulo 7"
-
-#: ../../build/docs/chapters/appendix-1.rst:199
-msgid ":ref:`Exercise 11: Using the function`"
-msgstr ":ref:`Ejercicio 11: Uso de la función`"
-
-#: ../../build/docs/chapters/appendix-1.rst:205
-msgid "Solutions to :doc:`chapter-8`"
-msgstr "Soluciones para :doc:`chapter-8`"
-
-#: ../../build/docs/chapters/appendix-1.rst:208
-msgid "Query results for chapter 8 exercise 1"
-msgstr "Resultados de la consulta para el ejercicio 1 del capítulo 8"
-
-#: ../../build/docs/chapters/appendix-1.rst:210
-msgid ":ref:`Exercise 1: Number of Vertices`"
-msgstr ":ref:`Ejercicio 1: Número de vértices`"
-
-#: ../../build/docs/chapters/appendix-1.rst:212
-#: ../../build/docs/chapters/appendix-1.rst:251
-#: ../../build/docs/chapters/appendix-1.rst:280
-msgid "For ``ways_vertices_pgr``:"
-msgstr "For ``ways_vertices_pgr``:"
-
-#: ../../build/docs/chapters/appendix-1.rst:216
-#: ../../build/docs/chapters/appendix-1.rst:233
-msgid "For ``vehicle_net``:"
-msgstr "Para ``vehicle_net``:"
-
-#: ../../build/docs/chapters/appendix-1.rst:220
-#: ../../build/docs/chapters/appendix-1.rst:237
-msgid "For ``taxi_net``:"
-msgstr "Para ``taxi_net``:"
-
-#: ../../build/docs/chapters/appendix-1.rst:224
-#: ../../build/docs/chapters/appendix-1.rst:241
-msgid "For ``walk_net``:"
-msgstr "Para ``walk_net``:"
-
-#: ../../build/docs/chapters/appendix-1.rst:229
-msgid "Query results for chapter 8 exercise 2"
-msgstr "Resultados de la consulta para el ejercicio 2 del capítulo 8"
-
-#: ../../build/docs/chapters/appendix-1.rst:231
-msgid ":ref:`Exercise 2: Vertices on a table`"
-msgstr ":ref:`Ejercicio 2: Vértices en una tabla`"
-
-#: ../../build/docs/chapters/appendix-1.rst:247
-msgid "Query results for chapter 8 exercise 3"
-msgstr "Resultados de la consulta para el ejercicio 3 del capítulo 8"
-
-#: ../../build/docs/chapters/appendix-1.rst:249
-msgid ":ref:`Exercise 3: Nearest Vertex`"
-msgstr ":ref:`Ejercicio 3: Vértice más cercano`"
-
-#: ../../build/docs/chapters/appendix-1.rst:255
-#: ../../build/docs/chapters/appendix-1.rst:284
-msgid "For ``vehicle_net_vertices_pgr``:"
-msgstr "Para``vehicle_net_vertices_pgr``:"
-
-#: ../../build/docs/chapters/appendix-1.rst:259
-#: ../../build/docs/chapters/appendix-1.rst:288
-msgid "For ``taxi_net_vertices_pgr``:"
-msgstr "Para ``taxi_net_vertices_pgr``:"
-
-#: ../../build/docs/chapters/appendix-1.rst:263
-#: ../../build/docs/chapters/appendix-1.rst:292
-msgid "For ``walk_net_vertices_pgr``:"
-msgstr "Para ``walk_net_vertices_pgr``:"
-
-#: ../../build/docs/chapters/appendix-1.rst:269
-msgid "Query results for chapter 8 exercise 4"
-msgstr "Resultados de la consulta para el ejercicio 4 del capítulo 8"
-
-#: ../../build/docs/chapters/appendix-1.rst:271
-msgid ":ref:`Exercise 4: Nearest vertex function`"
-msgstr ":ref:`Ejercicio 4: Función de vértice más cercano`"
-
-#: ../../build/docs/chapters/appendix-1.rst:276
-msgid "Query results for chapter 8 exercise 5"
-msgstr "Resultados de la consulta para el ejercicio 5 del capítulo 8"
-
-#: ../../build/docs/chapters/appendix-1.rst:278
-msgid ":ref:`Exercise 5: Test nearest vertex function`"
-msgstr ":ref:`Ejercicio 5: Prueba de la función vértice más cercano`"
-
-#: ../../build/docs/chapters/appendix-1.rst:298
-msgid "Query results for chapter 8 exercise 6"
-msgstr "Resultados de la consulta para el ejercicio 6 del capítulo 8"
-
-#: ../../build/docs/chapters/appendix-1.rst:300
-msgid ":ref:`Exercise 6: Creating the main function`"
-msgstr ":ref:`Ejercicio 6: Creación de la función principal`"
-
-#: ../../build/docs/chapters/appendix-1.rst:305
-msgid "Query results for chapter 8 exercise 7"
-msgstr "Resultados de la consulta para el ejercicio 7 del capítulo 8"
-
-#: ../../build/docs/chapters/appendix-1.rst:307
-msgid ":ref:`Exercise 7: Using the main function`"
-msgstr ":ref:`Ejercicio 7: Uso de la función principal`"
-
-#: ../../build/docs/chapters/appendix-1.rst:309
-msgid "For ``vehicle_net``"
-msgstr "Para ``vehicle_net``"
-
-#: ../../build/docs/chapters/appendix-1.rst:313
-msgid "For ``taxi_net``"
-msgstr "Para ``taxi_net``"
-
-#: ../../build/docs/chapters/appendix-1.rst:315
-msgid "The ``WARNING`` message:"
-msgstr "El mensaje ``ADVERTENCIA``:"
-
-#: ../../build/docs/chapters/appendix-1.rst:320
-msgid "The query results:"
-msgstr "Los resultados de la consulta:"
-
-#: ../../build/docs/chapters/appendix-1.rst:324
-msgid "For ``walk_net``"
-msgstr "Para ``walk_net``"
diff --git a/locale/es/LC_MESSAGES/examples/boost_dijkstra.po b/locale/es/LC_MESSAGES/examples/boost_dijkstra.po
index 900fdd995..8d0235119 100644
--- a/locale/es/LC_MESSAGES/examples/boost_dijkstra.po
+++ b/locale/es/LC_MESSAGES/examples/boost_dijkstra.po
@@ -10,7 +10,7 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-10-10 17:38+0000\n"
"PO-Revision-Date: 2021-10-10 17:39+0000\n"
diff --git a/locale/es/LC_MESSAGES/examples/hanoslav.po b/locale/es/LC_MESSAGES/examples/hanoslav.po
index 37f58d04c..e2bb65a22 100644
--- a/locale/es/LC_MESSAGES/examples/hanoslav.po
+++ b/locale/es/LC_MESSAGES/examples/hanoslav.po
@@ -9,7 +9,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-10-10 17:38+0000\n"
"PO-Revision-Date: 2024-03-19 05:57+0000\n"
diff --git a/locale/es/LC_MESSAGES/examples/wiki_example.po b/locale/es/LC_MESSAGES/examples/wiki_example.po
index 2bac2e57c..6cebe917a 100644
--- a/locale/es/LC_MESSAGES/examples/wiki_example.po
+++ b/locale/es/LC_MESSAGES/examples/wiki_example.po
@@ -10,7 +10,7 @@
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-10-10 17:38+0000\n"
"PO-Revision-Date: 2021-10-10 17:39+0000\n"
diff --git a/locale/es/LC_MESSAGES/general-intro/introduction.po b/locale/es/LC_MESSAGES/general-intro/introduction.po
index 141b823ea..dfd756d6c 100644
--- a/locale/es/LC_MESSAGES/general-intro/introduction.po
+++ b/locale/es/LC_MESSAGES/general-intro/introduction.po
@@ -9,10 +9,10 @@
# MarPetra , 2021
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:37-0600\n"
-"PO-Revision-Date: 2024-03-22 16:47+0000\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
+"PO-Revision-Date: 2024-12-16 19:42+0000\n"
"Last-Translator: Celia Virginia Vergara Castillo \n"
"Language-Team: Spanish \n"
@@ -21,8 +21,8 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.3\n"
-"Generated-By: Babel 2.12.1\n"
+"X-Generator: Weblate 5.4.3\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/general-intro/introduction.rst:11
msgid "Introduction"
@@ -35,9 +35,9 @@ msgstr ""
#: ../../build/docs/general-intro/introduction.rst:15
#, fuzzy
msgid ""
-"Please see the :doc:`contents <../index>` for full content of **FOSS4G "
-"Prizren** workshop. This workshop covers two levels for using pgRouting:"
-" `Basic`_ and `Advanced`_."
+"Please see the :doc:`contents <../index>` for full content of FOSS4G "
+"Belém workshop. This workshop covers two levels for using pgRouting: "
+"`Basic`_ and `Advanced`_."
msgstr ""
"Consulte :doc:`contents <../index>` para obtener todo el contenido de "
"este taller."
@@ -50,7 +50,7 @@ msgstr "Básico"
#, fuzzy
msgid ""
"will demonstrate the routing functionality by providing examples using "
-"|osm-web| road network data from Prizren. Covering topics from how to "
+"|osm-web| road network data from Belém. Covering topics from how to "
"prepare the data, making routing queries, understanding the results, up "
"to writing a custom 'plpgsql' function that can be integrated with other "
"FOSS tools."
@@ -85,8 +85,7 @@ msgstr "Escribir consultas avanzadas."
#: ../../build/docs/general-intro/introduction.rst:33
msgid "Writing a custom PostgreSQL stored procedure in `plpgsql`"
-msgstr ""
-"Escribir un procedimiento almacenado PostgreSQL personalizado en `plpgsql`"
+msgstr "Escribir un procedimiento almacenado PostgreSQL personalizado en `plpgsql`"
#: ../../build/docs/general-intro/introduction.rst:36
#: ../../build/docs/general-intro/introduction.rst:49
@@ -103,9 +102,9 @@ msgstr "Conocimiento previo: SQL (PostgreSQL, PostGIS)"
#: ../../build/docs/general-intro/introduction.rst:39
#: ../../build/docs/general-intro/introduction.rst:52
-msgid "Equipments: `OSGeoLive `__ (16.0)"
-msgstr ""
-"Equipos: Este taller utiliza `OSGeoLive `__ (16.0)"
+#, fuzzy
+msgid "Equipments: `OSGeoLive `__ (17)"
+msgstr "Equipos: Este taller utiliza `OSGeoLive `__ (16.0)"
#: ../../build/docs/general-intro/introduction.rst:42
msgid "Advanced"
@@ -135,71 +134,73 @@ msgstr ""
msgid "Sponsored by"
msgstr "Apoyado por"
-#: ../../build/docs/general-intro/introduction.rst:-1
+#: ../../build/docs/general-intro/introduction.rst:59
+#: ../../build/docs/general-intro/introduction.rst:64
msgid "Paragon Corporation"
msgstr "Paragon Corporation"
-#: ../../build/docs/general-intro/introduction.rst:64
-msgid "Developers & presenters of FOSS4G Prizren workshop:"
+#: ../../build/docs/general-intro/introduction.rst:70
+msgid "Developers & presenters of FOSS4G Belém workshop:"
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:65
+#: ../../build/docs/general-intro/introduction.rst:71
msgid ""
"*Vicky Vergara* Is a freelance developer from Mexico. She's the core "
"developer of pgRouting project and GSoC Mentor. OSGeo Charter member."
msgstr ""
"*Vicky Vergara* Es un desarrollador freelance de México. Es la "
-"desarrolladora principal del proyecto pgRouting y es tutora de GSoC. Miembro "
-"de OSGeo."
+"desarrolladora principal del proyecto pgRouting y es tutora de GSoC. "
+"Miembro de OSGeo."
-#: ../../build/docs/general-intro/introduction.rst:68
+#: ../../build/docs/general-intro/introduction.rst:74
msgid ""
-"*Ramón Ríos* Is a freelance developer from Mexico. Lead engenieer for "
+"*Ramón Ríos* Is a freelance developer from Mexico. Lead engenieer for "
"ParkUpFront"
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:73
+#: ../../build/docs/general-intro/introduction.rst:79
msgid "Past and present tutors and developers"
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:74
+#: ../../build/docs/general-intro/introduction.rst:80
msgid ""
"Daniel Kastl, José Ríos, Ko Nagase, Stephen Woodbridge, Swapnil Joshi, "
"Rajat Shinde, Ramón Ríos, Rohith Reddy, Vicky Vergara"
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:85
+#: ../../build/docs/general-intro/introduction.rst:91
msgid "Past and present supporters"
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:86
+#: ../../build/docs/general-intro/introduction.rst:92
msgid "Georepublic, Paragon Corporation"
-msgstr "Paragon Corporation"
+msgstr "Georepublic, Paragon Corporation"
-#: ../../build/docs/general-intro/introduction.rst:90
+#: ../../build/docs/general-intro/introduction.rst:96
msgid "License"
msgstr "Licencias"
-#: ../../build/docs/general-intro/introduction.rst:91
+#: ../../build/docs/general-intro/introduction.rst:97
msgid ""
"This work is licensed under a `Creative Commons Attribution-Share Alike "
"3.0 License `_."
msgstr ""
-"Esta obra está autorizada bajo una licencia `Creative Commons Attribution-"
-"Share Alike 3.0 License `_."
+"Esta obra está autorizada bajo una licencia `Creative Commons "
+"Attribution-Share Alike 3.0 License `_."
-#: ../../build/docs/general-intro/introduction.rst:97
+#: ../../build/docs/general-intro/introduction.rst:103
msgid "Become a sponsor"
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:-1
+#: ../../build/docs/general-intro/introduction.rst:105
msgid "The Linux Foundation"
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:-1
+#: ../../build/docs/general-intro/introduction.rst:110
msgid "Open Collective"
msgstr ""
-#: ../../build/docs/general-intro/introduction.rst:-1
+#: ../../build/docs/general-intro/introduction.rst:115
msgid "OSGeo Foundation"
msgstr ""
diff --git a/locale/es/LC_MESSAGES/general-intro/osgeolive.po b/locale/es/LC_MESSAGES/general-intro/osgeolive.po
index fe870a388..8e625be2b 100644
--- a/locale/es/LC_MESSAGES/general-intro/osgeolive.po
+++ b/locale/es/LC_MESSAGES/general-intro/osgeolive.po
@@ -1,14 +1,14 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2010-2023 pgRouting Developers
# This file is distributed under the same license as the Workshop FOSS4G
-# Prizren package.
+# Belem package.
# FIRST AUTHOR , 2023.
#
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:37-0600\n"
+"POT-Creation-Date: 2024-09-22 04:16+0000\n"
"PO-Revision-Date: 2024-03-22 16:47+0000\n"
"Last-Translator: Celia Virginia Vergara Castillo \n"
"Language-Team: Spanish , 2023.
#
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-08 16:17+0000\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
"PO-Revision-Date: 2024-03-22 16:47+0000\n"
"Last-Translator: Celia Virginia Vergara Castillo \n"
-"Language-Team: Spanish \n"
"Language: es\n"
+"Language-Team: Spanish \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.3\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/general-intro/overview.rst:11
msgid "Software and Data Overview"
@@ -28,111 +27,111 @@ msgstr ""
#: ../../build/docs/general-intro/overview.rst:18
msgid ""
"This workshop use several free and open source software for geospatial "
-"tools. Most of the free and open source software for geospatial tools are"
-" related to other open source software projects and it would not be "
-"feasible to list all of them."
+"tools. Most of the free and open source software for geospatial tools "
+"that are related to other open source software projects. Here we mention "
+"the most important ones."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:24
+#: ../../build/docs/general-intro/overview.rst:23
msgid "Chapter Contents"
msgstr "Contenido del Capítulo"
-#: ../../build/docs/general-intro/overview.rst:27
+#: ../../build/docs/general-intro/overview.rst:26
msgid "pgRouting Overview"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:33
+#: ../../build/docs/general-intro/overview.rst:32
msgid ""
"pgRouting extends the PostGIS / PostgreSQL geospatial database to provide"
" geospatial routing functionality."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:36
+#: ../../build/docs/general-intro/overview.rst:35
msgid "Advantages of the database routing approach are:"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:38
+#: ../../build/docs/general-intro/overview.rst:37
msgid ""
"Data and attributes can be modified by many clients, like QGIS or by "
"directly using PL/pgSQL. The clients can either be personal computers or "
"mobile devices."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:41
+#: ../../build/docs/general-intro/overview.rst:40
msgid ""
"Data changes can be reflected instantaneously through the routing engine."
" There is no need for precalculation."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:43
+#: ../../build/docs/general-intro/overview.rst:42
msgid ""
"The “cost” parameter can be dynamically calculated through SQL and its "
"value can come from multiple fields or tables."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:46
+#: ../../build/docs/general-intro/overview.rst:45
msgid "Some of the pgRouting library core features are:"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:48
+#: ../../build/docs/general-intro/overview.rst:47
msgid ""
"`Dijkstra Algorithm "
"`__"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:49
+#: ../../build/docs/general-intro/overview.rst:48
msgid ""
"`Johnson's Algorithm "
"`__"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:50
+#: ../../build/docs/general-intro/overview.rst:49
msgid ""
"`Floyd-Warshall Algorithm "
"`__"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:51
+#: ../../build/docs/general-intro/overview.rst:50
msgid ""
"`A* Search Algorithm "
"`__"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:52
+#: ../../build/docs/general-intro/overview.rst:51
msgid ""
"`Bi-directional Dijkstra "
"`__"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:53
+#: ../../build/docs/general-intro/overview.rst:52
msgid ""
"`Bi-directional A* "
"`__"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:54
+#: ../../build/docs/general-intro/overview.rst:53
msgid ""
"`Traveling Salesperson Problem "
"`__"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:55
+#: ../../build/docs/general-intro/overview.rst:54
msgid ""
"`Driving Distance "
"`__"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:56
+#: ../../build/docs/general-intro/overview.rst:55
msgid "many more!!!"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:58
+#: ../../build/docs/general-intro/overview.rst:57
msgid ""
"pgRouting is an Open Source Software, available under the GPLv2 license "
"and is supported and maintained by a the pgRouting community."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:61
+#: ../../build/docs/general-intro/overview.rst:60
msgid ""
"pgRouting is a part of `OSGeo Community Projects "
"`__ of the `OSGeo "
@@ -144,7 +143,7 @@ msgstr ""
msgid "Website"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:66
+#: ../../build/docs/general-intro/overview.rst:65
msgid "https://pgrouting.org"
msgstr ""
@@ -152,15 +151,15 @@ msgstr ""
msgid "OSGeoLive"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:67
+#: ../../build/docs/general-intro/overview.rst:66
msgid "https://live.osgeo.org/en/overview/pgrouting_overview.html"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:71
+#: ../../build/docs/general-intro/overview.rst:70
msgid "osm2pgrouting Overview"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:78
+#: ../../build/docs/general-intro/overview.rst:77
msgid ""
"osm2pgrouting is a command line tool that imports OpenStreetMap data into"
" a pgRouting database. It builds the routing network topology "
@@ -169,7 +168,7 @@ msgid ""
"the pgRouting project site."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:83
+#: ../../build/docs/general-intro/overview.rst:82
msgid "osm2pgrouting is available under the GPLv2 license."
msgstr ""
@@ -177,15 +176,15 @@ msgstr ""
msgid "Wiki"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:85
+#: ../../build/docs/general-intro/overview.rst:84
msgid "https://github.com/pgRouting/osm2pgrouting/wiki"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:89
+#: ../../build/docs/general-intro/overview.rst:88
msgid "OpenStreetMap Overview"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:96
+#: ../../build/docs/general-intro/overview.rst:95
msgid ""
"\"OpenStreetMap (OSM) is dedicated to creating and providing geographic "
"data, such as street maps, worldwide, for free. Most maps considered "
@@ -195,42 +194,43 @@ msgid ""
"effort.\""
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:102
+#: ../../build/docs/general-intro/overview.rst:101
msgid "(Source: https://wiki.openstreetmap.org/wiki/Press)"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:104
+#: ../../build/docs/general-intro/overview.rst:103
msgid ""
-"OpenStreetMap is an adequate data source for pgRouting, because it has "
-"no technical restrictions in terms of processing the data. Data "
+"OpenStreetMap is an adequate 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."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:109
+#: ../../build/docs/general-intro/overview.rst:108
msgid "OpenStreetMap uses a topological data structure:"
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:111
+#: ../../build/docs/general-intro/overview.rst:110
msgid "Nodes are points with a geographic position."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:112
+#: ../../build/docs/general-intro/overview.rst:111
msgid "Ways are lists of nodes, representing a polyline or polygon."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:113
+#: ../../build/docs/general-intro/overview.rst:112
msgid ""
"Relations are groups of nodes, ways and other relations which can be "
"assigned certain properties."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:115
+#: ../../build/docs/general-intro/overview.rst:114
msgid ""
"Properties can be assigned to nodes, ways or relations and consist of "
":code:`name = value` pairs."
msgstr ""
-#: ../../build/docs/general-intro/overview.rst:118
+#: ../../build/docs/general-intro/overview.rst:117
msgid "https://www.openstreetmap.org"
msgstr ""
+
diff --git a/locale/es/LC_MESSAGES/index.po b/locale/es/LC_MESSAGES/index.po
index 8f47d1b10..848b56938 100644
--- a/locale/es/LC_MESSAGES/index.po
+++ b/locale/es/LC_MESSAGES/index.po
@@ -8,21 +8,22 @@
# MarPetra , 2021
# Vicky Vergara , 2022
#
-#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-03-03 11:07-0600\n"
-"PO-Revision-Date: 2021-04-23 15:22+0000\n"
-"Last-Translator: Vicky Vergara , 2022\n"
-"Language-Team: Spanish (https://www.transifex.com/pgrouting/teams/1219/es/)\n"
+"PO-Revision-Date: 2024-11-10 15:48+0000\n"
+"Last-Translator: Anonymous \n"
+"Language-Team: Spanish \n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 5.4.3\n"
"Generated-By: Babel 2.9.1\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ../../build/docs/index.rst:11
msgid "pgRouting Workshop"
@@ -41,21 +42,17 @@ msgid "Basic"
msgstr "Básico"
#: ../../build/docs/index.rst:41
-msgid "Advanced"
-msgstr "Avanzado"
-
-#: ../../build/docs/index.rst:49
msgid "United Nations Sustainable Development Goals"
msgstr "Objetivos de Desarrollo Sostenible de las Naciones Unidas"
-#: ../../build/docs/index.rst:63
+#: ../../build/docs/index.rst:55
msgid "Interaction with other software"
msgstr "Interacción con otro software"
-#: ../../build/docs/index.rst:74
+#: ../../build/docs/index.rst:67
msgid "Examples from the Internet"
msgstr "Ejemplos de Internet"
-#: ../../build/docs/index.rst:85
+#: ../../build/docs/index.rst:78
msgid "Appendices"
msgstr "Apéndices"
diff --git a/locale/es/LC_MESSAGES/interactions/chapter-10.po b/locale/es/LC_MESSAGES/interactions/chapter-10.po
index 245b0bd2d..9ae78c7c9 100644
--- a/locale/es/LC_MESSAGES/interactions/chapter-10.po
+++ b/locale/es/LC_MESSAGES/interactions/chapter-10.po
@@ -3,17 +3,16 @@
# This file is distributed under the same license as the Workshop FOSS4G
# Argentina package.
# FIRST AUTHOR , 2021.
-#
+#
# Translators:
# Vicky Vergara , 2021
# MarPetra , 2021
-#
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-10 17:38+0000\n"
-"PO-Revision-Date: 2024-03-22 16:47+0000\n"
+"POT-Creation-Date: 2024-11-04 20:27-0600\n"
+"PO-Revision-Date: 2024-12-16 19:42+0000\n"
"Last-Translator: Celia Virginia Vergara Castillo \n"
"Language-Team: Spanish \n"
@@ -22,7 +21,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.3\n"
+"X-Generator: Weblate 5.4.3\n"
"Generated-By: Babel 2.9.1\n"
#: ../../build/docs/interactions/chapter-10.rst:13
@@ -30,44 +29,48 @@ msgid "WMS server with GeoServer"
msgstr "Servidor WMS con GeoServer"
#: ../../build/docs/interactions/chapter-10.rst:15
+#, fuzzy
msgid ""
"Now that we have a pl/pgsql wrapper, we will make it available as a WMS "
-"layer using `GeoServer `_."
+"layer using `GeoServer `_."
msgstr ""
-"Ahora que tenemos un contenedor pl/pgsql lo haremos disponible como una capa"
-" WMS usando `GeoServer `_."
+"Ahora que tenemos un contenedor pl/pgsql lo haremos disponible como una "
+"capa WMS usando `GeoServer `_."
#: ../../build/docs/interactions/chapter-10.rst:18
+#, fuzzy
msgid ""
-"The installation of GeoServer is out of the scope of this workshop, but if "
-"you're using the `OSGeo Live `_ for this workshop "
-"then you have GeoServer installed already."
+"The installation of GeoServer is out of the scope of this workshop, but "
+"if you're using the `OSGeoLive `_ for this "
+"workshop then you have GeoServer installed already."
msgstr ""
-"La instalación de GeoServer está fuera del alcance de este taller, pero si "
-"está utilizando el `OSGeo Live `_ para este taller, "
-"entonces ya tiene GeoServer instalado."
+"La instalación de GeoServer está fuera del alcance de este taller, pero "
+"si está utilizando el `OSGeo Live `_ para este "
+"taller, entonces ya tiene GeoServer instalado."
#: ../../build/docs/interactions/chapter-10.rst:23
msgid "Connect to the administration page"
msgstr "Conéctese a la página de administración"
#: ../../build/docs/interactions/chapter-10.rst:25
+#, fuzzy
msgid ""
-"In order to create the WMS layer, we need to connect to the administration "
-"interface of GeoServer. On `OSGeo LiveDVD `_ Desktop,"
-" open the *Applications* menu on the desktop and then *Geospatial* > *Web "
-"Services* > *GeoServer* > *Start GeoServer*."
+"In order to create the WMS layer, we need to connect to the "
+"administration interface of GeoServer. On `OSGeoLive "
+"`_ Desktop, open the *Applications* menu on the "
+"desktop and then *Geospatial* > *Web Services* > *GeoServer* > *Start "
+"GeoServer*."
msgstr ""
-"Para crear la capa WMS, se necesita conectara la interfaz de administración "
-"de GeoServer. En el escritorio de `OSGeoLive `_ "
-"abrir el menú *Aplicaciones* en el escritorio y, a continuación, Servicios "
-"Web* > *GeoServer* > *Start GeoServer*."
+"Para crear la capa WMS, se necesita conectara la interfaz de "
+"administración de GeoServer. En el escritorio de `OSGeoLive "
+"`_ abrir el menú *Aplicaciones* en el escritorio "
+"y, a continuación, Servicios Web* > *GeoServer* > *Start GeoServer*."
#: ../../build/docs/interactions/chapter-10.rst:29
msgid ""
"Once the server is up and running, open the `administration page "
-"`_ in your browser, click the *Login* "
-"button, and enter the GeoServer admin credentials:"
+"`_ in your browser, click the "
+"*Login* button, and enter the GeoServer admin credentials:"
msgstr ""
"Una vez que el servidor esté en funcionamiento, abra la `página "
"dadministrativa `_ en su navegador, "
@@ -96,28 +99,28 @@ msgstr "Crear la capa"
#: ../../build/docs/interactions/chapter-10.rst:39
msgid ""
-"Now that your are logged in as an administrator you can create the "
-"WMS layer. In GeoServer terminology you will create an SQL View (see the "
+"Now that your are logged in as an administrator you can create the WMS "
+"layer. In GeoServer terminology you will create an SQL View (see the "
"`official documentation "
-"`_ for"
-" more info)."
+"`_ "
+"for more info)."
msgstr ""
-"Ahora que ha iniciado sesión como administrador, puede crear la capa WMS. En"
-" la terminología de GeoServer, creará una Vista SQL (consulte la "
+"Ahora que ha iniciado sesión como administrador, puede crear la capa WMS."
+" En la terminología de GeoServer, creará una Vista SQL (consulte la "
"`documentación oficial "
-"` _ "
-"para obtener más información)."
+"` _"
+" para obtener más información)."
#: ../../build/docs/interactions/chapter-10.rst:44
msgid ""
-"The first thing to do is to create a new **Workspace** for pgrouting: in the"
-" left menu of the page, inside the *Data* section, click *Workspaces* and "
-"then *Add new workspace*."
+"The first thing to do is to create a new **Workspace** for pgrouting: in "
+"the left menu of the page, inside the *Data* section, click *Workspaces* "
+"and then *Add new workspace*."
msgstr ""
-"Lo primero que hay que hacer es crear un nuevo **Espacio de trabajo** para "
-"pgrouting: en el menú izquierdo de la página, dentro de la sección *Datos*, "
-"haga clic en *Espacios de trabajo* y luego *Agregar nuevo espacio de "
-"trabajo*."
+"Lo primero que hay que hacer es crear un nuevo **Espacio de trabajo** "
+"para pgrouting: en el menú izquierdo de la página, dentro de la sección "
+"*Datos*, haga clic en *Espacios de trabajo* y luego *Agregar nuevo "
+"espacio de trabajo*."
#: ../../build/docs/interactions/chapter-10.rst:48
#: ../../build/docs/interactions/chapter-10.rst:59
@@ -139,7 +142,8 @@ msgid "Namespace URI"
msgstr "URI de espacio de nombres"
#: ../../build/docs/interactions/chapter-10.rst:51
-msgid "``http://pgrouting.org``"
+#, fuzzy
+msgid "``https://pgrouting.org``"
msgstr "``http://pgrouting.org``"
#: ../../build/docs/interactions/chapter-10.rst:53
@@ -148,14 +152,14 @@ msgstr "Y pulse el botón ``enviar``."
#: ../../build/docs/interactions/chapter-10.rst:55
msgid ""
-"Next step: create a new **Store** linked to the workspace. Still in the left"
-" menu, click *Stores* and then *Add new Store*. Here you can choose the type"
-" of data source to configure. Choose *PostGIS*."
+"Next step: create a new **Store** linked to the workspace. Still in the "
+"left menu, click *Stores* and then *Add new Store*. Here you can choose "
+"the type of data source to configure. Choose *PostGIS*."
msgstr ""
-"Siguiente paso: crear un nuevo **Almacén** vinculado al espacio de trabajo. "
-"En el menú de la izquierda, haga clic en *Almacenes* y, a continuación, en "
-"*Agregar nuevo almacén* Aquí puede elegir el tipo de origen de datos que "
-"desea configurar. Elija *PostGIS*."
+"Siguiente paso: crear un nuevo **Almacén** vinculado al espacio de "
+"trabajo. En el menú de la izquierda, haga clic en *Almacenes* y, a "
+"continuación, en *Agregar nuevo almacén* Aquí puede elegir el tipo de "
+"origen de datos que desea configurar. Elija *PostGIS*."
#: ../../build/docs/interactions/chapter-10.rst:61
msgid "Basic Store Info:"
@@ -224,13 +228,14 @@ msgstr "El resto de los valores pueden dejarse como están."
#: ../../build/docs/interactions/chapter-10.rst:77
msgid ""
-"Finally, your next task is to create the **Layer**. Click the *Layers* menu "
-"and then *Add a new resource*. Select the newly created workspace and store "
-"pair: ``pgrouting:pgrouting``."
+"Finally, your next task is to create the **Layer**. Click the *Layers* "
+"menu and then *Add a new resource*. Select the newly created workspace "
+"and store pair: ``pgrouting:pgrouting``."
msgstr ""
-"Por último, la siguiente tarea es crear la **Capa** Hacer clic en el menú "
-"*Capas* y, a continuación, en *Agregar un nuevo recurso*. Seleccione el "
-"espacio de trabajo recién creado y almacene el par: ``pgrouting:pgrouting``."
+"Por último, la siguiente tarea es crear la **Capa** Hacer clic en el menú"
+" *Capas* y, a continuación, en *Agregar un nuevo recurso*. Seleccione el "
+"espacio de trabajo recién creado y almacene el par: "
+"``pgrouting:pgrouting``."
#: ../../build/docs/interactions/chapter-10.rst:81
msgid "Inside the text, click *Configure new SQL view*."
@@ -242,11 +247,11 @@ msgstr "Nombrar la vista``pgrouting`` y llene la *SQL statement* con:"
#: ../../build/docs/interactions/chapter-10.rst:91
msgid ""
-"In the *SQL view parameters*, click *Guess parameters from SQL*; the list "
-"displayed represents the parameters from the SQL above."
+"In the *SQL view parameters*, click *Guess parameters from SQL*; the list"
+" displayed represents the parameters from the SQL above."
msgstr ""
-"En el *SQL view parameters*, haga clic en *Guess parameters from SQL*; la "
-"lista mostrada representa los parámetros de la anterior de SQL."
+"En el *SQL view parameters*, haga clic en *Guess parameters from SQL*; la"
+" lista mostrada representa los parámetros de la anterior de SQL."
#: ../../build/docs/interactions/chapter-10.rst:94
msgid "For each parameter:"
@@ -274,11 +279,11 @@ msgstr "Pulsa *Actualizar*, debe aparecer un atributo (llamado *st_makeline*)"
#: ../../build/docs/interactions/chapter-10.rst:104
msgid ""
-"Change the type to ``LineString`` and the SRID of the geometry column from "
-"``-1`` to ``4326``"
+"Change the type to ``LineString`` and the SRID of the geometry column "
+"from ``-1`` to ``4326``"
msgstr ""
-"Cambie el tipo a ``LineString`` y el SRID de la columna geometría de ``-1`` "
-"a ``4326``"
+"Cambie el tipo a ``LineString`` y el SRID de la columna geometría de "
+"``-1`` a ``4326``"
#: ../../build/docs/interactions/chapter-10.rst:107
msgid "Save the form."
@@ -295,27 +300,28 @@ msgid ""
"``EPSG:4326`` but we want to display them in `EPSG:3857` because the "
"OpenLayers map where the layer will be dispayed is in this projection."
msgstr ""
-"Lo único que hay que hacer en esta pantalla es asegurarnos de que el sistema"
-" de referencia de coordenadas es correcto: las geometrías de la base de "
-"datos están en ``EPSG:4326`` pero queremos mostrarlas en `EPSG:3857` porque "
-"el mapa openlayers donde se desasignará la capa está en esta proyección."
+"Lo único que hay que hacer en esta pantalla es asegurarnos de que el "
+"sistema de referencia de coordenadas es correcto: las geometrías de la "
+"base de datos están en ``EPSG:4326`` pero queremos mostrarlas en "
+"`EPSG:3857` porque el mapa openlayers donde se desasignará la capa está "
+"en esta proyección."
#: ../../build/docs/interactions/chapter-10.rst:116
msgid ""
"Scroll down to the *coordinate reference system* section and change the "
-"**Declared SRS** to ``EPSG:3857`` and the **SRS handling** to ``Reproject "
-"native to declared``."
+"**Declared SRS** to ``EPSG:3857`` and the **SRS handling** to ``Reproject"
+" native to declared``."
msgstr ""
"Desplázate hacia abajo hasta la sección *sistema de referencia de "
-"coordenadas* y cambia el SRS **Declarado** a ``EPSG:3857`` y el **control "
-"SRS** a ``Reproyecto nativo para declarar``."
+"coordenadas* y cambia el SRS **Declarado** a ``EPSG:3857`` y el **control"
+" SRS** a ``Reproyecto nativo para declarar``."
#: ../../build/docs/interactions/chapter-10.rst:120
msgid ""
"Click the *Compute from data* and *Compute from native bounds* link to "
-"automatically set the layer bounds. Click the *Save* at the bottom of the "
-"page to create the layer."
+"automatically set the layer bounds. Click the *Save* at the bottom of the"
+" page to create the layer."
msgstr ""
-"Hacer clic en el vínculo *Calcular desde datos* y *Calcular desde límites "
-"nativos* para establecer automáticamente los límites de capa. Hacer clic en "
-"*Guardar* en la parte inferior de la página para crear la capa."
+"Hacer clic en el vínculo *Calcular desde datos* y *Calcular desde límites"
+" nativos* para establecer automáticamente los límites de capa. Hacer clic"
+" en *Guardar* en la parte inferior de la página para crear la capa."
diff --git a/locale/es/LC_MESSAGES/interactions/chapter-11.po b/locale/es/LC_MESSAGES/interactions/chapter-11.po
index 76b9fbb33..d71beb2a2 100644
--- a/locale/es/LC_MESSAGES/interactions/chapter-11.po
+++ b/locale/es/LC_MESSAGES/interactions/chapter-11.po
@@ -9,9 +9,9 @@
# MarPetra , 2021
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-20 15:37-0600\n"
+"POT-Creation-Date: 2024-11-04 20:27-0600\n"
"PO-Revision-Date: 2024-03-22 16:47+0000\n"
"Last-Translator: Celia Virginia Vergara Castillo \n"
"Language-Team: Spanish , 2021.
-#
+#
# Translators:
# MarPetra , 2021
-#
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-10 17:38+0000\n"
-"PO-Revision-Date: 2024-03-22 16:47+0000\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
+"PO-Revision-Date: 2024-12-16 19:42+0000\n"
"Last-Translator: Celia Virginia Vergara Castillo \n"
"Language-Team: Spanish \n"
"Language: es\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.3\n"
-"Generated-By: Babel 2.9.1\n"
+"X-Generator: Weblate 5.4.3\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/interactions/chapter-9.rst:12
msgid "Using Qgis"
@@ -30,12 +29,13 @@ msgstr "Uso de Qgis"
#: ../../build/docs/interactions/chapter-9.rst:18
msgid ""
-"Other kind of functions are `pl/pgsql`. As applications requirements become "
-"more complex, using previously defined functions becomes necessary."
+"Other kind of functions are `pl/pgsql`. As applications requirements "
+"become more complex, using previously defined functions becomes "
+"necessary."
msgstr ""
-"Otro tipo de funciones son `pl/pgsql`. A medida que los requisitos de las "
-"aplicaciones se vuelven más complejos, se hace necesario utilizar funciones "
-"definidas previamente."
+"Otro tipo de funciones son `pl/pgsql`. A medida que los requisitos de las"
+" aplicaciones se vuelven más complejos, se hace necesario utilizar "
+"funciones definidas previamente."
#: ../../build/docs/interactions/chapter-9.rst:23
msgid "Chapter Contents"
@@ -48,26 +48,27 @@ msgstr "Configurar QGIS"
#: ../../build/docs/interactions/chapter-9.rst:28
msgid ""
"Graphs have a `set of edges` and `set of vertices` associated to it. "
-"`osm2pgrouting` provides the `ways_vertices_pgr` table which is associated "
-"with the `ways` table. When a subset of `edges` is used like in "
-"``vehicle_net`` or in ``small_net``, the set of vertices associated to each "
-"one must be used in order to, for example, locate the nearest vertex to a "
-"lat/lon location."
+"`osm2pgrouting` provides the `ways_vertices_pgr` table which is "
+"associated with the `ways` table. When a subset of `edges` is used like "
+"in ``vehicle_net`` or in ``small_net``, the set of vertices associated to"
+" each one must be used in order to, for example, locate the nearest "
+"vertex to a lat/lon location."
msgstr ""
"Los grafos tienen un `conjunto de aristas` y un `conjunto de vértices` "
-"asociados a él. `osm2pgrouting` proporciona la tabla `ways_vertices_pgr`, "
-"asociada a la tabla `caminos` Cuando se utiliza un subconjunto de `aristas` "
-"como en ``vehicle_net`` o en ``small_net``, se debe utilizar el conjunto de "
-"vértices asociados a cada uno para, por ejemplo, localizar el vértice más "
-"cercano a cierta ubicación lat/lon."
+"asociados a él. `osm2pgrouting` proporciona la tabla `ways_vertices_pgr`,"
+" asociada a la tabla `caminos` Cuando se utiliza un subconjunto de "
+"`aristas` como en ``vehicle_net`` o en ``small_net``, se debe utilizar el"
+" conjunto de vértices asociados a cada uno para, por ejemplo, localizar "
+"el vértice más cercano a cierta ubicación lat/lon."
#: ../../build/docs/interactions/chapter-9.rst:35
msgid ""
-"Launch QGIS from :menuselection:`Geospatial --> Desktop GIS --> QGIS` and "
-"select :menuselection:`Project --> Open` from the menu bar."
+"Launch QGIS from :menuselection:`Geospatial --> Desktop GIS --> QGIS` and"
+" select :menuselection:`Project --> Open` from the menu bar."
msgstr ""
-"Inicie QGIS desde :menuselection::`Geoespacial --> Escritorio GIS --> QGIS` "
-"y seleccione :menuselection:`Proyecto --> Abrir` en la barra de menús."
+"Inicie QGIS desde :menuselection::`Geoespacial --> Escritorio GIS --> "
+"QGIS` y seleccione :menuselection:`Proyecto --> Abrir` en la barra de "
+"menús."
#: ../../build/docs/interactions/chapter-9.rst:40
msgid "The location of QGIS may vary."
@@ -86,8 +87,8 @@ msgid ""
"Connect to a posgGIS enabeled potsgreSQL database clicking on "
":menuselection:`Add postGIS layer`"
msgstr ""
-"Conéctese a una base de datos potsgreSQL con etiqueta posgGIS haciendo clic "
-"en :menuselection:`Añadir capa postGIS`"
+"Conéctese a una base de datos potsgreSQL con etiqueta posgGIS haciendo "
+"clic en :menuselection:`Añadir capa postGIS`"
#: ../../build/docs/interactions/chapter-9.rst:58
msgid "Create a new connection clicking on :menuselection:`New`"
@@ -97,120 +98,138 @@ msgstr "Crear una nueva conexión haciendo clic en :menuselection:`Nuevo`"
msgid "Fill the information and test the connection"
msgstr "Rellene la información y pruebe la conexión"
+#: ../../build/docs/interactions/chapter-9.rst
+msgid "Name"
+msgstr "Nombre"
+
#: ../../build/docs/interactions/chapter-9.rst:69
-msgid "**Name** city_routing"
-msgstr "**Nombre** city_routing"
+#: ../../build/docs/interactions/chapter-9.rst:72
+msgid "``city_routing``"
+msgstr "``city_routing``"
-#: ../../build/docs/interactions/chapter-9.rst:71
-msgid "**Host** localhost"
-msgstr ":Host: localhost"
+#: ../../build/docs/interactions/chapter-9.rst
+msgid "Host"
+msgstr ""
-#: ../../build/docs/interactions/chapter-9.rst:73
-msgid "**Port** 5432"
-msgstr "**Puerto** 5432"
+#: ../../build/docs/interactions/chapter-9.rst:70
+msgid "``localhost``"
+msgstr "``localhost``"
+
+#: ../../build/docs/interactions/chapter-9.rst
+msgid "Port"
+msgstr ""
+
+#: ../../build/docs/interactions/chapter-9.rst:71
+msgid "``5432``"
+msgstr "``5432``"
-#: ../../build/docs/interactions/chapter-9.rst:75
-msgid "**Database** city_routing"
-msgstr "**Base de datos** city_routing"
+#: ../../build/docs/interactions/chapter-9.rst
+msgid "Database"
+msgstr ""
-#: ../../build/docs/interactions/chapter-9.rst:77
-msgid "**User name** user"
+#: ../../build/docs/interactions/chapter-9.rst
+#, fuzzy
+msgid "User name"
msgstr "**Nombre de usuario** user"
-#: ../../build/docs/interactions/chapter-9.rst:79
-msgid "**Password** user"
-msgstr "**Contraseña** usuario"
+#: ../../build/docs/interactions/chapter-9.rst:73
+#: ../../build/docs/interactions/chapter-9.rst:74
+msgid "``user``"
+msgstr "``user``"
+
+#: ../../build/docs/interactions/chapter-9.rst
+msgid "Password"
+msgstr "Contraseña"
-#: ../../build/docs/interactions/chapter-9.rst:81
+#: ../../build/docs/interactions/chapter-9.rst:76
msgid "Allow qgis to remember login and password"
msgstr "Permitir que qgis recuerde el inicio de sesión y la contraseña"
-#: ../../build/docs/interactions/chapter-9.rst:87
+#: ../../build/docs/interactions/chapter-9.rst:82
msgid "Add a postGIS Layer"
msgstr "Añadir una Capa postGIS"
-#: ../../build/docs/interactions/chapter-9.rst:89
+#: ../../build/docs/interactions/chapter-9.rst:84
msgid ""
"Click :menuselection:`Connect` and a list of tables and views from the "
"database will show."
msgstr ""
-"Clic en :menuselection:`Conectar` y se mostrará una lista de tablas y vistas"
-" de la base de datos."
+"Clic en :menuselection:`Conectar` y se mostrará una lista de tablas y "
+"vistas de la base de datos."
-#: ../../build/docs/interactions/chapter-9.rst:91
-msgid ""
-"It is necessaary to select the column that has a distinct unique value:"
-msgstr ""
-"Es necesario seleccionar la columna que tiene un valor único distinto:"
+#: ../../build/docs/interactions/chapter-9.rst:86
+msgid "It is necessaary to select the column that has a distinct unique value:"
+msgstr "Es necesario seleccionar la columna que tiene un valor único distinto:"
-#: ../../build/docs/interactions/chapter-9.rst:93
+#: ../../build/docs/interactions/chapter-9.rst:88
msgid "``seq`` on the routing views"
msgstr "``seq`` en las vistas de enrutamiento"
-#: ../../build/docs/interactions/chapter-9.rst:94
+#: ../../build/docs/interactions/chapter-9.rst:89
msgid "``gid`` on the data views"
msgstr "``gid`` sobre las vistas de datos"
-#: ../../build/docs/interactions/chapter-9.rst:101
+#: ../../build/docs/interactions/chapter-9.rst:96
msgid "Format a Routing Layer"
msgstr "Formatear una Capa de Ruteo"
-#: ../../build/docs/interactions/chapter-9.rst:103
-msgid "Choose a routing view, :menuselection:`Right click --> Zoom to Layer`"
+#: ../../build/docs/interactions/chapter-9.rst:98
+#, fuzzy
+msgid "Choose a routing view, :menuselection:`Right click --> Zoom to Layer`"
msgstr ""
-"Elija una vista de enrutamiento, :menuselection:`Clic derecho --> Acercar a "
-"capa`"
+"Elija una vista de enrutamiento, :menuselection:`Clic derecho --> Acercar"
+" a capa`"
-#: ../../build/docs/interactions/chapter-9.rst:108
+#: ../../build/docs/interactions/chapter-9.rst:103
msgid ":menuselection:`Right click --> Properties`"
msgstr ":menuselection:`Clic derecho --> Propiedades`"
-#: ../../build/docs/interactions/chapter-9.rst:113
+#: ../../build/docs/interactions/chapter-9.rst:108
msgid ":menuselection:`Style --> Color`"
msgstr ":menuselection:`Estilo --> Color`"
-#: ../../build/docs/interactions/chapter-9.rst:118
+#: ../../build/docs/interactions/chapter-9.rst:113
msgid ":menuselection:`Style --> + --> Symbol Layer Type --> Marker line`"
msgstr ""
":menuselection:`Estilo --> + --> Tipo de Símbolos de Capa -> Línea de "
"marcador`"
-#: ../../build/docs/interactions/chapter-9.rst:123
+#: ../../build/docs/interactions/chapter-9.rst:118
msgid ":menuselection:`Apply --> Close`"
msgstr ":menuselection:`Aplicar --> Cerrar`"
-#: ../../build/docs/interactions/chapter-9.rst:126
+#: ../../build/docs/interactions/chapter-9.rst:121
msgid "Copy/Paste Format"
msgstr "Copiar/Pegar Formato"
-#: ../../build/docs/interactions/chapter-9.rst:128
+#: ../../build/docs/interactions/chapter-9.rst:123
msgid ""
-"Choose a formmated layer and :menuselection:`Right click --> Styles --> Copy"
-" Styles`"
+"Choose a formmated layer and :menuselection:`Right click --> Styles --> "
+"Copy Styles`"
msgstr ""
-"Elejir una capa formateada y :menuselection:`Clic derecho --> Estilos --> "
-"Copiar Estilos`"
+"Elejir una capa formateada y :menuselection:`Clic derecho --> Estilos -->"
+" Copiar Estilos`"
-#: ../../build/docs/interactions/chapter-9.rst:133
+#: ../../build/docs/interactions/chapter-9.rst:128
msgid ""
-"Choose another layer and :menuselection:`Right click --> Styles --> Paste "
-"Styles`"
+"Choose another layer and :menuselection:`Right click --> Styles --> Paste"
+" Styles`"
msgstr ""
"Elija otra capa y :menuselection:`Clic derecho --> Estilos --> Pegar "
"Estilos`"
-#: ../../build/docs/interactions/chapter-9.rst:139
+#: ../../build/docs/interactions/chapter-9.rst:134
msgid "Save the project"
msgstr "Guardar el proyecto"
-#: ../../build/docs/interactions/chapter-9.rst:141
+#: ../../build/docs/interactions/chapter-9.rst:136
msgid ":menuselection:`Project --> Save As ...`"
msgstr ":menuselection:`Proyecto --> Guardar como ...`"
-#: ../../build/docs/interactions/chapter-9.rst:146
+#: ../../build/docs/interactions/chapter-9.rst:141
msgid ""
"Navigate to: :menuselection:`User --> Desktop --> workshop` and save "
"``pgrouting-Bucharest-Example``"
msgstr ""
-"Navegar hacia: :menuselection:`Usuario --> Escritorio --> workshop` y guarde"
-" ``pgrouting-Bucharest-Example``"
+"Navegar hacia: :menuselection:`Usuario --> Escritorio --> workshop` y "
+"guarde ``pgrouting-Bucharest-Example``"
diff --git a/locale/es/LC_MESSAGES/un_sdg/appendix.po b/locale/es/LC_MESSAGES/un_sdg/appendix.po
deleted file mode 100644
index 4c331c813..000000000
--- a/locale/es/LC_MESSAGES/un_sdg/appendix.po
+++ /dev/null
@@ -1,370 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) 2010-2021 Daniel Kastl, Vicky Vergara
-# This file is distributed under the same license as the Workshop FOSS4G
-# Argentina package.
-# FIRST AUTHOR , 2021.
-#
-# Translators:
-# Vicky Vergara , 2022
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-03-04 09:53-0600\n"
-"PO-Revision-Date: 2021-10-10 17:39+0000\n"
-"Last-Translator: Vicky Vergara , 2022\n"
-"Language: es\n"
-"Language-Team: Spanish "
-"(https://www.transifex.com/pgrouting/teams/1219/es/)\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.9.1\n"
-
-#: ../../build/docs/un_sdg/appendix.rst:11
-msgid "Appendix: OSGeo UN Challenge Workshop Solutions"
-msgstr "Apéndice: OSGeo Soluciones del taller de ONU - ODS"
-
-#: ../../build/docs/un_sdg/appendix.rst:14
-msgid "Solutions to Chapter 3: :doc:`sdg3-health`"
-msgstr "Soluciones al Capítulo 3: :doc:`sdg3-health`"
-
-#: ../../build/docs/un_sdg/appendix.rst:17
-msgid "**Exercise:** 5 (**Chapter:** SDG 3)"
-msgstr "**Ejercicio:** 5 (**Capítulo:** SDG 3)"
-
-#: ../../build/docs/un_sdg/appendix.rst:19
-#, fuzzy
-msgid ""
-":ref:`un_sdg/sdg3-health:Exercise 5: Counting the number of Roads and "
-"Buildings`"
-msgstr ":ref:`un_sdg/sdg3-health:Ejercicio 5: Contar el número de carreteras y edificios`"
-
-#: ../../build/docs/un_sdg/appendix.rst:25
-msgid "**Exercise:** 6 (**Chapter:** SDG 3)"
-msgstr "**Ejercicio:** 6 (**Capítulo:** ODS 3)"
-
-#: ../../build/docs/un_sdg/appendix.rst:27
-#, fuzzy
-msgid ":ref:`un_sdg/sdg3-health:Exercise 6: Add a spatial column to the table`"
-msgstr ":ref:`un_sdg/sdg3-health:Ejercicio 6: Añadir una columna espacial a la tabla`"
-
-#: ../../build/docs/un_sdg/appendix.rst:32
-msgid "**Exercise:** 7 (**Chapter:** SDG 3)"
-msgstr "**Ejercicio:** 7 (**Capítulo:** ODS 3)"
-
-#: ../../build/docs/un_sdg/appendix.rst:35
-#, fuzzy
-msgid ""
-":ref:`un_sdg/sdg3-health:Exercise 7: Removing the polygons with less than"
-" 4 points`"
-msgstr ":ref:`un_sdg/sdg3-health:Ejercicio 7: Extracción de los polígonos con menos de 4 puntos`"
-
-#: ../../build/docs/un_sdg/appendix.rst:41
-msgid "**Exercise:** 8 (**Chapter:** SDG 3)"
-msgstr "**Ejercicio:** 8 (**Capítulo:** ODS 3)"
-
-#: ../../build/docs/un_sdg/appendix.rst:44
-#, fuzzy
-msgid ":ref:`un_sdg/sdg3-health:Exercise 8: Creating the polygons`"
-msgstr ":ref:`un_sdg/sdg3-health:Ejercicio 8: Creación de los polígonos`"
-
-#: ../../build/docs/un_sdg/appendix.rst:49
-msgid "**Exercise:** 9 (**Chapter:** SDG 3)"
-msgstr "**Ejercicio:** 9 (**Capítulo:** ODS 3)"
-
-#: ../../build/docs/un_sdg/appendix.rst:52
-#, fuzzy
-msgid ":ref:`un_sdg/sdg3-health:Exercise 9: Calculating the area`"
-msgstr ":ref:`un_sdg/sdg3-health:Ejercicio 9: Cálculo del área`"
-
-#: ../../build/docs/un_sdg/appendix.rst:58
-msgid "**Exercise:** 10 (**Chapter:** SDG 3)"
-msgstr "**Ejercicio:** 10 (**Capítulo:** ODS 3)"
-
-#: ../../build/docs/un_sdg/appendix.rst:60
-#, fuzzy
-msgid ""
-":ref:`un_sdg/sdg3-health:Exercise 10: Find the Component ID for Road "
-"vertices`"
-msgstr ""
-":ref:`un_sdg/sdg3-health:Ejercicio 10: Buscar el identificador de componente para los "
-"vértices de carretera`"
-
-#: ../../build/docs/un_sdg/appendix.rst:66
-msgid "**Exercise:** 11 (**Chapter:** SDG 3)"
-msgstr "**Ejercicio:** 11 (**Capítulo:** ODS 3)"
-
-#: ../../build/docs/un_sdg/appendix.rst:69
-#, fuzzy
-msgid ""
-":ref:`un_sdg/sdg3-health:Exercise 11: Finding the components which are to"
-" be removed`"
-msgstr ":ref:`un_sdg/sdg3-health:Ejercicio 11: Encontrar los componentes que deben eliminarse`"
-
-#: ../../build/docs/un_sdg/appendix.rst:75
-msgid "**Exercise:** 12 (**Chapter:** SDG 3)"
-msgstr "**Ejercicio:** 12 (**Capítulo:** ODS 3)"
-
-#: ../../build/docs/un_sdg/appendix.rst:78
-#, fuzzy
-msgid ""
-":ref:`un_sdg/sdg3-health:Exercise 12: Finding the road vertices of these "
-"components`"
-msgstr ":ref:`un_sdg/sdg3-health:Ejercicio 12: Encontrar los vértices de estos componentes`"
-
-#: ../../build/docs/un_sdg/appendix.rst:84
-msgid "**Exercise:** 13 (**Chapter:** SDG 3)"
-msgstr "**Ejercicio:** 13 (**Capítulo:** ODS 3)"
-
-#: ../../build/docs/un_sdg/appendix.rst:87
-#, fuzzy
-msgid ""
-":ref:`un_sdg/sdg3-health:Exercise 13: Removing the unwanted edges and "
-"vertices`"
-msgstr ":ref:`un_sdg/sdg3-health:Ejercicio 13: Eliminación de las aristas y vértices no deseados`"
-
-#: ../../build/docs/un_sdg/appendix.rst:93
-msgid "**Exercise:** 15 (**Chapter:** SDG 3)"
-msgstr "**Ejercicio:** 15 (**Capítulo:** ODS 3)"
-
-#: ../../build/docs/un_sdg/appendix.rst:96
-#, fuzzy
-msgid ""
-":ref:`un_sdg/sdg3-health:Exercise 15: Finding the served roads using "
-"pgr_drivingDistance`"
-msgstr ""
-":ref:`un_sdg/sdg3-health:Ejercicio 15: Encontrar las carreteras servidas usando "
-"pgr_drivingDistance`"
-
-#: ../../build/docs/un_sdg/appendix.rst:101
-msgid "**Exercise:** 16 (**Chapter:** SDG 3)"
-msgstr "**Ejercicio:** 16 (**Capítulo:** ODS 3)"
-
-#: ../../build/docs/un_sdg/appendix.rst:104
-#, fuzzy
-msgid ":ref:`un_sdg/sdg3-health:Exercise 16: Generalising the served roads`"
-msgstr ":ref:`un_sdg/sdg3-health:Ejercicio 16: Generalización de las carreteras servidas`"
-
-#: ../../build/docs/un_sdg/appendix.rst:110
-msgid "**Exercise:** 17 (**Chapter:** SDG 3)"
-msgstr "**Ejercicio:** 17 (**Capítulo:** ODS 3)"
-
-#: ../../build/docs/un_sdg/appendix.rst:113
-#, fuzzy
-msgid ""
-":ref:`un_sdg/sdg3-health:Exercise 17: Estimating the population of "
-"buildings`"
-msgstr ":ref:`un_sdg/sdg3-health:Ejercicio 17: Estimación de la población de edificios`"
-
-#: ../../build/docs/un_sdg/appendix.rst:119
-msgid "**Exercise:** 18 (**Chapter:** SDG 3)"
-msgstr "**Ejercicio:** 18 (**Capítulo:** ODS 3)"
-
-#: ../../build/docs/un_sdg/appendix.rst:122
-#, fuzzy
-msgid ""
-":ref:`un_sdg/sdg3-health:Exercise 18: Finding the nearest roads to store "
-"the population`"
-msgstr ""
-":ref:`un_sdg/sdg3-health:Ejercicio 18: Encontrar las carreteras más cercanas para almacenar "
-"a la población`"
-
-#: ../../build/docs/un_sdg/appendix.rst:128
-msgid "**Exercise:** 19 (**Chapter:** SDG 3)"
-msgstr "**Ejercicio:** 19 (**Capítulo:** ODS 3)"
-
-#: ../../build/docs/un_sdg/appendix.rst:131
-#, fuzzy
-msgid ":ref:`un_sdg/sdg3-health:Exercise 19: Storing the population in the roads`"
-msgstr ":ref:`un_sdg/sdg3-health:Ejercicio 19: Almacenar la población en las carreteras`"
-
-#: ../../build/docs/un_sdg/appendix.rst:137
-msgid "**Exercise:** 20 (**Chapter:** SDG 3)"
-msgstr "**Ejercicio:** 20 (**Capítulo:** ODS 3)"
-
-#: ../../build/docs/un_sdg/appendix.rst:140
-#, fuzzy
-msgid ":ref:`un_sdg/sdg3-health:Exercise 20: Finding total population`"
-msgstr ":ref:`un_sdg/sdg3-health:Ejercicio 20: Encontrar la población total`"
-
-#: ../../build/docs/un_sdg/appendix.rst:146
-msgid "Solutions to :doc:`sdg7-energy`"
-msgstr "Soluciones para :doc:`sdg7-energy`"
-
-#: ../../build/docs/un_sdg/appendix.rst:149
-msgid "**Exercise:** 5 (**Chapter:** SDG 7)"
-msgstr "**Ejercicio:** 5 (**Capítulo:** ODS 7)"
-
-#: ../../build/docs/un_sdg/appendix.rst:152
-#, fuzzy
-msgid ":ref:`un_sdg/sdg7-energy:Exercise 5: Counting the number of Roads`"
-msgstr ":ref:`un_sdg/sdg7-energy:Ejercicio 5: Contar el número de carreteras`"
-
-#: ../../build/docs/un_sdg/appendix.rst:158
-msgid "**Exercise:** 6 (**Chapter:** SDG 7)"
-msgstr "**Ejercicio:** 6 (**Capítulo:** ODS 7)"
-
-#: ../../build/docs/un_sdg/appendix.rst:161
-#, fuzzy
-msgid ""
-":ref:`un_sdg/sdg7-energy:Exercise 6: Find the Component ID for Road "
-"vertices`"
-msgstr ""
-":ref:`un_sdg/sdg7-energy:Ejercicio 6: Buscar el identificador de componente para los "
-"vértices de carretera`"
-
-#: ../../build/docs/un_sdg/appendix.rst:167
-msgid "**Exercise:** 7 (**Chapter:** SDG 7)"
-msgstr "**Ejercicio:** 7 (**Capítulo:** ODS 7)"
-
-#: ../../build/docs/un_sdg/appendix.rst:170
-#, fuzzy
-msgid ""
-":ref:`un_sdg/sdg7-energy:Exercise 7: Finding the components which are to "
-"be removed`"
-msgstr ":ref:`un_sdg/sdg7-energy:Ejercicio 7: Encontrar los componentes que deben eliminarse`"
-
-#: ../../build/docs/un_sdg/appendix.rst:176
-msgid "**Exercise:** 8 (**Chapter:** SDG 7)"
-msgstr "**Ejercicio:** 8 (**Capítulo:** ODS 7)"
-
-#: ../../build/docs/un_sdg/appendix.rst:179
-#, fuzzy
-msgid ""
-":ref:`un_sdg/sdg7-energy:Exercise 8: Finding the road vertices of these "
-"components`"
-msgstr ""
-":ref:`un_sdg/sdg7-energy:Ejercicio 8: Encontrar los vértices de la carretera de estos "
-"componentes`"
-
-#: ../../build/docs/un_sdg/appendix.rst:184
-msgid "**Exercise:** 9 (**Chapter:** SDG 7)"
-msgstr "**Ejercicio:** 9 (**Capítulo:** ODS 7)"
-
-#: ../../build/docs/un_sdg/appendix.rst:187
-#, fuzzy
-msgid ""
-":ref:`un_sdg/sdg7-energy:Exercise 9: Removing the unwanted edges and "
-"vertices`"
-msgstr ":ref:`un_sdg/sdg7-energy:Ejercicio 9: Eliminación de las aristas y vértices no deseados`"
-
-#: ../../build/docs/un_sdg/appendix.rst:192
-msgid "**Exercise:** 10 (**Chapter:** SDG 7)"
-msgstr "**Ejercicio:** 10 (**Capítulo:** ODS 7)"
-
-#: ../../build/docs/un_sdg/appendix.rst:195
-#, fuzzy
-msgid ":ref:`un_sdg/sdg7-energy:Exercise 10: Find the minimum spanning tree`"
-msgstr ":ref:`un_sdg/sdg7-energy:Ejercicio 10: Encontrar el árbol de expansión mínimo`"
-
-#: ../../build/docs/un_sdg/appendix.rst:200
-msgid "**Exercise:** 11 (**Chapter:** SDG 7)"
-msgstr "**Ejercicio:** 11 (**Capítulo:** ODS 7)"
-
-#: ../../build/docs/un_sdg/appendix.rst:203
-#, fuzzy
-msgid ""
-":ref:`un_sdg/sdg7-energy:Exercise 11: Compute total length of material "
-"required in km`"
-msgstr ""
-":ref:`un_sdg/sdg7-energy:Ejercicio 11: Calcular la longitud total del material requerido en "
-"km`"
-
-#: ../../build/docs/un_sdg/appendix.rst:208
-msgid "**Exercise:** 12 (**Chapter:** SDG 7)"
-msgstr "**Ejercicio:** 12 (**Capítulo:** ODS 7)"
-
-#: ../../build/docs/un_sdg/appendix.rst:210
-#, fuzzy
-msgid ":ref:`un_sdg/sdg7-energy:Exercise 12: Compute total length of roads`"
-msgstr ":ref:`un_sdg/sdg7-energy:Ejercicio 12: Calcular la longitud total de las carreteras`"
-
-#: ../../build/docs/un_sdg/appendix.rst:215
-msgid "Solutions to :doc:`sdg11-cities`"
-msgstr "Soluciones para :doc:`sdg11-cities`"
-
-#: ../../build/docs/un_sdg/appendix.rst:218
-msgid "**Exercise:** 1 (**Chapter:** SDG 11)"
-msgstr "**Ejercicio:** 1 (**Capítulo:** ODS 11)"
-
-#: ../../build/docs/un_sdg/appendix.rst:220
-#, fuzzy
-msgid ":ref:`un_sdg/sdg11-cities:Exercise 1: Create a point for the city`"
-msgstr ":ref:`un_sdg/sdg11-cities:Ejercicio 1: Crear un punto para la ciudad`"
-
-#: ../../build/docs/un_sdg/appendix.rst:226
-msgid "**Exercise:** 6 (**Chapter:** SDG 11)"
-msgstr "**Ejercicio:** 6 (**Capítulo:** ODS 11)"
-
-#: ../../build/docs/un_sdg/appendix.rst:229
-#, fuzzy
-msgid ":ref:`un_sdg/sdg11-cities:Exercise 6: Counting the number of Waterways`"
-msgstr ":ref:`un_sdg/sdg11-cities:Ejercicio 6: Contar el número de vías navegables`"
-
-#: ../../build/docs/un_sdg/appendix.rst:235
-msgid "**Exercise:** 7 (**Chapter:** SDG 11)"
-msgstr "**Ejercicio:** 7 (**Capítulo:** ODS 11)"
-
-#: ../../build/docs/un_sdg/appendix.rst:238
-#, fuzzy
-msgid ""
-":ref:`un_sdg/sdg11-cities:Exercise 7: Removing the Rivers which are in "
-"swamps`"
-msgstr ":ref:`un_sdg/sdg11-cities:Ejercicio 7: Eliminar los ríos que están en pantanos`"
-
-#: ../../build/docs/un_sdg/appendix.rst:244
-msgid "**Exercise:** 8 (**Chapter:** SDG 11)"
-msgstr "**Ejercicio:** 8 (**Capítulo:** ODS 11)"
-
-#: ../../build/docs/un_sdg/appendix.rst:246
-#, fuzzy
-msgid ""
-":ref:`un_sdg/sdg11-cities:Exercise 8: Get the Connected Components of "
-"Waterways`"
-msgstr ""
-":ref:`un_sdg/sdg11-cities:Ejercicio 8: Obtener los componentes conectados de las vías "
-"fluviales`"
-
-#: ../../build/docs/un_sdg/appendix.rst:252
-msgid "**Exercise:** 9 (**Chapter:** SDG 11)"
-msgstr "**Ejercicio:** 9 (**Capítulo:** ODS 11)"
-
-#: ../../build/docs/un_sdg/appendix.rst:255
-#, fuzzy
-msgid ":ref:`un_sdg/sdg11-cities:Exercise 9: Creating buffer around the city`"
-msgstr ":ref:`un_sdg/sdg11-cities:Ejercicio 9: Crear una zona límite alrededor de la ciudad`"
-
-#: ../../build/docs/un_sdg/appendix.rst:260
-msgid "**Exercise:** 11 (**Chapter:** SDG 11)"
-msgstr "**Ejercicio:** 11 (**Capítulo:** ODS 11)"
-
-#: ../../build/docs/un_sdg/appendix.rst:262
-#, fuzzy
-msgid ""
-":ref:`un_sdg/sdg11-cities:Exercise 11: Finding the components "
-"intersecting the buffer`"
-msgstr ""
-":ref:`un_sdg/sdg11-cities:Ejercicio 11: Encontrar los componentes que intersectan la zona "
-"limitada`"
-
-#: ../../build/docs/un_sdg/appendix.rst:268
-msgid "**Exercise:** 12 (**Chapter:** SDG 11)"
-msgstr "**Ejercicio:** 12 (**Capítulo:** ODS 11)"
-
-#: ../../build/docs/un_sdg/appendix.rst:271
-#, fuzzy
-msgid ":ref:`un_sdg/sdg11-cities:Exercise 12: Get the rain zones`"
-msgstr ":ref:`un_sdg/sdg11-cities:Ejercicio 12: Obtener las zonas de lluvia`"
-
-#: ../../build/docs/un_sdg/appendix.rst:276
-msgid "**Exercise:** 13 (**Chapter:** SDG 11)"
-msgstr "**Ejercicio:** 13 (**Capítulo:** ODS 11)"
-
-#: ../../build/docs/un_sdg/appendix.rst:278
-#, fuzzy
-msgid ":ref:`un_sdg/sdg11-cities:Exercise 13: Create a union of rain zones`"
-msgstr ":ref:`un_sdg/sdg11-cities:Ejercicio 13: Crear una unión de zonas de lluvia`"
-
diff --git a/locale/es/LC_MESSAGES/un_sdg/data.po b/locale/es/LC_MESSAGES/un_sdg/data.po
index 9d7b5bb06..21f5915bc 100644
--- a/locale/es/LC_MESSAGES/un_sdg/data.po
+++ b/locale/es/LC_MESSAGES/un_sdg/data.po
@@ -9,20 +9,19 @@
# Vicky Vergara , 2022
msgid ""
msgstr ""
-"Project-Id-Version: Workshop FOSS4G Prizren 2.9\n"
+"Project-Id-Version: Workshop FOSS4G Belém 3.0\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-08 16:17+0000\n"
+"POT-Creation-Date: 2024-12-16 17:44+0000\n"
"PO-Revision-Date: 2024-03-22 16:47+0000\n"
"Last-Translator: Celia Virginia Vergara Castillo \n"
-"Language-Team: Spanish \n"
"Language: es\n"
+"Language-Team: Spanish \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-"X-Generator: Weblate 5.3\n"
-"Generated-By: Babel 2.12.1\n"
+"Generated-By: Babel 2.16.0\n"
#: ../../build/docs/un_sdg/data.rst:11
msgid "Data for Sustainable Development Goals"
@@ -65,16 +64,18 @@ msgid "Supported PostGIS version"
msgstr "Versión PostGIS compatible"
#: ../../build/docs/un_sdg/data.rst:38
+#, fuzzy
msgid ""
"These requirements are met on OSGeoLive. When the required software is "
"installed, open a terminal window by pressing ``ctrl-alt-t`` and follow "
-"the instructions. Information about installing OSGeoLive can be found in"
-" :doc:`../general-intro/osgeolive` of this workshop."
+"the instructions. Information about installing OSGeoLive can be found in "
+":doc:`../general-intro/osgeolive` of this workshop."
msgstr ""
"Estos requisitos se cumplen en OSGeoLive. Cuando se instale el software "
-"requerido, abra una ventana de terminal presionando ``ctrl-alt-t`` y siga "
-"las instrucciones. La información sobre la instalación de OSGeoLive se puede "
-"encontrar en :ref:`general-intro/chapter-3:Instalación` de este taller."
+"requerido, abra una ventana de terminal presionando ``ctrl-alt-t`` y siga"
+" las instrucciones. La información sobre la instalación de OSGeoLive se "
+"puede encontrar en :ref:`general-intro/chapter-3:Instalación` de este "
+"taller."
#: ../../build/docs/un_sdg/data.rst:43
msgid ""
@@ -170,19 +171,20 @@ msgstr ""
msgid "Upload Mumbai data to the database"
msgstr "Cargar datos de Mumbai en la base de datos"
-#: ../../build/docs/un_sdg/data.rst:109 ../../build/docs/un_sdg/data.rst:240
+#: ../../build/docs/un_sdg/data.rst:109 ../../build/docs/un_sdg/data.rst:238
msgid ""
"The next step is to run ``osm2pgrouting`` converter, which is a command "
"line tool that inserts the data in the database, \"ready\" to be used "
"with pgRouting. See :doc:`../appendix/appendix-3` for additional "
"information about ``osm2pgrouting``."
msgstr ""
-"El siguiente paso es ejecutar el convertidor ``osm2pgrouting'', que es una "
-"herramienta de línea de comandos que inserta los datos en la base de datos, "
-"\"listo\" para ser utilizado con pgRouting. Puede encontrar información "
-"adicional sobre ``osm2pgrouting`` en :doc:`../appendix/appendix-3`."
+"El siguiente paso es ejecutar el convertidor ``osm2pgrouting'', que es "
+"una herramienta de línea de comandos que inserta los datos en la base de "
+"datos, \"listo\" para ser utilizado con pgRouting. Puede encontrar "
+"información adicional sobre ``osm2pgrouting`` en "
+":doc:`../appendix/appendix-3`."
-#: ../../build/docs/un_sdg/data.rst:113 ../../build/docs/un_sdg/data.rst:244
+#: ../../build/docs/un_sdg/data.rst:113 ../../build/docs/un_sdg/data.rst:242
msgid "For this step the following is used:"
msgstr "Para este paso se utiliza lo siguiente:"
@@ -202,7 +204,7 @@ msgstr "``~/Desktop/workshop/mumbai.osm`` - Datos de OSM del paso anterior"
msgid "``mumbai`` database."
msgstr "Base de datos ``mumbai``."
-#: ../../build/docs/un_sdg/data.rst:119 ../../build/docs/un_sdg/data.rst:250
+#: ../../build/docs/un_sdg/data.rst:119 ../../build/docs/un_sdg/data.rst:248
msgid ""
"Contents of the configuration files are given in the `Appendix`_. Create "
"a XML file using these contents and save it into the root directory "
@@ -239,12 +241,12 @@ msgstr ""
"cuales usaremos para ejercicios posteriores."
#: ../../build/docs/un_sdg/data.rst:139 ../../build/docs/un_sdg/data.rst:160
-#: ../../build/docs/un_sdg/data.rst:268
+#: ../../build/docs/un_sdg/data.rst:266
msgid "Depending on the osm2pgrouting version `-W password` is needed"
msgstr "Dependiendo de la versión osm2pgrouting `-W password` es necesario"
#: ../../build/docs/un_sdg/data.rst:142 ../../build/docs/un_sdg/data.rst:163
-#: ../../build/docs/un_sdg/data.rst:271
+#: ../../build/docs/un_sdg/data.rst:269
msgid "Output:"
msgstr "Salida:"
@@ -262,7 +264,7 @@ msgstr ""
"importar los edificios desde el archivo de OpenStreetMaps a la base de "
"datos pgRouting que usaremos para ejercicios posteriores."
-#: ../../build/docs/un_sdg/data.rst:168 ../../build/docs/un_sdg/data.rst:276
+#: ../../build/docs/un_sdg/data.rst:168 ../../build/docs/un_sdg/data.rst:274
msgid "To connect to the database, type the following in the terminal."
msgstr "Para conectarse a la base de datos, escribir lo siguiente en el terminal."
@@ -271,8 +273,9 @@ msgid "Bangladesh database"
msgstr "Base de datos de Bangladesh"
#: ../../build/docs/un_sdg/data.rst:178
+#, fuzzy
msgid ""
-"Now download the data for an area in Bangladesh by following the same "
+"Now download the data for an area in Bangladesh by following the same "
"steps like that of Mumbai."
msgstr ""
"Ahora descargar los datos de un área en Bangladesh siguiendo los mismos "
@@ -323,27 +326,23 @@ msgstr ""
"El siguiente comando se utiliza para descargar los datos OSM del área en "
"Munshigang, Bangladesh."
-#: ../../build/docs/un_sdg/data.rst:235
-msgid "See :ref:`basic/data:Option 3) Download using Overpass XAPI`"
-msgstr "Ver :ref:`basic/data:Opción 3) Descargar usando Overpass XAPI`"
-
-#: ../../build/docs/un_sdg/data.rst:238
+#: ../../build/docs/un_sdg/data.rst:236
msgid "Upload Bangladesh data to the database"
msgstr "Cargar datos de Bangladesh en la base de datos"
-#: ../../build/docs/un_sdg/data.rst:246
+#: ../../build/docs/un_sdg/data.rst:244
msgid "``waterways.xml`` configuration file"
msgstr "Archivo de configuración ``waterways.xml``"
-#: ../../build/docs/un_sdg/data.rst:247
+#: ../../build/docs/un_sdg/data.rst:245
msgid "``~/Desktop/workshop/bangladesh.osm`` - OSM data from the previous step"
msgstr "``~/Desktop/workshop/bangladesh.osm`` - Datos de OSM del paso anterior"
-#: ../../build/docs/un_sdg/data.rst:248
+#: ../../build/docs/un_sdg/data.rst:246
msgid "``bangladesh`` database"
msgstr "Base de datos ``bangladesh``"
-#: ../../build/docs/un_sdg/data.rst:253
+#: ../../build/docs/un_sdg/data.rst:251
msgid ""
"Open a terminal window by ``ctrl-alt-t`` and move to the workshop "
"directory by ``cd ~/Desktop/workshop``."
@@ -351,11 +350,11 @@ msgstr ""
"Abra una ventana de terminal con ``ctrl-alt-t`` y vaya al directorio del "
"taller por ``cd ~/Desktop/workshop``."
-#: ../../build/docs/un_sdg/data.rst:257
+#: ../../build/docs/un_sdg/data.rst:255
msgid "Importing Bangladesh Waterways"
msgstr "Importación de vías navegables de Bangladesh"
-#: ../../build/docs/un_sdg/data.rst:259
+#: ../../build/docs/un_sdg/data.rst:257
msgid ""
"The following ``osm2pgrouting`` command will be used to import the "
"Waterways from OpenStreetMaps file to pgRouting database which we will "
@@ -365,14 +364,15 @@ msgstr ""
"vías navegables desde el archivo OpenStreetMaps a la base de datos "
"pgRouting que usaremos para ejercicios posteriores."
-#: ../../build/docs/un_sdg/data.rst:285
+#: ../../build/docs/un_sdg/data.rst:283
msgid "Appendix"
msgstr "Apéndice"
-#: ../../build/docs/un_sdg/data.rst:288
+#: ../../build/docs/un_sdg/data.rst:286
msgid "Configuration information for Buildings"
msgstr "Información de configuración para edificios"
-#: ../../build/docs/un_sdg/data.rst:296
+#: ../../build/docs/un_sdg/data.rst:294
msgid "Configuration information for Waterways"
msgstr "Información de configuración para vías navegables"
+
diff --git a/locale/es/LC_MESSAGES/un_sdg/introduction.po b/locale/es/LC_MESSAGES/un_sdg/introduction.po
index 1e9e641df..ebc455f5a 100644
--- a/locale/es/LC_MESSAGES/un_sdg/introduction.po
+++ b/locale/es/LC_MESSAGES/un_sdg/introduction.po
@@ -3,26 +3,26 @@
# This file is distributed under the same license as the Workshop FOSS4G
# Argentina package.
# FIRST AUTHOR , 2021.
-#
+#
# Translators:
# MarPetra