Compare commits

..

37 Commits

Author SHA1 Message Date
zyphlar
5aaf5aa378 VIBECODED: idea for marking which roads have Panoramax imagery
Signed-off-by: zyphlar <zyphlar@gmail.com>
2025-12-14 10:55:33 -08:00
zyphlar
c8bfeb8e96 Don't error when a temp file doesn't exist
Signed-off-by: zyphlar <zyphlar@gmail.com>
2025-11-11 19:46:22 -08:00
zyphlar
7fc5ed494b [tools] Handle not-yet-generated drules files
Signed-off-by: zyphlar <zyphlar@gmail.com>
2025-11-12 02:26:27 +01:00
zyphlar
d9850f506a [docs] Add CDN_SETUP_INSTRUCTIONS.md
Signed-off-by: zyphlar <zyphlar@gmail.com>
2025-11-12 02:26:27 +01:00
zyphlar
f16d14e07f [generator] Automate maps generation with Docker and CI/CD
Co-authored-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
Signed-off-by: zyphlar <zyphlar@gmail.com>
2025-11-12 02:26:27 +01:00
Codeberg Translate
7852cdb5a5 [strings] Update from Codeberg Translate
Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: JanezPavelZebovec <janezpavelzebovec@noreply.codeberg.org>
Co-authored-by: Linus_W_Frische <linus_w_frische@noreply.codeberg.org>
Co-authored-by: Prefill add-on <noreply-addon-prefill@weblate.org>
Co-authored-by: Weblate <noreply-mt-weblate@weblate.org>
Co-authored-by: dobridabar <dobridabar@noreply.codeberg.org>
Co-authored-by: javnik <javnik@noreply.codeberg.org>
Co-authored-by: ovl-005 <ovl-005@noreply.codeberg.org>
Translation: CoMaps/Android - Map Feature Types
Translation: CoMaps/Android UI Strings
Translation: CoMaps/iOS - Map Feature Types
Translation: CoMaps/iOS UI Strings
2025-11-12 00:09:38 +00:00
x7z4w
9a96096066 [android] Remove routing options item divider
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-11-11 19:18:25 +01:00
Wojciech Sipak
f72c4a28d9 fix openlr helpers build
See the commit e0f8e043bb
apparently the code was never tested

Signed-off-by: Wojciech Sipak <wsipak@protonmail.com>
2025-11-11 18:46:49 +01:00
Wojciech Sipak
68bb78b00d fix levenshtein dfa test build
The constuctor argument type was modified without
any adjustments to the callers.

See the commit
a0a5459b15

