Compare commits

..

19 Commits

Author SHA1 Message Date
Konstantin Pastbin
ce39d6d3f6 [generator] Add a suffix to the output dir
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-11-11 22:44:39 -08:00
Yannik Bloscheck
90e79e323d [core] Add language data to world files
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-11-11 22:44:39 -08:00
Yannik Bloscheck
6bbd9cf68c [styles] Adding trees
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-11-11 22:44:39 -08:00
Yannik Bloscheck
238b63acef [styles] Differentiate between different entrances
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-11-11 22:44:39 -08:00
Yannik Bloscheck
73df73ba0c [styles] Added smaller bus stop icons
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-11-11 22:44:39 -08:00
map-per
eb15739389 [styles] Add natural=sand
Signed-off-by: map-per <map-per@gmx.de>
2025-11-11 22:44:39 -08:00
Yannik Bloscheck
2cba290561 [generator] Name method parameter more clearly
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-11-11 22:44:39 -08:00
Yannik Bloscheck
1153cceceb [generator] Shorten code to avoid unnecessary if condition
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-11-11 22:44:39 -08:00
Yannik Bloscheck
01a198a866 [generator] Ignore edited status for nearby places during map generation
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-11-11 22:44:36 -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
116 changed files with 1311 additions and 496 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

@@ -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

@@ -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,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"
@@ -80,7 +78,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 +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"
@@ -124,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

@@ -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

@@ -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,12 +993,12 @@
<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">Pastabutik</string>
<string name="type.shop.pastry">Bagværk</string>
@@ -1007,7 +1007,7 @@
<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

@@ -349,7 +349,12 @@
<string name="type.entrance">Eingang</string>
<!-- This is for main/primary entrances, for secondary entrances see type.entrance -->
<string name="type.entrance.main">Haupteingang</string>
<string name="type.entrance.exit">Ausgang</string>
<string name="type.entrance.house">Hauseingang</string>
<string name="type.entrance.garage">Garageneingang</string>
<string name="type.entrance.service">Serviceeingang</string>
<string name="type.entrance.entry">(Nur) Eingang</string>
<string name="type.entrance.exit">(Nur) Ausgang</string>
<string name="type.entrance.emergency">Notausgang</string>
<string name="type.fee.no">Kostenlos</string>
<string name="type.healthcare.laboratory">Medizinisches Labor</string>
<string name="type.healthcare.physiotherapist">Physiotherapie</string>
@@ -748,6 +753,7 @@
<string name="type.natural.spring">Quelle</string>
<string name="type.natural.spring.drinking_water_no">Quelle</string>
<string name="type.natural.strait">Meerenge</string>
<string name="type.natural.tree">Baum</string>
<string name="type.natural.tree_row">Baumreihe</string>
<string name="type.natural.vineyard">Weinberg</string>
<string name="type.natural.volcano">Vulkan</string>

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

@@ -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

@@ -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>

View File

@@ -383,7 +383,12 @@
<string name="type.entrance">Entrance</string>
<!-- This is for main/primary entrances, for secondary entrances see type.entrance -->
<string name="type.entrance.main">Main Entrance</string>
<string name="type.entrance.exit">Exit</string>
<string name="type.entrance.house">House Entrance</string>
<string name="type.entrance.garage">Garage Entrance</string>
<string name="type.entrance.service">Service Entrance</string>
<string name="type.entrance.entry">Entry (Only)</string>
<string name="type.entrance.exit">Exit (Only)</string>
<string name="type.entrance.emergency">Emergency Exit</string>
<string name="type.fee.yes">$</string>
<string name="type.fee.no">Free</string>
<string name="type.healthcare.laboratory">Medical Laboratory</string>
@@ -776,6 +781,7 @@
<string name="type.man_made.embankment">Embankment</string>
<string name="type.natural.coastline">Coastline</string>
<string name="type.natural.desert">Desert</string>
<string name="type.natural.sand">Sand</string>
<string name="type.natural.geyser">Geyser</string>
<string name="type.natural.glacier">Glacier</string>
<string name="type.natural.grassland">Grassland</string>
@@ -797,6 +803,7 @@
<string name="type.natural.spring">Natural Spring</string>
<string name="type.natural.spring.drinking_water_no">Natural Spring</string>
<string name="type.natural.strait">Strait</string>
<string name="type.natural.tree">Tree</string>
<string name="type.natural.tree_row">Tree Row</string>
<string name="type.natural.vineyard">Vineyard</string>
<string name="type.natural.volcano">Volcano</string>

View File

@@ -1,4 +1,10 @@
{
"World": {
"languages": ["int_name", "en", "default"]
},
"WorldCoasts": {
"languages": ["int_name", "en", "default"]
},
"Abkhazia": {
"languages": ["ab", "ru"]
},

View File

@@ -95,7 +95,7 @@ railway|rail;28;
highway|service|parking_aisle;[highway=service][service=parking_aisle];;name;int_name;29;
place|hamlet;30;
moved:highway|road:05.2024;31;highway|road
deprecated:highway|track|grade2:04.2024;[highway=track][tracktype=grade2];x;name;int_name;32;highway|track
natural|tree;32;
# ~1.5M usages w/o a more specific wetland=*
natural|wetland;33;
deprecated:highway|track|grade3:04.4024;[highway=track][tracktype=grade3];x;name;int_name;34;highway|track
@@ -113,7 +113,7 @@ highway|service|driveway;[highway=service][service=driveway];;name;int_name;42;
addr:interpolation|even;43;
highway|motorway_link;44;
waterway|stream|intermittent;[waterway=stream][intermittent=yes];;name;int_name;45;
deprecated:highway|track|grade4:04.2024;[highway=track][tracktype=grade4];x;name;int_name;46;highway|track
natural|sand;46;
natural|water|pond;[natural=water][water=pond];;name;int_name;47;
landuse|farmland;48;
barrier|fence;49;
@@ -462,7 +462,7 @@ place|country;349;
deprecated:highway|path|alpine_hiking:04.2024;[highway=path][sac_scale=alpine_hiking];x;name;int_name;350;highway|path|expert
tourism|zoo|petting;[tourism=zoo][zoo=petting_zoo];;name;int_name;351;
sport|scuba_diving;352;
deprecated:highway|cycleway|permissive:12.2023;[highway=cycleway][access=permissive];x;name;int_name;353;highway|cycleway
entrance|emergency;[entrance=emergency],[exit=emergency];;name;int_name;353;
highway|unclassified|area;[highway=unclassified][area?];;name;int_name;354;
natural|volcano;355;
amenity|parking|underground|fee;[amenity=parking][location=underground][fee],[amenity=parking][parking=underground][fee];;name;int_name;356;
@@ -564,8 +564,8 @@ deprecated:railway|yard:06.2023;447;x
natural|water|ditch;[natural=water][water=ditch];;name;int_name;448;
natural|water|moat;[natural=water][water=moat];;name;int_name;449;
natural|water|wastewater;[natural=water][water=wastewater];;name;int_name;450;
deprecated:railway|razed:06.2023;451;x
deprecated:highway|footway|demanding_mountain_hiking:04.2024;[highway=footway][sac_scale=demanding_mountain_hiking];x;name;int_name;452;highway|path|difficult
entrance|service;451;
entrance|entry;[entrance=entrance];;ref;addr:flats;452;
amenity|shelter|basic_hut;[amenity=shelter][shelter_type=basic_hut];;name;int_name;453;
amenity|shelter|lean_to;[amenity=shelter][shelter_type=lean_to];;name;int_name;454;
landuse|orchard;455;
@@ -1117,8 +1117,8 @@ junction|roundabout;990;
highway|speed_camera;991;
shop|beauty;992;
shop|sports;993;
deprecated:route|ferry|motor_vehicle:09.2021;[route=ferry][motor_vehicle];x;name;int_name;994;route|ferry
deprecated:railway|rail|motor_vehicle:06.2023;[railway=rail][motor_vehicle],[railway=rail][motorcar];x;name;int_name;995;railway|rail
entrance|house;[entrance=home],[entrance=staircase];;ref;addr:flats;994;
entrance|garage;[entrance=garage];;ref;addr:flats;995;
hwtag|nofoot;996;
place|city|capital|2;[place=city][capital=2],[place=city][capital?][admin_level=2];;name;int_name;997;
place|city|capital|3;[place=city][capital=3],[place=city][capital?][admin_level=3];;name;int_name;998;
@@ -1348,7 +1348,7 @@ railway|subway_entrance|warszawa;[railway=subway_entrance][city=warszawa];;name;
shop|bed;1221;
shop|outpost;1222;
shop|gas;1223;
natural|desert;[natural=desert],[natural=sand][desert=erg];;name;int_name;1224;
natural|desert;1224;
natural|water|tunnel;[natural=water][tunnel?];;name;int_name;1225;
place|square;1226;
tourism|artwork|architecture;[tourism=artwork][artwork_type=architecture],[tourism=artwork][type=architecture];;name;int_name;1227;
Can't render this file because it contains an unexpected character in line 7 and column 16.

View File

@@ -91,11 +91,6 @@ natural=forest : natural=wood
natural=shrubbery : natural=scrub
cliff=yes : natural=cliff
desert=sand : desert=erg
desert=yes : desert=erg
desert=semi_arid : desert=erg
desert=dune : desert=erg
office=notary : office=lawyer
office=administrative : office=government

View File

@@ -0,0 +1 @@
<svg height="15" viewBox="0 0 15 15" width="15" xmlns="http://www.w3.org/2000/svg"><g fill="none"><rect fill="#000" height="15" opacity=".6" rx="1.875" width="15"/><rect fill="#2f6499" height="13.5" rx="1.5" width="13.5" x=".75" y=".75"/><path d="m4.30833333 11.4713297c.21052121.0559605.43455474.0861305.66692134.0861305h.66552345l.00088855.3790098c0 .311229-.29836282.56353-.666412.56353-.3680492 0-.666412-.252301-.666412-.56353zm6.38295947.0002346.0003739.4649057c0 .311229-.298278.56353-.6662225.56353-.36794462 0-.66622253-.252301-.66622253-.56353l-.00088834-.3790098h.66711087c.2319755 0 .4556437-.0300857.6658486-.0858959zm-.561486-8.55489763c.829944 0 1.5027466.67280261 1.5027466 1.50274669v5.25961347c0 .82994407-.6728026 1.50274667-1.5027466 1.50274667h-5.25961352c-.82994407 0-1.50274669-.6728026-1.50274669-1.50274667v-5.25961347c0-.82994408.67280262-1.50274669 1.50274669-1.50274669zm-5.24127678 6.38667341c-.31122904 0-.56353002.252301-.56353002.56353 0 .31122912.25230098.56353012.56353002.56353012.31122902 0 .56353001-.252301.56353001-.56353012 0-.311229-.25230099-.56353-.56353001-.56353zm5.21666668 0c-.31122903 0-.56353003.252301-.56353003.56353 0 .31122912.252301.56353012.56353003.56353012.311229 0 .56353-.252301.56353-.56353012 0-.311229-.252301-.56353-.56353-.56353zm.56147-3.84500675h-6.3416667v2.42105266c0 .3565628.31547343.64561401.70462963.64561401h4.93240737c.3891563 0 .7046297-.28905121.7046297-.64561401zm-.7046297-1.58333333h-4.93240737c-.3891562 0-.70462963.3364013-.70462963.75137335v.37568667h6.3416667v-.37568667c0-.41497205-.3154734-.75137335-.7046297-.75137335z" fill="#000" fill-rule="evenodd"/></g></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1 @@
<svg height="6" viewBox="0 0 6 6" width="6" xmlns="http://www.w3.org/2000/svg"><g fill="none"><path d="m5 0c.55228475 0 1 .44771525 1 1v4c0 .55228475-.44771525 1-1 1h-4c-.55228475 0-1-.44771525-1-1v-4c0-.55228475.44771525-1 1-1z" fill="#000" fill-opacity=".6"/><path d="m1 .5h4c.27614237 0 .5.22385763.5.5v4c0 .27614237-.22385763.5-.5.5h-4c-.27614237 0-.5-.22385763-.5-.5v-4c0-.27614237.22385763-.5.5-.5z" fill="#2f6499" fill-rule="evenodd"/></g></svg>

After

Width:  |  Height:  |  Size: 452 B

View File

@@ -0,0 +1 @@
<svg height="5" viewBox="0 0 5 5" width="5" xmlns="http://www.w3.org/2000/svg"><g fill="none"><path d="m4 0c.55228475 0 1 .44771525 1 1v3c0 .55228475-.44771525 1-1 1h-3c-.55228475 0-1-.44771525-1-1v-3c0-.55228475.44771525-1 1-1z" fill="#000" fill-opacity=".6"/><path d="m1 .5h3c.27614237 0 .5.22385763.5.5v3c0 .27614237-.22385763.5-.5.5h-3c-.27614237 0-.5-.22385763-.5-.5v-3c0-.27614237.22385763-.5.5-.5z" fill="#2f6499" fill-rule="evenodd"/></g></svg>

After

Width:  |  Height:  |  Size: 452 B

View File

@@ -0,0 +1 @@
<svg height="4" viewBox="0 0 4 4" width="4" xmlns="http://www.w3.org/2000/svg"><g fill="none"><path d="m3 0c.55228475 0 1 .44771525 1 1v2c0 .55228475-.44771525 1-1 1h-2c-.55228475 0-1-.44771525-1-1v-2c0-.55228475.44771525-1 1-1z" fill="#000" fill-opacity=".6"/><path d="m1 .5h2c.27614237 0 .5.22385763.5.5v2c0 .27614237-.22385763.5-.5.5h-2c-.27614237 0-.5-.22385763-.5-.5v-2c0-.27614237.22385763-.5.5-.5z" fill="#2f6499" fill-rule="evenodd"/></g></svg>

After

Width:  |  Height:  |  Size: 452 B

View File

@@ -0,0 +1 @@
<svg height="10" viewBox="0 0 8 10" width="8" xmlns="http://www.w3.org/2000/svg"><g fill="none"><path d="m6.45638209 0c.37609148 0 .72425864.1747833.96936352.49369282l.06615442.10027904c.10687134.18244079.16414241.39064697.16414241.60600579l.00033965 7.60002235c0 .08452163-.00881715.16822686-.03378359.28090951l-.0458696.14760544-.06668844.14497209-.07146019.1153718-.06179076.08041635-.07556165.08214374-.10781751.09508139-.10964934.07580657-.12987138.06948085-.07954583.03314166c-.04905188.01754418-.04905188.01754418-.1303233.03957053l-.15920996.02799023-.1287681.00750984h-4.22425693c-.10907652 0-.21669708-.01468463-.35383951-.05390448l-.14047138-.05265064-.10280855-.05337186-.14765925-.09957233-.10159134-.09041744-.10489342-.11895698-.0784479-.11480897-.05509066-.10505725-.06607418-.17129918-.02223491-.08669691c-.01814821-.0826435-.02722855-.16749219-.02722706-.25204115l-.00144536-.591-.00199757-.28322281-.02893303.00146741c-.51942228.01887315-.91865829-.24714738-.98830514-.67658602l-.01042408-.11069391c-.01253177-.43076054.32054599-.82795908.77223753-.84441048l.25542472-.030777c.00229529-.08066906.00229529-.18987309 0-.32761211-.03371432-.00977655-.08956256-.02247896-.1233309-.03714759-.45095098-.19588858-.51469301-.68984012-.30519389-1.15166694l.43196772-.89919451c.00947774-.02096777.00947724-.90442739-.00000149-2.65037885 0-.6627417.5372583-1.2 1.2-1.2z" fill="#000" opacity=".6"/><path d="m6.45638209.5c.22551627 0 .42612467.10664329.55414621.27225087l.04994362.07444573c.06074822.1037037.09557052.22443696.09557052.3533034l.00033965 7.6c0 .05011473-.00526633.09899944-.01527578.1461309l-.02384038.085169-.03771531.08786746-.0419297.07097489-.03740085.05020216-.03821292.04374726-.06347463.05861778-.06028924.04402764-.07874284.044385-.06117341.02581362c-.01766844.00664526-.03607223.01258439-.05479097.01776541l-.09216812.01890871-.0953255.00639017h-4.22425693c-.06480353 0-.12755032-.00880593-.18710905-.02528645l-.09162788-.0324093-.04872236-.02328158-.09538019-.0610859-.05713707-.04808259-.06450448-.06946502-.04937574-.06908366-.02934081-.05219473-.04389022-.10543844-.01765973-.06765121c-.01032579-.04702168-.01559212-.09590639-.01559212-.14602112l-.00144537-.591.66089153-.02540436.09415983-.01277867-.00300941.57818303h4.12374307v-7.499h-4.12374307l-.00049701.60518552c-.30277731.25714038-.49010086.63138619-.49010086 1.05120766l.00555985.11160682-.07728011.00485305c-.0660555.00624911-.12924699.01672474-.18947556.03124346l.00119711-1.85409651c0-.38659932.31340067-.7.7-.7zm-2.256326 3.31599576c.25595671 0 .43735449.1230815.49018767.54084433l.02877808.57142067.62174436.19704693c.31792476.09362657.4520938.24201607.40250712.44516851-.03257321.13344966-.16664108.18318709-.40220364.14921229-.11574123-.01797477-.23380508-.05174093-.31880324-.0684414l-.60646039-.16066363c-.26277038-.06961813-.29780643-.22302452-.30247791-.41885973l-.07592051-.64933479-.16065403.0000192c-.19078646.30319659-.10110927.79611708-.16066363 1.25944922h.29120123c.32132726 0 .83343457.3031966.51210731.90960578l-.48199088.90963778c-.32132726.60639318-.80328614.15159989-.64265452-.1515999l.48199089-.90963778c.0648808-.12244607-.03044986-.14599339-.10942109-.15052172l-.84425517-.00107817-.15426327.28432918-.14131385.24161291c-.14333507.22167486-.22812622.57718916-.61780982.57718916l-1.02876487.03740254c-.68581553.02491902-.53293243-.61986625-.19003789-.63235508l1.0908756-.03994917c.05913462-.0063629.08251176-.03738214.18447811-.22729991.13109959-.24417998.20388236-.45229962.20388236-.59080509 0-.35265986.06565766-1.09536109.16065723-1.51599895h-.48199088l-.09191427.16896043-.3097352.59819487c-.14617965.27634582-.31140187.31036692-.44324586.25309522-.13184399-.05727171-.15972216-.24295654-.05677328-.47029852l.50001914-1.00474529c.02972597-.06576327.08142637-.15159989.32132725-.15159989zm-.965957-1.51599576c.3549322 0 .64265451.27147032.64265451.60639318 0 .33492926-.28771911.60639318-.64265451.60639318-.3549322 0-.64265452-.27147032-.64265452-.60639318 0-.31522754.25486538-.57423664.58076149-.60361755z" fill="#019b41"/></g></svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@@ -0,0 +1 @@
<svg height="9" viewBox="0 0 6 9" width="6" xmlns="http://www.w3.org/2000/svg"><path d="m5.05357504.00381365c.38659933 0 .7.31340068.7.7v7.6c0 .38659933-.31340067.7-.7.7h-4.22459658c-.38659933 0-.7-.31340067-.7-.7v-7.6c0-.38659932.31340067-.7.7-.7zm-.05059658.749-4.125.001v7.499h4.125z" fill="#777"/></svg>

After

Width:  |  Height:  |  Size: 307 B

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="6" height="9" version="1.1" viewBox="0 0 6 9" xmlns="http://www.w3.org/2000/svg">
<path d="m0.5 0.5h5v8h-5z" fill="none" stroke="#777777" stroke-width=".75"/>
</svg>

Before

Width:  |  Height:  |  Size: 218 B

View File

@@ -0,0 +1 @@
<svg height="6" viewBox="0 0 4 6" width="4" xmlns="http://www.w3.org/2000/svg"><path d="m3.37632615.00381365c.27614238 0 .5.22385763.5.5v4.99618635c0 .27614237-.22385762.5-.5.5h-2.74734769c-.27614238 0-.5-.22385763-.5-.5v-4.99618635c0-.27614237.22385762-.5.5-.5zm-.25034769.75h-2.247v4.496h2.247z" fill="#777" transform="translate(.0041)"/></svg>

After

Width:  |  Height:  |  Size: 346 B

View File

@@ -0,0 +1 @@
<svg height="9" viewBox="0 0 11 9" width="11" xmlns="http://www.w3.org/2000/svg"><path d="m10.0493285 0c.3869702 0 .7006715.31340068.7006715.7v7.59309317c0 .38659933-.3137013.7-.7006715.7l-4.17193572-.00009317-.75042427.007-4.17629705-.00690683c-.38697016 0-.70067146-.31340067-.70067146-.7v-7.59309317c0-.38659932.3137013-.7.70067146-.7zm-4.92265514.749-4.12595394.001-.00100096 7.493 4.1269549-.001v-1.748l-.62530437.00082255-.00029515-1.00082255-1.00066408.00082255v-2l1.00066408-.00082255.00029515-.99917745.62530437-.00082255zm4.87166855.001-4.12094913-.001v1.745l.62589466.00082255-.00029515.99917745 1.00125438.00082255v2l-1.00125438-.00082255.00029515 1.00082255-.62589466-.00082255v1.748l4.12094913.001z" fill="#983E44"/></svg>

After

Width:  |  Height:  |  Size: 736 B

View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="11" height="9" version="1.1" viewBox="0 0 11 9" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
<path d="m0.5 0.5v8h10v-8z" fill="none" stroke="#983E44" opacity=".6" stroke-width=".75"/>
<path d="m5.5 0.5v8" fill="none" stroke="#983E44" opacity=".6" stroke-width=".75"/>
<path d="m7.5834 5.3334h-1.25v1.25c0 0.22916-0.18749 0.41667-0.41667 0.41667h-0.83337c-0.22916 0-0.41667-0.18749-0.41667-0.41667v-1.25h-1.25c-0.22916 0-0.41667-0.18749-0.41667-0.41667v-0.83337c0-0.22917 0.18749-0.41667 0.41667-0.41667h1.25v-1.25c0-0.22916 0.18749-0.41667 0.41667-0.41667h0.83337c0.22917 0 0.41667 0.18749 0.41667 0.41667v1.25h1.25c0.22916 0 0.41667 0.1875 0.41667 0.41667v0.83337c0 0.22916-0.18749 0.41667-0.41667 0.41667z" fill="#983E44" opacity=".6"/>
</svg>

Before

Width:  |  Height:  |  Size: 812 B

View File

@@ -0,0 +1 @@
<svg height="6" viewBox="0 0 7 6" width="7" xmlns="http://www.w3.org/2000/svg"><path d="m6.49689709-.00309317c.27614237 0 .5.22385762.5.5v4.99618634c0 .27614238-.22385763.5-.5.5l-2.62189709-.00018634-.75.00709317-2.625-.00690683c-.27614237 0-.5-.22385762-.5-.5v-4.99618634c0-.27614238.22385763-.5.5-.5zm-3.37189709.749-2.375.001v4.496h2.375v-.748l-.375.00009317-.001-.75009317-.749.00009317v-1.5l.749-.00009317.001-.74990683.375-.00009317zm3.121 0-2.371-.001v.75l.375.00009317-.001.74990683.751.00009317v1.5l-.751-.00009317.001.75009317-.375-.00009317v.748h2.371z" fill="#983E44"/></svg>

After

Width:  |  Height:  |  Size: 587 B

View File

@@ -0,0 +1 @@
<svg height="9" viewBox="0 0 12 9" width="12" xmlns="http://www.w3.org/2000/svg"><path d="m4.50016351 0c-.38659932 0-.7.31340068-.7.7l.00059659 2.55h.751l-.001-2.501 4.125.001v7.499h-4.125l.001-2.499h-.751l-.00059659 2.55c0 .38659932.31340068.7.7.7h4.22459659c.38659932 0 .7-.31340068.7-.7v-7.6c0-.38659932-.31340068-.7-.7-.7zm1.758459 2.50813059 1.99137749 1.99137749-1.99137749 1.99236133-.53033009-.53033009 1.11942967-1.11953932-5.09772209.00011809v-.75l5.03172209-.00011809-1.05342967-1.05353932z" fill="#777"/></svg>

After

Width:  |  Height:  |  Size: 522 B

View File

@@ -0,0 +1 @@
<svg height="7" viewBox="0 0 9 7" width="9" xmlns="http://www.w3.org/2000/svg"><path d="m3.27575522.00381365c-.27614238 0-.5.22385763-.5.5l.00034769 1.24618635h.751l-.001-.99618635h2.247v4.496h-2.247l.001-.99981365h-.751l-.00034769 1.25c0 .27614237.22385762.5.5.5h2.74734769c.27614238 0 .5-.22385763.5-.5v-4.99618635c0-.27614237-.22385762-.5-.5-.5zm.93313413 1.6162696 1.41421356 1.41421356-1.41421356 1.4151974-.53033009-.53033008.54264244-.54235048-3.1012017.00009318v-.75l3.0352017-.00009318-.47664244-.47640031z" fill="#777" transform="translate(.1946 .4987)"/></svg>

After

Width:  |  Height:  |  Size: 571 B

View File

@@ -0,0 +1 @@
<svg height="9" viewBox="0 0 12 9" width="12" xmlns="http://www.w3.org/2000/svg"><path d="m7.49983649 0c.38659932 0 .7.31340068.7.7l-.00059659 2.55h-.751l.001-2.501-4.125.001v7.499h4.125l-.001-2.499h.751l.00059659 2.55c0 .38659932-.31340068.7-.7.7h-4.22459659c-.38659932 0-.7-.31340068-.7-.7v-7.6c0-.38659932.31340068-.7.7-.7zm2.50878601 2.50813059 1.9913775 1.99137749-1.9913775 1.99236133-.53033008-.53033009 1.11942968-1.11953932-5.0977221.00011809v-.75l5.0317221-.00011809-1.05342968-1.05353932z" fill="#777"/></svg>

After

Width:  |  Height:  |  Size: 520 B

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="9" height="9" version="1.1" viewBox="0 0 9 9" xmlns="http://www.w3.org/2000/svg">
<path d="m6.5704 0.1875v1.8427l1.0591 2.0948h-4.6294v0.75h4.6294l-1.0591 2.0948v1.8428l2.1796-4.3125z" fill="#777777"/>
<path d="m0.5 0.5h5v8h-5z" fill="none" stroke="#777777" stroke-width=".75"/>
</svg>

Before

Width:  |  Height:  |  Size: 339 B

View File

@@ -0,0 +1 @@
<svg height="6" viewBox="0 0 8 6" width="8" xmlns="http://www.w3.org/2000/svg"><path d="m4.74424478.00381365c.27614238 0 .5.22385763.5.5l-.00034769 1.24618635h-.751l.001-.99618635h-2.247v4.496h2.247l-.001-.99981365h.751l.00034769 1.25c0 .27614237-.22385762.5-.5.5h-2.74734769c-.27614238 0-.5-.22385763-.5-.5v-4.99618635c0-.27614237.22385762-.5.5-.5zm1.84154166 1.6162696 1.41421356 1.41421356-1.41421356 1.4151974-.53033009-.53033008.54264244-.54235048-3.1012017.00009318v-.75l3.0352017-.00009318-.47664244-.47640031z" fill="#777" transform="translate(.0081)"/></svg>

After

Width:  |  Height:  |  Size: 567 B

View File

@@ -0,0 +1 @@
<svg height="9" viewBox="0 0 6 9" width="6" xmlns="http://www.w3.org/2000/svg"><path d="m5.05092274-.01381365c.38659932 0 .7.31340067.7.7v7.6c0 .38659932-.31340068.7-.7.7h-4.22459659c-.38659932 0-.7-.31340068-.7-.7v-7.6c0-.38659933.31340068-.7.7-.7zm-.05059659.749-4.125.001v7.499h4.125zm-2.75032615 3.01481365c.41421356 0 .75.33578644.75.75s-.33578644.75-.75.75-.75-.33578644-.75-.75.33578644-.75.75-.75z" fill="#777"/></svg>

After

Width:  |  Height:  |  Size: 426 B

View File

@@ -0,0 +1 @@
<svg height="9" viewBox="0 0 11 9" width="11" xmlns="http://www.w3.org/2000/svg"><path d="m10.0510104 0c.3865993 0 .7.31340068.7.7v7.6c0 .38659932-.3134007.7-.7.7h-9.1020208c-.38659933 0-.7-.31340068-.7-.7v-7.6c0-.38659932.31340067-.7.7-.7zm-4.9240208.75h-4.128v7.5h4.128zm4.874 0h-4.124v7.5h4.124zm-2.7509896 3c.41421356 0 .75.33578644.75.75s-.33578644.75-.75.75-.75-.33578644-.75-.75.33578644-.75.75-.75zm-3.5 0c.41421356 0 .75.33578644.75.75s-.33578644.75-.75.75-.75-.33578644-.75-.75.33578644-.75.75-.75z" fill="#777"/></svg>

After

Width:  |  Height:  |  Size: 529 B

View File

@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="11" height="9" version="1.1" viewBox="0 0 11 9" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
<path d="m0.5 0.5v8h10v-8z" fill="none" stroke="#777777" stroke-width=".75"/>
<path d="m5.5 0.5v8" fill="none" stroke="#777777" stroke-width=".75"/>
<circle cx="4" cy="4.5" r=".75" fill="#777777"/>
<circle cx="7" cy="4.5" r=".75" fill="#777777"/>
</svg>

Before

Width:  |  Height:  |  Size: 414 B

View File

@@ -0,0 +1 @@
<svg height="6" viewBox="0 0 7 6" width="7" xmlns="http://www.w3.org/2000/svg"><path d="m6.5.00381365c.27614237 0 .5.22385763.5.5v4.99618635c0 .27614237-.22385763.5-.5.5h-5.99689709c-.27614237 0-.5-.22385763-.5-.5v-4.99618635c0-.27614237.22385763-.5.5-.5zm-3.37189709.749-2.375.001v4.496h2.375zm3.121 0-2.371-.001v4.498h2.371zm-1.62410291 1.77843635c.25888348 0 .46875.20986652.46875.46875s-.20986652.46875-.46875.46875-.46875-.20986652-.46875-.46875.20986652-.46875.46875-.46875zm-2.25 0c.25888348 0 .46875.20986652.46875.46875s-.20986652.46875-.46875.46875-.46875-.20986652-.46875-.46875.20986652-.46875.46875-.46875z" fill="#777" transform="translate(.0041)"/></svg>

After

Width:  |  Height:  |  Size: 669 B

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="6" height="9" version="1.1" viewBox="0 0 6 9" xmlns="http://www.w3.org/2000/svg">
<path d="m0.5 0.5h5v8h-5z" fill="none" stroke="#777777" stroke-width=".75"/>
<circle cx="2" cy="4.5" r=".75" fill="#777777"/>
</svg>

Before

Width:  |  Height:  |  Size: 268 B

View File

@@ -0,0 +1 @@
<svg height="9" viewBox="0 0 6 9" width="6" xmlns="http://www.w3.org/2000/svg"><path d="m5.05357504.00381365c.38659933 0 .7.31340068.7.7v7.6c0 .38659933-.31340067.7-.7.7h-4.22459658c-.38659933 0-.7-.31340067-.7-.7v-7.6c0-.38659932.31340067-.7.7-.7zm-.05059658.749-4.125.001v7.499h4.125zm-2.06170171 1.99718635c.96649831 0 1.75.78350169 1.75 1.75s-.78350169 1.75-1.75 1.75-1.75-.78350169-1.75-1.75.78350169-1.75 1.75-1.75zm1.16666667 1.3125h-2.33333334v.875h2.33333334z" fill="#777"/></svg>

After

Width:  |  Height:  |  Size: 489 B

View File

@@ -0,0 +1 @@
<svg height="6" viewBox="0 0 4 6" width="4" xmlns="http://www.w3.org/2000/svg"><path d="m3.37632615.00381365c.27614238 0 .5.22385763.5.5v4.99618635c0 .27614237-.22385762.5-.5.5h-2.74734769c-.27614238 0-.5-.22385763-.5-.5v-4.99618635c0-.27614237.22385762-.5.5-.5zm-.25034769.75h-2.247v4.496h2.247zm-1.1300447 1.24618635c.55228475 0 1 .44771525 1 1s-.44771525 1-1 1-1-.44771525-1-1 .44771525-1 1-1zm.75671854.75190683h-1.5v.5h1.5z" fill="#777" transform="translate(.0041)"/></svg>

After

Width:  |  Height:  |  Size: 478 B

View File

@@ -0,0 +1 @@
<svg height="6" viewBox="0 0 4 6" width="4" xmlns="http://www.w3.org/2000/svg"><path d="m3.37367385 0c.27614237 0 .5.22385763.5.5v4.99618635c0 .27614237-.22385763.5-.5.5h-2.7473477c-.27614237 0-.5-.22385763-.5-.5v-4.99618635c0-.27614237.22385763-.5.5-.5zm-.2503477.75h-2.247v4.496h2.247zm-1.49832615 1.78125c.25888348 0 .46875.20986652.46875.46875s-.20986652.46875-.46875.46875-.46875-.20986652-.46875-.46875.20986652-.46875.46875-.46875z" fill="#777"/></svg>

After

Width:  |  Height:  |  Size: 459 B

View File

@@ -1 +0,0 @@
<svg height="4" viewBox="0 0 4 4" width="4" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="a" d="m0 0h4v4h-4z"/></defs><g fill="none" fill-rule="evenodd" xlink:href="#a"><path d="m0 0h4v4h-4z" fill="#000"/><path d="m.67.67h2.67v2.67h-2.67z" fill="#747474"/></g></svg>

Before

Width:  |  Height:  |  Size: 314 B

View File

@@ -0,0 +1 @@
<svg height="18" viewBox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="m9.76536686 3.31703659 2.71190694 1.12330864c.4900562.20298791.8794043.59233602 1.0823922 1.0823922l1.1233087 2.71190696c.2029879.49005617.2029879 1.04067755 0 1.53073372l-1.1233087 2.71190699c-.2029879.4900561-.592336.8794043-1.0823922 1.0823922l-2.71190694 1.1233086c-.49005617.2029879-1.04067755.2029879-1.53073372 0l-2.71190696-1.1233086c-.49005618-.2029879-.87940429-.5923361-1.0823922-1.0823922l-1.12330864-2.71190699c-.20298792-.49005617-.20298792-1.04067755 0-1.53073372l1.12330864-2.71190696c.20298791-.49005618.59233602-.87940429 1.0823922-1.0823922l2.71190696-1.12330864c.43560548-.18043371.91906496-.20048189 1.36530467-.06014457z" fill="#202510" fill-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 778 B

View File

@@ -254,6 +254,7 @@ area|z11-[natural=bare_rock],
/* 5.BEACH, GLACIER, DESERT, etc. */
area|z0-[natural=glacier],
area|z0-[natural=sand],
area|z10-[natural=beach],
area|z0-[natural=desert],
area|z10-[leisure=beach_resort],
@@ -262,6 +263,7 @@ area|z10-[leisure=beach_resort],
area|z0-[natural=glacier]
{fill-color: @glacier;}
area|z0-[natural=sand],
area|z10-[natural=beach],
area|z10-[leisure=beach_resort],
{fill-color: @beach;}

View File

@@ -468,6 +468,7 @@ area|z17-[landuse=plant_nursery],
/* 5.2 Beach, Glacier, Desert, etc. */
area|z14-[natural=desert],
area|z15-[natural=sand],
node|z15-[natural=beach],
{text: name;font-size: 10;text-color: @poi_label;}
@@ -665,12 +666,17 @@ node|z16-[addr:housenumber][addr:street]::int_name,
node|z18-[entrance=main],
node|z18-[emergency=emergency_ward_entrance],
node|z19-[entrance],
node|z19-[entrance!=emergency],
node|z19-[entrance=entry],
node|z19-[entrance=exit],
node|z19-[entrance=house],
node|z19-[entrance=service],
node|z19-[amenity=loading_dock],
node|z20-[entrance=emergency],
{text: name; text-color: @building_label;}
node|z18-[entrance=main]::flats,
node|z19-[entrance]::flats,
node|z19-[entrance!=emergency]::flats,
node|z19-[entrance=entry]::flats,
node|z19-[entrance=exit]::flats,
{text: int_name; text-color: @building_label; font-size: 8; text-offset: 1;}
@@ -705,21 +711,39 @@ node|z18-[addr:housenumber][addr:street],
node|z16-[addr:housenumber][addr:street]::int_name,
{font-size: 8;}
node|z17[entrance],
node|z18[amenity=loading_dock],
node|z16[entrance=main],
node|z16[emergency=emergency_ward_entrance],
{icon-image: square-m.svg;}
node|z17-[entrance],
{icon-image: entrance-xs.svg;}
node|z17[entrance=entrance],
{icon-image: entrance-entry-xs.svg;}
node|z17[entrance=exit],
{icon-image: entrance-exit-xs.svg;}
node|z17-[entrance=main],
{icon-image: entrance-main-xs.svg;}
node|z16-[emergency=emergency_ward_entrance],
{icon-image: entrance-emergency-xs.svg;}
node|z18-[entrance],
node|z19-[amenity=loading_dock],
{icon-image: entrance-s.svg; font-size: 10; text-offset: 1;}
{icon-image: entrance-m.svg; font-size: 10; text-offset: 1;}
node|z18-[entrance=entrance],
{icon-image: entrance-entry-m.svg; font-size: 10; text-offset: 1;}
node|z18-[entrance=exit],
{icon-image: entrance-exit-s.svg; font-size: 10; text-offset: 1;}
node|z17-[entrance=main],
{icon-image: entrance-main-s.svg; font-size: 10; text-offset: 1;}
node|z17-[emergency=emergency_ward_entrance],
{icon-image: entrance-emergency-s.svg; font-size: 10; text-offset: 1;}
{icon-image: entrance-exit-m.svg; font-size: 10; text-offset: 1;}
node|z18-[entrance=main],
{icon-image: entrance-main-m.svg; font-size: 10; text-offset: 1;}
node|z18-[emergency=emergency_ward_entrance],
{icon-image: entrance-emergency-m.svg; font-size: 10; text-offset: 1;}
node|z19-[entrance=service],
node|z19-[amenity=loading_dock],
{icon-image: entrance-service-m.svg; font-size: 10; text-offset: 1;}
node|z20-[entrance=emergency],
{icon-image: emergency-exit-m.svg; font-size: 10; text-offset: 1;}
node|z17[entrance=home],
node|z17[entrance=staircase],
node|z17-18[entrance=garage],
node|z17-18[entrance=service],
node|z17-19[entrance=emergency],
{icon-image: none;}
/* 8.3 Airports */
area|z14-[aeroway=terminal]

View File

@@ -206,6 +206,9 @@ node|z19-[man_made=water_well][drinking_water=not],
node|z19-[amenity=water_point][drinking_water=not],
{icon-image: drinking-water-no-m.svg;}
node|z18-[natural=tree],
{icon-image: tree-m.svg;}
/* 3. TRANSPORT */
node|z12-[railway=station],
@@ -323,12 +326,14 @@ node|z19-[amenity=bus_station],
node|z19-[amenity=bus_station]::int_name,
{text-offset: 1;font-size: 10;}
node|z15[highway=bus_stop],
{icon-image: bus-xxs.svg;icon-min-distance: 1;}
node|z16[highway=bus_stop],
{icon-image: bus-m.svg;}
{icon-image: bus-xs.svg;icon-min-distance: 1;}
node|z17-[highway=bus_stop],
{icon-image: bus-m.svg;text-offset: 1;font-size: 11;}
{icon-image: bus-sm.svg;text-offset: 1;font-size: 11;}
node|z18-19[highway=bus_stop]::int_name,
{icon-image: bus-m.svg;text-offset: 1;font-size: 9;}
{icon-image: bus-sm.svg;text-offset: 1;font-size: 9;}
/* 3.5 Ferry terminal */
@@ -1361,7 +1366,7 @@ node|z17-[barrier=wicket_gate],
{icon-image: dot-m.svg;font-size: 11;}
node|z16-[barrier=entrance],
{icon-image: entrance-barrier-s.svg; font-size: 11;}
{icon-image: entrance-barrier-xs.svg; font-size: 11;}
node|z17-[highway=ladder],
{icon-image: ladder-m.svg;font-size: 11;}
@@ -1542,7 +1547,7 @@ node|z17-[amenity=telephone]
{icon-image: phone-m.svg;}
node|z17-[emergency=phone]
{icon-image: emergency-phone-m.svg;}
{icon-image: emergency-phone-m.svg; text-offset: 1;}
node|z16-[amenity=recycling][recycling_type=centre],

View File

@@ -242,6 +242,7 @@ natural-beach-gravel # area z10- (also has captio
natural-beach-sand # area z10- (also has caption z15-)
natural-desert # area z1- (also has caption z14-)
natural-glacier # area z1-
natural-sand # area z1- (also has caption z15-)
=== 30
natural-land # area z1-

View File

@@ -550,7 +550,7 @@ railway-subway_entrance-yokohama # icon z16- (also has captio
railway-tram_stop # icon z14- (also has caption(optional) z17-)
=== 3650
highway-bus_stop # icon z16- (also has caption(optional) z17-)
highway-bus_stop # icon z14- (also has caption(optional) z17-)
=== 3600
amenity-drinking_water # icon z17- (also has caption(optional) z18-)
@@ -574,6 +574,7 @@ natural-beach-gravel # caption z15- (also has are
natural-beach-sand # caption z15- (also has area z10-)
natural-cape # caption z14-
natural-desert # caption z14- (also has area z1-)
natural-sand # caption z15- (also has area z1-)
=== 3250
shop-supermarket # icon z16- (also has caption(optional) z16-)
@@ -1295,9 +1296,15 @@ power-plant-wind # icon z15- (also has captio
=== 230
barrier-entrance # icon z16- (also has caption(optional) z16-)
entrance-main # icon z16- (also has caption(optional) z18-)
entrance-main # icon z17- (also has caption(optional) z18-)
=== 225
entrance # icon z17- (also has caption(optional) z19-)
entrance-entry # icon z17- (also has caption(optional) z19-)
entrance-exit # icon z17- (also has caption(optional) z19-)
=== 220
entrance-emergency # icon z20- (also has caption(optional) z20-)
highway-traffic_signals # icon z19-
=== 215
@@ -1775,7 +1782,7 @@ leisure-swimming_pool-private # icon z17- (also has captio
# railway-tram_stop # caption(optional) z17- (also has icon z14-)
# === -6350
# highway-bus_stop # caption(optional) z17- (also has icon z16-)
# highway-bus_stop # caption(optional) z17- (also has icon z14-)
# === -6400
# amenity-drinking_water # caption(optional) z18- (also has icon z17-)
@@ -2285,9 +2292,17 @@ leisure-swimming_pool-private # icon z17- (also has captio
# === -9770
# barrier-entrance # caption(optional) z16- (also has icon z16-)
# entrance-main # caption(optional) z18- (also has icon z16-)
# entrance-main # caption(optional) z18- (also has icon z17-)
# === -9775
# entrance # caption(optional) z19- (also has icon z17-)
# entrance-entry # caption(optional) z19- (also has icon z17-)
# entrance-exit # caption(optional) z19- (also has icon z17-)
# === -9780
# entrance-emergency # caption(optional) z20- (also has icon z20-)
# === -9785
# historic-anchor # caption(optional) z18- (also has icon z18-)
# historic-cannon # caption(optional) z18- (also has icon z18-)
# historic-memorial-plaque # caption(optional) z18- (also has icon z18-)
@@ -2329,11 +2344,14 @@ tourism-information # icon z16- (also has captio
tourism-information-board # icon z16- (also has caption(optional) z16-)
tourism-information-guidepost # icon z16- (also has caption(optional) z16-)
tourism-information-map # icon z16- (also has caption(optional) z16-)
=== -9950
=== -9940
amenity # caption z19-
amenity-telephone # icon z17- (also has caption(optional) z19-)
entrance # icon z17- (also has caption(optional) z19-)
entrance-house # icon z19- (also has caption(optional) z19-)
=== -9950
entrance-garage # icon z19- (also has caption(optional) z19-)
=== -9960
amenity-food_sharing # icon z18- (also has caption(optional) z18-)
@@ -2362,7 +2380,7 @@ amenity-lounger # icon z18- (also has captio
amenity-waste_disposal # icon z18- (also has caption(optional) z18-)
emergency-assembly_point # icon z18- (also has caption(optional) z18-)
emergency-defibrillator # icon z18- (also has caption(optional) z18-)
emergency-phone # icon z17-
emergency-phone # icon z17- (also has caption(optional) z19-)
man_made-telescope # icon z18- (also has caption(optional) z18-)
=== -9980
@@ -2371,12 +2389,15 @@ emergency-fire_hydrant # icon z19- (also has captio
power-substation # icon z17- (also has caption(optional) z18-, area z13-)
=== -9990
natural-tree # icon z18-
=== -9991
# 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-loading_dock # icon z19- (also has caption(optional) z19-)
# amenity-loading_dock # caption(optional) z19- (also has icon z19-)
# amenity-lounger # caption(optional) z19- (also has icon z18-)
# amenity-parking_space-disabled # caption(optional) z19- (also has icon z18-)
# amenity-telephone # caption(optional) z19- (also has icon z17-)
@@ -2394,9 +2415,11 @@ amenity-loading_dock # icon z18- (also has captio
# emergency-assembly_point # caption(optional) z18- (also has icon z18-)
# emergency-defibrillator # caption(optional) z18- (also has icon z18-)
# emergency-fire_hydrant # caption(optional) z19- (also has icon z19-)
# entrance # caption(optional) z19- (also has icon z17-)
entrance-exit # icon z17- (also has caption(optional) z19-)
# entrance-exit # caption(optional) z19- (also has icon z17-)
# emergency-phone # caption(optional) z19- (also has icon z17-)
# entrance-garage # caption(optional) z19- (also has icon z19-)
# entrance-house # caption(optional) z19- (also has icon z19-)
entrance-service # icon z19- (also has caption(optional) z19-)
# entrance-service # caption(optional) z19- (also has icon z19-)
# 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-)

View File

@@ -0,0 +1 @@
<svg height="15" viewBox="0 0 15 15" width="15" xmlns="http://www.w3.org/2000/svg"><g fill="none"><rect fill="#fff" height="15" opacity=".6" rx="1.875" width="15"/><rect fill="#2f6499" height="13.5" rx="1.5" width="13.5" x=".75" y=".75"/><path d="m4.30833333 11.4713297c.21052121.0559605.43455474.0861305.66692134.0861305h.66552345l.00088855.3790098c0 .311229-.29836282.56353-.666412.56353-.3680492 0-.666412-.252301-.666412-.56353zm6.38295947.0002346.0003739.4649057c0 .311229-.298278.56353-.6662225.56353-.36794462 0-.66622253-.252301-.66622253-.56353l-.00088834-.3790098h.66711087c.2319755 0 .4556437-.0300857.6658486-.0858959zm-.561486-8.55489763c.829944 0 1.5027466.67280261 1.5027466 1.50274669v5.25961347c0 .82994407-.6728026 1.50274667-1.5027466 1.50274667h-5.25961352c-.82994407 0-1.50274669-.6728026-1.50274669-1.50274667v-5.25961347c0-.82994408.67280262-1.50274669 1.50274669-1.50274669zm-5.24127678 6.38667341c-.31122904 0-.56353002.252301-.56353002.56353 0 .31122912.25230098.56353012.56353002.56353012.31122902 0 .56353001-.252301.56353001-.56353012 0-.311229-.25230099-.56353-.56353001-.56353zm5.21666668 0c-.31122903 0-.56353003.252301-.56353003.56353 0 .31122912.252301.56353012.56353003.56353012.311229 0 .56353-.252301.56353-.56353012 0-.311229-.252301-.56353-.56353-.56353zm.56147-3.84500675h-6.3416667v2.42105266c0 .3565628.31547343.64561401.70462963.64561401h4.93240737c.3891563 0 .7046297-.28905121.7046297-.64561401zm-.7046297-1.58333333h-4.93240737c-.3891562 0-.70462963.3364013-.70462963.75137335v.37568667h6.3416667v-.37568667c0-.41497205-.3154734-.75137335-.7046297-.75137335z" fill="#fff" fill-rule="evenodd"/></g></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1 @@
<svg height="6" viewBox="0 0 6 6" width="6" xmlns="http://www.w3.org/2000/svg"><g fill="none"><path d="m5 0c.55228475 0 1 .44771525 1 1v4c0 .55228475-.44771525 1-1 1h-4c-.55228475 0-1-.44771525-1-1v-4c0-.55228475.44771525-1 1-1z" fill="#fff" fill-opacity=".6"/><path d="m1 .5h4c.27614237 0 .5.22385763.5.5v4c0 .27614237-.22385763.5-.5.5h-4c-.27614237 0-.5-.22385763-.5-.5v-4c0-.27614237.22385763-.5.5-.5z" fill="#2f6499" fill-rule="evenodd"/></g></svg>

After

Width:  |  Height:  |  Size: 452 B

View File

@@ -0,0 +1 @@
<svg height="5" viewBox="0 0 5 5" width="5" xmlns="http://www.w3.org/2000/svg"><g fill="none"><path d="m4 0c.55228475 0 1 .44771525 1 1v3c0 .55228475-.44771525 1-1 1h-3c-.55228475 0-1-.44771525-1-1v-3c0-.55228475.44771525-1 1-1z" fill="#fff" fill-opacity=".6"/><path d="m1 .5h3c.27614237 0 .5.22385763.5.5v3c0 .27614237-.22385763.5-.5.5h-3c-.27614237 0-.5-.22385763-.5-.5v-3c0-.27614237.22385763-.5.5-.5z" fill="#2f6499" fill-rule="evenodd"/></g></svg>

After

Width:  |  Height:  |  Size: 452 B

View File

@@ -0,0 +1 @@
<svg height="4" viewBox="0 0 4 4" width="4" xmlns="http://www.w3.org/2000/svg"><g fill="none"><path d="m3 0c.55228475 0 1 .44771525 1 1v2c0 .55228475-.44771525 1-1 1h-2c-.55228475 0-1-.44771525-1-1v-2c0-.55228475.44771525-1 1-1z" fill="#fff" fill-opacity=".6"/><path d="m1 .5h2c.27614237 0 .5.22385763.5.5v2c0 .27614237-.22385763.5-.5.5h-2c-.27614237 0-.5-.22385763-.5-.5v-2c0-.27614237.22385763-.5.5-.5z" fill="#2f6499" fill-rule="evenodd"/></g></svg>

After

Width:  |  Height:  |  Size: 452 B

View File

@@ -0,0 +1 @@
<svg height="10" viewBox="0 0 8 10" width="8" xmlns="http://www.w3.org/2000/svg"><g fill="none"><path d="m6.45638209 0c.37609148 0 .72425864.1747833.96936352.49369282l.06615442.10027904c.10687134.18244079.16414241.39064697.16414241.60600579l.00033965 7.60002235c0 .08452163-.00881715.16822686-.03378359.28090951l-.0458696.14760544-.06668844.14497209-.07146019.1153718-.06179076.08041635-.07556165.08214374-.10781751.09508139-.10964934.07580657-.12987138.06948085-.07954583.03314166c-.04905188.01754418-.04905188.01754418-.1303233.03957053l-.15920996.02799023-.1287681.00750984h-4.22425693c-.10907652 0-.21669708-.01468463-.35383951-.05390448l-.14047138-.05265064-.10280855-.05337186-.14765925-.09957233-.10159134-.09041744-.10489342-.11895698-.0784479-.11480897-.05509066-.10505725-.06607418-.17129918-.02223491-.08669691c-.01814821-.0826435-.02722855-.16749219-.02722706-.25204115l-.00144536-.591-.00199757-.28322281-.02893303.00146741c-.51942228.01887315-.91865829-.24714738-.98830514-.67658602l-.01042408-.11069391c-.01253177-.43076054.32054599-.82795908.77223753-.84441048l.25542472-.030777c.00229529-.08066906.00229529-.18987309 0-.32761211-.03371432-.00977655-.08956256-.02247896-.1233309-.03714759-.45095098-.19588858-.51469301-.68984012-.30519389-1.15166694l.43196772-.89919451c.00947774-.02096777.00947724-.90442739-.00000149-2.65037885 0-.6627417.5372583-1.2 1.2-1.2z" fill="#fff" opacity=".6"/><path d="m6.45638209.5c.22551627 0 .42612467.10664329.55414621.27225087l.04994362.07444573c.06074822.1037037.09557052.22443696.09557052.3533034l.00033965 7.6c0 .05011473-.00526633.09899944-.01527578.1461309l-.02384038.085169-.03771531.08786746-.0419297.07097489-.03740085.05020216-.03821292.04374726-.06347463.05861778-.06028924.04402764-.07874284.044385-.06117341.02581362c-.01766844.00664526-.03607223.01258439-.05479097.01776541l-.09216812.01890871-.0953255.00639017h-4.22425693c-.06480353 0-.12755032-.00880593-.18710905-.02528645l-.09162788-.0324093-.04872236-.02328158-.09538019-.0610859-.05713707-.04808259-.06450448-.06946502-.04937574-.06908366-.02934081-.05219473-.04389022-.10543844-.01765973-.06765121c-.01032579-.04702168-.01559212-.09590639-.01559212-.14602112l-.00144537-.591.66089153-.02540436.09415983-.01277867-.00300941.57818303h4.12374307v-7.499h-4.12374307l-.00049701.60518552c-.30277731.25714038-.49010086.63138619-.49010086 1.05120766l.00555985.11160682-.07728011.00485305c-.0660555.00624911-.12924699.01672474-.18947556.03124346l.00119711-1.85409651c0-.38659932.31340067-.7.7-.7zm-2.256326 3.31599576c.25595671 0 .43735449.1230815.49018767.54084433l.02877808.57142067.62174436.19704693c.31792476.09362657.4520938.24201607.40250712.44516851-.03257321.13344966-.16664108.18318709-.40220364.14921229-.11574123-.01797477-.23380508-.05174093-.31880324-.0684414l-.60646039-.16066363c-.26277038-.06961813-.29780643-.22302452-.30247791-.41885973l-.07592051-.64933479-.16065403.0000192c-.19078646.30319659-.10110927.79611708-.16066363 1.25944922h.29120123c.32132726 0 .83343457.3031966.51210731.90960578l-.48199088.90963778c-.32132726.60639318-.80328614.15159989-.64265452-.1515999l.48199089-.90963778c.0648808-.12244607-.03044986-.14599339-.10942109-.15052172l-.84425517-.00107817-.15426327.28432918-.14131385.24161291c-.14333507.22167486-.22812622.57718916-.61780982.57718916l-1.02876487.03740254c-.68581553.02491902-.53293243-.61986625-.19003789-.63235508l1.0908756-.03994917c.05913462-.0063629.08251176-.03738214.18447811-.22729991.13109959-.24417998.20388236-.45229962.20388236-.59080509 0-.35265986.06565766-1.09536109.16065723-1.51599895h-.48199088l-.09191427.16896043-.3097352.59819487c-.14617965.27634582-.31140187.31036692-.44324586.25309522-.13184399-.05727171-.15972216-.24295654-.05677328-.47029852l.50001914-1.00474529c.02972597-.06576327.08142637-.15159989.32132725-.15159989zm-.965957-1.51599576c.3549322 0 .64265451.27147032.64265451.60639318 0 .33492926-.28771911.60639318-.64265451.60639318-.3549322 0-.64265452-.27147032-.64265452-.60639318 0-.31522754.25486538-.57423664.58076149-.60361755z" fill="#019b41"/></g></svg>

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@@ -0,0 +1 @@
<svg height="9" viewBox="0 0 6 9" width="6" xmlns="http://www.w3.org/2000/svg"><path d="m5.05357504.00381365c.38659933 0 .7.31340068.7.7v7.6c0 .38659933-.31340067.7-.7.7h-4.22459658c-.38659933 0-.7-.31340067-.7-.7v-7.6c0-.38659932.31340067-.7.7-.7zm-.05059658.749-4.125.001v7.499h4.125z" fill="#747e86"/></svg>

After

Width:  |  Height:  |  Size: 310 B

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="6" height="9" version="1.1" viewBox="0 0 6 9" xmlns="http://www.w3.org/2000/svg">
<path d="m0.5 0.5h5v8h-5z" fill="none" stroke="#747E86" stroke-width=".75"/>
</svg>

Before

Width:  |  Height:  |  Size: 218 B

View File

@@ -0,0 +1 @@
<svg height="6" viewBox="0 0 4 6" width="4" xmlns="http://www.w3.org/2000/svg"><path d="m3.37632615.00381365c.27614238 0 .5.22385763.5.5v4.99618635c0 .27614237-.22385762.5-.5.5h-2.74734769c-.27614238 0-.5-.22385763-.5-.5v-4.99618635c0-.27614237.22385762-.5.5-.5zm-.25034769.75h-2.247v4.496h2.247z" fill="#747e86" transform="translate(.0041)"/></svg>

After

Width:  |  Height:  |  Size: 349 B

View File

@@ -0,0 +1 @@
<svg height="9" viewBox="0 0 11 9" width="11" xmlns="http://www.w3.org/2000/svg"><path d="m10.0493285 0c.3869702 0 .7006715.31340068.7006715.7v7.59309317c0 .38659933-.3137013.7-.7006715.7l-4.17193572-.00009317-.75042427.007-4.17629705-.00690683c-.38697016 0-.70067146-.31340067-.70067146-.7v-7.59309317c0-.38659932.3137013-.7.70067146-.7zm-4.92265514.749-4.12595394.001-.00100096 7.493 4.1269549-.001v-1.748l-.62530437.00082255-.00029515-1.00082255-1.00066408.00082255v-2l1.00066408-.00082255.00029515-.99917745.62530437-.00082255zm4.87166855.001-4.12094913-.001v1.745l.62589466.00082255-.00029515.99917745 1.00125438.00082255v2l-1.00125438-.00082255.00029515 1.00082255-.62589466-.00082255v1.748l4.12094913.001z" fill="#d85961"/></svg>

After

Width:  |  Height:  |  Size: 736 B

View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="11" height="9" version="1.1" viewBox="0 0 11 9" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
<path d="m0.5 0.5v8h10v-8z" fill="none" stroke="#D85961" stroke-width=".75"/>
<path d="m5.5 0.5v8" fill="none" stroke="#D85961" stroke-width=".75"/>
<path d="m7.5834 5.3334h-1.25v1.25c0 0.22916-0.18749 0.41667-0.41667 0.41667h-0.83337c-0.22916 0-0.41667-0.18749-0.41667-0.41667v-1.25h-1.25c-0.22916 0-0.41667-0.18749-0.41667-0.41667v-0.83337c0-0.22917 0.18749-0.41667 0.41667-0.41667h1.25v-1.25c0-0.22916 0.18749-0.41667 0.41667-0.41667h0.83337c0.22917 0 0.41667 0.18749 0.41667 0.41667v1.25h1.25c0.22916 0 0.41667 0.1875 0.41667 0.41667v0.83337c0 0.22916-0.18749 0.41667-0.41667 0.41667z" fill="#D85961"/>
</svg>

Before

Width:  |  Height:  |  Size: 773 B

View File

@@ -0,0 +1 @@
<svg height="6" viewBox="0 0 7 6" width="7" xmlns="http://www.w3.org/2000/svg"><path d="m6.49689709-.00309317c.27614237 0 .5.22385762.5.5v4.99618634c0 .27614238-.22385763.5-.5.5l-2.62189709-.00018634-.75.00709317-2.625-.00690683c-.27614237 0-.5-.22385762-.5-.5v-4.99618634c0-.27614238.22385763-.5.5-.5zm-3.37189709.749-2.375.001v4.496h2.375v-.748l-.375.00009317-.001-.75009317-.749.00009317v-1.5l.749-.00009317.001-.74990683.375-.00009317zm3.121 0-2.371-.001v.75l.375.00009317-.001.74990683.751.00009317v1.5l-.751-.00009317.001.75009317-.375-.00009317v.748h2.371z" fill="#d85961"/></svg>

After

Width:  |  Height:  |  Size: 587 B

View File

@@ -0,0 +1 @@
<svg height="9" viewBox="0 0 12 9" width="12" xmlns="http://www.w3.org/2000/svg"><path d="m4.50016351 0c-.38659932 0-.7.31340068-.7.7l.00059659 2.55h.751l-.001-2.501 4.125.001v7.499h-4.125l.001-2.499h-.751l-.00059659 2.55c0 .38659932.31340068.7.7.7h4.22459659c.38659932 0 .7-.31340068.7-.7v-7.6c0-.38659932-.31340068-.7-.7-.7zm1.758459 2.50813059 1.99137749 1.99137749-1.99137749 1.99236133-.53033009-.53033009 1.11942967-1.11953932-5.09772209.00011809v-.75l5.03172209-.00011809-1.05342967-1.05353932z" fill="#747e86"/></svg>

After

Width:  |  Height:  |  Size: 525 B

View File

@@ -0,0 +1 @@
<svg height="7" viewBox="0 0 9 7" width="9" xmlns="http://www.w3.org/2000/svg"><path d="m3.27575522.00381365c-.27614238 0-.5.22385763-.5.5l.00034769 1.24618635h.751l-.001-.99618635h2.247v4.496h-2.247l.001-.99981365h-.751l-.00034769 1.25c0 .27614237.22385762.5.5.5h2.74734769c.27614238 0 .5-.22385763.5-.5v-4.99618635c0-.27614237-.22385762-.5-.5-.5zm.93313413 1.6162696 1.41421356 1.41421356-1.41421356 1.4151974-.53033009-.53033008.54264244-.54235048-3.1012017.00009318v-.75l3.0352017-.00009318-.47664244-.47640031z" fill="#747e86" transform="translate(.1946 .4987)"/></svg>

After

Width:  |  Height:  |  Size: 574 B

View File

@@ -0,0 +1 @@
<svg height="9" viewBox="0 0 12 9" width="12" xmlns="http://www.w3.org/2000/svg"><path d="m7.49983649 0c.38659932 0 .7.31340068.7.7l-.00059659 2.55h-.751l.001-2.501-4.125.001v7.499h4.125l-.001-2.499h.751l.00059659 2.55c0 .38659932-.31340068.7-.7.7h-4.22459659c-.38659932 0-.7-.31340068-.7-.7v-7.6c0-.38659932.31340068-.7.7-.7zm2.50878601 2.50813059 1.9913775 1.99137749-1.9913775 1.99236133-.53033008-.53033009 1.11942968-1.11953932-5.0977221.00011809v-.75l5.0317221-.00011809-1.05342968-1.05353932z" fill="#747e86"/></svg>

After

Width:  |  Height:  |  Size: 523 B

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="9" height="9" version="1.1" viewBox="0 0 9 9" xmlns="http://www.w3.org/2000/svg">
<path d="m6.5704 0.1875v1.8427l1.0591 2.0948h-4.6294v0.75h4.6294l-1.0591 2.0948v1.8428l2.1796-4.3125z" fill="#747E86"/>
<path d="m0.5 0.5h5v8h-5z" fill="none" stroke="#747E86" stroke-width=".75"/>
</svg>

Before

Width:  |  Height:  |  Size: 339 B

View File

@@ -0,0 +1 @@
<svg height="6" viewBox="0 0 8 6" width="8" xmlns="http://www.w3.org/2000/svg"><path d="m4.74424478.00381365c.27614238 0 .5.22385763.5.5l-.00034769 1.24618635h-.751l.001-.99618635h-2.247v4.496h2.247l-.001-.99981365h.751l.00034769 1.25c0 .27614237-.22385762.5-.5.5h-2.74734769c-.27614238 0-.5-.22385763-.5-.5v-4.99618635c0-.27614237.22385762-.5.5-.5zm1.84154166 1.6162696 1.41421356 1.41421356-1.41421356 1.4151974-.53033009-.53033008.54264244-.54235048-3.1012017.00009318v-.75l3.0352017-.00009318-.47664244-.47640031z" fill="#747e86" transform="translate(.0081)"/></svg>

After

Width:  |  Height:  |  Size: 570 B

View File

@@ -0,0 +1 @@
<svg height="9" viewBox="0 0 6 9" width="6" xmlns="http://www.w3.org/2000/svg"><path d="m5.05092274-.01381365c.38659932 0 .7.31340067.7.7v7.6c0 .38659932-.31340068.7-.7.7h-4.22459659c-.38659932 0-.7-.31340068-.7-.7v-7.6c0-.38659933.31340068-.7.7-.7zm-.05059659.749-4.125.001v7.499h4.125zm-2.75032615 3.01481365c.41421356 0 .75.33578644.75.75s-.33578644.75-.75.75-.75-.33578644-.75-.75.33578644-.75.75-.75z" fill="#747e86"/></svg>

After

Width:  |  Height:  |  Size: 429 B

View File

@@ -0,0 +1 @@
<svg height="9" viewBox="0 0 11 9" width="11" xmlns="http://www.w3.org/2000/svg"><path d="m10.0510104 0c.3865993 0 .7.31340068.7.7v7.6c0 .38659932-.3134007.7-.7.7h-9.1020208c-.38659933 0-.7-.31340068-.7-.7v-7.6c0-.38659932.31340067-.7.7-.7zm-4.9240208.75h-4.128v7.5h4.128zm4.874 0h-4.124v7.5h4.124zm-2.7509896 3c.41421356 0 .75.33578644.75.75s-.33578644.75-.75.75-.75-.33578644-.75-.75.33578644-.75.75-.75zm-3.5 0c.41421356 0 .75.33578644.75.75s-.33578644.75-.75.75-.75-.33578644-.75-.75.33578644-.75.75-.75z" fill="#747e86"/></svg>

After

Width:  |  Height:  |  Size: 532 B

View File

@@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="11" height="9" version="1.1" viewBox="0 0 11 9" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
<path d="m0.5 0.5v8h10v-8z" fill="none" stroke="#747E86" stroke-width=".75"/>
<path d="m5.5 0.5v8" fill="none" stroke="#747E86" stroke-width=".75"/>
<circle cx="4" cy="4.5" r=".75" fill="#747E86"/>
<circle cx="7" cy="4.5" r=".75" fill="#747E86"/>
</svg>

Before

Width:  |  Height:  |  Size: 414 B

View File

@@ -0,0 +1 @@
<svg height="6" viewBox="0 0 7 6" width="7" xmlns="http://www.w3.org/2000/svg"><path d="m6.5.00381365c.27614237 0 .5.22385763.5.5v4.99618635c0 .27614237-.22385763.5-.5.5h-5.99689709c-.27614237 0-.5-.22385763-.5-.5v-4.99618635c0-.27614237.22385763-.5.5-.5zm-3.37189709.749-2.375.001v4.496h2.375zm3.121 0-2.371-.001v4.498h2.371zm-1.62410291 1.77843635c.25888348 0 .46875.20986652.46875.46875s-.20986652.46875-.46875.46875-.46875-.20986652-.46875-.46875.20986652-.46875.46875-.46875zm-2.25 0c.25888348 0 .46875.20986652.46875.46875s-.20986652.46875-.46875.46875-.46875-.20986652-.46875-.46875.20986652-.46875.46875-.46875z" fill="#747e86" transform="translate(.0041)"/></svg>

After

Width:  |  Height:  |  Size: 672 B

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="6" height="9" version="1.1" viewBox="0 0 6 9" xmlns="http://www.w3.org/2000/svg">
<path d="m0.5 0.5h5v8h-5z" fill="none" stroke="#747E86" stroke-width=".75"/>
<circle cx="2" cy="4.5" r=".75" fill="#747E86"/>
</svg>

Before

Width:  |  Height:  |  Size: 268 B

View File

@@ -0,0 +1 @@
<svg height="9" viewBox="0 0 6 9" width="6" xmlns="http://www.w3.org/2000/svg"><path d="m5.05357504.00381365c.38659933 0 .7.31340068.7.7v7.6c0 .38659933-.31340067.7-.7.7h-4.22459658c-.38659933 0-.7-.31340067-.7-.7v-7.6c0-.38659932.31340067-.7.7-.7zm-.05059658.749-4.125.001v7.499h4.125zm-2.06170171 1.99718635c.96649831 0 1.75.78350169 1.75 1.75s-.78350169 1.75-1.75 1.75-1.75-.78350169-1.75-1.75.78350169-1.75 1.75-1.75zm1.16666667 1.3125h-2.33333334v.875h2.33333334z" fill="#747e86"/></svg>

After

Width:  |  Height:  |  Size: 492 B

View File

@@ -0,0 +1 @@
<svg height="6" viewBox="0 0 4 6" width="4" xmlns="http://www.w3.org/2000/svg"><path d="m3.37632615.00381365c.27614238 0 .5.22385763.5.5v4.99618635c0 .27614237-.22385762.5-.5.5h-2.74734769c-.27614238 0-.5-.22385763-.5-.5v-4.99618635c0-.27614237.22385762-.5.5-.5zm-.25034769.75h-2.247v4.496h2.247zm-1.1300447 1.24618635c.55228475 0 1 .44771525 1 1s-.44771525 1-1 1-1-.44771525-1-1 .44771525-1 1-1zm.75671854.75190683h-1.5v.5h1.5z" fill="#747e86" transform="translate(.0041)"/></svg>

After

Width:  |  Height:  |  Size: 481 B

View File

@@ -0,0 +1 @@
<svg height="6" viewBox="0 0 4 6" width="4" xmlns="http://www.w3.org/2000/svg"><path d="m3.37367385 0c.27614237 0 .5.22385763.5.5v4.99618635c0 .27614237-.22385763.5-.5.5h-2.7473477c-.27614237 0-.5-.22385763-.5-.5v-4.99618635c0-.27614237.22385763-.5.5-.5zm-.2503477.75h-2.247v4.496h2.247zm-1.49832615 1.78125c.25888348 0 .46875.20986652.46875.46875s-.20986652.46875-.46875.46875-.46875-.20986652-.46875-.46875.20986652-.46875.46875-.46875z" fill="#747e86"/></svg>

After

Width:  |  Height:  |  Size: 462 B

View File

@@ -1 +0,0 @@
<svg height="4" viewBox="0 0 4 4" width="4" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><defs><path id="a" d="m0 0h4v4h-4z"/></defs><g fill="none" fill-rule="evenodd" xlink:href="#a"><path d="m0 0h4v4h-4z" fill="#eed"/><path d="m.67.67h2.67v2.67h-2.67z" fill="#65655E"/></g></svg>

Before

Width:  |  Height:  |  Size: 314 B

View File

@@ -0,0 +1 @@
<svg height="18" viewBox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="m9.76536686 3.31703659 2.71190694 1.12330864c.4900562.20298791.8794043.59233602 1.0823922 1.0823922l1.1233087 2.71190696c.2029879.49005617.2029879 1.04067755 0 1.53073372l-1.1233087 2.71190699c-.2029879.4900561-.592336.8794043-1.0823922 1.0823922l-2.71190694 1.1233086c-.49005617.2029879-1.04067755.2029879-1.53073372 0l-2.71190696-1.1233086c-.49005618-.2029879-.87940429-.5923361-1.0823922-1.0823922l-1.12330864-2.71190699c-.20298792-.49005617-.20298792-1.04067755 0-1.53073372l1.12330864-2.71190696c.20298791-.49005618.59233602-.87940429 1.0823922-1.0823922l2.71190696-1.12330864c.43560548-.18043371.91906496-.20048189 1.36530467-.06014457z" fill="#a2ba4e" fill-rule="evenodd"/></svg>

After

Width:  |  Height:  |  Size: 778 B

View File

@@ -242,6 +242,7 @@ natural-beach-gravel # area z10- (also has captio
natural-beach-sand # area z10- (also has caption z14-)
natural-desert # area z1- (also has caption z14-)
natural-glacier # area z1-
natural-sand # area z1- (also has caption z15-)
=== 30
natural-land # area z1-

View File

@@ -550,7 +550,7 @@ railway-subway_entrance-yokohama # icon z16- (also has captio
railway-tram_stop # icon z14- (also has caption(optional) z17-)
=== 3650
highway-bus_stop # icon z16- (also has caption(optional) z17-)
highway-bus_stop # icon z14- (also has caption(optional) z17-)
=== 3600
amenity-drinking_water # icon z12- (also has caption(optional) z14-)
@@ -574,6 +574,7 @@ natural-beach-gravel # caption z14- (also has are
natural-beach-sand # caption z14- (also has area z10-)
natural-cape # caption z14-
natural-desert # caption z14- (also has area z1-)
natural-sand # caption z15- (also has area z1-)
=== 3250
shop-supermarket # icon z16- (also has caption(optional) z16-)
@@ -1298,9 +1299,15 @@ power-pole # icon z15-
=== 230
barrier-entrance # icon z16- (also has caption(optional) z16-)
entrance-main # icon z16- (also has caption(optional) z18-)
entrance-main # icon z17- (also has caption(optional) z18-)
=== 225
entrance # icon z17- (also has caption(optional) z19-)
entrance-entry # icon z17- (also has caption(optional) z19-)
entrance-exit # icon z17- (also has caption(optional) z19-)
=== 220
entrance-emergency # icon z20- (also has caption(optional) z20-)
highway-traffic_signals # icon z19-
=== 215
@@ -1778,7 +1785,7 @@ leisure-swimming_pool-private # icon z17- (also has captio
# railway-tram_stop # caption(optional) z17- (also has icon z14-)
# === -6350
# highway-bus_stop # caption(optional) z17- (also has icon z16-)
# highway-bus_stop # caption(optional) z17- (also has icon z14-)
# === -6400
# amenity-drinking_water # caption(optional) z14- (also has icon z12-)
@@ -2291,9 +2298,17 @@ leisure-swimming_pool-private # icon z17- (also has captio
# === -9770
# barrier-entrance # caption(optional) z16- (also has icon z16-)
# entrance-main # caption(optional) z18- (also has icon z16-)
# entrance-main # caption(optional) z18- (also has icon z17-)
# === -9775
# entrance # caption(optional) z19- (also has icon z17-)
# entrance-entry # caption(optional) z19- (also has icon z17-)
# entrance-exit # caption(optional) z19- (also has icon z17-)
# === -9780
# entrance-emergency # caption(optional) z20- (also has icon z20-)
# === -9785
# historic-anchor # caption(optional) z18- (also has icon z18-)
# historic-cannon # caption(optional) z18- (also has icon z18-)
# historic-memorial-plaque # caption(optional) z18- (also has icon z18-)
@@ -2335,11 +2350,14 @@ tourism-information # icon z15- (also has captio
tourism-information-board # icon z15- (also has caption(optional) z15-)
tourism-information-guidepost # icon z15- (also has caption(optional) z15-)
tourism-information-map # icon z15- (also has caption(optional) z15-)
=== -9950
=== -9940
amenity # caption z19-
amenity-telephone # icon z17- (also has caption(optional) z19-)
entrance # icon z17- (also has caption(optional) z19-)
entrance-house # icon z19- (also has caption(optional) z19-)
=== -9950
entrance-garage # icon z19- (also has caption(optional) z19-)
=== -9960
amenity-food_sharing # icon z18- (also has caption(optional) z18-)
@@ -2368,7 +2386,7 @@ amenity-lounger # icon z18- (also has captio
amenity-waste_disposal # icon z18- (also has caption(optional) z18-)
emergency-assembly_point # icon z18- (also has caption(optional) z18-)
emergency-defibrillator # icon z18- (also has caption(optional) z18-)
emergency-phone # icon z17-
emergency-phone # icon z17- (also has caption(optional) z19-)
man_made-telescope # icon z18- (also has caption(optional) z18-)
=== -9980
@@ -2377,12 +2395,15 @@ emergency-fire_hydrant # icon z19- (also has captio
power-substation # icon z17- (also has caption(optional) z18-, area z13-)
=== -9990
natural-tree # icon z18-
=== -9991
# 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-loading_dock # icon z19- (also has caption(optional) z19-)
# amenity-loading_dock # caption(optional) z19- (also has icon z19-)
# amenity-lounger # caption(optional) z19- (also has icon z18-)
# amenity-parking_space-disabled # caption(optional) z19- (also has icon z18-)
# amenity-telephone # caption(optional) z19- (also has icon z17-)
@@ -2400,9 +2421,11 @@ amenity-loading_dock # icon z18- (also has captio
# emergency-assembly_point # caption(optional) z18- (also has icon z18-)
# emergency-defibrillator # caption(optional) z18- (also has icon z18-)
# emergency-fire_hydrant # caption(optional) z19- (also has icon z19-)
# entrance # caption(optional) z19- (also has icon z17-)
entrance-exit # icon z17- (also has caption(optional) z19-)
# entrance-exit # caption(optional) z19- (also has icon z17-)
# emergency-phone # caption(optional) z19- (also has icon z17-)
# entrance-garage # caption(optional) z19- (also has icon z19-)
# entrance-house # caption(optional) z19- (also has icon z19-)
entrance-service # icon z19- (also has caption(optional) z19-)
# entrance-service # caption(optional) z19- (also has icon z19-)
# 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-)

View File

@@ -178,6 +178,7 @@ area|z12-[amenity=prison]
/* 5.BEACH, GLACIER, DESERT, etc. */
area|z0-[natural=glacier],
area|z0-[natural=sand],
area|z10-[natural=beach],
area|z0-[natural=desert],
area|z10-[leisure=beach_resort],
@@ -186,6 +187,7 @@ area|z10-[leisure=beach_resort],
area|z0-[natural=glacier]
{fill-color: @glacier;}
area|z0-[natural=sand],
area|z10-[natural=beach],
area|z10-[leisure=beach_resort],
{fill-color: @beach;fill-opacity: 0.35;}

View File

@@ -363,6 +363,7 @@ area|z18-[leisure=park][!name]
area|z14-[natural=desert],
area|z15-[leisure=beach_resort],
area|z15-[natural=sand],
area|z15-[natural=beach],
node|z17-[leisure=beach_resort],
node|z17-[natural=beach]

View File

@@ -133,6 +133,7 @@ natural-beach-gravel # area z10- (also has captio
natural-beach-sand # area z10- (also has caption z15-)
natural-desert # area z1- (also has caption z14-)
natural-glacier # area z1-
natural-sand # area z1- (also has caption z15-)
=== 30
natural-land # area z1-

View File

@@ -473,6 +473,7 @@ shop-mall # icon z14- (also has captio
=== 1500
natural-desert # caption z14- (also has area z1-)
natural-sand # caption z15- (also has area z1-)
=== 1450
natural-bay # caption z14-
@@ -756,11 +757,19 @@ building-has_parts # caption z18- (also has are
building-garage # caption z18- (also has area z15-)
building-guardhouse # icon z18- (also has area z15-)
=== 30
=== 40
entrance-main # icon z18- (also has caption(optional) z18-)
=== 30
entrance # icon z19- (also has caption(optional) z19-)
entrance-entry # icon z19- (also has caption(optional) z19-)
entrance-exit # icon z19- (also has caption(optional) z19-)
=== 20
entrance-emergency # icon z19- (also has caption(optional) z19-)
=== 10
#
# All automatic optional captions priorities are below 0.
# They follow the order of their correspoding icons.
@@ -1231,13 +1240,27 @@ entrance-main # icon z18- (also has captio
# leisure-park-private # caption(optional) z14- (also has icon z14-, area z10-)
# === -9900
entrance-garage # icon z19- (also has caption(optional) z19-)
=== -9910
entrance-house # icon z19- (also has caption(optional) z19-)
=== -9920
# entrance-main # caption(optional) z18- (also has icon z18-)
# === -9970
# entrance # caption(optional) z19- (also has icon z19-)
# entrance-entry # caption(optional) z19- (also has icon z19-)
# entrance-exit # caption(optional) z19- (also has icon z19-)
# === -9980
# entrance-emergency # caption(optional) z19- (also has icon z19-)
# === -9990
amenity-loading_dock # icon z19- (also has caption(optional) z19-)
# amenity-loading_dock # caption(optional) z19- (also has icon z19-)
entrance # icon z19- (also has caption(optional) z19-)
# entrance # caption(optional) z19- (also has icon z19-)
entrance-exit # icon z19- (also has caption(optional) z19-)
# entrance-exit # caption(optional) z19- (also has icon z19-)
# entrance-garage # caption(optional) z19- (also has icon z19-)
# entrance-house # caption(optional) z19- (also has icon z19-)
entrance-service # icon z19- (also has caption(optional) z19-)
# entrance-service # caption(optional) z19- (also has icon z19-)
=== -10000

View File

@@ -495,7 +495,7 @@ void BuildAddressTable(FilesContainerR & container, std::string const & addressD
if (!street.empty())
{
auto const streets = search::ReverseGeocoder::GetNearbyStreets(*contexts[threadIdx], center, kStreetRadiusM);
auto const streets = search::ReverseGeocoder::GetNearbyStreets(*contexts[threadIdx], center, kStreetRadiusM, true);
streetId = MatchObjectByName(street, streets, [](std::string_view name)
{ return search::GetStreetNameAsKey(name, false /* ignoreStreetSynonyms */); });
@@ -508,7 +508,7 @@ void BuildAddressTable(FilesContainerR & container, std::string const & addressD
if (!place.empty())
{
auto const places = search::ReverseGeocoder::GetNearbyPlaces(*contexts[threadIdx], center, kPlaceRadiusM);
auto const places = search::ReverseGeocoder::GetNearbyPlaces(*contexts[threadIdx], center, kPlaceRadiusM, true);
placeId = MatchObjectByName(place, places, [](std::string_view name) { return strings::MakeUniString(name); });
}

View File

@@ -27,7 +27,7 @@
"type.amenity.bicycle_parking" = "Cykelparkering";
"type.amenity.bicycle_rental" = "Cykeludlejning";
"type.amenity.bicycle_repair_station" = "Cykelreparationsstation";
"type.amenity.biergarten" = "Traktørsted";
"type.amenity.biergarten" = "Biergarten";
"type.amenity.brothel" = "Bordel";
"type.amenity.bureau_de_change" = "Valutaveksling";
"type.amenity.bus_station" = "Rutebilstation";
@@ -40,9 +40,9 @@
"type.amenity.gambling" = "Gambling";
"type.leisure.adult_gaming_centre" = "Spillehal for voksne";
"type.leisure.amusement_arcade" = "Arkadespil";
"type.amenity.charging_station" = "Ladestander";
"type.amenity.charging_station.bicycle" = "Cykelladestander";
"type.amenity.charging_station.motorcar" = "Billadestander";
"type.amenity.charging_station" = "Ladestation";
"type.amenity.charging_station.bicycle" = "Ladestation til elcykler";
"type.amenity.charging_station.motorcar" = "Ladestation til elbiler";
"type.amenity.childcare" = "Vuggestue";
"type.amenity.cinema" = "Biograf";
"type.leisure.bowling_alley" = "Bowlinghal";
@@ -99,17 +99,17 @@
"type.amenity.parking.street_side" = "Parkeringslomme";
"type.amenity.parking.street_side.fee" = "Parkeringslomme";
"type.amenity.parking.street_side.private" = "Privat parkeringslomme";
"type.amenity.parking.lane" = "Parkering i vejside";
"type.amenity.parking.lane.fee" = "Parkering i vejside";
"type.amenity.parking.lane.private" = "Privat parkering i vejside";
"type.amenity.parking_entrance" = "Parkeringsindkørsel";
"type.amenity.parking_entrance.private" = "Privat parkeringsindkørsel";
"type.amenity.parking_entrance.permissive" = "Parkeringsindkørsel";
"type.amenity.parking_space" = "Parkeringsplads";
"type.amenity.parking_space.permissive" = "Parkeringsplads";
"type.amenity.parking_space.private" = "Parkeringsplads";
"type.amenity.parking_space.underground" = "Parkeringsplads";
"type.amenity.parking_space.disabled" = "Handicapparkeringsplads";
"type.amenity.parking.lane" = "Gadeparkering";
"type.amenity.parking.lane.fee" = "Gadeparkering";
"type.amenity.parking.lane.private" = "Privat gadeparkering";
"type.amenity.parking_entrance" = "Indkørsel til parkeringshus";
"type.amenity.parking_entrance.private" = "Indkørsel til privat parkeringshus";
"type.amenity.parking_entrance.permissive" = "Indkørsel til parkeringshus";
"type.amenity.parking_space" = "Parkeringss";
"type.amenity.parking_space.permissive" = "Parkeringss";
"type.amenity.parking_space.private" = "Parkeringss";
"type.amenity.parking_space.underground" = "Parkeringss";
"type.amenity.parking_space.disabled" = "Handicapparkeringss";
"type.amenity.payment_terminal" = "Betalingsautomat";
"type.amenity.pharmacy" = "Apotek";
"type.amenity.place_of_worship" = "Tilbedelsessted";
@@ -384,7 +384,7 @@
"type.healthcare.psychotherapist" = "Psykoterapi";
"type.healthcare.sample_collection" = "Prøvetagning";
"type.healthcare.speech_therapist" = "Tale terapi";
"type.highway" = "Hovedvej";
"type.highway" = "Vej";
"type.highway.bridleway" = "Ridesti";
/* These translations are used for all type.highway.*.bridge. */
@@ -503,7 +503,7 @@
/* These translations are used for all type.highway.*.tunnel. */
"type.highway.road.tunnel" = "Tunnel";
"type.highway.secondary" = "Sækunder hovedvej";
"type.highway.secondary" = "Sekundær hovedvej";
/* These translations are used for all type.highway.*.bridge. */
"type.highway.secondary.bridge" = "Bro";
@@ -1216,7 +1216,7 @@
"type.shop.curtain" = "Gardinhandel";
"type.shop.deli" = "Delikatessebutik";
"type.shop.department_store" = "Stormagasin";
"type.shop.doityourself" = "Isenkræmmer";
"type.shop.doityourself" = "Byggemarked";
"type.shop.dry_cleaning" = "Renseri";
"type.shop.electronics" = "Elektronikbutik";
"type.shop.erotic" = "Erotikbutik";
@@ -1232,12 +1232,12 @@
"type.shop.greengrocer" = "Grønthandler";
"type.shop.grocery" = "Købmand";
"type.shop.hairdresser" = "Frisør";
"type.shop.hardware" = "Byggemarked";
"type.shop.hardware" = "Isenkræmmer";
"type.shop.health_food" = "Helsekostbutik";
"type.shop.hearing_aids" = "Høreapparatbutik";
"type.shop.herbalist" = "Urtebutik";
"type.shop.hifi" = "HiFi lyd";
"type.shop.houseware" = "Husholdningsartikler butik";
"type.shop.houseware" = "Isenkræmmer";
"type.shop.jewelry" = "Smykkebutik";
"type.shop.kiosk" = "Kiosk";
"type.shop.kitchen" = "Køkkenforretning";
@@ -1247,12 +1247,12 @@
"type.shop.mobile_phone" = "Mobiltelefonbutik";
"type.shop.money_lender" = "Pengeudlåner";
"type.shop.motorcycle" = "Motorcykelforhandler";
"type.shop.motorcycle_repair" = "Motorcykel reparation";
"type.shop.motorcycle_repair" = "Motorcykelværksted";
"type.shop.music" = "Pladebutik";
"type.shop.musical_instrument" = "Butik med musikinstrumenter";
"type.shop.musical_instrument" = "Instrumentbutik";
"type.shop.newsagent" = "Avis-kiosk";
"type.shop.optician" = "Optiker";
"type.shop.outdoor" = "Fritidsudstyr";
"type.shop.outdoor" = "Friluftsbutik";
"type.shop.outpost" = "Afhentningssted";
"type.shop.pasta" = "Pastabutik";
"type.shop.pastry" = "Bagværk";
@@ -1261,7 +1261,7 @@
"type.shop.pet_grooming" = "Kæledyrspleje";
"type.shop.photo" = "Fotobutik";
"type.shop.rental" = "Udlejningsbutik";
"type.shop.rental.bicycle" = "Cykeludlejningsbutik";
"type.shop.rental.bicycle" = "Cykeludlejning";
"type.shop.seafood" = "Fiskehandler";
"type.shop.second_hand" = "Genbrugsbutik";
"type.shop.shoes" = "Skobutik";
@@ -1269,7 +1269,7 @@
"type.shop.stationery" = "Kontorartikler";
"type.shop.supermarket" = "Supermarked";
"type.shop.tattoo" = "Tatovør";
"type.shop.tea" = "Tebutik";
"type.shop.tea" = "Tehandel";
"type.shop.ticket" = "Billetkontor";
"type.shop.toys" = "Legetøjsbutik";
"type.shop.travel_agency" = "Rejsebureau";
@@ -1280,7 +1280,7 @@
"type.shop.wine" = "Vinhandel";
"type.shop.agrarian" = "Landbrugsbutik";
"type.shop.antiques" = "Antikvitetsbutik";
"type.shop.appliance" = "Hvidevarer butik";
"type.shop.appliance" = "Hvidevareforretning";
/* maybe change to Art Gallery for en-US when supported */
"type.shop.art" = "Kunstbutik";
@@ -1291,8 +1291,8 @@
"type.shop.charity" = "Velgørenhedsbutik";
"type.shop.cheese" = "Ostebutik";
"type.shop.craft" = "Kunst og kunsthåndværk";
"type.shop.dairy" = "Mejeriprodukter";
"type.shop.electrical" = "El-butik";
"type.shop.dairy" = "Mejeributik";
"type.shop.electrical" = "Elektrikerbutik";
"type.shop.fishing" = "Fiskeributik";
"type.shop.interior_decoration" = "Brugskunsthandel";
"type.shop.lottery" = "Lottobutik";
@@ -1313,7 +1313,7 @@
"type.sport.australian_football" = "Australsk fodbold";
"type.sport.baseball" = "Baseball";
"type.sport.basketball" = "Basketball";
"type.sport.beachvolleyball" = "Beachvolley";
"type.sport.beachvolleyball" = "Strandvolley";
"type.sport.bowls" = "Bowls";
"type.sport.chess" = "Skak";
"type.sport.cricket" = "Cricket";
@@ -1489,7 +1489,31 @@
"type.power.portal" = "Power Portal";
"type.building.guardhouse" = "Sikkerhedsbås";
"type.shop.lighting" = "Lysbutik";
"type.amenity.charging_station.motorcar.small" = "Opladningspunkt til biler";
"type.leisure.sports_centre.sport.american_football" = "Sportscenter";
"type.leisure.sports_centre.sport.multi" = "Sportscenter";
"type.amenity.bench.backless" = "Rygløs bænk";
"type.amenity.charging_station.motorcar.small" = "Ladestander til biler";
"type.leisure.sports_centre.sport.american_football" = "Idrætscenter";
"type.leisure.sports_centre.sport.multi" = "Idrætscenter";
"type.amenity.bench.backless" = "Bænk";
"type.man_made.observatory" = "Observatorium";
"type.man_made.telescope.optical" = "Teleskop (Optisk)";
"type.man_made.telescope.radio" = "Teleskop (Radio)";
"type.amenity.food_sharing" = "Fødevarerdeling";
"type.amenity.food_bank" = "Fødevarebank";
"type.amenity.soup_kitchen" = "Suppekøkken";
"type.man_made.telescope" = "Teleskop";
"type.amenity.give_box" = "Donationsbøsse";
"type.man_made.telescope.gamma" = "Teleskop (Gamma)";
"type.amenity.car_pooling" = "Samkørsel";
"type.shop.telecommunication" = "Telefonibutik";
"type.disusedbusiness" = "Ledig forretning";
"type.amenity.boat_rental" = "Bådudlejning";
"type.amenity.lounger" = "Solseng";
"type.leisure.bandstand" = "Scenepavillon";
"type.leisure.indoor_play" = "Legeland";
"type.leisure.sports_centre.sport.archery" = "Bueskydningscenter";
"type.leisure.sports_centre.sport.athletics" = "Atletikcenter";
"type.leisure.sports_centre.sport.baseball" = "Baseballcenter";
"type.leisure.sports_centre.sport.badminton" = "Badmintoncenter";
"type.leisure.sports_centre.sport.basketball" = "Basketballcenter";
"type.leisure.sports_centre.sport.golf" = "Golfcenter";
"type.leisure.sports_centre.sport.gymnastics" = "Gymnastikcenter";
"type.leisure.sports_centre.sport.swimming" = "Svømmehal";

View File

@@ -375,7 +375,12 @@
/* This is for main/primary entrances, for secondary entrances see type.entrance */
"type.entrance.main" = "Haupteingang";
"type.entrance.exit" = "Ausgang";
"type.entrance.house" = "Hauseingang";
"type.entrance.garage" = "Garageneingang";
"type.entrance.service" = "Serviceeingang";
"type.entrance.entry" = "(Nur) Eingang";
"type.entrance.exit" = "(Nur) Ausgang";
"type.entrance.emergency" = "Notausgang";
"type.fee.yes" = "$";
"type.fee.no" = "Kostenlos";
"type.healthcare.laboratory" = "Medizinisches Labor";
@@ -841,6 +846,7 @@
"type.natural.spring" = "Quelle";
"type.natural.spring.drinking_water_no" = "Quelle";
"type.natural.strait" = "Meerenge";
"type.natural.tree" = "Baum";
"type.natural.tree_row" = "Baumreihe";
"type.natural.vineyard" = "Weinberg";
"type.natural.volcano" = "Vulkan";

View File

@@ -383,7 +383,12 @@
/* This is for main/primary entrances, for secondary entrances see type.entrance */
"type.entrance.main" = "Main Entrance";
"type.entrance.exit" = "Exit";
"type.entrance.house" = "House Entrance";
"type.entrance.garage" = "Garage Entrance";
"type.entrance.service" = "Service Entrance";
"type.entrance.entry" = "Entry (Only)";
"type.entrance.exit" = "Exit (Only)";
"type.entrance.emergency" = "Emergency Exit";
"type.fee.yes" = "$";
"type.fee.no" = "Free";
"type.healthcare.laboratory" = "Medical Laboratory";
@@ -851,6 +856,7 @@
"type.natural.spring" = "Natural Spring";
"type.natural.spring.drinking_water_no" = "Natural Spring";
"type.natural.strait" = "Strait";
"type.natural.tree" = "Tree";
"type.natural.tree_row" = "Tree Row";
"type.natural.vineyard" = "Vineyard";
"type.natural.volcano" = "Volcano";

View File

@@ -402,7 +402,12 @@
/* This is for main/primary entrances, for secondary entrances see type.entrance */
"type.entrance.main" = "Main Entrance";
"type.entrance.exit" = "Exit";
"type.entrance.house" = "House Entrance";
"type.entrance.garage" = "Garage Entrance";
"type.entrance.service" = "Service Entrance";
"type.entrance.entry" = "Entry (Only)";
"type.entrance.exit" = "Exit (Only)";
"type.entrance.emergency" = "Emergency Exit";
"type.fee.yes" = "$";
"type.fee.no" = "Free";
"type.healthcare.laboratory" = "Medical Laboratory";
@@ -862,6 +867,7 @@
"type.man_made.embankment" = "Embankment";
"type.natural.coastline" = "Coastline";
"type.natural.desert" = "Desert";
"type.natural.sand" = "Sand";
"type.natural.geyser" = "Geyser";
"type.natural.glacier" = "Glacier";
"type.natural.grassland" = "Grassland";
@@ -883,6 +889,7 @@
"type.natural.spring" = "Natural Spring";
"type.natural.spring.drinking_water_no" = "Natural Spring";
"type.natural.strait" = "Strait";
"type.natural.tree" = "Tree";
"type.natural.tree_row" = "Tree Row";
"type.natural.vineyard" = "Vineyard";
"type.natural.volcano" = "Volcano";

View File

@@ -1099,3 +1099,4 @@
"offline_explanation_title" = "Offline-kart";
"avoid_steps" = "Unngå trapper";
"editor_place_doesnt_exist_description" = "Beskriv hvordan stedet ser ut nå for å sende en feilmelding til OpenStreetMap-fellesskapet";
"avoid_paved" = "Unngå asfalterte veier";

View File

@@ -1525,3 +1525,12 @@
"type.shop.lighting" = "Lampebutikk";
"type.leisure.sports_centre.sport.swimming" = "Svømmesenter";
"type.amenity.bench.backless" = "Benk uten rygg";
"type.man_made.telescope.radio" = "Teleskop (Radio)";
"type.amenity.food_bank" = "Matsentral";
"type.amenity.soup_kitchen" = "Suppekjøkken";
"type.man_made.telescope" = "Teleskop";
"type.man_made.telescope.gamma" = "Teleskop (Gamma)";
"type.amenity.car_pooling" = "Samkjøring";
"type.man_made.observatory" = "Observatorium";
"type.shop.telecommunication" = "Telekommunikasjonsbutikk";
"type.amenity.boat_rental" = "Båtutleie";

View File

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

View File

@@ -1527,3 +1527,14 @@
"type.leisure.bandstand" = "Muszla koncertowa";
"type.disusedbusiness" = "Pusty lokal";
"type.amenity.lounger" = "Leżak";
"type.man_made.observatory" = "Obserwatorium";
"type.man_made.telescope.optical" = "Teleskop optyczny";
"type.man_made.telescope.radio" = "Radioteleskop";
"type.man_made.telescope" = "Teleskop";
"type.man_made.telescope.gamma" = "Teleskop (prom. gamma)";
"type.amenity.boat_rental" = "Wypożyczalnia łodzi";
"type.amenity.food_sharing" = "Jadłodzielnia";
"type.amenity.food_bank" = "Bank żywności";
"type.amenity.soup_kitchen" = "Jadłodajnia";
"type.amenity.car_pooling" = "Car Pooling";
"type.shop.telecommunication" = "Sklep dostawcy usług telekomunikacyjnych";

View File

@@ -153,3 +153,9 @@
"type.amenity.love_hotel" = "Hotel za zaljubljence";
"type.amenity.charging_station.motorcar.small" = "Polnilno mesto za avtomobile";
"type.amenity.cinema" = "Kino";
"type.man_made.observatory" = "Zvezdarna";
"type.man_made.telescope.optical" = "Teleskop (svetlobni)";
"type.man_made.telescope.radio" = "Teleskop (radijski)";
"type.man_made.telescope" = "Teleskop";
"type.man_made.telescope.gamma" = "Teleskop (gama žarki)";
"type.amenity.boat_rental" = "Izposoja čolnov";

View File

@@ -190,7 +190,7 @@ UNIT_TEST(LevenshteinDFA_ErrorsMade)
}
{
vector<UniString> const allowedMisprints = {MakeUniString("yj")};
array<UniString, 11> const allowedMisprints = {MakeUniString("yj")};
size_t const prefixSize = 1;
size_t const maxErrors = 1;
string const str = "yekaterinburg";

View File

@@ -29,8 +29,15 @@ MwmContext::MwmContext(MwmSet::MwmHandle handle, MwmType type) : MwmContext(std:
m_type = type;
}
std::unique_ptr<FeatureType> MwmContext::GetFeature(uint32_t index) const
std::unique_ptr<FeatureType> MwmContext::GetFeature(uint32_t index, bool ignoreEditedStatus) const
{
if (ignoreEditedStatus) {
auto ft = m_vector.GetByIndex(index);
CHECK(ft, ());
ft->SetID(FeatureID(GetId(), index));
return ft;
}
std::unique_ptr<FeatureType> ft;
switch (GetEditedStatus(index))
{

View File

@@ -85,7 +85,7 @@ public:
}
template <typename Fn>
void ForEachFeature(m2::RectD const & rect, Fn && fn) const
void ForEachFeature(m2::RectD const & rect, Fn && fn, bool ignoreEditedStatus = false) const
{
uint32_t const scale = m_value.GetHeader().GetLastScale();
covering::Intervals intervals;
@@ -93,14 +93,12 @@ public:
ForEachIndexImpl(intervals, scale, [&](uint32_t index)
{
auto ft = GetFeature(index);
if (ft)
fn(*ft);
fn(*GetFeature(index, ignoreEditedStatus));
});
}
// Returns false if feature was deleted by user.
std::unique_ptr<FeatureType> GetFeature(uint32_t index) const;
std::unique_ptr<FeatureType> GetFeature(uint32_t index, bool ignoreEditedStatus = false) const;
[[nodiscard]] inline bool GetCenter(uint32_t index, m2::PointD & center) { return m_centers.Get(index, center); }

View File

@@ -77,7 +77,7 @@ ReverseGeocoder::ReverseGeocoder(DataSource const & dataSource) : m_dataSource(d
template <class ObjT, class FilterT>
vector<ObjT> GetNearbyObjects(search::MwmContext & context, m2::PointD const & center, double radiusM,
FilterT && filter)
FilterT && filter, bool ignoreEditedStatus = false)
{
vector<ObjT> objs;
@@ -90,17 +90,17 @@ vector<ObjT> GetNearbyObjects(search::MwmContext & context, m2::PointD const & c
if (!name.empty())
objs.emplace_back(ft.GetID(), feature::GetMinDistanceMeters(ft, center), name, ft.GetNames());
}
});
}, ignoreEditedStatus);
sort(objs.begin(), objs.end(), base::LessBy(&ObjT::m_distanceMeters));
return objs;
}
vector<ReverseGeocoder::Street> ReverseGeocoder::GetNearbyStreets(search::MwmContext & context,
m2::PointD const & center, double radiusM)
m2::PointD const & center, double radiusM, bool ignoreEditedStatus)
{
return GetNearbyObjects<Street>(context, center, radiusM,
[](FeatureType & ft) { return StreetVicinityLoader::IsStreet(ft); });
[](FeatureType & ft) { return StreetVicinityLoader::IsStreet(ft); }, ignoreEditedStatus);
}
vector<ReverseGeocoder::Street> ReverseGeocoder::GetNearbyStreets(MwmSet::MwmId const & id,
@@ -122,13 +122,13 @@ vector<ReverseGeocoder::Street> ReverseGeocoder::GetNearbyStreets(FeatureType &
}
std::vector<ReverseGeocoder::Place> ReverseGeocoder::GetNearbyPlaces(search::MwmContext & context,
m2::PointD const & center, double radiusM)
m2::PointD const & center, double radiusM, bool ignoreEditedStatus)
{
return GetNearbyObjects<Place>(context, center, radiusM, [](FeatureType & ft)
{
return (ftypes::IsLocalityChecker::Instance().GetType(ft) >= ftypes::LocalityType::City ||
ftypes::IsSuburbChecker::Instance()(ft));
});
}, ignoreEditedStatus);
}
string ReverseGeocoder::GetFeatureStreetName(FeatureType & ft) const

View File

@@ -114,11 +114,11 @@ public:
/// Parameter |includeSquaresAndSuburbs| needed for backward compatibility:
/// existing mwms operate on streets without squares and suburbs.
static std::vector<Street> GetNearbyStreets(search::MwmContext & context, m2::PointD const & center,
double radiusM = kLookupRadiusM);
double radiusM = kLookupRadiusM, bool ignoreEditedStatus = false);
std::vector<Street> GetNearbyStreets(MwmSet::MwmId const & id, m2::PointD const & center) const;
std::vector<Street> GetNearbyStreets(FeatureType & ft) const;
static std::vector<Place> GetNearbyPlaces(search::MwmContext & context, m2::PointD const & center, double radiusM);
static std::vector<Place> GetNearbyPlaces(search::MwmContext & context, m2::PointD const & center, double radiusM, bool ignoreEditedStatus = false);
/// @return feature street name.
/// Returns empty string when there is no street the feature belongs to.

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