Signed-off-by: Wojciech Sipak <wsipak@protonmail.com>
2025-11-11 18:46:49 +01:00
Jean-Baptiste
b9d4f082de [android] Rework clear and close icon on Android
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
2025-11-11 17:55:28 +01:00
Jean-Baptiste
7e40a0e642 [android] Fix drawable used in floating marker view
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
2025-11-11 17:51:53 +01:00
x7z4w
0d3d1823d8 [taginfo] Regenerate
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-11-11 12:32:59 +01:00
Codeberg Translate
09e08c4c8f [strings] Update from Codeberg Translate
Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: Prefill add-on <noreply-addon-prefill@weblate.org>
Co-authored-by: ma12vlad <ma12vlad@noreply.codeberg.org>
Translation: CoMaps/Android - Map Feature Types
Translation: CoMaps/iOS - Map Feature Types
2025-11-10 18:09:49 +00:00
x7z4w
a0a5459b15 [search] nits
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-11-10 18:15:48 +01:00
x7z4w
6e57f9a2ba [platform] Fix warning
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-11-10 17:22:30 +01:00
Codeberg Translate
d971c51fd1 [strings] Update from Codeberg Translate
Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: Prefill add-on <noreply-addon-prefill@weblate.org>
Co-authored-by: dobridabar <dobridabar@noreply.codeberg.org>
Translation: CoMaps/Android - Map Feature Types
Translation: CoMaps/Android UI Strings
Translation: CoMaps/iOS - Map Feature Types
Translation: CoMaps/iOS UI Strings
2025-11-10 14:09:44 +00:00
Codeberg Translate
ac23642462 [strings] Update from Codeberg Translate
Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: Prefill add-on <noreply-addon-prefill@weblate.org>
Co-authored-by: Priit Jõerüüt <jrtcdbrg@noreply.codeberg.org>
Translation: CoMaps/Android - Map Feature Types
Translation: CoMaps/Android UI Strings
Translation: CoMaps/iOS - Map Feature Types
Translation: CoMaps/iOS UI Strings
2025-11-10 10:09:28 +00:00
Yannik Bloscheck
cfe1ce2c67 [ios] Work around background selection issue
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-11-10 10:39:31 +01:00
Codeberg Translate
e07b2e52b3 [strings] Update from Codeberg Translate
Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: Edgarsons <edgarsons@noreply.codeberg.org>
Co-authored-by: Juno Takano <jutty@noreply.codeberg.org>
Co-authored-by: Mickael81 <mickael81@noreply.codeberg.org>
Co-authored-by: Prefill add-on <noreply-addon-prefill@weblate.org>
Co-authored-by: ToninoThePro <toninothepro@noreply.codeberg.org>
Co-authored-by: Weblate <noreply-mt-weblate@weblate.org>
Co-authored-by: dobridabar <dobridabar@noreply.codeberg.org>
Co-authored-by: ldmpub <ldmpub@noreply.codeberg.org>
Co-authored-by: patepelo <patepelo@noreply.codeberg.org>
Co-authored-by: 玄枵 <ipmlosion@noreply.codeberg.org>
Translation: CoMaps/Android - Map Feature Types
Translation: CoMaps/Android UI Strings
Translation: CoMaps/Search synonyms / aliases
Translation: CoMaps/iOS - Map Feature Types
Translation: CoMaps/iOS UI Strings
2025-11-10 09:09:37 +00:00
Codeberg Translate
24f59a1344 [strings] Update from Codeberg Translate
Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: ERYpTION <eryption@noreply.codeberg.org>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Prefill add-on <noreply-addon-prefill@weblate.org>
Co-authored-by: groam <groam@noreply.codeberg.org>
Co-authored-by: yannikbloscheck <yannikbloscheck@noreply.codeberg.org>
Translation: CoMaps/Android - Map Feature Types
Translation: CoMaps/Android UI Strings
Translation: CoMaps/iOS - Map Feature Types
Translation: CoMaps/iOS UI Strings
2025-11-09 22:09:31 +00:00
x7z4w
85f4c1c3eb [build] Fix hash for failed generation (#2421)
Co-authored-by: x7z4w <x7z4w@noreply.codeberg.org>
Co-committed-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-11-09 16:37:02 +01:00
Codeberg Translate
3a9faecc3d [strings] Update from Codeberg Translate
Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: Prefill add-on <noreply-addon-prefill@weblate.org>
Co-authored-by: yannikbloscheck <yannikbloscheck@noreply.codeberg.org>
Translation: CoMaps/Android - Map Feature Types
Translation: CoMaps/Android UI Strings
Translation: CoMaps/iOS - Map Feature Types
2025-11-09 14:10:16 +00:00
Yannik Bloscheck
f0e078701e [types] Adding soup kitchens, food banks, food sharing and give boxes
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-11-09 14:16:31 +01:00
Yannik Bloscheck
7e27971605 [style] Fix label color for lighthouses
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-11-09 13:57:50 +01:00
Yannik Bloscheck
9267622494 [types] Added telescopes and observatories
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-11-09 13:57:50 +01:00
Yannik Bloscheck
82a4843431 [types] Add car pooling spaces
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-11-09 13:56:34 +01:00
Yannik Bloscheck
5bd7a284fa [ios] Fixes CarPlay voice setting being permanent
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-11-09 12:43:26 +01:00
map-per
84ecbaa63c [generator] Keep area shape to fix OSM editing
Signed-off-by: map-per <map-per@gmx.de>
2025-11-09 12:36:24 +01:00
map-per
91ba38df56 [editor] Improve place does not exist note text
Signed-off-by: map-per <map-per@gmx.de>
2025-11-09 12:30:45 +01:00
Yannik Bloscheck
31dcb954b1 [ios] Added custom icons to routing options
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-11-09 12:21:24 +01:00
Yannik Bloscheck
8b4eab3444 [ios] Add UI for avoiding paved roads
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-11-09 12:21:24 +01:00
x7z4w
90c12003bd [routing] Avoid paved roads
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-11-09 12:21:24 +01:00
Codeberg Translate
a4909a0554 [strings] Update from Codeberg Translate
Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: Edgarsons <edgarsons@noreply.codeberg.org>
Co-authored-by: Prefill add-on <noreply-addon-prefill@weblate.org>
Translation: CoMaps/Android - Map Feature Types
Translation: CoMaps/iOS - Map Feature Types
2025-11-09 11:10:19 +01:00
x7z4w
1b9e9f5091 [cmake] Fix QT errors
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-11-09 10:33:46 +01:00
Yannik Bloscheck
bd78355263 [style] Fix label color for major communication towers
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-11-08 23:26:57 +01:00
Codeberg Translate
b3c188564e [strings] Update from Codeberg Translate
Co-authored-by: Codeberg Translate <translate@codeberg.org>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Prefill add-on <noreply-addon-prefill@weblate.org>
Co-authored-by: jeanbaptisteC <jeanbaptistec@noreply.codeberg.org>
Co-authored-by: ldmpub <ldmpub@noreply.codeberg.org>
Co-authored-by: map-per <map-per@noreply.codeberg.org>
Translation: CoMaps/Android - Map Feature Types
Translation: CoMaps/Search synonyms / aliases
Translation: CoMaps/iOS - Map Feature Types
2025-11-08 17:09:30 +00:00
map-per
e891ffa5d1 [editor] compare coordinates with tolerance and in WGS 84
Signed-off-by: map-per <map-per@gmx.de>
2025-11-08 13:05:46 +01:00
215 changed files with 5602 additions and 934 deletions

View File

@@ -5,10 +5,10 @@ on:
jobs:
description: 'Which job(s) to run right now?'
required: true
default: 'all'
default: 'all-except-upload'
type: choice
options:
- all
- all-except-upload
- copy-coasts
- planet
- wiki
@@ -16,30 +16,82 @@ on:
- subways
- tiger
- maps
- upload
map-generator-continue:
description: 'Continue previous map generation?'
required: false
default: false
type: boolean
map-generator-countries:
description: 'Generate specific MWMs? (i.e. "US_New York_*, foo")'
required: false
type: string
reset:
description: 'Reset part of the system?'
required: false
default: 'no'
type: choice
options:
- 'no'
- wiki-ratelimit
## RCLONE_CONF is multi-line text containing keys and credentials for us2,ru1,fi1,de1 servers
env:
RCLONE_CONF: ${{ secrets.RCLONE_CONF }}
WIKIMEDIA_USERNAME: ${{ secrets.WIKIMEDIA_USERNAME }}
WIKIMEDIA_PASSWORD: ${{ secrets.WIKIMEDIA_PASSWORD }}
S3_KEY_ID: ${{ secrets.S3_KEY_ID }}
S3_SECRET_KEY: ${{ secrets.S3_SECRET_KEY }}
S3_ENDPOINT: ${{ secrets.S3_ENDPOINT }}
S3_BUCKET: ${{ secrets.S3_BUCKET }}
SFTP_USER: ${{ secrets.SFTP_USER }}
SFTP_PASSWORD: ${{ secrets.SFTP_PASSWORD }}
SFTP_HOST: ${{ secrets.SFTP_HOST }}
SFTP_PATH: ${{ secrets.SFTP_PATH }}
ZULIP_BOT_EMAIL: ${{ secrets.ZULIP_BOT_EMAIL }}
ZULIP_API_KEY: ${{ secrets.ZULIP_API_KEY }}
MWMCONTINUE: ${{ inputs.map-generator-continue }}
MWMCOUNTRIES: ${{ inputs.map-generator-countries }}
DEBIAN_FRONTEND: noninteractive
TZ: Etc/UTC
jobs:
copy-coasts:
if: inputs.jobs == 'copy-coasts' || inputs.jobs == 'all'
name: Copy Previously Generated Coasts
clone-repos:
name: Clone Git Repos
runs-on: mapfilemaker
container:
image: ubuntu:latest
image: codeberg.org/comaps/maps_generator:f6d53d54f794
volumes:
- /media/4tbexternal:/media/4tbexternal
- /mnt/4tbexternal:/mnt/4tbexternal
concurrency:
group: ${{ github.workflow }}-map-generator-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
steps:
- uses: actions/cache@v4
with:
path: "~"
key: cache-${{ github.run_id }}-${{ github.run_attempt }}
- name: Checkout main repo
shell: bash
run: |
echo "Cloning $FORGEJO_SERVER_URL/$FORGEJO_REPOSITORY branch $FORGEJO_REF_NAME"
cd ~
git clone --recurse-submodules --shallow-submodules -b $FORGEJO_REF_NAME --single-branch $FORGEJO_SERVER_URL/$FORGEJO_REPOSITORY.git comaps
- name: Checkout wikiparser repo
shell: bash
run: |
cd ~
git clone https://codeberg.org/comaps/wikiparser.git
- name: Checkout subways repo
shell: bash
run: |
cd ~
git clone https://codeberg.org/comaps/subways.git
copy-coasts:
if: inputs.jobs == 'copy-coasts' || inputs.jobs == 'all-except-upload'
name: Copy Previously Generated Coasts
runs-on: mapfilemaker
needs:
- clone-repos
container:
image: codeberg.org/comaps/maps_generator:f6d53d54f794
volumes:
- /mnt/4tbexternal/:/mnt/4tbexternal/
- /mnt/4tbexternal/osm-planet:/home/planet
concurrency:
group: ${{ github.workflow }}-map-generator-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
@@ -47,336 +99,403 @@ jobs:
- name: Copy Coasts
shell: bash
run: |
if [ -f /media/4tbexternal/osm-maps/*/intermediate_data/WorldCoasts.geom ]; then
cp /media/4tbexternal/osm-maps/*/intermediate_data/WorldCoasts.geom /media/4tbexternal/osm-planet/latest_coasts.geom
cp /media/4tbexternal/osm-maps/*/intermediate_data/WorldCoasts.rawgeom /media/4tbexternal/osm-planet/latest_coasts.rawgeom
echo "WorldCoasts available:"
ls -al /mnt/4tbexternal/osm-maps/*/intermediate_data/WorldCoasts.*
if [ -f /mnt/4tbexternal/osm-maps/*/intermediate_data/WorldCoasts.geom ]; then
echo "Before:"
ls -al /home/planet/latest_coasts*
cp -p /mnt/4tbexternal/osm-maps/*/intermediate_data/WorldCoasts.geom /home/planet/latest_coasts.geom
cp -p /mnt/4tbexternal/osm-maps/*/intermediate_data/WorldCoasts.rawgeom /home/planet/latest_coasts.rawgeom
echo "After:"
ls -al /home/planet/latest_coasts*
else
echo "No WorldCoasts found."
fi
update-planet:
if: inputs.jobs == 'planet' || inputs.jobs == 'all'
if: inputs.jobs == 'planet' || inputs.jobs == 'all-except-upload'
name: Update Planet
runs-on: mapfilemaker
needs:
- clone-repos
container:
image: ubuntu:latest
image: codeberg.org/comaps/maps_generator:f6d53d54f794
volumes:
- /media/4tbexternal:/media/4tbexternal
- /mnt/4tbexternal/:/mnt/4tbexternal/
- /mnt/4tbexternal/osm-planet:/home/planet
concurrency:
group: ${{ github.workflow }}-map-generator-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
steps:
- name: Install dependencies
shell: bash
run: |
apt-get update -y
apt-get install -y pyosmium osmium-tool python3-venv python3-pip wget2
rm -f /usr/lib/python*/EXTERNALLY-MANAGED
pip3 install "protobuf<4"
- name: Download Planet File if Absent
shell: bash
# TODO: replace wget2 with curl -Z
run: |
if [ ! -d /media/4tbexternal/osm-planet/planet/ ]; then
mkdir -p /media/4tbexternal/osm-planet/planet/
if [ ! -d /home/planet/planet/ ]; then
mkdir -p /home/planet/planet/
fi
if [ ! -f /media/4tbexternal/osm-planet/planet/planet-latest.osm.pbf ]; then
cd /media/4tbexternal/osm-planet/planet/
wget2 --verbose --progress=bar --continue --debug https://ftpmirror.your.org/pub/openstreetmap/pbf/planet-latest.osm.pbf
if [ ! -f /home/planet/planet/planet-latest.osm.pbf ]; then
cd /home/planet/planet/
wget2 --verbose --progress=bar --continue https://ftpmirror.your.org/pub/openstreetmap/pbf/planet-latest.osm.pbf
else
echo "planet-latest.osm.pbf was found, raw download not required."
fi
- name: Update Planet
shell: bash
run: |
cd /media/4tbexternal/osm-planet/planet/
pyosmium-up-to-date planet-latest.osm.pbf -o planet-latest-new.osm.pbf -vv --size 16384
cd /home/planet/planet/
rm -f planet-latest-new.osm.pbf
pyosmium-up-to-date planet-latest.osm.pbf -o planet-latest-new.osm.pbf -v --size 16384
mv planet-latest-new.osm.pbf planet-latest.osm.pbf
- name: Converting planet-latest.osm.pbf to planet.o5m
run: /root/OM/osmctools/osmconvert planet-latest.osm.pbf -o=planet.o5m
# TODO: better to run osmupdate (not convert) just before starting the maps jobs - for max fresh data.
run: |
echo "Starting..."
cd /home/planet/planet/
osmconvert -v --drop-author --drop-version --hash-memory=4000 planet-latest.osm.pbf -o=planet.o5m
echo "Done."
- name: Notify Zulip
run: |
curl -X POST https://comaps.zulipchat.com/api/v1/messages \
-u $ZULIP_BOT_EMAIL:$ZULIP_API_KEY \
--data-urlencode type=stream \
--data-urlencode 'to="DevOps"' \
--data-urlencode topic=codeberg-bot \
--data-urlencode 'content=Planet update is done!'
wiki-update:
if: inputs.jobs == 'wiki' || inputs.jobs == 'all'
if: inputs.jobs == 'wiki' || inputs.jobs == 'all-except-upload'
name: Update Wikipedia
runs-on: mapfilemaker
needs:
- clone-repos
container:
image: ubuntu:latest
image: codeberg.org/comaps/maps_generator:f6d53d54f794
volumes:
- /media/4tbexternal:/media/4tbexternal
- /mnt/4tbexternal/:/mnt/4tbexternal/
- /mnt/4tbexternal/osm-planet:/home/planet
concurrency:
group: ${{ github.workflow }}-map-generator-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
steps:
- name: Install dependencies
shell: bash
run: |
apt-get update -y
apt-get install -y jq curl wget2 rustc cargo git ca-certificates
- name: Clone wikiparser if necessary
shell: bash
run: |
if [ ! -d /media/4tbexternal/wikiparser ]; then
cd /media/4tbexternal
git clone https://codeberg.org/comaps/wikiparser.git
fi
- uses: actions/cache@v4
with:
path: "~"
key: cache-${{ github.run_id }}-${{ github.run_attempt }}
- name: Check for planet file
shell: bash
# TODO: remove debug output
run: |
if [ ! -f /media/4tbexternal/osm-planet/planet/planet-latest.osm.pbf ]; then
echo "ERROR: No file at /media/4tbexternal/osm-planet/planet/planet-latest.osm.pbf"
ls -al /media/4tbexternal/
ls -al /media/4tbexternal/osm-planet/
ls -al /media/4tbexternal/osm-planet/planet/
if [ ! -f /home/planet/planet/planet-latest.osm.pbf ]; then
echo "ERROR: No file at /home/planet/planet/planet-latest.osm.pbf"
ls -al /home/planet/
ls -al /home/planet/planet/
exit 1
fi
- name: Only get new dumps once per 30 days
shell: bash
run: |
if [[ '${{ inputs.reset }}' == 'wiki-ratelimit' ]]; then
echo "Bypassing wiki rate limit upon request."
exit 0
fi
datediff() {
d1=$(date -d "$1" +%s)
d2=$(date -d "$2" +%s)
echo $(( (d1 - d2) / 86400 ))
}
RECENTDUMPDATE=$(find /home/planet/wikipedia/dumps/ -mindepth 1 -maxdepth 1 -iname "2*" -type d | sort -n -r | head -1 | cut -d/ -f6)
TODAY=$(date +%Y%m%d)
DATEDIFF=$(datediff $TODAY $RECENTDUMPDATE)
if [ $DATEDIFF -lt 30 ]; then
echo "ERROR: The most recent wiki dump is from $RECENTDUMPDATE, $DATEDIFF days ago. Wikimedia limits users to 15 snapshot requests per month."
echo "Set the 'reset' option to 'wiki-ratelimit' to bypass this."
ls -al /home/planet/wikipedia/dumps/
exit 1
fi
- name: Update Wikipedia from Enterprise API
shell: bash
run: |
mkdir -p /media/4tbexternal/osm-planet/wikipedia/dumps
mkdir -p /media/4tbexternal/osm-planet/wikipedia/build
cd /media/4tbexternal/wikiparser
#todo: curl in download.sh can fail when rate limited and even save error messages to the output. need to validate.
#downloading all languages can also trigger rate limits or fail as well. needs work.
#also: a failure to download means a failure to build, and could result in no wiki descriptions etc.
#also-also: do we want to remove old wiki data in planet between builds? pastk: no need, its being updated / augmented
mkdir -p /home/planet/wikipedia/dumps
mkdir -p /home/planet/wikipedia/build
cd ~/wikiparser
ls -al
echo "Downloading ..."
./download.sh /media/4tbexternal/osm-planet/wikipedia/dumps
./download.sh /home/planet/wikipedia/dumps
ls -al /home/planet/wikipedia/dumps/*
echo "Running ..."
./run.sh /media/4tbexternal/osm-planet/wikipedia/build \
/media/4tbexternal/osm-planet/planet/planet-latest.osm.pbf \
/media/4tbexternal/osm-planet/wikipedia/dumps/latest/*.tar.gz
./run.sh /home/planet/wikipedia/build \
/home/planet/planet/planet-latest.osm.pbf \
/home/planet/wikipedia/dumps/latest/*.tar.gz
echo "DONE"
- name: Check that the latest dumps are present, recent, and not super tiny
shell: bash
run: |
FAILCHECK=0
# Check all .tar.gz files in /home/planet/wikipedia/dumps/latest/
for file in /home/planet/wikipedia/dumps/latest/*.tar.gz; do
# Check if file exists (handles case where glob doesn't match)
[ -e "$file" ] || continue
# Get file size in MB and modification time in days
size_mb=$(stat -f%z "$file" 2>/dev/null | awk '{print int($1/1024/1024)}' || stat -c%s "$file" | awk
'{print int($1/1024/1024)}')
days_old=$(find "$file" -mtime -7 | wc -l)
# Verify conditions
if [ "$size_mb" -lt 100 ]; then
echo "FAIL: $file is only ${size_mb}MB (< 100MB)"
FAILCHECK=1
elif [ "$days_old" -eq 0 ]; then
echo "FAIL: $file is older than 7 days"
ls -al $file
FAILCHECK=1
else
echo "PASS: $file (${size_mb}MB, modified within 7 days)"
fi
done
exit $FAILCHECK
- name: Notify Zulip
run: |
curl -X POST https://comaps.zulipchat.com/api/v1/messages \
-u $ZULIP_BOT_EMAIL:$ZULIP_API_KEY \
--data-urlencode type=stream \
--data-urlencode 'to="DevOps"' \
--data-urlencode topic=codeberg-bot \
--data-urlencode 'content=Wiki update is done!'
update-isolines:
if: inputs.jobs == 'isolines' || inputs.jobs == 'all'
if: inputs.jobs == 'isolines' || inputs.jobs == 'all-except-upload'
name: Update Isolines
runs-on: mapfilemaker
needs:
- clone-repos
container:
image: ubuntu:latest
image: codeberg.org/comaps/maps_generator:f6d53d54f794
volumes:
- /media/4tbexternal:/media/4tbexternal
- /mnt/4tbexternal/:/mnt/4tbexternal/
- /mnt/4tbexternal/osm-planet:/home/planet
concurrency:
group: ${{ github.workflow }}-map-generator-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
steps:
- name: Install dependencies
shell: bash
run: |
apt-get update -qq \
&& apt-get install -y --no-install-recommends \
curl \
osmctools \
rclone \
git \
ca-certificates \
openssh-client \
sshpass \
vim \
wget \
build-essential \
clang \
cmake \
python3 \
python3-pip \
python3.12-venv \
qt6-base-dev \
qt6-positioning-dev \
libc++-dev \
libfreetype-dev \
libglvnd-dev \
libgl1-mesa-dev \
libharfbuzz-dev \
libicu-dev \
libqt6svg6-dev \
libqt6positioning6-plugins \
libqt6positioning6 \
libsqlite3-dev \
libxrandr-dev \
libxinerama-dev \
libxcursor-dev \
libxi-dev \
zlib1g-dev
rm -f /usr/lib/python*/EXTERNALLY-MANAGED
pip3 install "protobuf<4"
- name: Clone main repo if necessary
shell: bash
run: |
if [ ! -d /media/4tbexternal/comaps-init ]; then
apt-get update -qq && apt-get install -y --no-install-recommends git
cd /media/4tbexternal
git clone --recurse-submodules --shallow-submodules -b rebase-generator-pastk-wb251014 --single-branch https://codeberg.org/comaps/comaps.git comaps-init
fi
- uses: actions/cache@v4
with:
path: "~"
key: cache-${{ github.run_id }}-${{ github.run_attempt }}
# TODO: we only need to update these if our SRTM or countries change
# TODO: after update, verify that sizable files exist: /home/planet/isolines/*.isolines
- name: Update Isolines
shell: bash
# TODO: preserve previous isolines version?
# TODO: cleanup the tmp-tiles dir after completion
run: |
cd /media/4tbexternal/comaps-init/
./tools/unix/build_omim.sh -R topography_generator_tool
rm -rf ../osm-planet/isolines/
mkdir ../osm-planet/isolines/
../omim-build-relwithdebinfo/topography_generator_tool \
cd ~/comaps/
./tools/unix/build_omim.sh -p ~ -R topography_generator_tool
rm -rf /home/planet/isolines/
mkdir /home/planet/isolines/
~/omim-build-relwithdebinfo/topography_generator_tool \
--profiles_path=./data/conf/isolines/isolines-profiles.json \
--countries_to_generate_path=./data/conf/isolines/countries-to-generate.json \
--tiles_isolines_out_dir=../osm-planet/isolines/tmp-tiles/ \
--countries_isolines_out_dir=../osm-planet/isolines/ \
--tiles_isolines_out_dir=/home/planet/isolines/tmp-tiles/ \
--countries_isolines_out_dir=/home/planet/isolines/ \
--data_dir=./data/ \
--srtm_path=../osm-planet/SRTM-patched-europe/ \
--threads=22
--srtm_path=/home/planet/SRTM-patched-europe/ \
--threads=96
- name: Check isolines
shell: bash
run: |
NUMISO=$(ls -al /home/planet/isolines/*.isolines | wc -l)
echo "Found $NUMISO isolines"
if [ $NUMISO -lt 10 ]; then
echo "ERROR: Did generation fail?"
exit 1
fi
- name: Notify Zulip
run: |
curl -X POST https://comaps.zulipchat.com/api/v1/messages \
-u $ZULIP_BOT_EMAIL:$ZULIP_API_KEY \
--data-urlencode type=stream \
--data-urlencode 'to="DevOps"' \
--data-urlencode topic=codeberg-bot \
--data-urlencode 'content=Isolines are done!'
update-subways:
if: inputs.jobs == 'subways' || inputs.jobs == 'all'
if: inputs.jobs == 'subways' || inputs.jobs == 'all-except-upload'
name: Update Subways
runs-on: mapfilemaker
needs:
- clone-repos
container:
image: ubuntu:latest
image: codeberg.org/comaps/maps_generator:f6d53d54f794
volumes:
- /media/4tbexternal:/media/4tbexternal
- /mnt/4tbexternal/:/mnt/4tbexternal/
- /mnt/4tbexternal/osm-planet:/home/planet
concurrency:
group: ${{ github.workflow }}-map-generator-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
steps:
- name: Install dependencies
shell: bash
run: |
apt-get update -qq && apt-get install -y --no-install-recommends curl osmctools osmium-tool python3-venv ca-certificates git python3-pip
rm -f /usr/lib/python*/EXTERNALLY-MANAGED
pip3 install "protobuf<4"
- name: Clone subways if necessary
shell: bash
run: |
if [ ! -d /media/4tbexternal/subways ]; then
cd /media/4tbexternal
git clone https://codeberg.org/comaps/subways.git
fi
- name: Clone main repo if necessary
shell: bash
run: |
if [ ! -d /media/4tbexternal/comaps-init ]; then
cd /media/4tbexternal
git clone --recurse-submodules --shallow-submodules -b rebase-generator-pastk-wb251014 --single-branch https://codeberg.org/comaps/comaps.git comaps-init
fi
- uses: actions/cache@v4
with:
path: "~"
key: cache-${{ github.run_id }}-${{ github.run_attempt }}
- name: Update Subways
shell: bash
run: |
cd /media/4tbexternal/comaps-init/
cd ~/comaps/
cp tools/unix/maps/settings.sh.prod tools/unix/maps/settings.sh
./tools/unix/maps/generate_subways.sh
- name: Notify Zulip
run: |
curl -X POST https://comaps.zulipchat.com/api/v1/messages \
-u $ZULIP_BOT_EMAIL:$ZULIP_API_KEY \
--data-urlencode type=stream \
--data-urlencode 'to="DevOps"' \
--data-urlencode topic=codeberg-bot \
--data-urlencode 'content=Subways are done!'
update-tiger:
if: inputs.jobs == 'tiger' || inputs.jobs == 'all'
if: inputs.jobs == 'tiger' || inputs.jobs == 'all-except-upload'
name: Update TIGER
runs-on: mapfilemaker
needs:
- clone-repos
container:
image: ubuntu:latest
image: codeberg.org/comaps/maps_generator:f6d53d54f794
volumes:
- /media/4tbexternal:/media/4tbexternal
- /mnt/4tbexternal/:/mnt/4tbexternal/
- /mnt/4tbexternal/osm-planet:/home/planet
concurrency:
group: ${{ github.workflow }}-map-generator-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
steps:
- name: Install dependencies
shell: bash
run: |
apt-get update -qq && apt-get install -y --no-install-recommends \
build-essential \
clang \
cmake \
ninja-build \
ca-certificates \
git \
wget2
- name: Clone main repo if necessary
shell: bash
run: |
if [ ! -d /media/4tbexternal/comaps-init ]; then
cd /media/4tbexternal
git clone --recurse-submodules --shallow-submodules -b rebase-generator-pastk-wb251014 --single-branch https://codeberg.org/comaps/comaps.git comaps-init
fi
- uses: actions/cache@v4
with:
path: "~"
key: cache-${{ github.run_id }}-${{ github.run_attempt }}
- name: Build address_parser
shell: bash
run: |
cd /media/4tbexternal/comaps-init
rm -rf ../omim-build-relwithdebinfo/CMakeCache.txt
rm -rf ../omim-build-relwithdebinfo/CMakeFiles
./tools/unix/build_omim.sh -R address_parser_tool
cd ~/comaps
#rm -rf ~/omim-build-relwithdebinfo/CMakeCache.txt
#rm -rf ~/omim-build-relwithdebinfo/CMakeFiles
./tools/unix/build_omim.sh -p ~ -R address_parser_tool
- name: Update TIGER from Nominatim
shell: bash
# TODO: use curl instead of wget2
run: |
cd /media/4tbexternal/osm-planet/
# TODO: maybe remove old osm-planet/tiger first?
cd /home/planet/
mkdir -p tiger
wget2 https://nominatim.org/data/tiger-nominatim-preprocessed-latest.csv.tar.gz
tar -xOzf tiger-nominatim-preprocessed-latest.csv.tar.gz | /media/4tbexternal/omim-build-relwithdebinfo/address_parser_tool --output_path=./tiger
cd ~/comaps
tar -xOzf /home/planet/tiger-nominatim-preprocessed-latest.csv.tar.gz | ~/omim-build-relwithdebinfo/address_parser_tool --output_path=/home/planet/tiger
generate-maps:
if: inputs.jobs == 'maps' || inputs.jobs == 'all'
if: inputs.jobs == 'maps' || inputs.jobs == 'all-except-upload'
name: Generate Maps
runs-on: mapfilemaker
needs:
- clone-repos
timeout-minutes: 40320
container:
image: ubuntu:latest
image: codeberg.org/comaps/maps_generator:f6d53d54f794
volumes:
- /media/4tbexternal:/media/4tbexternal
- /mnt/4tbexternal/:/mnt/4tbexternal/
- /mnt/4tbexternal/osm-planet:/home/planet
options: --ulimit nofile=262144:262144
concurrency:
group: ${{ github.workflow }}-map-generator-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
steps:
- name: Install dependencies
shell: bash
run: |
apt-get update -qq \
&& apt-get install -y --no-install-recommends \
curl \
osmctools \
rclone \
git \
ca-certificates \
openssh-client \
sshpass \
vim \
wget \
build-essential \
clang \
cmake \
ninja-build \
python3 \
python3-pip \
python3.12-venv \
qt6-base-dev \
qt6-positioning-dev \
libc++-dev \
libfreetype-dev \
libglvnd-dev \
libgl1-mesa-dev \
libharfbuzz-dev \
libicu-dev \
libqt6svg6-dev \
libqt6positioning6-plugins \
libqt6positioning6 \
libsqlite3-dev \
libxrandr-dev \
libxinerama-dev \
libxcursor-dev \
libxi-dev \
zlib1g-dev
- name: Clone repo if necessary
shell: bash
run: |
if [ ! -d /media/4tbexternal/comaps-init ]; then
cd /media/4tbexternal
git clone --recurse-submodules --shallow-submodules -b rebase-generator-pastk-wb251014 --single-branch https://codeberg.org/comaps/comaps.git comaps-init
fi
- uses: actions/cache@v4
with:
path: "~"
key: cache-${{ github.run_id }}-${{ github.run_attempt }}
- name: Make output folders if necessary
shell: bash
run: |
if [ ! -d /media/4tbexternal/osm-maps ]; then
mkdir -p /media/4tbexternal/osm-maps
if [ ! -d /mnt/4tbexternal/osm-maps ]; then
mkdir -p /mnt/4tbexternal/osm-maps
fi
- name: Get SRTM if necessary
# TODO: it should be a separate step like Wiki or isolines
shell: bash
run: |
if [ ! -d /media/4tbexternal/osm-planet/SRTM-patched-europe/ ]; then
if [ ! -d /home/planet/SRTM-patched-europe/ ]; then
echo "ERROR: NO SRTM"
exit 1
fi
- name: Symlink paths for repo scripts
shell: bash
run: |
mkdir -p /root/OM
ln -s /media/4tbexternal/comaps-init /root/OM/organicmaps
ln -s /media/4tbexternal/osm-planet /home/planet
ln -s /media/4tbexternal/osm-maps /root/OM/maps_build
- name: Run docker_maps_generator.sh
shell: bash
run: |
cd /root/OM/organicmaps
./tools/unix/docker_maps_generator.sh
cd ~/comaps
bash ./tools/unix/maps/docker_maps_generator.sh
- name: Notify Zulip
run: |
curl -X POST https://comaps.zulipchat.com/api/v1/messages \
-u $ZULIP_BOT_EMAIL:$ZULIP_API_KEY \
--data-urlencode type=stream \
--data-urlencode 'to="DevOps"' \
--data-urlencode topic=codeberg-bot \
--data-urlencode 'content=Generator is done!'
upload-maps:
if: inputs.jobs == 'upload'
name: Upload Maps
runs-on: mapfilemaker
container:
image: codeberg.org/comaps/maps_generator:f6d53d54f794
volumes:
- /mnt/4tbexternal/:/mnt/4tbexternal/
- /mnt/4tbexternal/osm-planet:/home/planet
concurrency:
group: ${{ github.workflow }}-map-generator-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
steps:
- name: Write config file
run: |
mkdir -p ~/.config/rclone/
echo "${{ secrets.RCLONE_CONF }}" > ~/.config/rclone/rclone.conf
- name: Upload map files to CDNs
shell: bash
run: |
shopt -s nullglob
buildfolder=$(find /mnt/4tbexternal/osm-maps/ -mindepth 1 -maxdepth 1 -iname "2*" -type d | sort -n -r | head -1 | cut -d/ -f5)
builddate=$(find /mnt/4tbexternal/osm-maps/*/ -mindepth 1 -maxdepth 1 -iname "2*" -type d | sort -n -r | head -1 | cut -d/ -f6)
mwmfiles=( /mnt/4tbexternal/osm-maps/$buildfolder/$builddate/*.mwm )
if (( ${#mwmfiles[@]} )); then
echo "<$(date +%T)> Uploading maps from $buildfolder/$builddate..."
cd ~/comaps/tools/unix/maps
./upload_to_cdn.sh /mnt/4tbexternal/osm-maps/$buildfolder/$builddate
echo "<$(date +%T)> Finished uploading maps from $buildfolder/$builddate."
else
echo "<$(date +%T)> No MWM files in /mnt/4tbexternal/osm-maps/$buildfolder/$builddate/*.mwm, not uploading maps."
echo "<$(date +%T)> Found top level: $(ls -alt /mnt/4tbexternal/osm-maps/*)"
echo "<$(date +%T)> Found second level: $(ls -alt /mnt/4tbexternal/osm-maps/$buildfolder/*)"
fi
- name: Notify Zulip
run: |
curl -X POST https://comaps.zulipchat.com/api/v1/messages \
-u $ZULIP_BOT_EMAIL:$ZULIP_API_KEY \
--data-urlencode type=stream \
--data-urlencode 'to="DevOps"' \
--data-urlencode topic=codeberg-bot \
--data-urlencode 'content=Upload is done!'

1
.gitignore vendored
View File

@@ -9,6 +9,7 @@ Makefile.Release
object_script.*.Debug
object_script.*.Release
compile_commands.json
*.local.*
stxxl.errlog
stxxl.log

View File

@@ -175,10 +175,10 @@ if (NOT PLATFORM_IPHONE AND NOT PLATFORM_ANDROID)
find_package(Qt6 COMPONENTS REQUIRED ${qt_components} PATHS $ENV{QT_PATH} /opt/homebrew/opt/qt@6 /usr/local/opt/qt@6 /usr/lib/x86_64-linux-gnu/qt6)
set(MINIMUM_REQUIRED_QT_VERSION 6.4.0)
if (Qt6Widgets_VERSION VERSION_LESS ${MINIMUM_REQUIRED_QT_VERSION})
message(FATAL_ERROR "Unsupported Qt version: ${Qt6Widgets_VERSION}, the minimum required is ${MINIMUM_REQUIRED_QT_VERSION}")
if (Qt6_VERSION VERSION_LESS ${MINIMUM_REQUIRED_QT_VERSION})
message(FATAL_ERROR "Unsupported Qt version: ${Qt6_VERSION}, the minimum required is ${MINIMUM_REQUIRED_QT_VERSION}")
else()
message(STATUS "Found Qt version: ${Qt6Widgets_VERSION}")
message(STATUS "Found Qt version: ${Qt6_VERSION}")
endif()
endif()

View File

@@ -32,7 +32,8 @@ public class DrivingOptionsScreen extends BaseMapScreen
new DrivingOption(RoadType.Dirty, R.string.avoid_unpaved),
new DrivingOption(RoadType.Ferry, R.string.avoid_ferry),
new DrivingOption(RoadType.Motorway, R.string.avoid_motorways),
new DrivingOption(RoadType.Steps, R.string.avoid_steps)};
new DrivingOption(RoadType.Steps, R.string.avoid_steps),
new DrivingOption(RoadType.Paved, R.string.avoid_paved)};
@NonNull
private final Map<RoadType, Boolean> mInitialDrivingOptionsState = new HashMap<>();

View File

@@ -357,7 +357,7 @@ class DownloaderAdapter extends RecyclerView.Adapter<DownloaderAdapter.ViewHolde
private MenuBottomSheetItem getCancelMenuItem()
{
return new MenuBottomSheetItem(R.string.cancel, R.drawable.ic_cancel, () -> onCancelActionSelected(mSelectedItem));
return new MenuBottomSheetItem(R.string.cancel, R.drawable.ic_close, () -> onCancelActionSelected(mSelectedItem));
}
private class ItemViewHolder extends BaseInnerViewHolder<CountryItem>

View File

@@ -90,28 +90,36 @@ public class DrivingOptionsFragment extends BaseMwmToolbarFragment
{
SwitchCompat tollsBtn = root.findViewById(R.id.avoid_tolls_btn);
tollsBtn.setChecked(RoutingOptions.hasOption(RoadType.Toll));
CompoundButton.OnCheckedChangeListener tollBtnListener = new ToggleRoutingOptionListener(RoadType.Toll);
CompoundButton.OnCheckedChangeListener tollBtnListener = new ToggleRoutingOptionListener(RoadType.Toll, root);
tollsBtn.setOnCheckedChangeListener(tollBtnListener);
SwitchCompat motorwaysBtn = root.findViewById(R.id.avoid_motorways_btn);
motorwaysBtn.setChecked(RoutingOptions.hasOption(RoadType.Motorway));
CompoundButton.OnCheckedChangeListener motorwayBtnListener = new ToggleRoutingOptionListener(RoadType.Motorway);
CompoundButton.OnCheckedChangeListener motorwayBtnListener =
new ToggleRoutingOptionListener(RoadType.Motorway, root);
motorwaysBtn.setOnCheckedChangeListener(motorwayBtnListener);
SwitchCompat ferriesBtn = root.findViewById(R.id.avoid_ferries_btn);
ferriesBtn.setChecked(RoutingOptions.hasOption(RoadType.Ferry));
CompoundButton.OnCheckedChangeListener ferryBtnListener = new ToggleRoutingOptionListener(RoadType.Ferry);
CompoundButton.OnCheckedChangeListener ferryBtnListener = new ToggleRoutingOptionListener(RoadType.Ferry, root);
ferriesBtn.setOnCheckedChangeListener(ferryBtnListener);
SwitchCompat dirtyRoadsBtn = root.findViewById(R.id.avoid_dirty_roads_btn);
dirtyRoadsBtn.setChecked(RoutingOptions.hasOption(RoadType.Dirty));
CompoundButton.OnCheckedChangeListener dirtyBtnListener = new ToggleRoutingOptionListener(RoadType.Dirty);
dirtyRoadsBtn.setEnabled(!RoutingOptions.hasOption(RoadType.Paved) || RoutingOptions.hasOption(RoadType.Dirty));
CompoundButton.OnCheckedChangeListener dirtyBtnListener = new ToggleRoutingOptionListener(RoadType.Dirty, root);
dirtyRoadsBtn.setOnCheckedChangeListener(dirtyBtnListener);
SwitchCompat stepsBtn = root.findViewById(R.id.avoid_steps_btn);
stepsBtn.setChecked(RoutingOptions.hasOption(RoadType.Steps));
CompoundButton.OnCheckedChangeListener stepsBtnListener = new ToggleRoutingOptionListener(RoadType.Steps);
CompoundButton.OnCheckedChangeListener stepsBtnListener = new ToggleRoutingOptionListener(RoadType.Steps, root);
stepsBtn.setOnCheckedChangeListener(stepsBtnListener);
SwitchCompat pavedBtn = root.findViewById(R.id.avoid_paved_roads_btn);
pavedBtn.setChecked(RoutingOptions.hasOption(RoadType.Paved));
pavedBtn.setEnabled(!RoutingOptions.hasOption(RoadType.Dirty) || RoutingOptions.hasOption(RoadType.Paved));
CompoundButton.OnCheckedChangeListener pavedBtnListener = new ToggleRoutingOptionListener(RoadType.Paved, root);
pavedBtn.setOnCheckedChangeListener(pavedBtnListener);
}
private static class ToggleRoutingOptionListener implements CompoundButton.OnCheckedChangeListener
@@ -119,9 +127,13 @@ public class DrivingOptionsFragment extends BaseMwmToolbarFragment
@NonNull
private final RoadType mRoadType;
private ToggleRoutingOptionListener(@NonNull RoadType roadType)
@NonNull
private final View mRoot;
private ToggleRoutingOptionListener(@NonNull RoadType roadType, @NonNull View root)
{
mRoadType = roadType;
mRoot = root;
}
@Override
@@ -131,6 +143,27 @@ public class DrivingOptionsFragment extends BaseMwmToolbarFragment
RoutingOptions.addOption(mRoadType);
else
RoutingOptions.removeOption(mRoadType);
SwitchCompat dirtyRoadsBtn = mRoot.findViewById(R.id.avoid_dirty_roads_btn);
SwitchCompat pavedBtn = mRoot.findViewById(R.id.avoid_paved_roads_btn);
if (mRoadType == RoadType.Dirty)
{
pavedBtn.setEnabled(!isChecked);
if (isChecked)
{
pavedBtn.setChecked(false);
dirtyRoadsBtn.setEnabled(true);
}
}
else if (mRoadType == RoadType.Paved)
{
dirtyRoadsBtn.setEnabled(!isChecked);
if (isChecked)
{
dirtyRoadsBtn.setChecked(false);
pavedBtn.setEnabled(true);
}
}
}
}
}

View File

@@ -1,9 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="@android:color/white"
android:pathData="M480,536L284,732Q273,743 256,743Q239,743 228,732Q217,721 217,704Q217,687 228,676L424,480L228,284Q217,273 217,256Q217,239 228,228Q239,217 256,217Q273,217 284,228L480,424L676,228Q687,217 704,217Q721,217 732,228Q743,239 743,256Q743,273 732,284L536,480L732,676Q743,687 743,704Q743,721 732,732Q721,743 704,743Q687,743 676,732L480,536Z"/>
</vector>

View File

@@ -1,5 +1,10 @@
<vector android:height="24dp" android:tint="#FFFFFF"
android:viewportHeight="24" android:viewportWidth="24"
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
<path android:fillColor="@android:color/white" android:pathData="M19,6.41L17.59,5 12,10.59 6.41,5 5,6.41 10.59,12 5,17.59 6.41,19 12,13.41 17.59,19 19,17.59 13.41,12z"/>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="#FFFFFF"
android:viewportWidth="960"
android:viewportHeight="960">
<path
android:fillColor="@android:color/white"
android:pathData="M480,536L284,732Q273,743 256,743Q239,743 228,732Q217,721 217,704Q217,687 228,676L424,480L228,284Q217,273 217,256Q217,239 228,228Q239,217 256,217Q273,217 284,228L480,424L676,228Q687,217 704,217Q721,217 732,228Q743,239 743,256Q743,273 732,284L536,480L732,676Q743,687 743,704Q743,721 732,732Q721,743 704,743Q687,743 676,732L480,536Z"/>
</vector>

View File

@@ -3,7 +3,13 @@
android:height="20dp"
android:viewportWidth="960"
android:viewportHeight="960">
<group
android:pivotX="370"
android:pivotY="480"
android:scaleX="2.2"
android:scaleY="1.7">
<path
android:pathData="M420,652q-8,0 -14,-5.5t-6,-14.5v-304q0,-9 6,-14.5t14,-5.5q2,0 14,6l145,145q5,5 7,10t2,11q0,6 -2,11t-7,10L434,646q-3,3 -6.5,4.5T420,652Z"
android:fillColor="#1f1f1f"/>
android:pathData="M640,760 L200,480l440,-280v560Z"
android:fillColor="#FFFFFF"/>
</group>
</vector>

View File

@@ -22,8 +22,8 @@
android:clipChildren="false">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/floating_triangle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="@dimen/margin_half"
android:layout_height="@dimen/margin_half"
android:elevation="@dimen/margin_eighth"
android:layout_centerVertical="true"
app:tint="@android:color/white"

View File

@@ -36,7 +36,6 @@
android:layout_height="match_parent"
android:padding="@dimen/margin_half_double_plus"/>
</LinearLayout>
<include layout="@layout/item_divider"/>
<LinearLayout
android:orientation="horizontal"
android:minHeight="@dimen/height_block_base"
@@ -58,7 +57,27 @@
android:layout_height="match_parent"
android:padding="@dimen/margin_half_double_plus"/>
</LinearLayout>
<include layout="@layout/item_divider"/>
<LinearLayout
android:orientation="horizontal"
android:minHeight="@dimen/height_block_base"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingEnd="@dimen/margin_base"
android:paddingStart="@dimen/margin_base">
<com.google.android.material.textview.MaterialTextView
android:text="@string/avoid_paved"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:textColor="?android:attr/textColorPrimary"/>
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/avoid_paved_roads_btn"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:padding="@dimen/margin_half_double_plus"/>
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:minHeight="@dimen/height_block_base"
@@ -80,7 +99,6 @@
android:layout_height="match_parent"
android:padding="@dimen/margin_half_double_plus"/>
</LinearLayout>
<include layout="@layout/item_divider"/>
<LinearLayout
android:orientation="horizontal"
android:minHeight="@dimen/height_block_base"
@@ -102,7 +120,6 @@
android:padding="@dimen/margin_half_double_plus"
android:layout_height="match_parent"/>
</LinearLayout>
<include layout="@layout/item_divider"/>
<LinearLayout
android:orientation="horizontal"
android:minHeight="@dimen/height_block_base"

View File

@@ -3,4 +3,4 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
style="@style/MwmWidget.TextView.Search"
android:text="@string/clear_search"
app:drawableStartCompat="@drawable/ic_cancel"/>
app:drawableStartCompat="@drawable/ic_close"/>

View File

@@ -54,7 +54,7 @@
android:background="?attr/selectableItemBackgroundBorderless"
android:contentDescription="@string/clear_the_search"
android:scaleType="center"
app:srcCompat="@drawable/ic_cancel"/>
app:srcCompat="@drawable/ic_close"/>
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/voice_input"

View File

@@ -889,4 +889,5 @@
<string name="avoid_steps">Vyhnout se schodům</string>
<string name="offline_explanation_title">Offline mapy</string>
<string name="list_description_empty">Upravit seznam pro přidání popisu</string>
<string name="avoid_paved">Vyhnout se zpevněným cestám</string>
</resources>

View File

@@ -880,4 +880,5 @@
<string name="offline_explanation_title">Offline kort</string>
<string name="offline_explanation_text">Der skal downloades et kort for at kunne se og navigere i området.\nDownload kort over de områder, du ønsker at rejse i.</string>
<string name="list_description_empty">Rediger listen for at tilføje en beskrivelse</string>
<string name="avoid_paved">Undgå veje med fast belægning</string>
</resources>

View File

@@ -893,4 +893,5 @@
<string name="unknown_count">unbekannt</string>
<string name="error_invalid_number">ungültige Zahl</string>
<string name="list_description_empty">Liste bearbeiten, um eine Beschreibung hinzuzufügen</string>
<string name="avoid_paved">Befst. Straßen vermeiden</string>
</resources>

View File

@@ -898,4 +898,5 @@
<string name="offline_explanation_title">Mapas sin conexión</string>
<string name="offline_explanation_text">Se debe descargar un mapa para ver y navegar el área\nDescarga mapas de las áreas que quieras navegar.</string>
<string name="editor_place_doesnt_exist_description">Describe la situación actual del lugar para enviar una nota de error a la comunidad de OpenStreetMap</string>
<string name="avoid_paved">Evitar caminos pavimentados</string>
</resources>

View File

@@ -889,4 +889,5 @@
<string name="offline_explanation_title">Ilma võrguühenduseta toimivad kaardid</string>
<string name="offline_explanation_text">Selles piirkonnas liikumiseks ja teekonna juhatamiseks pead vajaliku kaardi alla laadima.\nVali allalaaditav kaart selle piirkonna kohta.</string>
<string name="list_description_empty">Kirjelduse lisamiseks muuda loendit</string>
<string name="avoid_paved">Väldi sillutatud teid</string>
</resources>

View File

@@ -898,4 +898,5 @@
<string name="editor_place_doesnt_exist_description">Décrivez le lieu afin de signaler l\'erreur à la communauté OpenStreetMap</string>
<string name="offline_explanation_text">Une carte doit être téléchargée pour visualiser et vous déplacer dans une zone.\nTéléchargez les cartes des zones que vous souhaitez visiter.</string>
<string name="list_description_empty">Modifier la liste pour ajouter une description</string>
<string name="avoid_paved">Éviter les routes goudronnées</string>
</resources>

View File

@@ -844,4 +844,5 @@
<string name="backup_interval_every_day">Ik dienu</string>
<string name="clear">Notīrīt</string>
<string name="closed_now">Šobrīd slēgts</string>
<string name="avoid_paved">Izvairīties no ceļiem ar cietu mākslīgo segumu</string>
</resources>

View File

@@ -885,4 +885,5 @@
<string name="editor_socket">Rediger kontakt</string>
<string name="charge_socket_type1">Type 1</string>
<string name="edit_socket_info_tooltip">Opprett nye kontakter eller rediger eksisterende.</string>
<string name="avoid_paved">Unngå asfalterte veier</string>
</resources>

View File

@@ -372,7 +372,7 @@
<!-- The message when user did not find anything in the search. -->
<string name="search_not_found_query">Pobierz region, w którym szukasz lub spróbuj dodać nazwę pobliskiego miasta/wsi.</string>
<string name="search_history_title">Historia wyszukiwania</string>
<string name="search_history_text">Uzyskaj szybki dostęp do ostatniego hasła wyszukiwania.</string>
<string name="search_history_text">Zobacz swoje ostatnie wyszukiwania</string>
<string name="clear_search">Wyczyść historię wyszukiwania</string>
<!-- Place Page link to Wikipedia article (if map object has it). -->
<string name="read_in_wikipedia">Wikipedia</string>

View File

@@ -870,4 +870,5 @@
<string name="offline_explanation_title">Mapas offline</string>
<string name="editor_place_doesnt_exist_description">Descreva com detalhes como está o local agora mesmo para enviar uma nota de erro à comunidade do OpenStreetMap</string>
<string name="list_description_empty">Edite a lista para adicionar uma descrição</string>
<string name="avoid_paved">Evitar vias pavimentadas</string>
</resources>

View File

@@ -890,4 +890,6 @@
<string name="offline_explanation_title">Офлајн мапе</string>
<string name="editor_place_doesnt_exist_description">Опишите како место сада изгледа та бисте послали поруку о грешци OpenStreetMap заједници</string>
<string name="avoid_steps">Избегавај степенице</string>
<string name="avoid_paved">Избегавај асфалтиране путеве</string>
<string name="list_description_empty">Промените листу да бисте додали опис</string>
</resources>

View File

@@ -36,13 +36,13 @@
<string name="try_again">再试一次</string>
<string name="about_menu_title">关于 CoMaps</string>
<!-- Text in About screen -->
<string name="about_headline">由社区动的开项目</string>
<string name="about_headline">由社区动的开项目</string>
<!-- Text in About screen -->
<string name="about_proposition_1">使用方便,外观精美</string>
<string name="about_proposition_1">简单易用,精工细作</string>
<!-- Text in About screen -->
<string name="about_proposition_2">•注隐私,无广告</string>
<string name="about_proposition_2">注隐私,无广告</string>
<!-- Text in About screen -->
<string name="about_proposition_3">• 离线、快速、精简</string>
<string name="about_proposition_3">• 离线、迅捷、轻量</string>
<!-- Text in About screen -->
<string name="about_developed_by_enthusiasts">完全开源、决策问责、财务透明的非营利应用。</string>
<!-- The button that opens system location settings -->

View File

@@ -677,6 +677,7 @@
<string name="avoid_ferry">Avoid ferries</string>
<string name="avoid_motorways">Avoid freeways</string>
<string name="avoid_steps">Avoid stairs</string>
<string name="avoid_paved">Avoid paved roads</string>
<string name="unable_to_calc_alert_title">Unable to calculate route</string>
<string name="unable_to_calc_alert_subtitle">A route could not be found. This may be caused by your routing options or incomplete OpenStreetMap data. Please change your routing options and retry.</string>
<string name="define_to_avoid_btn">Define roads to avoid</string>

View File

@@ -7,5 +7,6 @@ public enum RoadType
Motorway,
Ferry,
Dirty,
Steps
Steps,
Paved
}

View File

@@ -1433,4 +1433,10 @@
<string name="type.leisure.sports_centre.sport.swimming">Plavecké centrum</string>
<string name="type.disusedbusiness">Neobsazený prostor</string>
<string name="type.leisure.fitness_centre.sport.yoga">Studio jógy</string>
<string name="type.amenity.boat_rental">Půjčovna lodí</string>
<string name="type.amenity.mobile_money_agent">Mobilní peněžní agent</string>
<string name="type.amenity.payment_centre">Platební centrum</string>
<string name="type.leisure.indoor_play">Vnitřní herní centrum</string>
<string name="type.shop.telecommunication">Telekomunikační obchod</string>
<string name="type.amenity.car_pooling">Spolujízda</string>
</resources>

View File

@@ -28,9 +28,9 @@
<string name="type.amenity.gambling">Gambling</string>
<string name="type.leisure.adult_gaming_centre">Spillehal for voksne</string>
<string name="type.leisure.amusement_arcade">Arkadespil</string>
<string name="type.amenity.charging_station">Ladestander</string>
<string name="type.amenity.charging_station.bicycle">Cykelladestander</string>
<string name="type.amenity.charging_station.motorcar">Billadestander</string>
<string name="type.amenity.charging_station">Ladestation</string>
<string name="type.amenity.charging_station.bicycle">Ladestation til elcykler</string>
<string name="type.amenity.charging_station.motorcar">Ladestation til elbiler</string>
<string name="type.amenity.childcare">Vuggestue</string>
<string name="type.amenity.cinema">Biograf</string>
<string name="type.leisure.bowling_alley">Bowlinghal</string>
@@ -83,17 +83,17 @@
<string name="type.amenity.parking.street_side">Parkeringslomme</string>
<string name="type.amenity.parking.street_side.fee">Parkeringslomme</string>
<string name="type.amenity.parking.street_side.private">Privat parkeringslomme</string>
<string name="type.amenity.parking.lane">Parkering i vejside</string>
<string name="type.amenity.parking.lane.fee">Parkering i vejside</string>
<string name="type.amenity.parking.lane.private">Privat parkering i vejside</string>
<string name="type.amenity.parking_entrance">Parkeringsindkørsel</string>
<string name="type.amenity.parking_entrance.private">Privat parkeringsindkørsel</string>
<string name="type.amenity.parking_entrance.permissive">Parkeringsindkørsel</string>
<string name="type.amenity.parking_space">Parkeringsplads</string>
<string name="type.amenity.parking_space.permissive">Parkeringsplads</string>
<string name="type.amenity.parking_space.private">Parkeringsplads</string>
<string name="type.amenity.parking_space.underground">Parkeringsplads</string>
<string name="type.amenity.parking_space.disabled">Handicapparkeringsplads</string>
<string name="type.amenity.parking.lane">Gadeparkering</string>
<string name="type.amenity.parking.lane.fee">Gadeparkering</string>
<string name="type.amenity.parking.lane.private">Privat gadeparkering</string>
<string name="type.amenity.parking_entrance">Indkørsel til parkeringshus</string>
<string name="type.amenity.parking_entrance.private">Indkørsel til privat parkeringshus</string>
<string name="type.amenity.parking_entrance.permissive">Indkørsel til parkeringshus</string>
<string name="type.amenity.parking_space">Parkeringss</string>
<string name="type.amenity.parking_space.permissive">Parkeringss</string>
<string name="type.amenity.parking_space.private">Parkeringss</string>
<string name="type.amenity.parking_space.underground">Parkeringss</string>
<string name="type.amenity.parking_space.disabled">Handicapparkeringss</string>
<string name="type.amenity.payment_terminal">Betalingsautomat</string>
<string name="type.amenity.pharmacy">Apotek</string>
<string name="type.amenity.place_of_worship">Tilbedelsessted</string>
@@ -393,7 +393,7 @@
<string name="type.man_made.bridge">Bro</string>
<!-- These translations are used for all type.highway.*.tunnel. -->
<string name="type.highway.road.tunnel">Tunnel</string>
<string name="type.highway.secondary">Sækunder hovedvej</string>
<string name="type.highway.secondary">Sekundær hovedvej</string>
<!-- These translations are used for all type.highway.*.bridge. -->
<string name="type.highway.secondary.bridge">Bro</string>
<!-- These translations are used for all type.highway.*.tunnel. -->
@@ -964,7 +964,7 @@
<string name="type.shop.curtain">Gardinhandel</string>
<string name="type.shop.deli">Delikatessebutik</string>
<string name="type.shop.department_store">Stormagasin</string>
<string name="type.shop.doityourself">Isenkræmmer</string>
<string name="type.shop.doityourself">Byggemarked</string>
<string name="type.shop.dry_cleaning">Renseri</string>
<string name="type.shop.electronics">Elektronikbutik</string>
<string name="type.shop.erotic">Erotikbutik</string>
@@ -984,7 +984,7 @@
<string name="type.shop.hearing_aids">Høreapparatbutik</string>
<string name="type.shop.herbalist">Urtebutik</string>
<string name="type.shop.hifi">HiFi lyd</string>
<string name="type.shop.houseware">Husholdningsartikler butik</string>
<string name="type.shop.houseware">Isenkræmmer</string>
<string name="type.shop.jewelry">Smykkebutik</string>
<string name="type.shop.kitchen">Køkkenforretning</string>
<string name="type.shop.laundry">Vaskeri</string>
@@ -993,21 +993,21 @@
<string name="type.shop.mobile_phone">Mobiltelefonbutik</string>
<string name="type.shop.money_lender">Pengeudlåner</string>
<string name="type.shop.motorcycle">Motorcykelforhandler</string>
<string name="type.shop.motorcycle_repair">Motorcykel reparation</string>
<string name="type.shop.motorcycle_repair">Motorcykelværksted</string>
<string name="type.shop.music">Pladebutik</string>
<string name="type.shop.musical_instrument">Butik med musikinstrumenter</string>
<string name="type.shop.musical_instrument">Instrumentbutik</string>
<string name="type.shop.newsagent">Avis-kiosk</string>
<string name="type.shop.optician">Optiker</string>
<string name="type.shop.outdoor">Fritidsudstyr</string>
<string name="type.shop.outdoor">Friluftsbutik</string>
<string name="type.shop.outpost">Afhentningssted</string>
<string name="type.shop.pasta">Pasta butik</string>
<string name="type.shop.pasta">Pastabutik</string>
<string name="type.shop.pastry">Bagværk</string>
<string name="type.shop.pawnbroker">Pantelåner</string>
<string name="type.shop.pet">Dyrehandel</string>
<string name="type.shop.pet_grooming">Kæledyrspleje</string>
<string name="type.shop.photo">Fotobutik</string>
<string name="type.shop.rental">Udlejningsbutik</string>
<string name="type.shop.rental.bicycle">Cykeludlejningsbutik</string>
<string name="type.shop.rental.bicycle">Cykeludlejning</string>
<string name="type.shop.seafood">Fiskehandler</string>
<string name="type.shop.second_hand">Genbrugsbutik</string>
<string name="type.shop.shoes">Skobutik</string>
@@ -1015,7 +1015,7 @@
<string name="type.shop.stationery">Kontorartikler</string>
<string name="type.shop.supermarket">Supermarked</string>
<string name="type.shop.tattoo">Tatovør</string>
<string name="type.shop.tea">Tebutik</string>
<string name="type.shop.tea">Tehandel</string>
<string name="type.shop.ticket">Billetkontor</string>
<string name="type.shop.toys">Legetøjsbutik</string>
<string name="type.shop.travel_agency">Rejsebureau</string>
@@ -1026,7 +1026,7 @@
<string name="type.shop.wine">Vinhandel</string>
<string name="type.shop.agrarian">Landbrugsbutik</string>
<string name="type.shop.antiques">Antikvitetsbutik</string>
<string name="type.shop.appliance">Hvidevarer butik</string>
<string name="type.shop.appliance">Hvidevareforretning</string>
<!-- maybe change to Art Gallery for en-US when supported -->
<string name="type.shop.art">Kunstbutik</string>
<string name="type.shop.baby_goods">Børnebutik</string>
@@ -1036,8 +1036,8 @@
<string name="type.shop.charity">Velgørenhedsbutik</string>
<string name="type.shop.cheese">Ostebutik</string>
<string name="type.shop.craft">Kunst og kunsthåndværk</string>
<string name="type.shop.dairy">Mejeriprodukter</string>
<string name="type.shop.electrical">El-butik</string>
<string name="type.shop.dairy">Mejeributik</string>
<string name="type.shop.electrical">Elektrikerbutik</string>
<string name="type.shop.fishing">Fiskeributik</string>
<string name="type.shop.interior_decoration">Brugskunsthandel</string>
<string name="type.shop.lottery">Lottobutik</string>
@@ -1058,7 +1058,7 @@
<string name="type.sport.australian_football">Australsk fodbold</string>
<string name="type.sport.baseball">Baseball</string>
<string name="type.sport.basketball">Basketball</string>
<string name="type.sport.beachvolleyball">Beachvolley</string>
<string name="type.sport.beachvolleyball">Strandvolley</string>
<string name="type.sport.chess">Skak</string>
<string name="type.sport.curling">Curling</string>
<string name="type.sport.equestrian">Ridesport</string>
@@ -1163,7 +1163,7 @@
<string name="type.highway.bridleway">Ridesti</string>
<string name="type.highway.elevator">Elevator</string>
<string name="type.highway.bridleway.permissive">Ridesti</string>
<string name="type.amenity.biergarten">Traktørsted</string>
<string name="type.amenity.biergarten">Biergarten</string>
<string name="type.aerialway">Svævebane</string>
<string name="type.aerialway.cable_car">Kabinelift</string>
<string name="type.aerialway.drag_lift">Træklift</string>
@@ -1220,7 +1220,7 @@
<string name="type.cuisine.bubble_tea">Boblete</string>
<string name="type.barrier.wall">Mur</string>
<string name="type.cuisine.fish_and_chips">Fish and Chips</string>
<string name="type.highway">Hovedvej</string>
<string name="type.highway">Vej</string>
<string name="type.highway.services">Rasteplads</string>
<string name="type.internet_access">Internet</string>
<string name="type.internet_access.wlan">Trådløst internet</string>
@@ -1305,7 +1305,7 @@
<string name="type.railway.subway">Metrolinje</string>
<string name="type.public_transport.platform">Stoppested</string>
<string name="type.railway.subway.tunnel">Metrolinjetunnel</string>
<string name="type.shop.hardware">Byggemarked</string>
<string name="type.shop.hardware">Isenkræmmer</string>
<string name="type.aerialway.t.bar">Ankerlift</string>
<string name="type.traffic_calming.bump">Vejbump</string>
<string name="type.route.ferry">Færgerute</string>
@@ -1389,8 +1389,32 @@
<string name="type.barrier.wicket_gate">Portlåge</string>
<string name="type.natural.wetland.reedbed">Rørskov</string>
<string name="type.shop.lighting">Lysbutik</string>
<string name="type.amenity.bench.backless">Rygløs bænk</string>
<string name="type.amenity.charging_station.motorcar.small">Opladningspunkt til biler</string>
<string name="type.leisure.sports_centre.sport.multi">Sportscenter</string>
<string name="type.leisure.sports_centre.sport.american_football">Sportscenter</string>
<string name="type.amenity.bench.backless">Bænk</string>
<string name="type.amenity.charging_station.motorcar.small">Ladestander til biler</string>
<string name="type.leisure.sports_centre.sport.multi">Idrætscenter</string>
<string name="type.leisure.sports_centre.sport.american_football">Idrætscenter</string>
<string name="type.amenity.car_pooling">Samkørsel</string>
<string name="type.shop.telecommunication">Telefonibutik</string>
<string name="type.disusedbusiness">Ledig forretning</string>
<string name="type.amenity.boat_rental">Bådudlejning</string>
<string name="type.man_made.observatory">Observatorium</string>
<string name="type.amenity.lounger">Solseng</string>
<string name="type.leisure.bandstand">Scenepavillon</string>
<string name="type.leisure.indoor_play">Legeland</string>
<string name="type.leisure.sports_centre.sport.archery">Bueskydningscenter</string>
<string name="type.leisure.sports_centre.sport.athletics">Atletikcenter</string>
<string name="type.leisure.sports_centre.sport.baseball">Baseballcenter</string>
<string name="type.leisure.sports_centre.sport.badminton">Badmintoncenter</string>
<string name="type.leisure.sports_centre.sport.basketball">Basketballcenter</string>
<string name="type.leisure.sports_centre.sport.golf">Golfcenter</string>
<string name="type.leisure.sports_centre.sport.gymnastics">Gymnastikcenter</string>
<string name="type.man_made.telescope">Teleskop</string>
<string name="type.man_made.telescope.optical">Teleskop (Optisk)</string>
<string name="type.man_made.telescope.radio">Teleskop (Radio)</string>
<string name="type.man_made.telescope.gamma">Teleskop (Gamma)</string>
<string name="type.leisure.sports_centre.sport.swimming">Svømmehal</string>
<string name="type.amenity.food_bank">Fødevarebank</string>
<string name="type.amenity.soup_kitchen">Suppekøkken</string>
<string name="type.amenity.food_sharing">Fødevarerdeling</string>
<string name="type.amenity.give_box">Donationsbøsse</string>
</resources>

View File

@@ -1438,4 +1438,15 @@
<string name="type.power.portal">Abspannportal</string>
<string name="type.shop.lighting">Lampenladen</string>
<string name="type.disusedbusiness">Leerstehendes Geschäft</string>
<string name="type.leisure.indoor_play">Indoor-Spielplatz</string>
<string name="type.amenity.car_pooling">Fahrgemeinschaften</string>
<string name="type.shop.telecommunication">Telekommunikationsgeschäft</string>
<string name="type.man_made.telescope">Teleskop</string>
<string name="type.man_made.telescope.optical">Teleskop (Optisch)</string>
<string name="type.man_made.telescope.radio">Teleskop (Radio)</string>
<string name="type.man_made.telescope.gamma">Teleskop (Gamma)</string>
<string name="type.man_made.observatory">Observatorium</string>
<string name="type.amenity.payment_centre">Zahlungszentrum</string>
<string name="type.amenity.soup_kitchen">Suppenküche</string>
<string name="type.amenity.food_bank">Tafel</string>
</resources>

View File

@@ -1437,4 +1437,13 @@
<string name="type.leisure.fitness_centre.sport.yoga">Estudio de yoga</string>
<string name="type.disusedbusiness">Local comercial vacante</string>
<string name="type.amenity.lounger">Tumbona</string>
<string name="type.amenity.boat_rental">Alquiler de botes</string>
<string name="type.man_made.telescope">Telescopio</string>
<string name="type.man_made.telescope.optical">Telescopio (óptico)</string>
<string name="type.man_made.telescope.radio">Radiotelescopio</string>
<string name="type.man_made.telescope.gamma">Telescopio Fermi</string>
<string name="type.man_made.observatory">Observatorio</string>
<string name="type.amenity.mobile_money_agent">Agencia de efectivo móvil</string>
<string name="type.amenity.car_pooling">Punto de Vehículo Compartido</string>
<string name="type.amenity.payment_centre">Centro de pagos</string>
</resources>

View File

@@ -1436,4 +1436,19 @@
<string name="type.leisure.sports_centre.sport.yoga">Joogakeskus</string>
<string name="type.disusedbusiness">Vaba äripind</string>
<string name="type.amenity.lounger">Rannatool</string>
<string name="type.amenity.boat_rental">Paadirent</string>
<string name="type.man_made.telescope">Teleskoop</string>
<string name="type.man_made.telescope.optical">Optiline teleskoop</string>
<string name="type.man_made.telescope.radio">Raadioteleskoop</string>
<string name="type.man_made.telescope.gamma">Gammateleskoop</string>
<string name="type.man_made.observatory">Observatoorium</string>
<string name="type.amenity.mobile_money_agent">Nutiraha müüja</string>
<string name="type.amenity.car_pooling">Ühiskasutusautode peatus</string>
<string name="type.amenity.payment_centre">Maksekeskus</string>
<string name="type.leisure.indoor_play">Mängusaal/Mängutuba</string>
<string name="type.shop.telecommunication">Sideteenuste pood</string>
<string name="type.amenity.soup_kitchen">Supiköök</string>
<string name="type.amenity.food_bank">Toidupank</string>
<string name="type.amenity.food_sharing">Toidujagamine</string>
<string name="type.amenity.give_box">Annetuskast</string>
</resources>

View File

@@ -1434,6 +1434,21 @@
<string name="type.leisure.sports_centre.sport.volleyball">Complexe sportif</string>
<string name="type.leisure.sports_centre.sport.yoga">Complexe sportif</string>
<string name="type.leisure.fitness_centre.sport.yoga">Salle de yoga</string>
<string name="type.disusedbusiness">Locaux commerciaux libres</string>
<string name="type.disusedbusiness">Magasin vacant</string>
<string name="type.amenity.lounger">Chaise longue</string>
<string name="type.amenity.boat_rental">Vente de bateau</string>
<string name="type.amenity.payment_centre">Centre de paiement</string>
<string name="type.amenity.mobile_money_agent">Agent d\'argent liquide</string>
<string name="type.leisure.indoor_play">Complexe de jeux intérieurs</string>
<string name="type.shop.telecommunication">Boutique télécom</string>
<string name="type.man_made.telescope.optical">Télescope (optique)</string>
<string name="type.man_made.telescope.radio">Télescope (radio)</string>
<string name="type.man_made.observatory">Observatoire</string>
<string name="type.amenity.food_bank">Banque alimentaire</string>
<string name="type.amenity.food_sharing">Repas partagé</string>
<string name="type.man_made.telescope.gamma">Télescope (Gamma)</string>
<string name="type.amenity.car_pooling">Covoiturage</string>
<string name="type.amenity.soup_kitchen">Soupe populaire</string>
<string name="type.amenity.give_box">Boîte à don</string>
<string name="type.man_made.telescope">Télescope</string>
</resources>

View File

@@ -1400,4 +1400,5 @@
<string name="type.shop.lighting">Negozio di illuminazione</string>
<string name="type.amenity.bench.backless">Panchina senza schienale</string>
<string name="type.amenity.charging_station.motorcar.small">Colonnina di ricarica</string>
<string name="type.man_made.observatory">Osservatorio</string>
</resources>

View File

@@ -33,7 +33,7 @@
<string name="type.place.sea">Jūra</string>
<string name="type.amenity.bar">Bārs</string>
<string name="type.amenity.bicycle_parking">Divriteņu novietne</string>
<string name="type.amenity.bicycle_rental">Velosipēdu īre</string>
<string name="type.amenity.bicycle_rental">Velosipēdu noma</string>
<string name="type.amenity.biergarten">Alus dārzs</string>
<string name="type.amenity.bureau_de_change">Valūtas maiņa</string>
<string name="type.amenity.bus_station">Autoosta</string>
@@ -136,4 +136,23 @@
<string name="type.sport.climbing">Kāpšana</string>
<string name="type.sport.scuba_diving">Niršana</string>
<string name="type.sport.cricket">Krikets</string>
<string name="type.shop.telecommunication">Tālsaziņas preču veikals</string>
<string name="type.shop.ticket">Biļešu tirdzniecības vieta</string>
<string name="type.shop.toys">Rotaļlietu veikals</string>
<string name="type.shop.travel_agency">Ceļojumu aģentūra</string>
<string name="type.shop.tyres">Riepu veikals</string>
<string name="type.amenity.payment_centre">Maksājumu centrs</string>
<string name="type.amenity.pharmacy">Aptieka</string>
<string name="type.amenity.place_of_worship">Pielūgsmes vieta</string>
<string name="type.amenity.place_of_worship.buddhist">Budistu templis</string>
<string name="type.amenity.place_of_worship.christian">Baznīca</string>
<string name="type.amenity.boat_rental">Laivu noma</string>
<string name="type.amenity.bicycle_repair_station">Divriteņu darbnīca</string>
<string name="type.man_made.telescope.gamma">Teleskops (Gamma)</string>
<string name="type.man_made.observatory">Observatorija</string>
<string name="type.man_made.telescope">Teleskops</string>
<string name="type.man_made.telescope.optical">Teleskops (optiskais)</string>
<string name="type.man_made.telescope.radio">Teleskops (radio)</string>
<string name="type.amenity.soup_kitchen">Zupas virtuve</string>
<string name="type.amenity.food_sharing">Ēdiena kopīgošana</string>
</resources>

View File

@@ -1363,4 +1363,13 @@
<string name="type.railway.funicular.tunnel">Kabelbanetunnel</string>
<string name="type.military">Militært</string>
<string name="type.landuse.education">Utdanningsinstitusjon</string>
<string name="type.man_made.telescope">Teleskop</string>
<string name="type.amenity.food_bank">Matsentral</string>
<string name="type.man_made.telescope.gamma">Teleskop (Gamma)</string>
<string name="type.man_made.telescope.radio">Teleskop (Radio)</string>
<string name="type.amenity.soup_kitchen">Suppekjøkken</string>
<string name="type.amenity.car_pooling">Samkjøring</string>
<string name="type.shop.telecommunication">Telekommunikasjonsbutikk</string>
<string name="type.amenity.boat_rental">Båtutleie</string>
<string name="type.man_made.observatory">Observatorium</string>
</resources>

View File

@@ -1435,4 +1435,15 @@
<string name="type.leisure.sports_centre.sport.yoga">Centrum sportowe</string>
<string name="type.leisure.fitness_centre.sport.yoga">Studio Jogi</string>
<string name="type.disusedbusiness">Pusty lokal</string>
<string name="type.amenity.boat_rental">Wypożyczalnia łodzi</string>
<string name="type.man_made.telescope">Teleskop</string>
<string name="type.man_made.telescope.optical">Teleskop optyczny</string>
<string name="type.man_made.telescope.radio">Radioteleskop</string>
<string name="type.man_made.telescope.gamma">Teleskop (prom. gamma)</string>
<string name="type.man_made.observatory">Obserwatorium</string>
<string name="type.amenity.car_pooling">Car Pooling</string>
<string name="type.shop.telecommunication">Sklep dostawcy usług telekomunikacyjnych</string>
<string name="type.amenity.food_bank">Bank żywności</string>
<string name="type.amenity.soup_kitchen">Jadłodajnia</string>
<string name="type.amenity.food_sharing">Jadłodzielnia</string>
</resources>

View File

@@ -1425,4 +1425,19 @@
<string name="type.leisure.fitness_centre.sport.yoga">Academia de ioga</string>
<string name="type.disusedbusiness">Estabelecimento vazio</string>
<string name="type.amenity.lounger">Espreguiçadeira</string>
<string name="type.amenity.boat_rental">Aluguel de barco</string>
<string name="type.man_made.telescope">Telescópio</string>
<string name="type.man_made.telescope.optical">Telescópio (óptico)</string>
<string name="type.man_made.telescope.radio">Telescópio (rádio)</string>
<string name="type.man_made.telescope.gamma">Telescópio (gama)</string>
<string name="type.man_made.observatory">Observatório</string>
<string name="type.amenity.mobile_money_agent">Agente de Mobile Money</string>
<string name="type.amenity.car_pooling">Carona</string>
<string name="type.amenity.payment_centre">Centro de pagamentos</string>
<string name="type.leisure.indoor_play">Centro de recreação interno</string>
<string name="type.shop.telecommunication">Loja de Telecomunicação</string>
<string name="type.amenity.soup_kitchen">Restaurante popular</string>
<string name="type.amenity.food_bank">Banco de alimentos</string>
<string name="type.amenity.food_sharing">Compartilhamento de alimentos</string>
<string name="type.amenity.give_box">Caixa de doação</string>
</resources>

View File

@@ -652,8 +652,8 @@
<string name="type.leisure.sauna">Сауна</string>
<string name="type.leisure.slipway">Лодочный спуск</string>
<string name="type.leisure.sports_centre">Спорткомплекс</string>
<string name="type.sport.climbing">Скалодром</string>
<string name="type.sport.yoga">Йога-центр</string>
<string name="type.sport.climbing">Скалолазание</string>
<string name="type.sport.yoga">Йога</string>
<string name="type.leisure.stadium">Стадион</string>
<string name="type.leisure.swimming_pool">Плавательный бассейн</string>
<string name="type.leisure.swimming_pool.private">Плавательный бассейн</string>
@@ -1131,7 +1131,7 @@
<string name="type.shop.chemist">Бытовая химия</string>
<string name="type.shop.chocolate">Магазин шоколада</string>
<string name="type.shop.clothes">Магазин одежды</string>
<string name="type.shop.coffee">Магазин кофе</string>
<string name="type.shop.coffee">Продавец кофе</string>
<string name="type.shop.computer">Компьютерный магазин</string>
<string name="type.shop.confectionery">Кондитерская</string>
<string name="type.shop.convenience">Продуктовый магазин</string>
@@ -1248,7 +1248,7 @@
<string name="type.sport.handball">Гандбол</string>
<string name="type.sport.multi">Различные виды спорта</string>
<!-- Used to tag a scuba diving site. -->
<string name="type.sport.scuba_diving">Место для ныряния с аквалангом</string>
<string name="type.sport.scuba_diving">Подводное плавание с аквалангом</string>
<string name="type.sport.shooting">Стрельба</string>
<string name="type.sport.skateboard">Скейтбординг</string>
<string name="type.sport.skiing">Лыжи</string>
@@ -1383,7 +1383,7 @@
<string name="type.fee.yes">$</string>
<string name="type.barrier.guard_rail">Дорожное ограждение (отбойник)</string>
<string name="type.landuse.plant_nursery">Садовый питомник</string>
<string name="type.amenity.studio">Студия</string>
<string name="type.amenity.studio">Медиа-студия</string>
<string name="type.leisure.firepit">Кострище</string>
<string name="type.highway.ladder">Лестница-лаз</string>
<string name="type.sport.diving">Высотные прыжки в воду</string>
@@ -1399,4 +1399,57 @@
<string name="type.office.security">Офис охранника</string>
<string name="type.building.guardhouse">Будка безопасности</string>
<string name="type.power.portal">Портальная опора</string>
<string name="type.amenity.boat_rental">Прокат лодок</string>
<string name="type.man_made.telescope">Телескоп</string>
<string name="type.man_made.telescope.optical">Телескоп (оптический)</string>
<string name="type.man_made.telescope.radio">Телескоп (радио)</string>
<string name="type.man_made.telescope.gamma">Телескоп (Гамма)</string>
<string name="type.man_made.observatory">Обсерватория</string>
<string name="type.amenity.charging_station.motorcar.small">Пункт зарядки автомобиля</string>
<string name="type.amenity.lounger">Шезлонг</string>
<string name="type.amenity.car_pooling">Совместное использование авто</string>
<string name="type.amenity.payment_centre">Платежный центр</string>
<string name="type.leisure.bandstand">Эстрада</string>
<string name="type.leisure.indoor_play">Крытый игровой центр</string>
<string name="type.leisure.sports_centre.sport.multi">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.american_football">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.archery">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.athletics">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.australian_football">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.badminton">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.baseball">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.basketball">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.beachvolleyball">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.bowls">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.climbing">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.cricket">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.curling">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.equestrian">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.field_hockey">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.futsal">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.golf">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.gymnastics">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.handball">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.ice_hockey">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.padel">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.pelota">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.scuba_diving">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.shooting">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.skateboard">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.skiing">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.soccer">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.swimming">Плавательный центр</string>
<string name="type.leisure.sports_centre.sport.table_tennis">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.tennis">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.volleyball">Спортивный центр</string>
<string name="type.leisure.sports_centre.sport.yoga">Спортивный центр</string>
<string name="type.leisure.fitness_centre.sport.yoga">Студия Йоги</string>
<string name="type.shop.telecommunication">Телекоммуникационный магазин</string>
<string name="type.disusedbusiness">Вакантный бизнес</string>
<string name="type.amenity.soup_kitchen">Бесплатная столовая</string>
<string name="type.amenity.food_bank">Продовольственный банк</string>
<string name="type.amenity.food_sharing">Обмен едой</string>
<string name="type.amenity.give_box">Подарить коробку</string>
<string name="type.amenity.bench.backless">Скамья без спинки</string>
<string name="type.amenity.mobile_money_agent">Агент мобильных платежей</string>
</resources>

View File

@@ -154,4 +154,10 @@
<string name="type.amenity.charging_station.motorcar.small">Polnilno mesto za avtomobile</string>
<string name="type.amenity.childcare">Vrtec</string>
<string name="type.amenity.cinema">Kino</string>
<string name="type.amenity.boat_rental">Izposoja čolnov</string>
<string name="type.man_made.telescope">Teleskop</string>
<string name="type.man_made.telescope.optical">Teleskop (svetlobni)</string>
<string name="type.man_made.telescope.radio">Teleskop (radijski)</string>
<string name="type.man_made.telescope.gamma">Teleskop (gama žarki)</string>
<string name="type.man_made.observatory">Zvezdarna</string>
</resources>

View File

@@ -28,7 +28,7 @@
<string name="type.amenity.bbq">Грил</string>
<string name="type.amenity.bench">Клупа</string>
<string name="type.amenity.bicycle_parking">Паркинг за бицикле</string>
<string name="type.amenity.bicycle_rental">Рентирање бицикли</string>
<string name="type.amenity.bicycle_rental">Изнајмљивање бицикала</string>
<string name="type.amenity.bicycle_repair_station">Станица за поправку бицикала</string>
<string name="type.amenity.biergarten">Пивска башта</string>
<string name="type.amenity.brothel">Јавна кућа</string>
@@ -648,7 +648,7 @@
<string name="type.leisure.slipway">Навоз</string>
<string name="type.leisure.sports_centre">Спортски центар</string>
<string name="type.sport.climbing">Вештачка стена</string>
<string name="type.sport.yoga">Јога студио</string>
<string name="type.sport.yoga">Јога</string>
<string name="type.leisure.stadium">Стадион</string>
<string name="type.leisure.swimming_pool">Базен</string>
<string name="type.leisure.swimming_pool.private">Приватни базен</string>
@@ -1161,7 +1161,7 @@
<string name="type.shop.pet_grooming">Грумер</string>
<string name="type.shop.photo">Фотограф</string>
<string name="type.shop.rental">Центар за изнајмљивање</string>
<string name="type.shop.rental.bicycle">Изнајмљивање бицикала</string>
<string name="type.shop.rental.bicycle">Центар за изнајмљивање бицикала</string>
<string name="type.shop.seafood">Рибарница</string>
<string name="type.shop.second_hand">Половна одећа</string>
<string name="type.shop.shoes">Обућа</string>
@@ -1230,7 +1230,7 @@
<string name="type.sport.soccer">Фудбал</string>
<string name="type.sport.swimming">Пливање</string>
<string name="type.sport.table_tennis">Стони тенис</string>
<string name="type.sport.tennis">Тенис</string>
<string name="type.sport.tennis">Тениски терен</string>
<string name="type.sport.volleyball">Одбојка</string>
<string name="type.sport.10pin">Куглање</string>
<string name="type.sport.9pin">Куглање</string>
@@ -1375,7 +1375,7 @@
<string name="type.leisure.firepit">Огњиште</string>
<string name="type.landuse.plant_nursery">Расадник</string>
<string name="type.barrier.guard_rail">Заштитна ограда</string>
<string name="type.amenity.studio">Студио</string>
<string name="type.amenity.studio">Медијски студио</string>
<string name="type.highway.ladder">Мердевине</string>
<string name="type.man_made.crane">Кран</string>
<string name="type.railway.station.subway.qingdao">Метро станица</string>
@@ -1398,4 +1398,57 @@
<string name="type.building.guardhouse">Кућица обезбеђења</string>
<string name="type.power.portal">Носач електричних водова</string>
<string name="type.shop.lighting">Продавница расвете</string>
<string name="type.amenity.give_box">Кутија за поклоне</string>
<string name="type.amenity.food_sharing">Дељење хране</string>
<string name="type.amenity.food_bank">Банка хране</string>
<string name="type.amenity.soup_kitchen">Народна кухиња</string>
<string name="type.man_made.observatory">Опсерваторија</string>
<string name="type.man_made.telescope">Телескоп</string>
<string name="type.man_made.telescope.optical">Телескоп (оптички)</string>
<string name="type.man_made.telescope.radio">Телескоп (радио)</string>
<string name="type.man_made.telescope.gamma">Телескоп (гама)</string>
<string name="type.amenity.car_pooling">Заједничка вожња</string>
<string name="type.amenity.payment_centre">Плаћање рачуна</string>
<string name="type.amenity.bench.backless">Клупа без наслона</string>
<string name="type.amenity.boat_rental">Изнајмљивање чамаца</string>
<string name="type.amenity.charging_station.motorcar.small">Место за пуњење аутомобила</string>
<string name="type.amenity.lounger">Лежаљка</string>
<string name="type.amenity.mobile_money_agent">Посредник за мобилно плаћање</string>
<string name="type.leisure.bandstand">Бина</string>
<string name="type.leisure.indoor_play">Играоница</string>
<string name="type.leisure.sports_centre.sport.multi">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.american_football">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.archery">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.athletics">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.australian_football">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.badminton">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.baseball">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.basketball">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.beachvolleyball">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.bowls">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.climbing">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.cricket">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.curling">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.equestrian">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.field_hockey">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.futsal">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.golf">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.gymnastics">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.handball">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.ice_hockey">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.padel">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.pelota">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.scuba_diving">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.shooting">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.skateboard">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.skiing">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.soccer">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.swimming">Пливачки центар</string>
<string name="type.leisure.sports_centre.sport.table_tennis">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.tennis">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.volleyball">Спортски центар</string>
<string name="type.leisure.sports_centre.sport.yoga">Спортски центар</string>
<string name="type.leisure.fitness_centre.sport.yoga">Јога студио</string>
<string name="type.shop.telecommunication">Продавница мобилног оператера</string>
<string name="type.disusedbusiness">Некоришћен пословни простор</string>
</resources>

View File

@@ -43,6 +43,11 @@
<string name="type.amenity.motorcycle_rental">Motorcycle Rental</string>
<string name="type.amenity.car_sharing">Car Sharing</string>
<string name="type.amenity.car_wash">Car Wash</string>
<string name="type.man_made.telescope">Telescope</string>
<string name="type.man_made.telescope.optical">Telescope (Optical)</string>
<string name="type.man_made.telescope.radio">Telescope (Radio)</string>
<string name="type.man_made.telescope.gamma">Telescope (Gamma)</string>
<string name="type.man_made.observatory">Observatory</string>
<string name="type.amenity.casino">Casino</string>
<string name="type.amenity.gambling">Gambling</string>
<string name="type.leisure.adult_gaming_centre">Adult Gaming Centre</string>
@@ -123,6 +128,7 @@
<string name="type.amenity.parking_space.private">Parking Space</string>
<string name="type.amenity.parking_space.underground">Parking Space</string>
<string name="type.amenity.parking_space.disabled">Disabled Parking Space</string>
<string name="type.amenity.car_pooling">Car Pooling</string>
<string name="type.amenity.payment_centre">Payment Centre</string>
<string name="type.amenity.payment_terminal">Payment Terminal</string>
<string name="type.amenity.pharmacy">Pharmacy</string>
@@ -1440,6 +1446,10 @@
<string name="type.self_service.no">No self-service</string>
<!-- https://wiki.openstreetmap.org/wiki/Key:social_facility -->
<string name="type.amenity.social_facility">Social Facility</string>
<string name="type.amenity.soup_kitchen">Soup Kitchen</string>
<string name="type.amenity.food_bank">Food Bank</string>
<string name="type.amenity.food_sharing">Food Sharing</string>
<string name="type.amenity.give_box">Give Box</string>
<!-- https://wiki.openstreetmap.org/wiki/Tag:emergency=emergency_ward_entrance -->
<string name="type.emergency.emergency_ward_entrance">Emergency Ward Entrance</string>
<!-- https://wiki.openstreetmap.org/wiki/Tag:amenity=dojo -->

View File

@@ -119,7 +119,7 @@ echo "Generating search categories / synonyms..."
if [ -z "$SKIP_GENERATE_SYMBOLS" ]; then
if Diff data/symbols_hash data/styles/*/*/symbols/* || [ ! -z "$SYMBOLS_NOT_GENERATED" ]; then
echo "Generating symbols..."
bash ./tools/unix/generate_symbols.sh
bash ./tools/unix/generate_symbols.sh || (rm data/symbols_hash; exit 1)
fi
else
echo "Skipping generate symbols..."
@@ -128,7 +128,7 @@ fi
if [ -z "$SKIP_GENERATE_DRULES" ]; then
if Diff data/drules_hash data/styles/*/*/*.mapcss data/styles/*/*/*.prio.txt data/mapcss-mapping.csv || [ ! -z "$DRULES_NOT_GENERATED" ]; then
echo "Generating drules..."
bash ./tools/unix/generate_drules.sh
bash ./tools/unix/generate_drules.sh || (rm data/drules_hash; exit 1)
fi
else
echo "Skipping generate drules..."

View File

@@ -345,6 +345,8 @@
"shop-dry_cleaning": "3Dry Cleaner|cleaning",
"shop-tyres|@shop": "3Tyre|tyres",
"amenity-car_wash": "3Car Wash",
"man_made-telescope|man_made-telescope-optical|man_made-telescope-radio|man_made-telescope-gamma": "5Telescope",
"man_made-observatory": "4Observatory",
"amenity-veterinary": "Veterinary Doctor|4veterinary",
"amenity-animal_shelter": "Animal Shelter",
"@charging_station": "4Charging Station|charging",
@@ -419,6 +421,7 @@
"amenity-internet_cafe": "3Internet Cafe",
"amenity-motorcycle_parking": "4Motorcycle Parking",
"amenity-parking_space-disabled|@category_parking": "Disabled Parking Space",
"amenity-car_pooling|@category_parking": "Car Pooling",
"amenity-nursing_home": "4Nursing Home",
"amenity-payment_terminal": "Payment Terminal",
"amenity-payment_centre": "Payment Centre",
@@ -493,6 +496,10 @@
"man_made-cairn": "4Cairn",
"wheelchair-yes": "5Wheelchair",
"amenity-social_facility": "Social Facility",
"social_facility-soup_kitchen": "4Soup Kitchen|Food",
"social_facility-food_bank": "4Food Bank|foodbank|Food",
"amenity-food_sharing": "Food Sharing|Food",
"amenity-give_box": "Give Box",
"leisure-sports_hall": "Sports hall",
"amenity-arts_centre|@category_tourism": "Arts Center",
"amenity-prison": "prison",

View File

@@ -498,5 +498,16 @@
"sport-9pin": "Bolos",
"sport-10pin": "Bolos",
"shop-bookmaker|@gambling": "Corredor de apuestas",
"leisure-fitness_centre-sport-yoga": "Estudio de yoga"
"leisure-fitness_centre-sport-yoga": "Estudio de yoga",
"amenity-mobile_money_agent": "Agencia de efectivo móvil | agente de dinero móvil | agencia de dinero móvil | agente de efectivo móvil",
"amenity-boat_rental": "4aquiler de botes|alquiler de barcos|bote|botes|barco|barcos|barca|barcas|lancha|lanchas|embarcación|embarcaciones|velero|veleros|nagegar|3alquiler",
"man_made-telescope|man_made-telescope-optical|man_made-telescope-radio|man_made-telescope-gamma": "4Telescopio",
"man_made-observatory": "3Observatorio",
"amenity-car_pooling|@category_parking": "Car pooling | Vehículo compartido | Blabla Car",
"amenity-payment_centre": "Centro de pagos",
"leisure-indoor_play": "Parque interior|niños",
"shop-telecommunication|@shop": "Telecomunicaciones",
"leisure-bandstand": "4Tarima",
"social_facility-soup_kitchen": "4Comedor social | Comedor popular | Comedor comunitario | Comida",
"social_facility-food_bank": "Banco de alimentos | alimento | comida | voluntariado"
}

View File

@@ -386,6 +386,11 @@
<include field="operator" />
<include field="opening_hours" />
</type>
<type id="amenity-car_pooling">
<include field="name" />
<include field="operator" />
<include field="opening_hours" />
</type>
<type id="amenity-pharmacy" group="shop">
<include group="poi_internet" />
</type>
@@ -1189,6 +1194,14 @@
<include field="opening_hours" />
<include field="level" />
</type>
<type id="amenity-food_sharing">
<include group="poi_internet" />
<include field="operator" />
</type>
<type id="amenity-give_box">
<include group="poi_internet" />
<include field="operator" />
</type>
<type id="tourism-picnic_site" />
<type id="leisure-picnic_table" />
<type id="leisure-park">
@@ -1251,6 +1264,15 @@
</type>
<type id="amenity-social_facility">
<include group="poi_internet" />
<include field="operator" />
</type>
<type id="social_facility-soup_kitchen">
<include group="poi_internet" />
<include field="operator" />
</type>
<type id="social_facility-food_bank">
<include group="poi_internet" />
<include field="operator" />
</type>
<type id="amenity-payment_centre">
<include group="poi_internet" />

View File

@@ -628,17 +628,17 @@ drinking_water|no;505;
deprecated|deprecated;506;x
deprecated|deprecated;507;x
deprecated|deprecated;508;x
deprecated:railway|spur|bridge:06.2023;509;x
deprecated|deprecated;510;x
deprecated|deprecated;511;x
deprecated|deprecated;512;x
amenity|car_pooling;509;
social_facility|soup_kitchen;510;
social_facility|food_bank;511;
amenity|food_sharing;512;
sport|curling;513;
deprecated|deprecated;514;x
deprecated|deprecated;515;x
deprecated|deprecated;516;x
deprecated|deprecated;517;x
deprecated|deprecated;518;x
deprecated|deprecated;519;x
amenity|give_box;514;
man_made|telescope;515;
man_made|telescope|optical;[man_made=telescope][telescope:type=optical];;name;int_name;516;
man_made|telescope|radio;[man_made=telescope][telescope:type=radio];;name;int_name;517;
man_made|telescope|gamma;[man_made=telescope][telescope:type=gamma];;name;int_name;518;
man_made|observatory;519;
sport|diving;520;
#~270k uses.
man_made|utility_pole;521;
Can't render this file because it contains an unexpected character in line 7 and column 16.

View File

@@ -0,0 +1 @@
<svg height="18" viewBox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><g fill="none"><circle cx="9" cy="9" fill="#000" opacity=".6" r="9"/><circle cx="9" cy="9" fill="#6e4426" r="8.25"/><path d="m5.40439659 10.9208845 1.66497587 2.7936423-1.40439659.7854732-1.66497587-2.7936423zm8.48497961-1.30248563c.1648759.16547497.1067017.33549981.0697536.38988023l-.4380042.5278054-.6259719.740475-.5369481.6188133c-.326327.369091-.6071716.6702095-.72781.7580936l-.0452585.0257766-.0128471.0043095c-.1930198.0592449-.9966097.0941052-2.41076971.104581l-1.41415344.0028979-.56983671.3962245-1.22668022-2.05836 1.15247826-.8300108c.39709497-.2523366.78419173-.38244764 1.16129028-.39033316l.0364622-.00038156c.38859717 0 .73067579.13023822 1.02623587.39071472h1.72754997c.2369804.0514113.3554706.1871537.3554706.4072272 0 .2200736-.1184902.3663266-.3554706.4387589h-1.86216448c-.07860487.0051388-.11790731.0426001-.11790731.1123837 0 .1046754.05865282.1491799.11790731.1491799l.90691258-.0103822.4942633-.0160402c.2708403-.012161.5027742-.0299189.6065724-.05585.3293242-.0822724 2.110004-1.67235874 2.2125241-1.75200674s.3026137-.12817636.4764018.04624321zm-3.6909669-3.77570294c-.0953136-.29519343-.0969978-.44798224-.0969978-.69213749 0-.60830957-.49315336-1.10142003-1.10142007-1.10142003-.60830957 0-1.10142003.49311046-1.10142003 1.10142003 0 .24414668-.00168624.39692692-.09699782.69213749-.09534354.29519342-.52319594.80943657-.52319594 1.43566029 0 .95082119.77082259 1.72164378 1.72164379 1.72164378.95082119 0 1.72160097-.77077973 1.72160097-1.72164378 0-.56356277-.3465674-1.03645253-.4853801-1.34062523zm-.35982581-2.77957701c-.00037908-.02303239-.01293243-.04310709-.03149545-.05412282l-.03584588-.0089961-.07532111.00360309c-.13534339.01138062-.41475604.05828767-.60648789.24999351-.12874614.12876329-.19222565.29576342-.22343826.43281093-.02675465-.08282078-.07076517-.17207866-.14346746-.24480239-.13454896-.13456502-.32770192-.1711184-.42926654-.18098477l-.06882538-.00359276c-.03450959.00067646-.06248952.02854864-.06305951.06307666l.00159083.04631626c.00635078.09321555.03708217.30583386.18300631.45172273.13458752.1345811.3277212.17113608.42927376.18100226l.12801359.00359241c.04385109 0 .43525377-.00712751.68185185-.25361374.20610698-.20621669.24487627-.51045136.25198392-.63278334z" fill="#000" fill-rule="evenodd"/></g></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1 @@
<svg height="12" viewBox="0 0 10 12" width="10" xmlns="http://www.w3.org/2000/svg"><path d="m1.40439659 7.9208845 1.66497587 2.7936423-1.40439659.7854732-1.66497587-2.79364231zm8.4849796-1.30248563c.16487591.16547497.10670169.33549981.06975361.38988026l-.43800423.52780539-.62597187.74047497-.53694807.61881334c-.32632701.36909096-.60717167.67020945-.72780998.75809352l-.04525857.02577662-.01284708.00430951c-.19301982.05924488-.99660972.09410524-2.41076971.10458107l-1.41415344.0028978-.56983671.39622455-1.22668022-2.05836003 1.15247826-.83001081c.39709497-.25233656.78419173-.3824476 1.16129028-.39033312l.0364622-.00038156c.38859717 0 .73067579.13023823 1.02623587.39071468h1.72754994c.23698041.05141129.35547062.18715372.35547062.40722729 0 .22007356-.11849021.3663265-.35547062.43875883h-1.86216445c-.07860487.00513887-.11790731.04260011-.11790731.11238372 0 .10467541.05865282.14917992.11790731.14917992l.90691261-.01038221.49426323-.01604024c.27084037-.01216092.50277426-.0299189.60657246-.05584997.32932419-.08227242 2.11000399-1.67235874 2.21252409-1.75200674.10252009-.079648.3026137-.12817636.47640178.04624321zm-3.69096692-3.77570294c-.09531354-.29519343-.09699782-.44798224-.09699782-.69213749 0-.60830957-.49315331-1.10142003-1.10142002-1.10142003-.60830957 0-1.10142003.49311046-1.10142003 1.10142003 0 .24414668-.00168624.39692692-.09699782.69213749-.09534354.29519342-.52319594.80943657-.52319594 1.43566029 0 .95082119.77082259 1.72164378 1.72164379 1.72164378.95082119 0 1.72160093-.77077973 1.72160093-1.72164378 0-.56356277-.34656739-1.03645253-.48538006-1.34062523zm-.35982578-2.77957701c-.00037908-.02303239-.01293243-.04310709-.03149545-.05412282l-.03584588-.0089961-.07532111.00360309c-.13534339.01138062-.41475604.05828767-.60648789.24999351-.12874614.12876329-.19222565.29576342-.22343826.43281093-.02675465-.08282078-.07076517-.17207866-.14346746-.24480238-.13454896-.13456503-.32770192-.17111841-.42926654-.18098478l-.06882538-.00359276c-.03450959.00067646-.06248952.02854864-.06305951.06307666l.00159083.04631626c.00635078.09321555.03708217.30583386.18300631.45172273.13458752.1345811.3277212.17113608.42927376.18100226l.12801359.00359241c.04385109 0 .43525377-.00712751.68185185-.25361374.20610698-.20621669.24487627-.51045135.25198392-.63278334z" fill="#777" fill-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1 @@
<svg height="11" viewBox="0 0 10 11" width="10" xmlns="http://www.w3.org/2000/svg"><path d="m1.40439659 6.9208845 1.66497587 2.79364231-1.40439659.78547319-1.66497587-2.79364231zm8.4849796-1.30248563c.16487591.16547497.10670169.33549981.06975361.38988026l-.43800423.52780539-.62597187.74047497-.53694807.61881334-.30691719.3410534-.1751764.18625299c-.10683664.11054758-.19209936.19172754-.24571639.23078713l-.04525857.02577662-.01284708.00430951c-.19301982.05924488-.99660972.09410524-2.41076971.10458107l-1.41415344.0028978-.56983671.3962246-1.22668022-2.05836008 1.15247826-.83001081c.39709497-.25233656.78419173-.3824476 1.16129028-.39033312l.0364622-.00038156c.38859717 0 .73067579.13023823 1.02623587.39071468h1.72754994c.23698041.05141129.35547062.18715372.35547062.40722729 0 .22007356-.11849021.3663265-.35547062.43875883h-1.86216445c-.07860487.00513887-.11790731.04260011-.11790731.11238372 0 .10467541.05865282.14917992.11790731.14917992l.90691261-.01038221.49426323-.01604024.36592704-.02276118c.1048133-.00920099.18874632-.02012325.24064542-.03308879.32932419-.08227242 2.11000399-1.67235874 2.21252409-1.75200674.10252009-.079648.3026137-.12817636.47640178.04624321zm-2.38737619-4.86878187-.00166678 4.000383h-5.00033322l-.001-3.997383zm-5.49948258 0-.00045062 1.65580113-.42167958.90580112-.63441545-.29583278zm5.99572437 0 1.05654565 2.26576947-.63441545.29583278-.42167957-.90580112z" fill="#777" fill-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1 @@
<svg height="18" viewBox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><g fill="none"><circle cx="9" cy="9" fill="#000" opacity=".6" r="9"/><circle cx="9" cy="9" fill="#51585E" r="8.25"/><path d="m11.9788057 9.45701798v4.46417412h-2.48216516v-1.9344754c0-.5341906-.43304708-.9672377-.96723771-.9672377-.51282301 0-.93243211.3990962-.96518032.9036416l-.00205739.0635961v1.9344754h-2.48216512v-4.46417412zm-3.44940287-4.1392834c1.90503617 0 3.44940287 1.54436664 3.44940287 3.44940283h-6.8988057c0-1.90503619 1.54436664-3.44940283 3.44940283-3.44940283zm4.47021307-1.83773458.6985699.69856997-1.0498311 1.04983111c.2863445.33051154.5419599.68947967.7623009 1.07107475l-.8568598.49403817c-.520321-.90122443-1.2678995-1.64880299-2.169124-2.16912399l.4940382-.8568598c.3815951.22034103.7405632.47595638 1.0710748.7623009z" fill="#000"/></g></svg>

After

Width:  |  Height:  |  Size: 853 B

View File

@@ -0,0 +1 @@
<svg height="19" viewBox="0 0 29 19" width="29" xmlns="http://www.w3.org/2000/svg"><g fill="none"><path d="m6.185075.4995c1.777125 0 3.382725.375525 4.56885 1.3638 1.2542475 1.043175 1.74465 2.530875 1.74465 4.202625 0 .70428972-.0885354 1.37740429-.2813988 2.0016737.1097684-.01288087.2224325-.01884789.3364903-.01884789 1.0018875 0 1.8962402.46041088 2.4830213 1.18119574.5702976-1.00377388 1.6501558-1.68022155 2.8880068-1.68022155 1.2250215 0 2.2953081.66249835 2.872122 1.64875713.5861846-.70238108 1.4692751-1.14973132 2.4568499-1.14973132 1.7673849 0 3.2001334 1.43274852 3.2001334 3.20013339 0 .7313317-.245322 1.4053653-.6581629 1.944298l-.074637.0915686.1409174.0845388c1.2235368.7673092 2.0881394 2.0596347 2.2705608 3.570914l.0213847.2173535.0984085 1.2911937h-20.69720984l.09840858-1.2911937c.12227689-1.6043637 1.01014496-2.9844197 2.29194549-3.7882675l.13958437-.0845388-.073304-.0915686c-.37843751-.4940216-.61611258-1.1015656-.65309705-1.7627038l-.00506585-.1815942c-.84977747.3668477-1.81813376.5570547-2.8535331.6031408v3.147975c0 .8284275-.67155 1.5-1.5 1.5h-3.0015c-.8284275 0-1.5-.67155-1.5-1.5v-13.0005c0-.8284275.67155-1.5 1.5-1.5z" fill="#111" opacity=".6"/><path d="m12.5536665 13.8204843c.5404977 0 1.0540327.1154407 1.517294.3230112-.6662367.7508614-1.1159451 1.6987981-1.2504799 2.7493425l-.0344806.3559128h-3.936c.14615915-1.9177167 1.7485089-3.4282665 3.7036665-3.4282665zm10.7 0c1.9551576 0 3.5575073 1.5105498 3.7036665 3.4282665h-3.895333l-.0060809-.0911937-.0216381-.2213141c-.1283466-1.0743203-.5858754-2.0432621-1.2667992-2.806658.4550736-.1987522.9577425-.3091007 1.4861847-.3091007zm-5.3289719-.2138492c2.0771169 0 3.7794184 1.6047752 3.9346947 3.6421157h-7.8693893c.1552763-2.0373405 1.8575778-3.6421157 3.9346946-3.6421157zm-11.7390946-11.6068351c1.57395 0 2.786025.3293925 3.61005 1.01595.81477.677625 1.20435 1.70415 1.20435 3.05055 0 1.391025-.416475 2.4687-1.296075 3.208725-.861075.7311-2.111925 1.08855-3.713625 1.08855h-.989775v4.636425h-3.000525l.000225-12.999975zm6.3680665 7.24895081c1.1046432 0 2.0001334.89549019 2.0001334 2.00013339s-.8954902 2.0001334-2.0001334 2.0001334-2.0001334-.8954902-2.0001334-2.0001334.8954902-2.00013339 2.0001334-2.00013339zm10.7 0c1.1046432 0 2.0001334.89549019 2.0001334 2.00013339s-.8954902 2.0001334-2.0001334 2.0001334-2.0001334-.8954902-2.0001334-2.0001334.8954902-2.00013339 2.0001334-2.00013339zm-5.3289719-.49902581c1.1735489 0 2.1248982.95134932 2.1248982 2.1248982 0 1.1735488-.9513493 2.1248982-2.1248982 2.1248982-1.1735488 0-2.1248981-.9513494-2.1248981-2.1248982 0-1.17354888.9513493-2.1248982 2.1248981-2.1248982zm-11.8500196-4.475475h-1.07415v3.8599125h.7027875c.842625 0 1.481685-.1958625 1.898325-.525765.42591-.338775.611055-.82884.611055-1.4619 0-.650925-.1748925-1.1142-.5267175-1.426275-.342675-.30315-.8706-.4459725-1.6113-.4459725z" fill="#20607c"/></g></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1 @@
<svg height="12" viewBox="0 0 18 12" width="18" xmlns="http://www.w3.org/2000/svg"><g fill="none"><path d="m3.90636316.31547368c1.12239473 0 2.13645789.23717369 2.88558947.86134737.79215632.65884737 1.10188421 1.59844737 1.10188421 2.65428948 0 .44481455-.05591709.86993955-.17772557 1.26421496.06932743-.00813528.14048371-.01190393.2125202-.01190393.63277103 0 1.19762539.29078582 1.56822398.74601837.36018795-.63396245 1.04220365-1.06119256 1.82400435-1.06119256.7736977 0 1.4496682.41842001 1.8139718 1.04132029.3702218-.4436091.9279632-.7261461 1.5516946-.7261461 1.1162431 0 2.0211369.90489381 2.0211369 2.02113689 0 .46189369-.1549402.88759915-.4156819 1.22797764l-.0471391.05783284.0890005.05339291c.7727601.48461638 1.3188248 1.30082194 1.4340384 2.25531406l.0135061.1372759.0621528.8154908h-13.07192207l.06215279-.8154908c.0772275-1.01328225.63798628-1.88489661 1.44754451-2.39258996l.08815855-.05339291-.04629724-.05783284c-.23901318-.31201361-.38912375-.69572559-.41248237-1.11328658l-.00319948-.11469106c-.53670156.23169325-1.14829501.35182404-1.80223143.38093102v1.98819474c0 .52321737-.42413684.94736839-.94736842.94736839h-1.89568421c-.52321737 0-.94736842-.42413681-.94736842-.94736839v-8.2108421c0-.52321737.42413684-.94736843.94736842-.94736843z" fill="#111" opacity=".6"/><path d="m7.92863147 8.72872693c.34136694 0 .66570485.07290994.95829094.20400705-.42078106.47422827-.70480741 1.07292512-.78977674 1.73642682l-.02177725.2247871h-2.48589474c.09231105-1.21118954 1.10432143-2.16522097 2.33915779-2.16522097zm6.75789473 0c1.2348364 0 2.2468468.95403143 2.3391578 2.16522097h-2.4602103l-.0038406-.0575961-.0136661-.1397773c-.0810611-.6785181-.3700266-1.29048128-.8000838-1.77262609.2874149-.12552769.60489-.19522148.938643-.19522148zm-3.3656664-.13506265c1.3118632 0 2.387001 1.01354223 2.4850703 2.30028362h-4.97014063c.09806925-1.28674139 1.17320703-2.30028362 2.48507033-2.30028362zm-7.41416506-7.3306327c.99407368 0 1.75959473.20803737 2.28003158.64165263.51459157.42797368.7606421 1.07630526.7606421 1.92666316 0 .8785421-.26303684 1.55917895-.81857368 2.02656316-.54383685.46174736-1.33384737.68750526-2.34544737.68750526h-.62512105v2.92826842h-1.89506843l.00014211-8.21051053zm4.02193673 4.57828472c.69766938 0 1.26324215.56557277 1.26324215 1.26324215 0 .69766937-.56557277 1.26324215-1.26324215 1.26324215-.69766937 0-1.26324215-.56557278-1.26324215-1.26324215 0-.69766938.56557278-1.26324215 1.26324215-1.26324215zm6.75789473 0c.6976694 0 1.2632422.56557277 1.2632422 1.26324215 0 .69766937-.5655728 1.26324215-1.2632422 1.26324215s-1.2632421-.56557278-1.2632421-1.26324215c0-.69766938.5655727-1.26324215 1.2632421-1.26324215zm-3.3656664-.31517419c.7411887 0 1.3420409.6008522 1.3420409 1.34204095s-.6008522 1.34204095-1.3420409 1.34204095c-.7411888 0-1.34204098-.6008522-1.34204098-1.34204095s.60085218-1.34204095 1.34204098-1.34204095zm-7.48422296-2.82661579h-.67841052v2.43783947h.44386579c.53218421 0 .93580105-.12370263 1.1989421-.33206211.26899579-.21396315.38592947-.52347789.38592947-.92330526 0-.41111053-.11045842-.70370526-.33266368-.90080526-.21642632-.19146316-.54985263-.28166684-1.01766316-.28166684z" fill="#20607c"/></g></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -0,0 +1 @@
<svg height="18" viewBox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><g fill="none"><circle cx="9" cy="9" fill="#000" opacity=".6" r="9"/><circle cx="9" cy="9" fill="#6e4426" r="8.25"/><path d="m5.40439659 10.9208845 1.66497587 2.7936423-1.40439659.7854732-1.66497587-2.7936423zm8.48497961-1.30248563c.1648759.16547497.1067017.33549981.0697536.38988023l-.4380042.5278054-.6259719.740475-.5369481.6188133c-.326327.369091-.6071716.6702095-.72781.7580936l-.0452585.0257766-.0128471.0043095c-.1930198.0592449-.9966097.0941052-2.41076971.104581l-1.41415344.0028979-.56983671.3962245-1.22668022-2.05836 1.15247826-.8300108c.39709497-.2523366.78419173-.38244764 1.16129028-.39033316l.0364622-.00038156c.38859717 0 .73067579.13023822 1.02623587.39071472h1.72754997c.2369804.0514113.3554706.1871537.3554706.4072272 0 .2200736-.1184902.3663266-.3554706.4387589h-1.86216448c-.07860487.0051388-.11790731.0426001-.11790731.1123837 0 .1046754.05865282.1491799.11790731.1491799l.90691258-.0103822.4942633-.0160402c.2708403-.012161.5027742-.0299189.6065724-.05585.3293242-.0822724 2.110004-1.67235874 2.2125241-1.75200674s.3026137-.12817636.4764018.04624321zm-7.07695726-.61839887-.00064003-.76822841c-.79974138-.64144198-1.31177891-1.6268104-1.31177891-2.73177159h7c0 1.10496119-.5120375 2.09032961-1.3117789 2.73177159l-.00064.76822841z" fill="#000" fill-rule="evenodd"/></g></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1 @@
<svg height="19" viewBox="0 0 14 19" width="14" xmlns="http://www.w3.org/2000/svg"><path d="m13.1340274.00741332-8.49199134 1.21422959 1.21962985 1.21976833 6.55564899-.9357696-.9357696 6.55564895 1.2197683 1.21976832 1.2142296-8.49212981c.0725574-.50887145-.3895117-.8436881-.7815158-.78151578m-10.82601505.83814936c-2.97333242 2.97402475-2.97333242 7.79521825 0 10.76924302 2.97402475 2.9733324 7.79521825 2.9733324 10.76924305 0zm-.84645746 11.86715912v3.902594h-.69234211c-.38355753 0-.69234211.2895375-.69234211.6491399v.0864043c0 .3596025.30878458.64914.69234211.64914h8.30810528c.38355753 0 .69234211-.2895375.69234211-.64914v-.0864043c0-.3596024-.30878458-.6491399-.69234211-.6491399h-.6923421v-1.4278864c-2.47539997.1890094-5.00992596-.6352931-6.92342107-2.4747076" fill="#777" transform="translate(0 .5)"/></svg>

After

Width:  |  Height:  |  Size: 822 B

View File

@@ -0,0 +1 @@
<svg height="15" viewBox="0 0 14 15" width="14" xmlns="http://www.w3.org/2000/svg"><path d="m7.82311911 5.67246657 3.40536139 7.66676663c.1034778.2351768 0 .507982-.244584.6208669-.2351769.1034779-.5079821 0-.620867-.2445839l-1.12884905-2.5399104h-4.40251137l-1.12884907 2.5399104c-.1128849.2445839-.38569009.3480618-.62086698.2445839-.24458397-.1128849-.3480618-.3856901-.24458397-.6208669l3.00085711-6.74487323-1.63683115.76197312-1.1946986-2.54931747 6.38740431-2.98204296 1.19469857 2.54931748zm-.79019435.54561038-1.78734435 4.01682125h3.57468871zm2.59635286-5.02337835 2.55872458-1.1946986 1.5897957 3.41476843-2.5587245 1.1946986zm-9.40707557 5.4278826 2.55872456-1.1946986.79019435 1.70268068-2.55872456 1.1946986z" fill="#777" transform="translate(0 .5)"/></svg>

After

Width:  |  Height:  |  Size: 771 B

View File

@@ -0,0 +1 @@
<svg height="17" viewBox="0 0 18 17" width="18" xmlns="http://www.w3.org/2000/svg"><path d="m16.6801082.00001-1.6419569 1.64195683c-.5169266-.44784856-1.0783599-.84763607-1.6751823-1.19225383l-.7726855 1.34014584c1.409533.81379244 2.5787608 1.98302024 3.3925532 3.39255325l1.3401459-.77268557c-.3446178-.59682233-.7444053-1.15825566-1.1922539-1.6751823l1.6419569-1.64195683zm-8.72593811 2.09165983c-4.26738784 0-7.72685565 3.45946781-7.72685565 7.72685565h15.45371126c0-4.26738784-3.4594678-7.72685565-7.72685561-7.72685565m-7.72685565 9.27222677v4.6361134h15.45371126v-4.6361134z" fill="#777" transform="translate(0 .5)"/></svg>

After

Width:  |  Height:  |  Size: 629 B

View File

@@ -0,0 +1 @@
<svg height="19" viewBox="0 0 14 19" width="14" xmlns="http://www.w3.org/2000/svg"><path d="m7.69225716.00010119c-.93627166-.01384608-.93627166 1.39789983 0 1.3846076 2.68461564 0 4.84612664 2.16151093 4.84612664 4.8461266-.0138461.93627166 1.3978998.93627166 1.3846076 0 0-3.43299608-2.7977382-6.2307342-6.23073424-6.2307342m-5.38432358.84641063c-2.9731679 2.9738602-2.9731679 7.79478695 0 10.76864718 2.97386021 2.9731679 7.79478692 2.9731679 10.76864712 0zm5.38432358 1.92280457c-.93627166-.01384608-.93627166 1.39789983 0 1.3846076 1.15517812 0 2.0769114.92159482 2.0769114 2.0769114-.01384607.93627166 1.39789984.93627166 1.38460764 0 0-1.90355853-1.55796051-3.461519-3.46151904-3.461519m-6.2307342 9.94369791v3.9023781h-.6923038c-.38353631 0-.6923038.2895214-.6923038.649104v.0863996c0 .3595826.30876749.649104.6923038.649104h8.3076456c.38353631 0 .6923038-.2895214.6923038-.649104v-.0863996c0-.3595826-.30876749-.649104-.6923038-.649104h-.6923038v-1.4278074c-2.47526301.188999-5.00964876-.6352579-6.923038-2.4745707" fill="#777" transform="translate(0 .5)"/></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -428,6 +428,7 @@ area|z14-[area:highway=living_street],
area|z14-[amenity=grave_yard],
area|z14-[landuse=cemetery],
area|z15-[amenity=parking],
area|z15-[amenity=car_pooling],
area|z16-[public_transport=platform],
area|z16-[railway=platform],
{fill-opacity: 1;}
@@ -590,6 +591,7 @@ area|z10-[landuse=farmyard],
/* Parking */
area|z15-[amenity=parking],
area|z15-[amenity=car_pooling],
{fill-color: @parking;}
area|z15-[amenity=parking][location=underground],

View File

@@ -848,6 +848,8 @@ node|z17-[leisure=indoor_play],
node|z17-[amenity=courthouse],
node|z17-[amenity=nursing_home],
node|z17-[amenity=social_facility],
node|z17-[social_facility=food_bank],
node|z17-[social_facility=soup_kitchen],
node|z17-[amenity=animal_shelter],
node|z17-[amenity=kindergarten],
node|z17-[amenity=childcare],
@@ -915,6 +917,13 @@ node|z15-[leisure=sports_centre][sport=swimming],
node|z17-[highway=ladder],
node|z18-[amenity=dojo],
node|z18-[amenity=vending_machine],
node|z18-[amenity=food_sharing],
node|z18-[amenity=give_box],
node|z18-[man_made=telescope],
node|z17-[man_made=telescope][telescope:type=optical],
node|z17-[man_made=telescope][telescope:type=radio],
node|z17-[man_made=telescope][telescope:type=gamma],
node|z16-[man_made=observatory],
node|z17-[amenity=fire_station],
node|z18-[amenity=internet_cafe],
node|z18-[emergency=defibrillator],
@@ -1436,6 +1445,12 @@ node|z17-[amenity=nursing_home],
node|z17-[amenity=social_facility],
{icon-image: social_facility-m.svg;}
node|z17-[social_facility=soup_kitchen],
{icon-image: soup_kitchen-m.svg;}
node|z17-[social_facility=food_bank],
{icon-image: food_bank-m.svg;}
node|z17-[amenity=cinema],
{icon-image: cinema-m.svg;}
node|z18-[amenity=cinema],
@@ -1576,6 +1591,23 @@ node|z17-[amenity=parcel_locker],
node|z18-[amenity=vending_machine][vending=fuel],
{icon-image: fuel-dispenser-m.svg;}
node|z18-[amenity=food_sharing],
{icon-image: food_sharing-m.svg;}
node|z18-[amenity=give_box],
{icon-image: give_box-m.svg;}
node|z18-[man_made=telescope],
{icon-image: telescope-m.svg;}
node|z17-[man_made=telescope][telescope:type=optical],
{icon-image: telescope-optical-m.svg;}
node|z17-[man_made=telescope][telescope:type=radio],
{icon-image: telescope-radio-m.svg;}
node|z17-[man_made=telescope][telescope:type=gamma],
{icon-image: telescope-gamma-m.svg;}
node|z16-[man_made=observatory],
{icon-image: observatory-m.svg;}
node|z17-[aeroway=gate],
{icon-image: airport_gate-m.svg;font-size: 11;}
@@ -2157,6 +2189,7 @@ node|z17-[amenity=bicycle_parking],
node|z17-[amenity=motorcycle_parking],
node|z17-[amenity=car_wash],
node|z18-[amenity=parking],
node|z18-[amenity=car_pooling],
node|z18-[amenity=car_rental],
node|z18-[amenity=car_sharing],
{text: name;text-color: @poi_label;text-offset: 1;font-size: 10;}
@@ -2231,6 +2264,11 @@ node|z16-[amenity=parking],
node|z17-[amenity=parking],
{icon-image: parking-m.svg;font-size: 11;icon-min-distance: 10}
node|z16-[amenity=car_pooling],
{icon-image: parking-pooling-s.svg;icon-min-distance: 5;}
node|z17-[amenity=car_pooling],
{icon-image: parking-pooling-m.svg;font-size: 11;icon-min-distance: 10}
node|z16-[amenity=parking][location=underground],
{icon-image:parking_underground-m.svg;}

View File

@@ -73,6 +73,7 @@ node[amenity=place_of_worship]
node[amenity=social_facility],
node[historic=ship],
node[leisure=hackerspace],
node[social_facility],
node[tourism=attraction],
node[tourism=gallery],
node[tourism=museum],
@@ -134,6 +135,9 @@ node[amenity=townhall],
node[amenity=university][name],
node[barrier=border_control],
node[building=guardhouse],
node[man_made=communications_tower],
node[man_made=lighthouse],
node[man_made=observatory],
node[office=diplomatic],
node[office=security],
node[shop=money_lender],

View File

@@ -140,6 +140,7 @@ railway-platform # area z16- (also has captio
amenity-bicycle_parking # area z15- (also has icon z17-, caption(optional) z17-)
amenity-bicycle_parking-covered # area z15- (also has icon z17-, caption(optional) z17-)
amenity-car_pooling # area z15- (also has icon z16-, caption(optional) z18-)
amenity-motorcycle_parking # area z15- (also has icon z17-, caption(optional) z17-)
amenity-parking # area z15- (also has icon z16-, caption(optional) z18-)
amenity-parking-fee # area z15- (also has icon z16-, caption(optional) z18-)

View File

@@ -989,6 +989,7 @@ leisure-escape_game # icon z17- (also has captio
leisure-fitness_centre # icon z16- (also has caption(optional) z17-)
leisure-hackerspace # icon z17- (also has caption(optional) z17-)
leisure-sauna # icon z17- (also has caption(optional) z17-)
man_made-observatory # icon z16- (also has caption(optional) z16-)
office-estate_agent # icon z18- (also has caption(optional) z18-)
office-government # icon z18- (also has caption(optional) z18-)
office-insurance # icon z18- (also has caption(optional) z18-)
@@ -1134,6 +1135,8 @@ amenity-vending_machine-public_transport_tickets # icon z17- (also has captio
amenity-water_point-drinking_water_no # icon z18- (also has caption(optional) z18-)
highway-elevator # icon z17-
leisure-picnic_table # icon z17- (also has caption(optional) z17-)
man_made-telescope-gamma # icon z17- (also has caption(optional) z17-)
man_made-telescope-radio # icon z17- (also has caption(optional) z17-)
man_made-water_tap-drinking_water_no # icon z18- (also has caption(optional) z18-)
man_made-water_well-drinking_water_no # icon z18- (also has caption(optional) z18-)
natural-spring-drinking_water_no # icon z14- (also has caption(optional) z15-)
@@ -1143,6 +1146,10 @@ isoline-step_10 # pathtext z17- (also has li
isoline-zero # pathtext z17- (also has line z15-)
=== 1000
social_facility-food_bank # icon z17- (also has caption(optional) z17-)
social_facility-soup_kitchen # icon z17- (also has caption(optional) z17-)
=== 851
amenity-grave_yard # icon z17- (also has caption(optional) z17-, area z10-)
amenity-grave_yard-christian # icon z17- (also has caption(optional) z17-, area z10-)
amenity-nursing_home # icon z17- (also has caption(optional) z17-)
@@ -1255,6 +1262,7 @@ power-portal # icon z19-
power-tower # icon z19-
=== 450
amenity-car_pooling # icon z16- (also has caption(optional) z18-, area z15-)
amenity-parking # icon z16- (also has caption(optional) z18-, area z15-)
amenity-parking-fee # icon z16- (also has caption(optional) z18-, area z15-)
amenity-parking-multi-storey # icon z16- (also has caption(optional) z18-, area z15-)
@@ -2008,6 +2016,7 @@ leisure-swimming_pool-private # icon z17- (also has captio
# leisure-fitness_centre # caption(optional) z17- (also has icon z16-)
# leisure-hackerspace # caption(optional) z17- (also has icon z17-)
# leisure-sauna # caption(optional) z17- (also has icon z17-)
# man_made-observatory # caption(optional) z16- (also has icon z16-)
# office-estate_agent # caption(optional) z18- (also has icon z18-)
# office-government # caption(optional) z18- (also has icon z18-)
# office-insurance # caption(optional) z18- (also has icon z18-)
@@ -2148,11 +2157,17 @@ leisure-swimming_pool-private # icon z17- (also has captio
# amenity-vending_machine-public_transport_tickets # caption(optional) z17- (also has icon z17-)
# amenity-water_point-drinking_water_no # caption(optional) z18- (also has icon z18-)
# leisure-picnic_table # caption(optional) z17- (also has icon z17-)
# man_made-telescope-gamma # caption(optional) z17- (also has icon z17-)
# man_made-telescope-radio # caption(optional) z17- (also has icon z17-)
# man_made-water_tap-drinking_water_no # caption(optional) z18- (also has icon z18-)
# man_made-water_well-drinking_water_no # caption(optional) z18- (also has icon z18-)
# natural-spring-drinking_water_no # caption(optional) z15- (also has icon z14-)
# === -8800
# social_facility-food_bank # caption(optional) z17- (also has icon z17-)
# social_facility-soup_kitchen # caption(optional) z17- (also has icon z17-)
# === -9149
# amenity-grave_yard # caption(optional) z17- (also has icon z17-, area z10-)
# amenity-grave_yard-christian # caption(optional) z17- (also has icon z17-, area z10-)
# amenity-nursing_home # caption(optional) z17- (also has icon z17-)
@@ -2246,6 +2261,7 @@ leisure-swimming_pool-private # icon z17- (also has captio
# man_made-water_tower # caption(optional) z18- (also has icon z16-)
# === -9550
# amenity-car_pooling # caption(optional) z18- (also has icon z16-, area z15-)
# amenity-parking # caption(optional) z18- (also has icon z16-, area z15-)
# amenity-parking-fee # caption(optional) z18- (also has icon z16-, area z15-)
# amenity-parking-multi-storey # caption(optional) z18- (also has icon z16-, area z15-)
@@ -2320,6 +2336,8 @@ amenity-telephone # icon z17- (also has captio
entrance # icon z17- (also has caption(optional) z19-)
=== -9960
amenity-food_sharing # icon z18- (also has caption(optional) z18-)
amenity-give_box # icon z18- (also has caption(optional) z18-)
amenity-parking_space # caption z19-
amenity-parking_space-disabled # icon z18- (also has caption(optional) z19-)
amenity-parking_space-permissive # caption z19-
@@ -2335,6 +2353,7 @@ amenity-vending_machine-food # icon z18- (also has captio
amenity-vending_machine-newspapers # icon z18- (also has caption(optional) z18-)
amenity-vending_machine-sweets # icon z18- (also has caption(optional) z18-)
building-address # caption z16-
man_made-telescope-optical # icon z17- (also has caption(optional) z17-)
=== -9970
amenity-bench # icon z18- (also has caption(optional) z19-)
@@ -2344,6 +2363,7 @@ amenity-waste_disposal # icon z18- (also has captio
emergency-assembly_point # icon z18- (also has caption(optional) z18-)
emergency-defibrillator # icon z18- (also has caption(optional) z18-)
emergency-phone # icon z17-
man_made-telescope # icon z18- (also has caption(optional) z18-)
=== -9980
amenity-waste_basket # icon z18- (also has caption(optional) z19-)
@@ -2353,6 +2373,8 @@ power-substation # icon z17- (also has captio
# amenity-bench # caption(optional) z19- (also has icon z18-)
# amenity-bench-backless # caption(optional) z19- (also has icon z18-)
# amenity-food_sharing # caption(optional) z18- (also has icon z18-)
# amenity-give_box # caption(optional) z18- (also has icon z18-)
amenity-loading_dock # icon z18- (also has caption(optional) z19-)
# amenity-loading_dock # caption(optional) z19- (also has icon z18-)
# amenity-lounger # caption(optional) z19- (also has icon z18-)
@@ -2377,6 +2399,8 @@ entrance-exit # icon z17- (also has captio
# entrance-exit # caption(optional) z19- (also has icon z17-)
# man_made-cairn # caption(optional) z19- (also has icon z19-)
# man_made-survey_point # caption(optional) z18- (also has icon z18-)
# man_made-telescope # caption(optional) z18- (also has icon z18-)
# man_made-telescope-optical # caption(optional) z17- (also has icon z17-)
# power-substation # caption(optional) z18- (also has icon z17-, area z13-)
# tourism-information # caption(optional) z16- (also has icon z16-)
# tourism-information-board # caption(optional) z16- (also has icon z16-)

View File

@@ -0,0 +1 @@
<svg height="18" viewBox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><g fill="none"><circle cx="9" cy="9" fill="#fff" opacity=".6" r="9"/><circle cx="9" cy="9" fill="#9c6136" r="8.25"/><path d="m5.40439659 10.9208845 1.66497587 2.7936423-1.40439659.7854732-1.66497587-2.7936423zm8.48497961-1.30248563c.1648759.16547497.1067017.33549981.0697536.38988023l-.4380042.5278054-.6259719.740475-.5369481.6188133c-.326327.369091-.6071716.6702095-.72781.7580936l-.0452585.0257766-.0128471.0043095c-.1930198.0592449-.9966097.0941052-2.41076971.104581l-1.41415344.0028979-.56983671.3962245-1.22668022-2.05836 1.15247826-.8300108c.39709497-.2523366.78419173-.38244764 1.16129028-.39033316l.0364622-.00038156c.38859717 0 .73067579.13023822 1.02623587.39071472h1.72754997c.2369804.0514113.3554706.1871537.3554706.4072272 0 .2200736-.1184902.3663266-.3554706.4387589h-1.86216448c-.07860487.0051388-.11790731.0426001-.11790731.1123837 0 .1046754.05865282.1491799.11790731.1491799l.90691258-.0103822.4942633-.0160402c.2708403-.012161.5027742-.0299189.6065724-.05585.3293242-.0822724 2.110004-1.67235874 2.2125241-1.75200674s.3026137-.12817636.4764018.04624321zm-3.6909669-3.77570294c-.0953136-.29519343-.0969978-.44798224-.0969978-.69213749 0-.60830957-.49315336-1.10142003-1.10142007-1.10142003-.60830957 0-1.10142003.49311046-1.10142003 1.10142003 0 .24414668-.00168624.39692692-.09699782.69213749-.09534354.29519342-.52319594.80943657-.52319594 1.43566029 0 .95082119.77082259 1.72164378 1.72164379 1.72164378.95082119 0 1.72160097-.77077973 1.72160097-1.72164378 0-.56356277-.3465674-1.03645253-.4853801-1.34062523zm-.35982581-2.77957701c-.00037908-.02303239-.01293243-.04310709-.03149545-.05412282l-.03584588-.0089961-.07532111.00360309c-.13534339.01138062-.41475604.05828767-.60648789.24999351-.12874614.12876329-.19222565.29576342-.22343826.43281093-.02675465-.08282078-.07076517-.17207866-.14346746-.24480239-.13454896-.13456502-.32770192-.1711184-.42926654-.18098477l-.06882538-.00359276c-.03450959.00067646-.06248952.02854864-.06305951.06307666l.00159083.04631626c.00635078.09321555.03708217.30583386.18300631.45172273.13458752.1345811.3277212.17113608.42927376.18100226l.12801359.00359241c.04385109 0 .43525377-.00712751.68185185-.25361374.20610698-.20621669.24487627-.51045136.25198392-.63278334z" fill="#fff" fill-rule="evenodd"/></g></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1 @@
<svg height="12" viewBox="0 0 10 12" width="10" xmlns="http://www.w3.org/2000/svg"><path d="m1.40439659 7.9208845 1.66497587 2.7936423-1.40439659.7854732-1.66497587-2.79364231zm8.4849796-1.30248563c.16487591.16547497.10670169.33549981.06975361.38988026l-.43800423.52780539-.62597187.74047497-.53694807.61881334c-.32632701.36909096-.60717167.67020945-.72780998.75809352l-.04525857.02577662-.01284708.00430951c-.19301982.05924488-.99660972.09410524-2.41076971.10458107l-1.41415344.0028978-.56983671.39622455-1.22668022-2.05836003 1.15247826-.83001081c.39709497-.25233656.78419173-.3824476 1.16129028-.39033312l.0364622-.00038156c.38859717 0 .73067579.13023823 1.02623587.39071468h1.72754994c.23698041.05141129.35547062.18715372.35547062.40722729 0 .22007356-.11849021.3663265-.35547062.43875883h-1.86216445c-.07860487.00513887-.11790731.04260011-.11790731.11238372 0 .10467541.05865282.14917992.11790731.14917992l.90691261-.01038221.49426323-.01604024c.27084037-.01216092.50277426-.0299189.60657246-.05584997.32932419-.08227242 2.11000399-1.67235874 2.21252409-1.75200674.10252009-.079648.3026137-.12817636.47640178.04624321zm-3.69096692-3.77570294c-.09531354-.29519343-.09699782-.44798224-.09699782-.69213749 0-.60830957-.49315331-1.10142003-1.10142002-1.10142003-.60830957 0-1.10142003.49311046-1.10142003 1.10142003 0 .24414668-.00168624.39692692-.09699782.69213749-.09534354.29519342-.52319594.80943657-.52319594 1.43566029 0 .95082119.77082259 1.72164378 1.72164379 1.72164378.95082119 0 1.72160093-.77077973 1.72160093-1.72164378 0-.56356277-.34656739-1.03645253-.48538006-1.34062523zm-.35982578-2.77957701c-.00037908-.02303239-.01293243-.04310709-.03149545-.05412282l-.03584588-.0089961-.07532111.00360309c-.13534339.01138062-.41475604.05828767-.60648789.24999351-.12874614.12876329-.19222565.29576342-.22343826.43281093-.02675465-.08282078-.07076517-.17207866-.14346746-.24480238-.13454896-.13456503-.32770192-.17111841-.42926654-.18098478l-.06882538-.00359276c-.03450959.00067646-.06248952.02854864-.06305951.06307666l.00159083.04631626c.00635078.09321555.03708217.30583386.18300631.45172273.13458752.1345811.3277212.17113608.42927376.18100226l.12801359.00359241c.04385109 0 .43525377-.00712751.68185185-.25361374.20610698-.20621669.24487627-.51045135.25198392-.63278334z" fill="#747e86" fill-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@@ -0,0 +1 @@
<svg height="11" viewBox="0 0 10 11" width="10" xmlns="http://www.w3.org/2000/svg"><path d="m1.40439659 6.9208845 1.66497587 2.79364231-1.40439659.78547319-1.66497587-2.79364231zm8.4849796-1.30248563c.16487591.16547497.10670169.33549981.06975361.38988026l-.43800423.52780539-.62597187.74047497-.53694807.61881334-.30691719.3410534-.1751764.18625299c-.10683664.11054758-.19209936.19172754-.24571639.23078713l-.04525857.02577662-.01284708.00430951c-.19301982.05924488-.99660972.09410524-2.41076971.10458107l-1.41415344.0028978-.56983671.3962246-1.22668022-2.05836008 1.15247826-.83001081c.39709497-.25233656.78419173-.3824476 1.16129028-.39033312l.0364622-.00038156c.38859717 0 .73067579.13023823 1.02623587.39071468h1.72754994c.23698041.05141129.35547062.18715372.35547062.40722729 0 .22007356-.11849021.3663265-.35547062.43875883h-1.86216445c-.07860487.00513887-.11790731.04260011-.11790731.11238372 0 .10467541.05865282.14917992.11790731.14917992l.90691261-.01038221.49426323-.01604024.36592704-.02276118c.1048133-.00920099.18874632-.02012325.24064542-.03308879.32932419-.08227242 2.11000399-1.67235874 2.21252409-1.75200674.10252009-.079648.3026137-.12817636.47640178.04624321zm-2.38737619-4.86878187-.00166678 4.000383h-5.00033322l-.001-3.997383zm-5.49948258 0-.00045062 1.65580113-.42167958.90580112-.63441545-.29583278zm5.99572437 0 1.05654565 2.26576947-.63441545.29583278-.42167957-.90580112z" fill="#747e86" fill-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -0,0 +1 @@
<svg height="18" viewBox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><g fill="none"><circle cx="9" cy="9" fill="#fff" opacity=".6" r="9"/><circle cx="9" cy="9" fill="#747e86" r="8.25"/><path d="m11.9788057 9.45701798v4.46417412h-2.48216516v-1.9344754c0-.5341906-.43304708-.9672377-.96723771-.9672377-.51282301 0-.93243211.3990962-.96518032.9036416l-.00205739.0635961v1.9344754h-2.48216512v-4.46417412zm-3.44940287-4.1392834c1.90503617 0 3.44940287 1.54436664 3.44940287 3.44940283h-6.8988057c0-1.90503619 1.54436664-3.44940283 3.44940283-3.44940283zm4.47021307-1.83773458.6985699.69856997-1.0498311 1.04983111c.2863445.33051154.5419599.68947967.7623009 1.07107475l-.8568598.49403817c-.520321-.90122443-1.2678995-1.64880299-2.169124-2.16912399l.4940382-.8568598c.3815951.22034103.7405632.47595638 1.0710748.7623009z" fill="#fff"/></g></svg>

After

Width:  |  Height:  |  Size: 853 B

View File

@@ -0,0 +1 @@
<svg height="19" viewBox="0 0 29 19" width="29" xmlns="http://www.w3.org/2000/svg"><g fill="none"><path d="m6.185075.4995c1.777125 0 3.382725.375525 4.56885 1.3638 1.2542475 1.043175 1.74465 2.530875 1.74465 4.202625 0 .70428972-.0885354 1.37740429-.2813988 2.0016737.1097684-.01288087.2224325-.01884789.3364903-.01884789 1.0018875 0 1.8962402.46041088 2.4830213 1.18119574.5702976-1.00377388 1.6501558-1.68022155 2.8880068-1.68022155 1.2250215 0 2.2953081.66249835 2.872122 1.64875713.5861846-.70238108 1.4692751-1.14973132 2.4568499-1.14973132 1.7673849 0 3.2001334 1.43274852 3.2001334 3.20013339 0 .7313317-.245322 1.4053653-.6581629 1.944298l-.074637.0915686.1409174.0845388c1.2235368.7673092 2.0881394 2.0596347 2.2705608 3.570914l.0213847.2173535.0984085 1.2911937h-20.69720984l.09840858-1.2911937c.12227689-1.6043637 1.01014496-2.9844197 2.29194549-3.7882675l.13958437-.0845388-.073304-.0915686c-.37843751-.4940216-.61611258-1.1015656-.65309705-1.7627038l-.00506585-.1815942c-.84977747.3668477-1.81813376.5570547-2.8535331.6031408v3.147975c0 .8284275-.67155 1.5-1.5 1.5h-3.0015c-.8284275 0-1.5-.67155-1.5-1.5v-13.0005c0-.8284275.67155-1.5 1.5-1.5z" fill="#fff" opacity=".8"/><path d="m12.5536665 13.8204843c.5404977 0 1.0540327.1154407 1.517294.3230112-.6662367.7508614-1.1159451 1.6987981-1.2504799 2.7493425l-.0344806.3559128h-3.936c.14615915-1.9177167 1.7485089-3.4282665 3.7036665-3.4282665zm10.7 0c1.9551576 0 3.5575073 1.5105498 3.7036665 3.4282665h-3.895333l-.0060809-.0911937-.0216381-.2213141c-.1283466-1.0743203-.5858754-2.0432621-1.2667992-2.806658.4550736-.1987522.9577425-.3091007 1.4861847-.3091007zm-5.3289719-.2138492c2.0771169 0 3.7794184 1.6047752 3.9346947 3.6421157h-7.8693893c.1552763-2.0373405 1.8575778-3.6421157 3.9346946-3.6421157zm-11.7390946-11.6068351c1.57395 0 2.786025.3293925 3.61005 1.01595.81477.677625 1.20435 1.70415 1.20435 3.05055 0 1.391025-.416475 2.4687-1.296075 3.208725-.861075.7311-2.111925 1.08855-3.713625 1.08855h-.989775v4.636425h-3.000525l.000225-12.999975zm6.3680665 7.24895081c1.1046432 0 2.0001334.89549019 2.0001334 2.00013339s-.8954902 2.0001334-2.0001334 2.0001334-2.0001334-.8954902-2.0001334-2.0001334.8954902-2.00013339 2.0001334-2.00013339zm10.7 0c1.1046432 0 2.0001334.89549019 2.0001334 2.00013339s-.8954902 2.0001334-2.0001334 2.0001334-2.0001334-.8954902-2.0001334-2.0001334.8954902-2.00013339 2.0001334-2.00013339zm-5.3289719-.49902581c1.1735489 0 2.1248982.95134932 2.1248982 2.1248982 0 1.1735488-.9513493 2.1248982-2.1248982 2.1248982-1.1735488 0-2.1248981-.9513494-2.1248981-2.1248982 0-1.17354888.9513493-2.1248982 2.1248981-2.1248982zm-11.8500196-4.475475h-1.07415v3.8599125h.7027875c.842625 0 1.481685-.1958625 1.898325-.525765.42591-.338775.611055-.82884.611055-1.4619 0-.650925-.1748925-1.1142-.5267175-1.426275-.342675-.30315-.8706-.4459725-1.6113-.4459725z" fill="#427bb8"/></g></svg>

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -0,0 +1 @@
<svg height="12" viewBox="0 0 18 12" width="18" xmlns="http://www.w3.org/2000/svg"><g fill="none"><path d="m3.90636316.31547368c1.12239473 0 2.13645789.23717369 2.88558947.86134737.79215632.65884737 1.10188421 1.59844737 1.10188421 2.65428948 0 .44481455-.05591709.86993955-.17772557 1.26421496.06932743-.00813528.14048371-.01190393.2125202-.01190393.63277103 0 1.19762539.29078582 1.56822398.74601837.36018795-.63396245 1.04220365-1.06119256 1.82400435-1.06119256.7736977 0 1.4496682.41842001 1.8139718 1.04132029.3702218-.4436091.9279632-.7261461 1.5516946-.7261461 1.1162431 0 2.0211369.90489381 2.0211369 2.02113689 0 .46189369-.1549402.88759915-.4156819 1.22797764l-.0471391.05783284.0890005.05339291c.7727601.48461638 1.3188248 1.30082194 1.4340384 2.25531406l.0135061.1372759.0621528.8154908h-13.07192207l.06215279-.8154908c.0772275-1.01328225.63798628-1.88489661 1.44754451-2.39258996l.08815855-.05339291-.04629724-.05783284c-.23901318-.31201361-.38912375-.69572559-.41248237-1.11328658l-.00319948-.11469106c-.53670156.23169325-1.14829501.35182404-1.80223143.38093102v1.98819474c0 .52321737-.42413684.94736839-.94736842.94736839h-1.89568421c-.52321737 0-.94736842-.42413681-.94736842-.94736839v-8.2108421c0-.52321737.42413684-.94736843.94736842-.94736843z" fill="#fff" opacity=".8"/><path d="m7.92863147 8.72872693c.34136694 0 .66570485.07290994.95829094.20400705-.42078106.47422827-.70480741 1.07292512-.78977674 1.73642682l-.02177725.2247871h-2.48589474c.09231105-1.21118954 1.10432143-2.16522097 2.33915779-2.16522097zm6.75789473 0c1.2348364 0 2.2468468.95403143 2.3391578 2.16522097h-2.4602103l-.0038406-.0575961-.0136661-.1397773c-.0810611-.6785181-.3700266-1.29048128-.8000838-1.77262609.2874149-.12552769.60489-.19522148.938643-.19522148zm-3.3656664-.13506265c1.3118632 0 2.387001 1.01354223 2.4850703 2.30028362h-4.97014063c.09806925-1.28674139 1.17320703-2.30028362 2.48507033-2.30028362zm-7.41416506-7.3306327c.99407368 0 1.75959473.20803737 2.28003158.64165263.51459157.42797368.7606421 1.07630526.7606421 1.92666316 0 .8785421-.26303684 1.55917895-.81857368 2.02656316-.54383685.46174736-1.33384737.68750526-2.34544737.68750526h-.62512105v2.92826842h-1.89506843l.00014211-8.21051053zm4.02193673 4.57828472c.69766938 0 1.26324215.56557277 1.26324215 1.26324215 0 .69766937-.56557277 1.26324215-1.26324215 1.26324215-.69766937 0-1.26324215-.56557278-1.26324215-1.26324215 0-.69766938.56557278-1.26324215 1.26324215-1.26324215zm6.75789473 0c.6976694 0 1.2632422.56557277 1.2632422 1.26324215 0 .69766937-.5655728 1.26324215-1.2632422 1.26324215s-1.2632421-.56557278-1.2632421-1.26324215c0-.69766938.5655727-1.26324215 1.2632421-1.26324215zm-3.3656664-.31517419c.7411887 0 1.3420409.6008522 1.3420409 1.34204095s-.6008522 1.34204095-1.3420409 1.34204095c-.7411888 0-1.34204098-.6008522-1.34204098-1.34204095s.60085218-1.34204095 1.34204098-1.34204095zm-7.48422296-2.82661579h-.67841052v2.43783947h.44386579c.53218421 0 .93580105-.12370263 1.1989421-.33206211.26899579-.21396315.38592947-.52347789.38592947-.92330526 0-.41111053-.11045842-.70370526-.33266368-.90080526-.21642632-.19146316-.54985263-.28166684-1.01766316-.28166684z" fill="#427bb8"/></g></svg>

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -0,0 +1 @@
<svg height="18" viewBox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><g fill="none"><circle cx="9" cy="9" fill="#fff" opacity=".6" r="9"/><circle cx="9" cy="9" fill="#9c6136" r="8.25"/><path d="m5.40439659 10.9208845 1.66497587 2.7936423-1.40439659.7854732-1.66497587-2.7936423zm8.48497961-1.30248563c.1648759.16547497.1067017.33549981.0697536.38988023l-.4380042.5278054-.6259719.740475-.5369481.6188133c-.326327.369091-.6071716.6702095-.72781.7580936l-.0452585.0257766-.0128471.0043095c-.1930198.0592449-.9966097.0941052-2.41076971.104581l-1.41415344.0028979-.56983671.3962245-1.22668022-2.05836 1.15247826-.8300108c.39709497-.2523366.78419173-.38244764 1.16129028-.39033316l.0364622-.00038156c.38859717 0 .73067579.13023822 1.02623587.39071472h1.72754997c.2369804.0514113.3554706.1871537.3554706.4072272 0 .2200736-.1184902.3663266-.3554706.4387589h-1.86216448c-.07860487.0051388-.11790731.0426001-.11790731.1123837 0 .1046754.05865282.1491799.11790731.1491799l.90691258-.0103822.4942633-.0160402c.2708403-.012161.5027742-.0299189.6065724-.05585.3293242-.0822724 2.110004-1.67235874 2.2125241-1.75200674s.3026137-.12817636.4764018.04624321zm-7.07695726-.61839887-.00064003-.76822841c-.79974138-.64144198-1.31177891-1.6268104-1.31177891-2.73177159h7c0 1.10496119-.5120375 2.09032961-1.3117789 2.73177159l-.00064.76822841z" fill="#fff" fill-rule="evenodd"/></g></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -0,0 +1 @@
<svg height="19" viewBox="0 0 14 19" width="14" xmlns="http://www.w3.org/2000/svg"><path d="m13.1340274.00741332-8.49199134 1.21422959 1.21962985 1.21976833 6.55564899-.9357696-.9357696 6.55564895 1.2197683 1.21976832 1.2142296-8.49212981c.0725574-.50887145-.3895117-.8436881-.7815158-.78151578m-10.82601505.83814936c-2.97333242 2.97402475-2.97333242 7.79521825 0 10.76924302 2.97402475 2.9733324 7.79521825 2.9733324 10.76924305 0zm-.84645746 11.86715912v3.902594h-.69234211c-.38355753 0-.69234211.2895375-.69234211.6491399v.0864043c0 .3596025.30878458.64914.69234211.64914h8.30810528c.38355753 0 .69234211-.2895375.69234211-.64914v-.0864043c0-.3596024-.30878458-.6491399-.69234211-.6491399h-.6923421v-1.4278864c-2.47539997.1890094-5.00992596-.6352931-6.92342107-2.4747076" fill="#747e86" transform="translate(0 .5)"/></svg>

After

Width:  |  Height:  |  Size: 825 B

View File

@@ -0,0 +1 @@
<svg height="15" viewBox="0 0 14 15" width="14" xmlns="http://www.w3.org/2000/svg"><path d="m7.82311911 5.67246657 3.40536139 7.66676663c.1034778.2351768 0 .507982-.244584.6208669-.2351769.1034779-.5079821 0-.620867-.2445839l-1.12884905-2.5399104h-4.40251137l-1.12884907 2.5399104c-.1128849.2445839-.38569009.3480618-.62086698.2445839-.24458397-.1128849-.3480618-.3856901-.24458397-.6208669l3.00085711-6.74487323-1.63683115.76197312-1.1946986-2.54931747 6.38740431-2.98204296 1.19469857 2.54931748zm-.79019435.54561038-1.78734435 4.01682125h3.57468871zm2.59635286-5.02337835 2.55872458-1.1946986 1.5897957 3.41476843-2.5587245 1.1946986zm-9.40707557 5.4278826 2.55872456-1.1946986.79019435 1.70268068-2.55872456 1.1946986z" fill="#747e86" transform="translate(0 .5)"/></svg>

After

Width:  |  Height:  |  Size: 774 B

View File

@@ -0,0 +1 @@
<svg height="17" viewBox="0 0 18 17" width="18" xmlns="http://www.w3.org/2000/svg"><path d="m16.6801082.00001-1.6419569 1.64195683c-.5169266-.44784856-1.0783599-.84763607-1.6751823-1.19225383l-.7726855 1.34014584c1.409533.81379244 2.5787608 1.98302024 3.3925532 3.39255325l1.3401459-.77268557c-.3446178-.59682233-.7444053-1.15825566-1.1922539-1.6751823l1.6419569-1.64195683zm-8.72593811 2.09165983c-4.26738784 0-7.72685565 3.45946781-7.72685565 7.72685565h15.45371126c0-4.26738784-3.4594678-7.72685565-7.72685561-7.72685565m-7.72685565 9.27222677v4.6361134h15.45371126v-4.6361134z" fill="#747e86" transform="translate(0 .5)"/></svg>

After

Width:  |  Height:  |  Size: 632 B

View File

@@ -0,0 +1 @@
<svg height="19" viewBox="0 0 14 19" width="14" xmlns="http://www.w3.org/2000/svg"><path d="m7.69225716.00010119c-.93627166-.01384608-.93627166 1.39789983 0 1.3846076 2.68461564 0 4.84612664 2.16151093 4.84612664 4.8461266-.0138461.93627166 1.3978998.93627166 1.3846076 0 0-3.43299608-2.7977382-6.2307342-6.23073424-6.2307342m-5.38432358.84641063c-2.9731679 2.9738602-2.9731679 7.79478695 0 10.76864718 2.97386021 2.9731679 7.79478692 2.9731679 10.76864712 0zm5.38432358 1.92280457c-.93627166-.01384608-.93627166 1.39789983 0 1.3846076 1.15517812 0 2.0769114.92159482 2.0769114 2.0769114-.01384607.93627166 1.39789984.93627166 1.38460764 0 0-1.90355853-1.55796051-3.461519-3.46151904-3.461519m-6.2307342 9.94369791v3.9023781h-.6923038c-.38353631 0-.6923038.2895214-.6923038.649104v.0863996c0 .3595826.30876749.649104.6923038.649104h8.3076456c.38353631 0 .6923038-.2895214.6923038-.649104v-.0863996c0-.3595826-.30876749-.649104-.6923038-.649104h-.6923038v-1.4278074c-2.47526301.188999-5.00964876-.6352579-6.923038-2.4745707" fill="#747e86" transform="translate(0 .5)"/></svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -269,6 +269,9 @@ node|z16-[man_made=survey_point],
area|z14-[highway=rest_area],
{icon-image: picnic-m.svg;}
node|z15-[man_made=observatory],
{icon-image: observatory-m.svg;}
node|z15-[amenity=toilets],
{icon-image: toilets-m.svg; font-size: 11;}

View File

@@ -140,6 +140,7 @@ railway-platform # area z16- (also has captio
amenity-bicycle_parking # area z15- (also has icon z17-, caption(optional) z17-)
amenity-bicycle_parking-covered # area z15- (also has icon z17-, caption(optional) z17-)
amenity-car_pooling # area z15- (also has icon z16-, caption(optional) z18-)
amenity-motorcycle_parking # area z15- (also has icon z17-, caption(optional) z17-)
amenity-parking # area z15- (also has icon z16-, caption(optional) z18-)
amenity-parking-fee # area z15- (also has icon z16-, caption(optional) z18-)

View File

@@ -989,6 +989,7 @@ leisure-escape_game # icon z17- (also has captio
leisure-fitness_centre # icon z16- (also has caption(optional) z17-)
leisure-hackerspace # icon z17- (also has caption(optional) z17-)
leisure-sauna # icon z17- (also has caption(optional) z17-)
man_made-observatory # icon z15- (also has caption(optional) z16-)
office-estate_agent # icon z18- (also has caption(optional) z18-)
office-government # icon z18- (also has caption(optional) z18-)
office-insurance # icon z18- (also has caption(optional) z18-)
@@ -1134,6 +1135,8 @@ amenity-vending_machine-public_transport_tickets # icon z17- (also has captio
amenity-water_point-drinking_water_no # icon z14- (also has caption(optional) z14-)
highway-elevator # icon z17-
leisure-picnic_table # icon z15- (also has caption(optional) z16-)
man_made-telescope-gamma # icon z17- (also has caption(optional) z17-)
man_made-telescope-radio # icon z17- (also has caption(optional) z17-)
man_made-water_tap-drinking_water_no # icon z14- (also has caption(optional) z14-)
man_made-water_well-drinking_water_no # icon z14- (also has caption(optional) z14-)
natural-spring-drinking_water_no # icon z12- (also has caption(optional) z14-)
@@ -1144,6 +1147,10 @@ isoline-zero # pathtext z15- (also has li
power-line # pathtext z15- (also has line z13-, line::dash z13-)
=== 1000
social_facility-food_bank # icon z17- (also has caption(optional) z17-)
social_facility-soup_kitchen # icon z17- (also has caption(optional) z17-)
=== 851
amenity-grave_yard # icon z17- (also has caption(optional) z17-, area z10-)
amenity-grave_yard-christian # icon z17- (also has caption(optional) z17-, area z10-)
amenity-nursing_home # icon z17- (also has caption(optional) z17-)
@@ -1256,6 +1263,7 @@ power-portal # icon z13-
power-tower # icon z13-
=== 450
amenity-car_pooling # icon z16- (also has caption(optional) z18-, area z15-)
amenity-parking # icon z16- (also has caption(optional) z18-, area z15-)
amenity-parking-fee # icon z16- (also has caption(optional) z18-, area z15-)
amenity-parking-multi-storey # icon z16- (also has caption(optional) z18-, area z15-)
@@ -2011,6 +2019,7 @@ leisure-swimming_pool-private # icon z17- (also has captio
# leisure-fitness_centre # caption(optional) z17- (also has icon z16-)
# leisure-hackerspace # caption(optional) z17- (also has icon z17-)
# leisure-sauna # caption(optional) z17- (also has icon z17-)
# man_made-observatory # caption(optional) z16- (also has icon z15-)
# office-estate_agent # caption(optional) z18- (also has icon z18-)
# office-government # caption(optional) z18- (also has icon z18-)
# office-insurance # caption(optional) z18- (also has icon z18-)
@@ -2151,11 +2160,17 @@ leisure-swimming_pool-private # icon z17- (also has captio
# amenity-vending_machine-public_transport_tickets # caption(optional) z17- (also has icon z17-)
# amenity-water_point-drinking_water_no # caption(optional) z14- (also has icon z14-)
# leisure-picnic_table # caption(optional) z16- (also has icon z15-)
# man_made-telescope-gamma # caption(optional) z17- (also has icon z17-)
# man_made-telescope-radio # caption(optional) z17- (also has icon z17-)
# man_made-water_tap-drinking_water_no # caption(optional) z14- (also has icon z14-)
# man_made-water_well-drinking_water_no # caption(optional) z14- (also has icon z14-)
# natural-spring-drinking_water_no # caption(optional) z14- (also has icon z12-)
# === -8800
# social_facility-food_bank # caption(optional) z17- (also has icon z17-)
# social_facility-soup_kitchen # caption(optional) z17- (also has icon z17-)
# === -9149
# amenity-grave_yard # caption(optional) z17- (also has icon z17-, area z10-)
# amenity-grave_yard-christian # caption(optional) z17- (also has icon z17-, area z10-)
# amenity-nursing_home # caption(optional) z17- (also has icon z17-)
@@ -2252,6 +2267,7 @@ leisure-swimming_pool-private # icon z17- (also has captio
# man_made-water_tower # caption(optional) z14- (also has icon z13-)
# === -9550
# amenity-car_pooling # caption(optional) z18- (also has icon z16-, area z15-)
# amenity-parking # caption(optional) z18- (also has icon z16-, area z15-)
# amenity-parking-fee # caption(optional) z18- (also has icon z16-, area z15-)
# amenity-parking-multi-storey # caption(optional) z18- (also has icon z16-, area z15-)
@@ -2326,6 +2342,8 @@ amenity-telephone # icon z17- (also has captio
entrance # icon z17- (also has caption(optional) z19-)
=== -9960
amenity-food_sharing # icon z18- (also has caption(optional) z18-)
amenity-give_box # icon z18- (also has caption(optional) z18-)
amenity-parking_space # caption z19-
amenity-parking_space-disabled # icon z18- (also has caption(optional) z19-)
amenity-parking_space-permissive # caption z19-
@@ -2341,6 +2359,7 @@ amenity-vending_machine-food # icon z18- (also has captio
amenity-vending_machine-newspapers # icon z18- (also has caption(optional) z18-)
amenity-vending_machine-sweets # icon z18- (also has caption(optional) z18-)
building-address # caption z16-
man_made-telescope-optical # icon z17- (also has caption(optional) z17-)
=== -9970
amenity-bench # icon z18- (also has caption(optional) z19-)
@@ -2350,6 +2369,7 @@ amenity-waste_disposal # icon z18- (also has captio
emergency-assembly_point # icon z18- (also has caption(optional) z18-)
emergency-defibrillator # icon z18- (also has caption(optional) z18-)
emergency-phone # icon z17-
man_made-telescope # icon z18- (also has caption(optional) z18-)
=== -9980
amenity-waste_basket # icon z18- (also has caption(optional) z19-)
@@ -2359,6 +2379,8 @@ power-substation # icon z17- (also has captio
# amenity-bench # caption(optional) z19- (also has icon z18-)
# amenity-bench-backless # caption(optional) z19- (also has icon z18-)
# amenity-food_sharing # caption(optional) z18- (also has icon z18-)
# amenity-give_box # caption(optional) z18- (also has icon z18-)
amenity-loading_dock # icon z18- (also has caption(optional) z19-)
# amenity-loading_dock # caption(optional) z19- (also has icon z18-)
# amenity-lounger # caption(optional) z19- (also has icon z18-)
@@ -2383,6 +2405,8 @@ entrance-exit # icon z17- (also has captio
# entrance-exit # caption(optional) z19- (also has icon z17-)
# man_made-cairn # caption(optional) z17- (also has icon z17-)
# man_made-survey_point # caption(optional) z15- (also has icon z14-)
# man_made-telescope # caption(optional) z18- (also has icon z18-)
# man_made-telescope-optical # caption(optional) z17- (also has icon z17-)
# power-substation # caption(optional) z18- (also has icon z17-, area z13-)
# tourism-information # caption(optional) z15- (also has icon z15-)
# tourism-information-board # caption(optional) z15- (also has icon z15-)

View File

@@ -294,6 +294,7 @@ area|z14-[landuse=cemetery],
area|z14-[amenity=university],
area|z15-[leisure=stadium],
area|z15-[amenity=parking],
area|z15-[amenity=car_pooling],
{fill-opacity: 1;}
/* 7.1 Industrial */
@@ -385,8 +386,10 @@ area|z14-[landuse=farmyard],
/* Parking */
area|z15-[amenity=parking],
area|z15-[amenity=car_pooling],
{fill-color: @parking;fill-opacity: 1;}
area|z17-[amenity=parking],
area|z17-[amenity=car_pooling],
{fill-color: @parking_l;fill-opacity: 1;}
area|z15-[amenity=parking][location=underground],

View File

@@ -600,6 +600,7 @@ node|z14-[amenity=charging_station][motorcar?][capacity?],
node|z15-[amenity=sanitary_dump_station],
node|z16-[amenity=charging_station],
node|z16-[amenity=parking],
node|z16-[amenity=car_pooling],
area|z16-[landuse=garages],
node|z16-[tourism=caravan_site],
node|z17-[amenity=car_wash],
@@ -732,9 +733,13 @@ node|z18-[amenity=water_point][drinking_water=not],
node|z15-[amenity=parking],
{icon-image: parking-m.svg;icon-min-distance: 10;font-size: 12.5;}
node|z15-[amenity=car_pooling],
{icon-image: parking-pooling-m.svg;icon-min-distance: 10;font-size: 12.5;}
node|z17[amenity=parking],
node|z17[amenity=car_pooling],
{icon-min-distance: 15;font-size: 13.75;}
node|z18-[amenity=parking],
node|z18-[amenity=car_pooling],
{font-size: 14.5;}
node|z15-[amenity=parking][location=underground],

View File

@@ -14,6 +14,7 @@
# - BG-top: water (linear and areal)
# - BG-by-size: landcover areas sorted by their size
amenity-car_pooling # area z15- (also has icon z15-, caption(optional) z16-)
amenity-motorcycle_parking # area z17- (also has icon z17-)
amenity-parking # area z15- (also has icon z15-, caption(optional) z16-)
amenity-parking-fee # area z15- (also has icon z15-, caption(optional) z16-)

View File

@@ -234,6 +234,7 @@ amenity-sanitary_dump_station # icon z15- (also has captio
shop-caravan # icon z17-
=== 2600
amenity-car_pooling # icon z15- (also has caption(optional) z16-, area z15-)
amenity-parking # icon z15- (also has caption(optional) z16-, area z15-)
amenity-parking-fee # icon z15- (also has caption(optional) z16-, area z15-)
amenity-parking-multi-storey # icon z15- (also has caption(optional) z16-, area z15-)
@@ -819,6 +820,7 @@ entrance-main # icon z18- (also has captio
# amenity-sanitary_dump_station # caption(optional) z15- (also has icon z15-)
# === -7400
# amenity-car_pooling # caption(optional) z16- (also has icon z15-, area z15-)
# amenity-parking # caption(optional) z16- (also has icon z15-, area z15-)
# amenity-parking-fee # caption(optional) z16- (also has icon z15-, area z15-)
# amenity-parking-multi-storey # caption(optional) z16- (also has icon z15-, area z15-)

File diff suppressed because it is too large Load Diff

View File

@@ -147,6 +147,8 @@ set(SRC
osm_o5m_source.hpp
osm_source.cpp
osm_xml_source.hpp
panoramax_collector.cpp
panoramax_collector.hpp
place_processor.cpp
place_processor.hpp
platform_helpers.cpp

View File

@@ -124,17 +124,8 @@ void RepresentationLayer::Handle(FeatureBuilder & fb)
void RepresentationLayer::HandleArea(FeatureBuilder & fb, FeatureBuilderParams const & params)
{
if (CanBeArea(params))
{
LayerBase::Handle(fb);
fb.SetParams(params);
}
else if (CanBePoint(params))
{
// CanBePoint ignores exceptional types from TypeAlwaysExists / IsUsefulNondrawableType.
auto featurePoint = MakePoint(fb);
LayerBase::Handle(featurePoint);
}
LayerBase::Handle(fb);
fb.SetParams(params);
}
// static

View File

@@ -10,6 +10,7 @@
#include "generator/mini_roundabout_transformer.hpp"
#include "generator/node_mixer.hpp"
#include "generator/osm2type.hpp"
#include "generator/panoramax_collector.hpp"
#include "generator/region_meta.hpp"
#include "routing/speed_camera_prohibition.hpp"
@@ -68,6 +69,9 @@ void CountryFinalProcessor::Process()
if (!m_isolinesPath.empty())
AddIsolines();
LOG(LINFO, ("Enriching with Panoramax data..."));
EnrichPanoramax();
// DropProhibitedSpeedCameras();
LOG(LINFO, ("Processing building parts..."));
ProcessBuildingParts();
@@ -293,6 +297,50 @@ void CountryFinalProcessor::AddAddresses()
LOG(LINFO, ("Total addresses:", totalStats));
}
void CountryFinalProcessor::EnrichPanoramax()
{
if (m_panoramaxFilename.empty() || !Platform::IsFileExistsByFullPath(m_panoramaxFilename))
{
LOG(LINFO, ("Panoramax data not available, skipping enrichment"));
return;
}
LOG(LINFO, ("Enriching roads with Panoramax imagery data from:", m_panoramaxFilename));
// Load Panoramax imagery data
PanoramaxCollector collector;
if (!collector.LoadImageryData(m_panoramaxFilename, ""))
{
LOG(LWARNING, ("Failed to load Panoramax data"));
return;
}
// Enrich roads in each MWM
ForEachMwmTmp(m_temporaryMwmPath, [&](auto const & name, auto const & path)
{
if (!IsCountry(name))
return;
LOG(LINFO, ("Enriching Panoramax for:", name));
std::vector<FeatureBuilder> features;
ForEachFeatureRawFormat<serialization_policy::MaxAccuracy>(
path, [&](FeatureBuilder && fb, uint64_t) {
collector.EnrichRoad(fb);
features.emplace_back(std::move(fb));
});
// Rewrite the file with enriched features
FeatureBuilderWriter<serialization_policy::MaxAccuracy> writer(path, FileWriter::Op::OP_WRITE_TRUNCATE);
for (auto & fb : features)
writer.Write(fb);
LOG(LINFO, (name, "done"));
});
LOG(LINFO, ("Panoramax enrichment complete:", DebugPrint(collector.GetStats())));
}
void CountryFinalProcessor::ProcessCoastline()
{
/// @todo We can remove MinSize at all.

View File

@@ -26,6 +26,7 @@ public:
void SetAddressesDir(std::string const & dir) { m_addressPath = dir; }
void SetCityBoundariesFiles(std::string const & collectorFile) { m_boundariesCollectorFile = collectorFile; }
void SetPanoramaxFile(std::string const & filename) { m_panoramaxFilename = filename; }
// FinalProcessorIntermediateMwmInterface overrides:
void Process() override;
@@ -39,6 +40,7 @@ private:
void AddFakeNodes();
void AddIsolines();
void AddAddresses();
void EnrichPanoramax();
void DropProhibitedSpeedCameras();
// void Finish();
@@ -54,6 +56,7 @@ private:
std::string m_fakeNodesFilename;
std::string m_miniRoundaboutsFilename;
std::string m_addrInterpolFilename;
std::string m_panoramaxFilename;
std::string m_hierarchySrcFilename;

View File

@@ -42,6 +42,9 @@ struct GenerateInfo
// External folders with additional preprocessed data (isolines, addresses).
std::string m_isolinesDir, m_addressesDir;
// Panoramax imagery data file
std::string m_panoramaxFilename;
// Current generated file name if --output option is defined.
std::string m_fileName;

View File

@@ -107,6 +107,7 @@ DEFINE_string(nodes_list_path, "",
DEFINE_bool(generate_isolines_info, false, "Generate the isolines info section");
DEFINE_string(isolines_path, "", "Path to isolines directory. If set, adds isolines linear features.");
DEFINE_string(addresses_path, "", "Path to addresses directory. If set, adds addr:interpolation features.");
DEFINE_string(panoramax_file, "", "Path to Panoramax imagery coords file. If set, enriches roads with street-level imagery availability.");
// Routing.
DEFINE_bool(make_routing_index, false, "Make sections with the routing information.");
@@ -243,6 +244,7 @@ MAIN_WITH_ERROR_HANDLING([](int argc, char ** argv)
genInfo.m_complexHierarchyFilename = FLAGS_complex_hierarchy_data;
genInfo.m_isolinesDir = FLAGS_isolines_path;
genInfo.m_addressesDir = FLAGS_addresses_path;
genInfo.m_panoramaxFilename = FLAGS_panoramax_file;
// Use merged style.
GetStyleReader().SetCurrentStyle(MapStyleMerged);

View File

@@ -0,0 +1,157 @@
#include "generator/panoramax_collector.hpp"
#include "indexer/feature_meta.hpp"
#include "indexer/ftypes_matcher.hpp"
#include "geometry/mercator.hpp"
#include "base/assert.hpp"
#include "base/logging.hpp"
#include <cstdint>
#include <fstream>
#include <sstream>
namespace generator
{
PanoramaxCollector::PanoramaxCollector() = default;
bool PanoramaxCollector::LoadImageryData(std::string const & coordsFilePath, std::string const & /* tilesDir */)
{
LOG(LINFO, ("Loading Panoramax imagery from:", coordsFilePath));
std::ifstream file(coordsFilePath, std::ios::binary);
if (!file.is_open())
{
LOG(LWARNING, ("Failed to open Panoramax coords file:", coordsFilePath));
return false;
}
// Read header
uint32_t version;
uint64_t count;
file.read(reinterpret_cast<char*>(&version), sizeof(version));
file.read(reinterpret_cast<char*>(&count), sizeof(count));
if (version != 1)
{
LOG(LWARNING, ("Unsupported Panoramax coords file version:", version));
return false;
}
LOG(LINFO, ("Loading", count, "Panoramax imagery points..."));
// Read coordinates and build spatial index
std::vector<ImageryPoint> points;
points.reserve(count);
for (uint64_t i = 0; i < count; ++i)
{
double lat, lon;
file.read(reinterpret_cast<char*>(&lat), sizeof(lat));
file.read(reinterpret_cast<char*>(&lon), sizeof(lon));
// Convert to Mercator coordinates
m2::PointD mercPt = mercator::FromLatLon(lat, lon);
points.emplace_back(mercPt);
if ((i + 1) % 500000 == 0)
LOG(LINFO, ("Loaded", i + 1, "/", count, "points"));
}
if (!file)
{
LOG(LWARNING, ("Error reading Panoramax coords file"));
return false;
}
file.close();
LOG(LINFO, ("Building spatial index for", points.size(), "points..."));
// Build spatial index
for (auto const & pt : points)
m_imageryTree.Add(pt);
m_stats.m_totalImageryPoints = static_cast<uint32_t>(points.size());
LOG(LINFO, ("Panoramax data loaded:", m_stats.m_totalImageryPoints, "imagery points"));
return true;
}
bool PanoramaxCollector::EnrichRoad(feature::FeatureBuilder & fb)
{
// Only process roads
static auto const & isRoad = ftypes::IsWayChecker::Instance();
if (!isRoad(fb.GetTypes()))
return false;
m_stats.m_totalRoads++;
// Check if road already has Panoramax flag
if (fb.GetMetadata().Has(feature::Metadata::FMD_PANORAMAX))
return false;
// Get road geometry
std::vector<m2::PointD> roadPoints;
fb.ForEachPoint([&roadPoints](m2::PointD const & pt) {
roadPoints.push_back(pt);
});
if (roadPoints.empty())
return false;
// Calculate road bounding box
m2::RectD roadBBox;
for (auto const & pt : roadPoints)
roadBBox.Add(pt);
// Expand bounding box by threshold distance in Mercator units
auto const center = roadBBox.Center();
auto const inflateRect = mercator::RectByCenterXYAndSizeInMeters(center, kDistanceThresholdM);
roadBBox.Inflate(inflateRect.SizeX() / 2.0, inflateRect.SizeY() / 2.0);
// Query imagery tree for nearby points
bool hasImagery = false;
m_imageryTree.ForEachInRect(roadBBox, [&](ImageryPoint const & imgPt) {
if (hasImagery)
return; // Already found, early exit
// Check distance to each road point
for (auto const & roadPt : roadPoints)
{
double const distM = mercator::DistanceOnEarth(roadPt, imgPt.m_point);
if (distM <= kDistanceThresholdM)
{
hasImagery = true;
return;
}
}
});
if (hasImagery)
{
fb.GetMetadata().Set(feature::Metadata::FMD_PANORAMAX, "yes");
m_stats.m_roadsWithImagery++;
return true;
}
return false;
}
std::string DebugPrint(PanoramaxCollector::Stats const & s)
{
std::ostringstream out;
out << "PanoramaxCollector::Stats {"
<< " totalRoads: " << s.m_totalRoads
<< ", roadsWithImagery: " << s.m_roadsWithImagery
<< " (" << (s.m_totalRoads > 0 ? (s.m_roadsWithImagery * 100.0 / s.m_totalRoads) : 0) << "%)"
<< ", totalImageryPoints: " << s.m_totalImageryPoints
<< " }";
return out.str();
}
} // namespace generator

View File

@@ -0,0 +1,72 @@
#pragma once
#include "generator/feature_builder.hpp"
#include "geometry/point2d.hpp"
#include "geometry/tree4d.hpp"
#include "base/geo_object_id.hpp"
#include <string>
#include <vector>
namespace generator
{
/// Enriches road features with Panoramax street-level imagery availability flag.
/// Loads Panoramax imagery coordinates from tile index and marks roads within threshold distance.
class PanoramaxCollector
{
public:
// Distance threshold for matching roads to imagery (meters)
static double constexpr kDistanceThresholdM = 20.0;
/// ImageryPoint represents a single point where street-level imagery exists
struct ImageryPoint
{
m2::PointD m_point; // Mercator coordinates
ImageryPoint() = default;
explicit ImageryPoint(m2::PointD const & pt) : m_point(pt) {}
m2::RectD GetLimitRect() const { return m2::RectD(m_point, m_point); }
};
/// Statistics for debugging/logging
struct Stats
{
uint32_t m_totalRoads = 0;
uint32_t m_roadsWithImagery = 0;
uint32_t m_totalImageryPoints = 0;
uint32_t m_tilesProcessed = 0;
friend std::string DebugPrint(Stats const & s);
};
PanoramaxCollector();
/// Load Panoramax imagery data from tile directory
/// @param tileIndexPath Path to tile_index.json
/// @param tilesDir Directory containing .mvt tiles
/// @return true if data loaded successfully
bool LoadImageryData(std::string const & tileIndexPath, std::string const & tilesDir);
/// Check if a road has nearby imagery and enrich it
/// @param fb FeatureBuilder for a road segment
/// @return true if imagery was found within threshold
bool EnrichRoad(feature::FeatureBuilder & fb);
Stats const & GetStats() const { return m_stats; }
private:
/// Spatial index of imagery points
m4::Tree<ImageryPoint> m_imageryTree;
/// Statistics
Stats m_stats;
/// Decode an MVT tile and extract imagery coordinates
std::vector<m2::PointD> DecodeMVTTile(std::string const & tilePath,
int tileX, int tileY, int zoom);
};
} // namespace generator

View File

@@ -182,6 +182,7 @@ RawGenerator::FinalProcessorPtr RawGenerator::CreateCountryFinalProcessor(Affili
auto finalProcessor = std::make_shared<CountryFinalProcessor>(affiliations, m_genInfo.m_tmpDir, m_threadsCount);
finalProcessor->SetIsolinesDir(m_genInfo.m_isolinesDir);
finalProcessor->SetAddressesDir(m_genInfo.m_addressesDir);
finalProcessor->SetPanoramaxFile(m_genInfo.m_panoramaxFilename);
finalProcessor->SetMiniRoundabouts(m_genInfo.GetIntermediateFileName(MINI_ROUNDABOUTS_FILENAME));
finalProcessor->SetAddrInterpolation(m_genInfo.GetIntermediateFileName(ADDR_INTERPOL_FILENAME));
if (addAds)

View File

@@ -125,27 +125,35 @@ final class MapTemplateBuilder {
}
private class func setupMuteAndRedirectButtons(template: CPMapTemplate) {
let muteButton = buildBarButton(type: .mute) { _ in
MWMTextToSpeech.setTTSEnabled(false)
setupUnmuteAndRedirectButtons(template: template)
}
let redirectButton = buildBarButton(type: .redirectRoute) { _ in
let listTemplate = ListTemplateBuilder.buildListTemplate(for: .history)
CarPlayService.shared.pushTemplate(listTemplate, animated: true)
}
template.leadingNavigationBarButtons = [muteButton, redirectButton]
if MWMTextToSpeech.isTTSEnabled() {
let muteButton = buildBarButton(type: .mute) { _ in
MWMTextToSpeech.tts().active = false
setupUnmuteAndRedirectButtons(template: template)
}
template.leadingNavigationBarButtons = [muteButton, redirectButton]
} else {
template.leadingNavigationBarButtons = [redirectButton]
}
}
private class func setupUnmuteAndRedirectButtons(template: CPMapTemplate) {
let unmuteButton = buildBarButton(type: .unmute) { _ in
MWMTextToSpeech.setTTSEnabled(true)
setupMuteAndRedirectButtons(template: template)
}
let redirectButton = buildBarButton(type: .redirectRoute) { _ in
let listTemplate = ListTemplateBuilder.buildListTemplate(for: .history)
CarPlayService.shared.pushTemplate(listTemplate, animated: true)
}
template.leadingNavigationBarButtons = [unmuteButton, redirectButton]
if MWMTextToSpeech.isTTSEnabled() {
let unmuteButton = buildBarButton(type: .unmute) { _ in
MWMTextToSpeech.tts().active = true
setupMuteAndRedirectButtons(template: template)
}
template.leadingNavigationBarButtons = [unmuteButton, redirectButton]
} else {
template.leadingNavigationBarButtons = [redirectButton]
}
}
// MARK: - CPMapButton builder
@@ -159,6 +167,17 @@ final class MapTemplateBuilder {
case .zoomOut:
button.image = UIImage(systemName: "minus")
}
// Remove code below once Apple has fixed its issue with the button background
if #unavailable(iOS 26) {
switch type {
case .startPanning:
button.focusedImage = UIImage(systemName: "smallcircle.filled.circle.fill")
case .zoomIn:
button.focusedImage = UIImage(systemName: "plus.circle.fill")
case .zoomOut:
button.focusedImage = UIImage(systemName: "minus.circle.fill")
}
}
return button
}

View File

@@ -12,8 +12,10 @@ final class SettingsTemplateBuilder {
private class func buildGridButtons() -> [CPGridButton] {
let options = RoutingOptions()
return [createUnpavedButton(options: options),
createTollButton(options: options),
return [createTollButton(options: options),
createUnpavedButton(options: options),
createPavedButton(options: options),
createMotorwayButton(options: options),
createFerryButton(options: options),
createStepsButton(options: options),
createSpeedcamButton()]
@@ -21,7 +23,7 @@ final class SettingsTemplateBuilder {
// MARK: - CPGridButton builders
private class func createTollButton(options: RoutingOptions) -> CPGridButton {
var tollIconName = "options.tolls"
var tollIconName = "tolls.circle"
if options.avoidToll { tollIconName += ".slash" }
let configuration = UIImage.SymbolConfiguration(textStyle: .title1)
var image = UIImage(named: tollIconName, in: nil, with: configuration)!
@@ -39,8 +41,8 @@ final class SettingsTemplateBuilder {
}
private class func createUnpavedButton(options: RoutingOptions) -> CPGridButton {
var unpavedIconName = "options.unpaved"
if options.avoidDirty { unpavedIconName += ".slash" }
var unpavedIconName = "unpaved.circle"
if options.avoidDirty && !options.avoidPaved { unpavedIconName += ".slash" }
let configuration = UIImage.SymbolConfiguration(textStyle: .title1)
var image = UIImage(named: unpavedIconName, in: nil, with: configuration)!
if #unavailable(iOS 26) {
@@ -49,15 +51,59 @@ final class SettingsTemplateBuilder {
}
let unpavedButton = CPGridButton(titleVariants: [L("avoid_unpaved")], image: image) { _ in
options.avoidDirty = !options.avoidDirty
if options.avoidDirty {
options.avoidPaved = false
}
options.save()
CarPlayService.shared.updateRouteAfterChangingSettings()
CarPlayService.shared.popTemplate(animated: true)
}
unpavedButton.isEnabled = !options.avoidPaved
return unpavedButton
}
private class func createPavedButton(options: RoutingOptions) -> CPGridButton {
var pavedIconName = "paved.circle"
if options.avoidPaved && !options.avoidDirty { pavedIconName += ".slash" }
let configuration = UIImage.SymbolConfiguration(textStyle: .title1)
var image = UIImage(named: pavedIconName, in: nil, with: configuration)!
if #unavailable(iOS 26) {
image = image.withTintColor(.white, renderingMode: .alwaysTemplate)
image = UIImage(data: image.pngData()!)!.withRenderingMode(.alwaysTemplate)
}
let pavedButton = CPGridButton(titleVariants: [L("avoid_paved")], image: image) { _ in
options.avoidPaved = !options.avoidPaved
if options.avoidPaved {
options.avoidDirty = false
}
options.save()
CarPlayService.shared.updateRouteAfterChangingSettings()
CarPlayService.shared.popTemplate(animated: true)
}
pavedButton.isEnabled = !options.avoidDirty
return pavedButton
}
private class func createMotorwayButton(options: RoutingOptions) -> CPGridButton {
var motorwayIconName = "motorways.circle"
if options.avoidMotorway { motorwayIconName += ".slash" }
let configuration = UIImage.SymbolConfiguration(textStyle: .title1)
var image = UIImage(named: motorwayIconName, in: nil, with: configuration)!
if #unavailable(iOS 26) {
image = image.withTintColor(.white, renderingMode: .alwaysTemplate)
image = UIImage(data: image.pngData()!)!.withRenderingMode(.alwaysTemplate)
}
let motorwayButton = CPGridButton(titleVariants: [L("avoid_motorways")], image: image) { _ in
options.avoidMotorway = !options.avoidMotorway
options.save()
CarPlayService.shared.updateRouteAfterChangingSettings()
CarPlayService.shared.popTemplate(animated: true)
}
return motorwayButton
}
private class func createFerryButton(options: RoutingOptions) -> CPGridButton {
var ferryIconName = "options.ferries"
var ferryIconName = "ferries.circle"
if options.avoidFerry { ferryIconName += ".slash" }
let configuration = UIImage.SymbolConfiguration(textStyle: .title1)
var image = UIImage(named: ferryIconName, in: nil, with: configuration)!
@@ -75,7 +121,7 @@ final class SettingsTemplateBuilder {
}
private class func createStepsButton(options: RoutingOptions) -> CPGridButton {
var stepsIconName = "options.steps"
var stepsIconName = "steps.circle"
if options.avoidSteps { stepsIconName += ".slash" }
let configuration = UIImage.SymbolConfiguration(textStyle: .title1)
var image = UIImage(named: stepsIconName, in: nil, with: configuration)!
@@ -93,7 +139,7 @@ final class SettingsTemplateBuilder {
}
private class func createSpeedcamButton() -> CPGridButton {
var speedcamIconName = "options.speedcamera"
var speedcamIconName = "speedcamera"
let isSpeedCamActivated = CarPlayService.shared.isSpeedCamActivated
if !isSpeedCamActivated { speedcamIconName += ".slash" }
let configuration = UIImage.SymbolConfiguration(textStyle: .title1)

View File

@@ -6,7 +6,8 @@ typedef NS_ENUM(NSInteger, MWMRoadType) {
MWMRoadTypeDirty,
MWMRoadTypeFerry,
MWMRoadTypeMotorway,
MWMRoadTypeSteps
MWMRoadTypeSteps,
MWMRoadTypePaved
};
typedef void (^MWMImageHeightBlock)(UIImage *, NSString *, NSString *);

View File

@@ -592,6 +592,9 @@ char const *kRenderAltitudeImagesQueueLabel = "mapsme.mwmrouter.renderAltitudeIm
case MWMRoadTypeDirty:
options.avoidDirty = YES;
break;
case MWMRoadTypePaved:
options.avoidPaved = YES;
break;
case MWMRoadTypeFerry:
options.avoidFerry = YES;
break;

View File

@@ -7,6 +7,7 @@ NS_SWIFT_NAME(RoutingOptions)
@property(nonatomic) BOOL avoidToll;
@property(nonatomic) BOOL avoidDirty;
@property(nonatomic) BOOL avoidPaved;
@property(nonatomic) BOOL avoidFerry;
@property(nonatomic) BOOL avoidMotorway;
@property(nonatomic) BOOL avoidSteps;

View File

@@ -35,6 +35,14 @@
[self setOption:(routing::RoutingOptions::Road::Dirty) enabled:avoid];
}
- (BOOL)avoidPaved {
return _options.Has(routing::RoutingOptions::Road::Paved);
}
- (void)setAvoidPaved:(BOOL)avoid {
[self setOption:(routing::RoutingOptions::Road::Paved) enabled:avoid];
}
- (BOOL)avoidFerry {
return _options.Has(routing::RoutingOptions::Road::Ferry);
}
@@ -60,7 +68,7 @@
}
- (BOOL)hasOptions {
return self.avoidToll || self.avoidDirty || self.avoidFerry || self.avoidMotorway || self.avoidSteps;
return self.avoidToll || self.avoidDirty || self.avoidPaved|| self.avoidFerry || self.avoidMotorway || self.avoidSteps;
}
- (void)save {
@@ -80,8 +88,7 @@
return NO;
}
MWMRoutingOptions *another = (MWMRoutingOptions *)object;
return another.avoidToll == self.avoidToll && another.avoidDirty == self.avoidDirty &&
another.avoidFerry == self.avoidFerry && another.avoidMotorway == self.avoidMotorway && another.avoidSteps == self.avoidSteps;
return another.avoidToll == self.avoidToll && another.avoidDirty == self.avoidDirty && another.avoidPaved == self.avoidPaved && another.avoidFerry == self.avoidFerry && another.avoidMotorway == self.avoidMotorway && another.avoidSteps == self.avoidSteps;
}
@end

View File

@@ -5,7 +5,7 @@
},
"symbols" : [
{
"filename" : "options.steps.slash.svg",
"filename" : "ferries.circle.slash.svg",
"idiom" : "universal"
}
]

View File

@@ -0,0 +1,121 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--Generator: Apple Native CoreSVG 341-->
<!DOCTYPE svg
PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 3300 2200">
<!--glyph: "", point size: 100.0, font version: "21.0d6e2", template writer version: "138.0.0"-->
<style>.defaults {-sfsymbols-variable-value-mode:color;-sfsymbols-draw-reverses-motion-groups:true}
.monochrome-0 {-sfsymbols-motion-group:1;-sfsymbols-layer-tags:-2d1e265917a563be -3971741db92558f0 _enclosure.stroke circle}
.monochrome-1 {-sfsymbols-motion-group:1;-sfsymbols-layer-tags:-2d1e265917a563be -3971741db92558f0 55194837de271852}
.monochrome-2 {opacity:0.0;-sfsymbols-clear-behind:true;-sfsymbols-motion-group:0;-sfsymbols-layer-tags:-3971741db92558f0 _slash}
.monochrome-3 {-sfsymbols-motion-group:0;-sfsymbols-layer-tags:-3971741db92558f0 _slash}
.multicolor-0:tintColor {-sfsymbols-motion-group:1;-sfsymbols-layer-tags:-2d1e265917a563be -3971741db92558f0 _enclosure.stroke circle}
.multicolor-1:tintColor {-sfsymbols-motion-group:1;-sfsymbols-layer-tags:-2d1e265917a563be -3971741db92558f0 55194837de271852}
.multicolor-2:tintColor {opacity:0.0;-sfsymbols-clear-behind:true;-sfsymbols-motion-group:0;-sfsymbols-layer-tags:-3971741db92558f0 _slash}
.multicolor-3:tintColor {-sfsymbols-motion-group:0;-sfsymbols-layer-tags:-3971741db92558f0 _slash}
.hierarchical-0:secondary {-sfsymbols-motion-group:1;-sfsymbols-layer-tags:-2d1e265917a563be -3971741db92558f0 _enclosure.stroke circle}
.hierarchical-1:secondary {-sfsymbols-motion-group:1;-sfsymbols-layer-tags:-2d1e265917a563be -3971741db92558f0 55194837de271852}
.hierarchical-2:primary {opacity:0.0;-sfsymbols-clear-behind:true;-sfsymbols-motion-group:0;-sfsymbols-layer-tags:-3971741db92558f0 _slash}
.hierarchical-3:primary {-sfsymbols-motion-group:0;-sfsymbols-layer-tags:-3971741db92558f0 _slash}
.SFSymbolsPreviewWireframe {fill:none;opacity:1.0;stroke:black;stroke-width:0.5}
</style>
<g id="Notes">
<rect height="2200" id="artboard" style="fill:white;opacity:1" width="3300" x="0" y="0"/>
<line style="fill:none;stroke:black;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="292" y2="292"/>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;font-weight:bold;" transform="matrix(1 0 0 1 263 322)">Weight/Scale Variations</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 559.711 322)">Ultralight</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 856.422 322)">Thin</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 1153.13 322)">Light</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 1449.84 322)">Regular</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 1746.56 322)">Medium</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 2043.27 322)">Semibold</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 2339.98 322)">Bold</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 2636.69 322)">Heavy</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:middle;" transform="matrix(1 0 0 1 2933.4 322)">Black</text>
<line style="fill:none;stroke:black;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="1903" y2="1903"/>
<g transform="matrix(0.2 0 0 0.2 263 1933)">
<path d="m46.2402 4.15039c21.7773 0 39.4531-17.627 39.4531-39.4043s-17.6758-39.4043-39.4531-39.4043c-21.7285 0-39.4043 17.627-39.4043 39.4043s17.6758 39.4043 39.4043 39.4043Zm0-7.42188c-17.6758 0-31.9336-14.3066-31.9336-31.9824s14.2578-31.9824 31.9336-31.9824 31.9824 14.3066 31.9824 31.9824-14.3066 31.9824-31.9824 31.9824Zm3.61328-17.7734v-28.4668c0-2.24609-1.46484-3.75977-3.71094-3.75977-2.14844 0-3.61328 1.51367-3.61328 3.75977v28.4668c0 2.19727 1.46484 3.71094 3.61328 3.71094 2.24609 0 3.71094-1.51367 3.71094-3.71094Zm-17.8223-10.5957h28.418c2.19727 0 3.71094-1.46484 3.71094-3.61328 0-2.19727-1.51367-3.71094-3.71094-3.71094h-28.418c-2.24609 0-3.75977 1.51367-3.75977 3.71094 0 2.14844 1.51367 3.61328 3.75977 3.61328Z"/>
</g>
<g transform="matrix(0.2 0 0 0.2 281.506 1933)">
<path d="m58.5449 14.5508c27.4902 0 49.8047-22.3145 49.8047-49.8047s-22.3145-49.8047-49.8047-49.8047-49.8047 22.3145-49.8047 49.8047 22.3145 49.8047 49.8047 49.8047Zm0-8.30078c-22.9492 0-41.5039-18.5547-41.5039-41.5039s18.5547-41.5039 41.5039-41.5039 41.5039 18.5547 41.5039 41.5039-18.5547 41.5039-41.5039 41.5039Zm4.05273-23.0957v-36.9141c0-2.49023-1.70898-4.19922-4.15039-4.19922-2.39258 0-4.05273 1.70898-4.05273 4.19922v36.9141c0 2.44141 1.66016 4.15039 4.05273 4.15039 2.44141 0 4.15039-1.66016 4.15039-4.15039Zm-22.5586-14.4043h36.9629c2.44141 0 4.15039-1.61133 4.15039-4.00391 0-2.44141-1.70898-4.15039-4.15039-4.15039h-36.9629c-2.49023 0-4.15039 1.70898-4.15039 4.15039 0 2.39258 1.66016 4.00391 4.15039 4.00391Z"/>
</g>
<g transform="matrix(0.2 0 0 0.2 304.924 1933)">
<path d="m74.8535 28.3203c35.1074 0 63.623-28.4668 63.623-63.5742s-28.5156-63.623-63.623-63.623-63.5742 28.5156-63.5742 63.623 28.4668 63.5742 63.5742 63.5742Zm0-9.08203c-30.127 0-54.4922-24.3652-54.4922-54.4922s24.3652-54.4922 54.4922-54.4922 54.4922 24.3652 54.4922 54.4922-24.3652 54.4922-54.4922 54.4922Zm4.44336-30.3223v-48.4863c0-2.73438-1.85547-4.63867-4.54102-4.63867-2.58789 0-4.44336 1.9043-4.44336 4.63867v48.4863c0 2.68555 1.85547 4.58984 4.44336 4.58984 2.68555 0 4.54102-1.85547 4.54102-4.58984Zm-28.7109-19.7754h48.4863c2.68555 0 4.58984-1.80664 4.58984-4.39453 0-2.73438-1.85547-4.58984-4.58984-4.58984h-48.4863c-2.73438 0-4.58984 1.85547-4.58984 4.58984 0 2.58789 1.85547 4.39453 4.58984 4.39453Z"/>
</g>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;font-weight:bold;" transform="matrix(1 0 0 1 263 1953)">Design Variations</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 1971)">Symbols are supported in up to nine weights and three scales.</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 1989)">For optimal layout with text and other symbols, vertically align</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 2007)">symbols with the adjacent text.</text>
<line style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="776" x2="776" y1="1919" y2="1933"/>
<g transform="matrix(0.2 0 0 0.2 776 1933)">
<path d="m16.5527 0.78125c2.58789 0 3.85742-0.976562 4.78516-3.71094l20.5566-57.5195h0.244141l20.6055 57.5195c0.927734 2.73438 2.19727 3.71094 4.73633 3.71094 2.58789 0 4.24805-1.5625 4.24805-4.00391 0-0.830078-0.146484-1.61133-0.537109-2.63672l-22.9004-60.9863c-1.12305-2.97852-3.125-4.49219-6.25-4.49219-3.02734 0-5.07812 1.46484-6.15234 4.44336l-22.9004 61.084c-0.390625 1.02539-0.537109 1.80664-0.537109 2.63672 0 2.44141 1.5625 3.95508 4.10156 3.95508Zm10.2051-20.9473h30.6641c2.00195 0 3.66211-1.66016 3.66211-3.66211 0-2.05078-1.66016-3.66211-3.66211-3.66211h-30.6641c-2.00195 0-3.66211 1.61133-3.66211 3.66211 0 2.00195 1.66016 3.66211 3.66211 3.66211Z"/>
</g>
<line style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="792.836" x2="792.836" y1="1919" y2="1933"/>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;font-weight:bold;" transform="matrix(1 0 0 1 776 1953)">Margins</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 776 1971)">Leading and trailing margins on the left and right side of each symbol</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 776 1989)">can be adjusted by modifying the x-location of the margin guidelines.</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 776 2007)">Modifications are automatically applied proportionally to all</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 776 2025)">scales and weights.</text>
<g transform="matrix(0.2 0 0 0.2 1289 1933)">
<path d="m14.209 13.1348 7.86133 7.86133c4.29688 4.39453 9.32617 4.10156 13.8672-1.02539l60.6934-68.2129-4.88281-4.88281-60.2539 67.6758c-1.80664 1.95312-3.4668 2.44141-5.81055 0.0976562l-5.17578-5.12695c-2.29492-2.29492-1.80664-3.95508 0.195312-5.81055l67.4805-62.1582-4.88281-4.83398-68.0664 62.5977c-4.98047 4.58984-5.32227 9.47266-1.02539 13.8184Zm44.873-97.4609c-2.05078 2.00195-2.24609 4.88281-1.07422 6.78711 1.12305 1.80664 3.4668 3.02734 6.5918 2.24609 5.85938-1.66016 12.5977-2.39258 18.8965 0.927734l-2.68555 7.12891c-1.61133 4.00391-0.732422 6.88477 1.70898 9.42383l10.2539 10.3027c2.34375 2.39258 4.54102 2.44141 7.08008 1.95312l4.44336-0.732422 2.58789 2.53906-0.195312 2.24609c-0.0976562 2.29492 0.537109 4.29688 2.7832 6.49414l3.36914 3.32031c2.29492 2.29492 5.51758 2.49023 7.8125 0.195312l12.9883-13.0371c2.29492-2.34375 2.14844-5.37109-0.195312-7.66602l-3.41797-3.41797c-2.19727-2.19727-4.05273-3.02734-6.34766-2.88086l-2.34375 0.244141-2.44141-2.44141 1.02539-4.6875c0.634766-2.73438-0.244141-4.98047-2.88086-7.61719l-11.2793-11.1816c-12.9395-12.8418-35.5957-11.0352-46.6797-0.146484Zm7.08008 2.05078c8.78906-6.39648 25.9766-5.66406 33.6914 1.95312l12.3047 12.207c1.02539 1.02539 1.2207 1.80664 0.927734 3.32031l-1.46484 6.64062 6.73828 6.68945 4.39453-0.244141c1.12305-0.0488281 1.51367 0.0488281 2.34375 0.878906l2.53906 2.49023-10.8398 10.8398-2.49023-2.49023c-0.830078-0.878906-0.976562-1.2207-0.927734-2.39258l0.292969-4.3457-6.68945-6.73828-6.83594 1.17188c-1.41602 0.292969-2.05078 0.195312-3.17383-0.878906l-8.93555-8.88672c-1.07422-1.02539-1.17188-1.70898-0.488281-3.36914l4.58984-11.4746c-6.10352-6.34766-17.041-7.51953-25.5859-4.58984-0.683594 0.244141-0.927734-0.390625-0.390625-0.78125Z"/>
</g>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;font-weight:bold;" transform="matrix(1 0 0 1 1289 1953)">Exporting</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 1289 1971)">Symbols should be outlined when exporting to ensure the</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 1289 1989)">design is preserved when submitting to Xcode.</text>
<text id="template-version" style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:end;" transform="matrix(1 0 0 1 3036 1933)">Template v.7.0</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:end;" transform="matrix(1 0 0 1 3036 1951)">Requires Xcode 17 or greater</text>
<text id="descriptive-name" style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:end;" transform="matrix(1 0 0 1 3036 1969)">Generated from </text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;text-anchor:end;" transform="matrix(1 0 0 1 3036 1987)">Typeset at 100.0 points</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 726)">Small</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 1156)">Medium</text>
<text style="stroke:none;fill:black;font-family:sans-serif;font-size:13;" transform="matrix(1 0 0 1 263 1586)">Large</text>
</g>
<g id="Guides">
<g id="H-reference" style="fill:#27AAE1;stroke:none;" transform="matrix(1 0 0 1 339 696)">
<path d="M0.993654 0L3.63775 0L29.3281-67.1323L30.0303-67.1323L30.0303-70.459L28.1226-70.459ZM11.6885-24.4799L46.9815-24.4799L46.2315-26.7285L12.4385-26.7285ZM55.1196 0L57.7637 0L30.6382-70.459L29.4326-70.459L29.4326-67.1323Z"/>
</g>
<line id="Baseline-S" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="696" y2="696"/>
<line id="Capline-S" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="625.541" y2="625.541"/>
<g id="H-reference" style="fill:#27AAE1;stroke:none;" transform="matrix(1 0 0 1 339 1126)">
<path d="M0.993654 0L3.63775 0L29.3281-67.1323L30.0303-67.1323L30.0303-70.459L28.1226-70.459ZM11.6885-24.4799L46.9815-24.4799L46.2315-26.7285L12.4385-26.7285ZM55.1196 0L57.7637 0L30.6382-70.459L29.4326-70.459L29.4326-67.1323Z"/>
</g>
<line id="Baseline-M" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="1126" y2="1126"/>
<line id="Capline-M" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="1055.54" y2="1055.54"/>
<g id="H-reference" style="fill:#27AAE1;stroke:none;" transform="matrix(1 0 0 1 339 1556)">
<path d="M0.993654 0L3.63775 0L29.3281-67.1323L30.0303-67.1323L30.0303-70.459L28.1226-70.459ZM11.6885-24.4799L46.9815-24.4799L46.2315-26.7285L12.4385-26.7285ZM55.1196 0L57.7637 0L30.6382-70.459L29.4326-70.459L29.4326-67.1323Z"/>
</g>
<line id="Baseline-L" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="1556" y2="1556"/>
<line id="Capline-L" style="fill:none;stroke:#27AAE1;opacity:1;stroke-width:0.5;" x1="263" x2="3036" y1="1485.54" y2="1485.54"/>
<line id="right-margin-Black-S" style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="2982.23" x2="2982.23" y1="600.785" y2="720.121"/>
<line id="left-margin-Black-S" style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="2884.57" x2="2884.57" y1="600.785" y2="720.121"/>
<line id="right-margin-Regular-S" style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="1496.11" x2="1496.11" y1="600.785" y2="720.121"/>
<line id="left-margin-Regular-S" style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="1403.58" x2="1403.58" y1="600.785" y2="720.121"/>
<line id="right-margin-Ultralight-S" style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="603.773" x2="603.773" y1="600.785" y2="720.121"/>
<line id="left-margin-Ultralight-S" style="fill:none;stroke:#00AEEF;stroke-width:0.5;opacity:1.0;" x1="515.649" x2="515.649" y1="600.785" y2="720.121"/>
</g>
<g id="Symbols">
<g id="Black-S" transform="matrix(1 0 0 1 2884.57 696)">
<path class="monochrome-0 multicolor-0:tintColor hierarchical-0:secondary SFSymbolsPreviewWireframe" d="M48.8281 6.73828C72.0215 6.73828 90.8203-12.0605 90.8203-35.2539C90.8203-58.4473 72.0215-77.2461 48.8281-77.2461C25.6348-77.2461 6.83594-58.4473 6.83594-35.2539C6.83594-12.0605 25.6348 6.73828 48.8281 6.73828ZM48.8281-7.42188C33.4473-7.42188 20.9961-19.873 20.9961-35.2539C20.9961-50.6348 33.4473-63.0859 48.8281-63.0859C64.209-63.0859 76.6602-50.6348 76.6602-35.2539C76.6602-19.873 64.209-7.42188 48.8281-7.42188Z" data-clipstroke-keyframes="0 4 0 0.49909934 1.5010297 0 0.24858454 0.2505148 1.749485 0 0.49588796 0.0032113674 1.996659 0 0.7506426 0.7484567 1.251544 0 1 0.49909934 1.5010297"/>
<path class="monochrome-1 multicolor-1:tintColor hierarchical-1:secondary SFSymbolsPreviewWireframe" d="M60.554-14.248C62.8762-14.248 64.4984-13.6712 66.7416-12.3402L67.7413-11.7392C68.3287-11.3878 68.8529-11.0951 69.3512-10.8502L69.4148-10.8314C70.2872-10.5735 70.7853-9.6573 70.5275-8.78493C70.3897-8.31872 70.0549-7.94225 69.6197-7.74786L69.3472-7.65382C68.5836-7.94444 67.8321-8.31134 67.005-8.77694L65.9788-9.3791L65.246-9.81948C63.4148-10.906 62.259-11.3169 60.554-11.3169C59.1982-11.3169 58.2903-10.9939 56.8964-10.0835L55.8714-9.38118C53.3645-7.63685 51.6482-6.92034 48.8298-6.92034C46.2446-6.92034 44.6625-7.50767 42.5097-8.97154L41.6554-9.57321C39.8081-10.8956 38.846-11.3169 37.1056-11.3169C35.6145-11.3169 34.8013-11.1051 33.8515-10.5306L33.1913-10.0948L32.5906-9.67794C32.1787-9.39518 31.8273-9.16908 31.4449-8.94731C30.5234-8.41285 29.5127-7.96628 28.3187-7.59451C27.4628-7.81681 26.9491-8.69089 27.1714-9.54682C27.2921-10.0116 27.6132-10.3924 28.0389-10.5929L28.3172-10.6938C28.9275-10.9284 29.4698-11.1901 29.9744-11.4828L30.5945-11.8674L31.856-12.7329C33.4434-13.7963 34.8244-14.248 37.1056-14.248C39.3814-14.248 40.8095-13.7057 42.8028-12.3474L43.614-11.7756C45.6382-10.3257 46.7419-9.85139 48.8298-9.85139C50.7432-9.85139 51.9105-10.2661 53.6553-11.4188L54.6784-12.1223C56.8457-13.6258 58.3041-14.248 60.554-14.248ZM48.8298-38.6517L73.7438-32.8524L66.4184-15.4602C64.3389-16.657 62.7632-17.179 60.554-17.179C58.5291-17.179 57.1453-16.675 55.3088-15.4783L54.1974-14.7182C52.1365-13.2842 50.9346-12.7825 48.8298-12.7825C46.9317-12.7825 45.847-13.1745 44.1446-14.335L43.3615-14.8876C41.0622-16.5336 39.5883-17.179 37.1056-17.179C34.8244-17.179 33.4434-16.7274 31.856-15.664L31.3044-15.2844L23.9158-32.8524L48.8298-38.6517ZM53.6761-57.2129L59.5787-57.2066C60.2326-57.2066 60.8061-56.7702 60.9805-56.14L66.229-37.153L48.8298-41.2064L31.4262-37.153L36.6791-56.14C36.8535-56.7702 37.427-57.2066 38.0809-57.2066L53.6761-57.2129ZM47.6158-53.6672L39.3333-53.6634C39.1154-53.6634 38.9243-53.5179 38.8662-53.3079L36.9524-46.3905L47.6158-46.3943L47.6158-53.6672ZM50.04-53.6672L50.04-46.3943L60.7072-46.3905L58.7934-53.3079C58.7353-53.5179 58.5442-53.6634 58.3263-53.6634L50.04-53.6672ZM50.7692-63.5063C51.037-63.5063 51.2541-63.2893 51.2541-63.0215L51.247-58.7111L46.4033-58.7111L46.4055-63.0215C46.4055-63.2893 46.6226-63.5063 46.8904-63.5063L50.7692-63.5063Z"/>
<path class="monochrome-2 multicolor-2:tintColor hierarchical-2:primary SFSymbolsPreviewWireframe" d="M92.7999-4.48836C96.451-0.837264 96.451 5.09118 92.7999 8.74227C89.1488 12.3934 83.2204 12.3934 79.5693 8.74227L4.85636-65.9706C1.20527-69.6217 1.20527-75.5502 4.85636-79.2013C8.50745-82.8524 14.4359-82.8524 18.087-79.2013Z" data-clipstroke-keyframes="0 0 0 0.49990463 0.6089134 0 1 0 0.10891342"/>
<path class="monochrome-3 multicolor-3:tintColor hierarchical-3:primary SFSymbolsPreviewWireframe" d="M88.6498-0.338247C90.0104 1.02234 90.0104 3.23158 88.6498 4.59217C87.2892 5.95275 85.08 5.95275 83.7194 4.59217L9.00647-70.1207C7.64588-71.4813 7.64588-73.6906 9.00647-75.0511C10.3671-76.4117 12.5763-76.4117 13.9369-75.0511Z" data-clipstroke-keyframes="0 0 0 0.49988937 0.54707336 0 1 0 0.047073364"/>
</g>
<g id="Regular-S" transform="matrix(1 0 0 1 1403.58 696)">
<path class="monochrome-0 multicolor-0:tintColor hierarchical-0:secondary SFSymbolsPreviewWireframe" d="M46.2402 4.15039C68.0176 4.15039 85.6934-13.4766 85.6934-35.2539C85.6934-57.0312 68.0176-74.6582 46.2402-74.6582C24.5117-74.6582 6.83594-57.0312 6.83594-35.2539C6.83594-13.4766 24.5117 4.15039 46.2402 4.15039ZM46.2402-3.27148C28.5645-3.27148 14.3066-17.5781 14.3066-35.2539C14.3066-52.9297 28.5645-67.2363 46.2402-67.2363C63.916-67.2363 78.2227-52.9297 78.2227-35.2539C78.2227-17.5781 63.916-3.27148 46.2402-3.27148Z" data-clipstroke-keyframes="0 4 0 0.49914446 1.5008684 0 0.24828511 0.25085935 1.7491465 0 0.49580374 0.0033407123 1.9966576 0 0.75060123 0.7485432 1.2514638 0 1 0.49914446 1.5008684"/>
<path class="monochrome-1 multicolor-1:tintColor hierarchical-1:secondary SFSymbolsPreviewWireframe" d="M57.213-15.4768C59.3815-15.4768 60.8964-14.9382 62.9912-13.6953L63.9248-13.134C64.4732-12.8058 64.9628-12.5326 65.4281-12.3038L65.4875-12.2863C66.3022-12.0455 66.7674-11.1899 66.5266-10.3752C66.3979-9.93987 66.0853-9.5883 65.6788-9.40678L65.4244-9.31896C64.7113-9.59035 64.0096-9.93298 63.2371-10.3678L62.2788-10.9301L61.5945-11.3413C59.8845-12.3559 58.8052-12.7397 57.213-12.7397C55.9468-12.7397 55.099-12.438 53.7974-11.5879L52.8402-10.932C50.4991-9.30311 48.8964-8.63401 46.2645-8.63401C43.8503-8.63401 42.3729-9.18248 40.3625-10.5495L39.5648-11.1114C37.8397-12.3463 36.9413-12.7397 35.316-12.7397C33.9236-12.7397 33.1642-12.5419 32.2772-12.0054L31.6608-11.5984L31.0998-11.2092C30.7151-10.9451 30.387-10.734 30.0299-10.5269C29.1694-10.0278 28.2255-9.61075 27.1106-9.26357C26.3113-9.47116 25.8316-10.2874 26.0392-11.0867C26.1519-11.5207 26.4517-11.8763 26.8492-12.0636L27.1091-12.1578C27.679-12.3769 28.1854-12.6213 28.6567-12.8946L29.2358-13.2538L30.4138-14.062C31.8962-15.055 33.1858-15.4768 35.316-15.4768C37.4412-15.4768 38.7749-14.9704 40.6363-13.702L41.3938-13.168C43.284-11.8141 44.3148-11.3711 46.2645-11.3711C48.0513-11.3711 49.1414-11.7584 50.7707-12.8349L51.7261-13.4918C53.75-14.8958 55.1119-15.4768 57.213-15.4768ZM46.2645-38.2658L69.5301-32.8502L62.6894-16.6089C60.7474-17.7265 59.276-18.2139 57.213-18.2139C55.322-18.2139 54.0298-17.7433 52.3148-16.6257L51.2769-15.9159C49.3524-14.5768 48.23-14.1083 46.2645-14.1083C44.492-14.1083 43.479-14.4743 41.8893-15.5581L41.158-16.0741C39.0108-17.6112 37.6344-18.2139 35.316-18.2139C33.1858-18.2139 31.8962-17.7922 30.4138-16.7992L29.8987-16.4446L22.9989-32.8502L46.2645-38.2658ZM50.7902-55.599L56.3022-55.5931C56.9128-55.5931 57.4484-55.1856 57.6113-54.597L62.5125-36.8664L46.2645-40.6515L30.0124-36.8664L34.9177-54.597C35.0806-55.1856 35.6162-55.5931 36.2268-55.5931L50.7902-55.599ZM45.1308-52.2878L37.3963-52.2844C37.1928-52.2843 37.0144-52.1485 36.9601-51.9523L35.1729-45.4926L45.1308-45.4962L45.1308-52.2878ZM47.3947-52.2878L47.3947-45.4962L57.3561-45.4926L55.5689-51.9523C55.5146-52.1485 55.3362-52.2843 55.1327-52.2844L47.3947-52.2878ZM48.0756-61.476C48.3257-61.476 48.5284-61.2733 48.5284-61.0232L48.5218-56.9981L43.9986-56.9981L44.0006-61.0232C44.0006-61.2733 44.2033-61.476 44.4534-61.476L48.0756-61.476Z"/>
<path class="monochrome-2 multicolor-2:tintColor hierarchical-2:primary SFSymbolsPreviewWireframe" d="M87.318-6.06714C90.5994-2.78573 90.5994 2.54245 87.318 5.82386C84.0366 9.10527 78.7084 9.10527 75.427 5.82386L5.2113-64.3918C1.92989-67.6733 1.92989-73.0014 5.2113-76.2828C8.49271-79.5643 13.8209-79.5643 17.1023-76.2828Z" data-clipstroke-keyframes="0 0 0 0.50010777 0.6049547 0 1 0 0.10495472"/>
<path class="monochrome-3 multicolor-3:tintColor hierarchical-3:primary SFSymbolsPreviewWireframe" d="M83.8515-2.60066C85.2197-1.23245 85.2197 0.98917 83.8515 2.35738C82.4833 3.72558 80.2617 3.72558 78.8935 2.35738L8.67778-67.8583C7.30957-69.2265 7.30957-71.4482 8.67778-72.8164C10.046-74.1846 12.2676-74.1846 13.6358-72.8164Z" data-clipstroke-keyframes="0 0 0 0.50020504 0.5497179 0 1 0 0.049717903"/>
</g>
<g id="Ultralight-S" transform="matrix(1 0 0 1 515.649 696)">
<path class="monochrome-0 multicolor-0:tintColor hierarchical-0:secondary SFSymbolsPreviewWireframe" d="M44.0606 1.97072C64.6118 1.97072 81.2886-14.7026 81.2886-35.2539C81.2886-55.8052 64.6118-72.4785 44.0606-72.4785C23.5127-72.4785 6.83594-55.8052 6.83594-35.2539C6.83594-14.7026 23.5127 1.97072 44.0606 1.97072ZM44.0606-0.274438C24.7046-0.274438 9.0391-15.898 9.0391-35.2539C9.0391-54.6099 24.7046-70.2334 44.0606-70.2334C63.4165-70.2334 79.04-54.6099 79.04-35.2539C79.04-15.898 63.4165-0.274438 44.0606-0.274438Z" data-clipstroke-keyframes="0 4 0 0.49911258 1.5011578 0 0.24859153 0.25052106 1.7495481 0 0.49577427 0.0033383023 1.9966562 0 0.75064886 0.74846375 1.2516088 0 1 0.49911258 1.5011578"/>
<path class="monochrome-1 multicolor-1:tintColor hierarchical-1:secondary SFSymbolsPreviewWireframe" d="M53.7648-17.7847C55.6866-17.7847 57.0292-17.3074 58.8857-16.2059L59.7131-15.7084C60.1991-15.4176 60.633-15.1754 61.0454-14.9727L61.098-14.9571C61.82-14.7437 62.2323-13.9854 62.0189-13.2635C61.9049-12.8776 61.6278-12.566 61.2676-12.4052L61.0421-12.3273C60.4102-12.5679 59.7882-12.8715 59.1036-13.2568L58.2544-13.7552L57.6479-14.1197C56.1324-15.0189 55.1758-15.359 53.7648-15.359C52.6427-15.359 51.8913-15.0916 50.7377-14.3381L49.8894-13.7569C47.8147-12.3133 46.3943-11.7203 44.0617-11.7203C41.9222-11.7203 40.6129-12.2064 38.8312-13.4179L38.1241-13.9158C36.5953-15.0103 35.7991-15.359 34.3587-15.359C33.1246-15.359 32.4516-15.1837 31.6656-14.7082L31.1192-14.3475L30.6221-14.0025C30.2811-13.7685 29.9904-13.5814 29.6739-13.3978C28.9112-12.9555 28.0748-12.5859 27.0866-12.2783C26.3783-12.4622 25.9531-13.1856 26.1371-13.894C26.237-14.2786 26.5027-14.5938 26.855-14.7597L27.0853-14.8432C27.5904-15.0374 28.0393-15.254 28.4569-15.4962L28.9701-15.8145L30.0141-16.5309C31.3279-17.4109 32.4708-17.7847 34.3587-17.7847C36.2422-17.7847 37.4241-17.3359 39.0738-16.2118L39.7451-15.7386C41.4203-14.5386 42.3338-14.1461 44.0617-14.1461C45.6453-14.1461 46.6113-14.4893 48.0553-15.4433L48.9021-16.0255C50.6957-17.2698 51.9027-17.7847 53.7648-17.7847ZM44.0617-37.9814L64.6808-33.1818L58.6182-18.788C56.8972-19.7785 55.5931-20.2105 53.7648-20.2105C52.0889-20.2105 50.9437-19.7934 49.4238-18.8029L48.504-18.1739C46.7984-16.9871 45.8037-16.5718 44.0617-16.5718C42.4909-16.5718 41.5931-16.8963 40.1843-17.8568L39.5362-18.3141C37.6332-19.6763 36.4134-20.2105 34.3587-20.2105C32.4708-20.2105 31.3279-19.8367 30.0141-18.9566L29.5576-18.6424L23.4427-33.1818L44.0617-37.9814ZM48.0726-53.3428L52.9576-53.3376C53.4988-53.3376 53.9734-52.9764 54.1178-52.4548L58.4615-36.7411L44.0617-40.0957L29.6584-36.7411L34.0057-52.4548C34.15-52.9764 34.6247-53.3376 35.1659-53.3376L48.0726-53.3428ZM43.057-50.4083L36.2023-50.4053C36.022-50.4052 35.8639-50.2848 35.8158-50.111L34.2319-44.3861L43.057-44.3893L43.057-50.4083ZM45.0633-50.4083L45.0633-44.3893L53.8916-44.3861L52.3077-50.111C52.2596-50.2848 52.1015-50.4052 51.9211-50.4053L45.0633-50.4083ZM45.6668-58.5513C45.8884-58.5513 46.0681-58.3717 46.0681-58.15L46.0622-54.5828L42.0536-54.5828L42.0554-58.15C42.0554-58.3717 42.2351-58.5513 42.4567-58.5513L45.6668-58.5513Z"/>
<path class="monochrome-2 multicolor-2:tintColor hierarchical-2:primary SFSymbolsPreviewWireframe" d="M81.7485-3.06064C83.2711-1.53808 83.2711 0.934172 81.7485 2.45673C80.2259 3.97929 77.7537 3.97929 76.2311 2.45673L6.37605-67.3983C4.85349-68.9209 4.85349-71.3932 6.37605-72.9157C7.89861-74.4383 10.3709-74.4383 11.8934-72.9157Z" data-clipstroke-keyframes="0 0 0 0.5001135 0.5550747 0 1 0 0.05507469"/>
<path class="monochrome-3 multicolor-3:tintColor hierarchical-3:primary SFSymbolsPreviewWireframe" d="M79.6976-1.00975C80.0883-0.619106 80.0883 0.0152006 79.6976 0.405845C79.307 0.796489 78.6727 0.796489 78.282 0.405845L8.42694-69.4492C8.03629-69.8399 8.03629-70.4742 8.42694-70.8648C8.81758-71.2555 9.45189-71.2555 9.84253-70.8648Z" data-clipstroke-keyframes="0 0 0 0.50012684 0.51529884 0 1 0 0.015298843"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -5,7 +5,7 @@
},
"symbols" : [
{
"filename" : "options.unpaved.svg",
"filename" : "ferries.circle.svg",
"idiom" : "universal"
}
]

Some files were not shown because too many files have changed in this diff Show More