Compare commits

..

59 Commits

Author SHA1 Message Date
Harry Bond
6020ae0c7d [Android] Use ExtendedFab, download icon for download maps screen fab
Signed-off-by: Harry Bond <me@hbond.xyz>


Signed-off-by: Harry Bond <me@hbond.xyz>

Signed-off-by: Harry Bond <me@hbond.xyz>
2025-08-22 20:06:49 +01:00
x7z4w
b26deb3bb2 [ci] Use self-hosted runner for DCO
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-08-22 15:58:45 +02:00
Viktor Govako
e8e94744f0 [map] Fixed invalid route saving.
Signed-off-by: Viktor Govako <viktor.govako@gmail.com>
2025-08-22 19:24:41 +07:00
Viktor Govako
98689fbbf8 [android] Hack to suppress most frequent crash on startup.
Signed-off-by: Viktor Govako <viktor.govako@gmail.com>
2025-08-22 19:23:45 +07:00
Kiryl Kaveryn
6cccd32166 [ios] Fix place page memory leaks
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 19:22:06 +07:00
David Martinez
1b04524d68 [routing] Log all turn notifications TTS
Signed-off-by: David Martinez <47610359+dvdmrtnz@users.noreply.github.com>
2025-08-22 19:19:00 +07:00
Viktor Govako
1a6bbd756a [routing] Simplify notifications on roundabout.
Signed-off-by: Viktor Govako <viktor.govako@gmail.com>
2025-08-22 19:18:39 +07:00
Alexander Borsuk
836c39ff64 math::iround
Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-22 19:03:38 +07:00
Alexander Borsuk
7781528263 Fixed C++20 deprecation warning for std::rel_ops::operator<=
Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-22 19:03:16 +07:00
Alexander Borsuk
2aaf37e9ee C++ warning fixes
Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-22 19:03:04 +07:00
Alexander Borsuk
a28d5d15ce [drape] Fixed signed/unsigned comparison warning by changing Resize interface to uint32_t
Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-22 19:01:09 +07:00
Alexander Borsuk
55dc1e17e6 Correct is_space fix for Windows compatibility
Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-22 18:59:37 +07:00
Andrei Shkrob
826b56cabc [drape] Fix gui text alignment
Signed-off-by: Andrei Shkrob <github@shkrob.dev>
2025-08-22 18:56:26 +07:00
Osyotr
9aa86fc703 Remove android include from public interface of VulkanContextFactory
Signed-off-by: Osyotr <Osyotr@users.noreply.github.com>
2025-08-22 18:44:08 +07:00
Yannik Bloscheck
4fe21ec6eb [styles] Move light animal shelter icon to the correct location
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-22 12:36:42 +02:00
David Martinez
cb2181a80e [styles] Convert remaining PNG icons to SVG
Signed-off-by: David Martinez <47610359+dvdmrtnz@users.noreply.github.com>
2025-08-22 12:22:44 +02:00
David Martinez
eeb53eb0c4 [styles] Convert PNG US road shield icons to SVG
Signed-off-by: David Martinez <47610359+dvdmrtnz@users.noreply.github.com>
2025-08-22 12:22:44 +02:00
David Martinez
887bc2c755 [styles] Convert PNG road warning icons to SVG
Signed-off-by: David Martinez <47610359+dvdmrtnz@users.noreply.github.com>
2025-08-22 12:22:44 +02:00
Alexander Borsuk
29d60c9af0 [ios] Fix opening websites with percent encoding characters
Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
e0c579634b [ios] Fix track recording points updates subscribe/unsubscribe
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
266d62831f [ios] Skip elevation info current point updates when the data is nil
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
d94351a8f1 [ios] Skip excessive elevation point updates
When the user drags the elevation chart it runs chart's `selected point` update mechanism by calling the `onSelectedPointChanged` inside the `ChartView`'s ` func chartPreviewView(_ view: ChartPreviewView, didChangeMinX minX: Int, maxX: Int)`. This updates may be quite often (tens/hundreds per sec) and may cause the `on point update` callback **recursion** and overloads the `layoutSubviews` method on the _short track_ because the ChartView doesnt have mechanism to skip excessive updates when the parameters the same.
This situation produces fail with internal error `(null) in -[NSISEngine _flushPendingRemovals] ().`

The fix include:
1. skip updates when the current point isn't changed
2. remove layoutSubviews overloading (this method should recalc the layout immediately and should not be called too frequent, the `setNeedsLayout` allows to batch the layout updates and redraw the view on the next runtime cycle)

Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
31970c87c4 [ios] Remove all activities on track recording start and stop
Closes https://github.com/organicmaps/organicmaps/issues/11045
1. Remove all activities on track recording start and stop
2. Store the latest activity id in the UD to retrieve on launch after the app termination
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Alexander Borsuk
8e9dbe0248 [ios] Removed unused variables
Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-22 11:58:01 +02:00
Alexander Borsuk
3b1551be52 [ios] Fixed wrong ObjC function name that caused warnings
Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-22 11:58:01 +02:00
Alexander Borsuk
9d8e84ae5a [mac][ios] Was: Silenced annoying deprecation warnings
pastk: removed silencing, left only minor style etc changes

Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
c4d5109d5b [ios] Log the error when the exclude from icloud fails
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
59499333ff [ios] Disable chartView user interaction for TR and when the chartData is nil
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
b5e0d10cb1 [ios] Set track recrording elevation chart min points to draw to 2
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
55b85183d5 [map] Limit the track recording length to 2 points min
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
38406b149a [ios] Skip zoom/pinch gesture when the lower/upper is out of bounds
The previous check `if upper - lower < chartData.labels.count / 10 return` produces invalid state for drawing and fails when the upper == lower.

Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
ef2dea20fe [ios] Log error during the track editing instead of failing
The bug is quite rare and happens when the user taps on the edit (pencil) button on the PlacePage. It seems like the tap happens during the PP data object reloading the and the object type has changed. It is better to avoid failing in such cases because we cannot prevent user interaction during the pp reloading.

Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
aac80606f2 [ios] Disable user interaction on PP vc close
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
7765d97cda [ios] Fix track recording indicator image
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Alexander Borsuk
3aa74bc427 [ios] Fixed ATM translation in the PlacePage
Signed-off-by: Alexander Borsuk <me@alex.bio>
2025-08-22 11:58:01 +02:00
Konstantin Pastbin
902e7f6453 Revert "[ios] Fixing ATM translation on place page"
This reverts commit 211e3fb4f0.
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
cecca729db [ios] Check that pp data exists before update the TR PP screen
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
Kiryl Kaveryn
2b2518b0b4 [ios] Disable track recording live activity widget for apps running on macos
Signed-off-by: Kiryl Kaveryn <kirylkaveryn@gmail.com>
2025-08-22 11:58:01 +02:00
x7z4w
3c34765595 [core] nits
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-08-22 11:02:44 +02:00
hb0nd
3f7815017e [docs] Use full url for license
it worked at the end of the file, but i guess it doesn't work in a href for some reason...

Signed-off-by: hb0nd <me@hbond.xyz>
2025-08-21 16:48:59 +02:00
Jean-Baptiste
0d4809c18e [doc] Update badge link to the license
Signed-off-by: jeanbaptisteC <jeanbaptiste.charron@outlook.fr>
2025-08-21 16:35:32 +02:00
Yannik Bloscheck
052a3123aa [styles] Adding animal shelter icon
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-21 15:57:15 +02:00
Konstantin Pastbin
f81bff512a [styles] Add amenity=animal_shelter
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-21 15:57:15 +02:00
Yannik Bloscheck
2587db91be [styles] Changed symbol for early entries to square
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-21 15:55:11 +02:00
Konstantin Pastbin
3b5d5e882b [styles] Make entrances visible earlier
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-21 15:55:11 +02:00
Konstantin Pastbin
3c4e0d05c5 [routing][tests] Comment changes on old maps after adding penalties code
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-21 17:26:46 +07:00
x7z4w
4be5b5dc45 [build] Add configure.sh
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-08-21 10:41:52 +02:00
x7z4w
9ff72366d5 [build] Check for generated files
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-08-21 10:41:52 +02:00
Yannik Bloscheck
7c354645b9 [xcode] Trying to force Xcode to add changed files
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-21 10:41:52 +02:00
map-per
00d3f9a370 Make address addable in the editor
Signed-off-by: map-per <map-per@gmx.de>
2025-08-20 14:02:12 +02:00
x7z4w
cd29eda949 [docs] nit
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-08-20 13:51:51 +02:00
gekeleda
1ed27f4052 Remove intermediate stops regardless of deactivateFollowing
Signed-off-by: gekeleda <git@davidgekeler.eu>
2025-08-20 13:07:20 +02:00
Michał Brzozowski
57ecf3848b [routing] Remove passed intermediate points when assembling a modified route mid-navigation
Fixes OM #9592

Signed-off-by: Michał Brzozowski <www.haxor@gmail.com>

# Conflicts:
#	libs/map/routing_manager.cpp
2025-08-20 13:07:20 +02:00
Konstantin Pastbin
697e871c1b [strings] Add barriers translations
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-20 12:39:48 +02:00
Konstantin Pastbin
d5966ff198 [tests] Add smoke tests for more barriers
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-20 12:39:48 +02:00
Konstantin Pastbin
3abd04426c [routing] Block cars going through barrier=yes
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-20 12:39:48 +02:00
Konstantin Pastbin
8237a7e417 [styles] Add barrier=wicket_gate
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-20 12:39:48 +02:00
Konstantin Pastbin
1607769551 [styles] Add generic barrier=yes points and lines
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-20 12:39:48 +02:00
Konstantin Pastbin
a189516736 [tools][styles] Output diffs in generate_drules.sh
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-08-20 10:40:40 +02:00
598 changed files with 1251 additions and 421 deletions

View File

@@ -21,12 +21,11 @@ jobs:
- name: Install appstream validator and flatpak Builder
shell: bash
run: |
apt-get update
apt-get install -y flatpak dbus --no-install-recommends
mkdir /run/dbus
dbus-daemon --system
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install -y org.flatpak.Builder
sudo apt update -y
sudo apt install -y \
flatpak
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
sudo flatpak install -y org.flatpak.Builder
- name: Lint appstream data with flatpak Builder
shell: bash

View File

@@ -3,6 +3,6 @@ on: [pull_request]
jobs:
check:
runs-on: codeberg-tiny
runs-on: ubuntu-latest
steps:
- uses: https://github.com/KineticCafe/actions-dco@v1

View File

@@ -133,6 +133,14 @@ jobs:
with:
key: ${{ github.workflow }}-unity-${{ matrix.compiler.CC }}-${{ matrix.CMAKE_BUILD_TYPE }}
- name: Configure repository
shell: bash
env:
SKIP_MAP_DOWNLOAD: 1
SKIP_GENERATE_SYMBOLS: 1
SKIP_GENERATE_DRULES: 1
run: ./configure.sh
- name: CMake
shell: bash
env:

18
.gitignore vendored
View File

@@ -14,12 +14,10 @@ stxxl.errlog
stxxl.log
screenlog.0
data/symbols/*/design/
# symbols png/sdf are now generated at build
data/symbols/**/symbols.png
data/symbols/**/symbols.sdf
data/colors_design.txt
data/patterns_design.txt
data/bookmarks
data/edits.xml
data/World.mwm
@@ -27,11 +25,15 @@ data/WorldCoasts.mwm
data/world_mwm/*
data/*_hash
data/drules_proto*
data/classificator.txt
data/types.txt
data/visibility.txt
data/colors.txt
data/patterns.txt
data/classificator.txt*
data/types.txt*
data/visibility.txt*
data/colors.txt*
data/patterns.txt*
# TODO: designer is not used at the moment
# data/symbols/*/design/
# data/colors_design.txt
# data/patterns_design.txt
# Compiled Python
*.pyc

View File

@@ -49,8 +49,6 @@ if (APPLE AND NOT ("${CMAKE_SYSTEM_NAME}" STREQUAL Android))
set(CMAKE_OBJCXX_VISIBILITY_PRESET hidden)
endif()
execute_process(COMMAND "./configure.sh" WORKING_DIRECTORY ${OMIM_ROOT})
message(STATUS "Using compiler ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
if (CMAKE_UNITY_BUILD)

View File

@@ -19,7 +19,7 @@
</div>
<div align="center">
<p align="center">
<a href="https://codeberg.org/comaps/comaps/releases">
<a href="https://codeberg.org/comaps/comaps/src/branch/main/LICENSE">
<img src="https://img.shields.io/github/license/comaps/comaps?style=for-the-badge&logo=opensourceinitiative&logoColor=white&color=588157" alt="License"/>
</a>
<a href="https://github.com/comaps/comaps/actions/workflows/android-check.yaml">
@@ -41,8 +41,6 @@
A community-led free & open source maps app based on [OpenStreetMap](https://www.openstreetmap.org), built for transparency, privacy, and not-for-profit values. A fork of Organic Maps, originally based on Maps.ME.
**Available for:** Android, iOS, ARM macOS, and alpha Linux/macOS desktop builds (also usable on Linux phones).
<p align="center">
<a href="https://apps.apple.com/app/comaps/id6747180809">
<img src="docs/badges/apple-appstore.png" alt="App Store" width="160"/>
@@ -77,9 +75,10 @@ A community-led free & open source maps app based on [OpenStreetMap](https://www
## ⚡️ Highlights
- **Offline-first**: Navigate without a connection
- **Privacy-respecting**: No tracking, Ads or data collection
- **Privacy-respecting**: No tracking, ads or data collection
- **Lightweight**: Battery- and space-efficient
- **Simple**: Polished, user-focused interface
- **Cross-platform**: Available for Android, iOS, MacOS, and Linux.
- **Community-built**: Free, open source, and collaborative
- **Transparent**: Open finances and governance

View File

@@ -17,12 +17,12 @@ import app.organicmaps.sdk.downloader.UpdateInfo;
import app.organicmaps.sdk.util.StringUtils;
import app.organicmaps.sdk.util.UiUtils;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton;
class BottomPanel
{
private final DownloaderFragment mFragment;
private final FloatingActionButton mFab;
private final ExtendedFloatingActionButton mFab;
private final MaterialButton mButton;
private final View.OnClickListener mDownloadListener = new View.OnClickListener() {

View File

@@ -236,6 +236,11 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
return true;
}
boolean saveEdits()
{
return setEdits() && beforeSavingValidation();
}
@NonNull
protected String getDescription()
{
@@ -282,6 +287,18 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
return validateNames();
}
private boolean beforeSavingValidation() {
// Validation to make sure address features have a house number
if (!Editor.nativeCheckHouseNumberWhenIsAddress())
{
mHouseNumber.requestFocus();
UiUtils.setInputError(mInputHouseNumber, R.string.error_enter_correct_house_number);
InputUtils.showKeyboard(mHouseNumber);
return false;
}
return true;
}
private boolean validateNames()
{
for (int pos = 0; pos < mNamesAdapter.getItemCount(); pos++)

View File

@@ -276,6 +276,11 @@ public class EditorHostFragment
return ((EditorFragment) getChildFragmentManager().findFragmentByTag(EditorFragment.class.getName())).setEdits();
}
private boolean saveEdits()
{
return ((EditorFragment) getChildFragmentManager().findFragmentByTag(EditorFragment.class.getName())).saveEdits();
}
@Override
public void onClick(View v)
{
@@ -310,7 +315,7 @@ public class EditorHostFragment
case LANGUAGE -> editMapObject();
case MAP_OBJECT ->
{
if (!setEdits())
if (!saveEdits())
return;
// Save object edits

View File

@@ -112,6 +112,7 @@ public final class Editor
public static native String nativeGetHouseNumber();
public static native void nativeSetHouseNumber(String houseNumber);
public static native boolean nativeIsHouseValid(String houseNumber);
public static native boolean nativeCheckHouseNumberWhenIsAddress();
public static boolean nativeIsLevelValid(String level)
{
return nativeIsMetadataValid(Metadata.MetadataType.FMD_BUILDING_LEVELS.toInt(), level);

View File

@@ -24,7 +24,7 @@
android:layout_below="@id/toolbar"
android:layout_above="@id/action"/>
<com.google.android.material.floatingactionbutton.FloatingActionButton
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -33,8 +33,10 @@
android:layout_alignParentEnd="true"
android:layout_marginEnd="@dimen/margin_base"
android:layout_marginBottom="@dimen/margin_base"
app:tint="?android:textColorPrimaryInverse"
app:srcCompat="@drawable/ic_plus"/>
android:text="@string/download_maps"
android:textColor="?accentButtonTextColor"
app:iconTint="?android:textColorPrimaryInverse"
app:icon="@drawable/ic_download"/>
<app.organicmaps.widget.PlaceholderView
android:id="@+id/placeholder"

View File

@@ -169,6 +169,7 @@
<string name="type.amenity.water_point">Waterpunt</string>
<string name="type.amenity.water_point.drinking_water_no">Waterpunt</string>
<string name="type.barrier">Versperring</string>
<string name="type.barrier.yes">Versperring</string>
<string name="type.barrier.block">Blok</string>
<string name="type.barrier.bollard">Bolder</string>
<string name="type.barrier.border_control">Grensbeheer</string>

View File

@@ -185,6 +185,7 @@
<string name="type.amenity.water_point">نقطة إعادة تعبة قنينة المياه</string>
<string name="type.amenity.water_point.drinking_water_no">نقطة إعادة تعبة قنينة المياه</string>
<string name="type.barrier">حاجز</string>
<string name="type.barrier.yes">حاجز</string>
<string name="type.barrier.block">حاجز</string>
<string name="type.barrier.bollard">حاجز سيارات</string>
<string name="type.barrier.border_control">أمن الحدود</string>

View File

@@ -177,6 +177,7 @@
<string name="type.amenity.water_point">Karvanlar üçün su nöqtəsi</string>
<string name="type.amenity.water_point.drinking_water_no">Karvanlar üçün su nöqtəsi</string>
<string name="type.barrier">Maneə</string>
<string name="type.barrier.yes">Maneə</string>
<string name="type.barrier.block">Blok</string>
<string name="type.barrier.bollard">Birbaşa</string>
<string name="type.barrier.border_control">Sərhəd Nəzarəti</string>

View File

@@ -603,6 +603,7 @@
<string name="type.amenity.waste_disposal">Кофа</string>
<string name="type.amenity.waste_basket">Кошче за отпадък</string>
<string name="type.barrier">Бариера</string>
<string name="type.barrier.yes">Бариера</string>
<string name="type.barrier.chain">Верига</string>
<string name="type.amenity.place_of_worship.muslim">Джамия</string>
<string name="type.amenity.post_box">Пощенска кутия</string>

View File

@@ -187,6 +187,7 @@
<string name="type.amenity.water_point">Punt daigua</string>
<string name="type.amenity.water_point.drinking_water_no">Punt daigua</string>
<string name="type.barrier">Barrera</string>
<string name="type.barrier.yes">Barrera</string>
<string name="type.barrier.block">Bloc</string>
<string name="type.barrier.bollard">Bol·lard</string>
<string name="type.barrier.border_control">Control fronterer</string>

View File

@@ -1193,6 +1193,7 @@
<string name="type.amenity.vending_machine.fuel">Palivové čerpadlo</string>
<string name="type.amenity.waste_transfer_station">Překladiště odpadu</string>
<string name="type.barrier">Bariéra</string>
<string name="type.barrier.yes">Bariéra</string>
<string name="type.barrier.cycle_barrier">Cyklistická bariéra</string>
<string name="type.cuisine.bubble_tea">Bubble Tea</string>
<string name="type.emergency">Nouzová stanice</string>

View File

@@ -1201,6 +1201,7 @@
<string name="type.amenity.vending_machine.fuel">Benzinautomat</string>
<string name="type.amenity.waste_transfer_station">Affaldsplads</string>
<string name="type.barrier">Barriere</string>
<string name="type.barrier.yes">Barriere</string>
<string name="type.barrier.chain">Kæde</string>
<string name="type.amenity.vending_machine.food">Madautomat</string>
<string name="type.barrier.cycle_barrier">Cykelbarriere</string>

View File

@@ -182,6 +182,7 @@
<string name="type.amenity.water_point">Wasseranschluss</string>
<string name="type.amenity.water_point.drinking_water_no">Wasseranschluss</string>
<string name="type.barrier">Barriere</string>
<string name="type.barrier.yes">Barriere</string>
<string name="type.barrier.block">Block</string>
<string name="type.barrier.bollard">Poller</string>
<string name="type.barrier.border_control">Grenzkontrolle</string>

View File

@@ -1230,6 +1230,7 @@
<string name="type.barrier.wall">Τοίχος</string>
<string name="type.recycling.cans">Κονσερβοκούτια</string>
<string name="type.barrier">Εμπόδιο</string>
<string name="type.barrier.yes">Εμπόδιο</string>
<string name="type.amenity.vending_machine.sweets">Διανεμητής γλυκών</string>
<string name="type.barrier.cycle_barrier">Εμπόδιο ποδηλάτου</string>
<string name="type.recycling.shoes">Παπούτσια</string>

View File

@@ -188,6 +188,7 @@
<string name="type.amenity.water_point">Fuente de agua para caravanas</string>
<string name="type.amenity.water_point.drinking_water_no">Fuente de agua para caravanas</string>
<string name="type.barrier">Barrera</string>
<string name="type.barrier.yes">Barrera</string>
<string name="type.barrier.block">Bloque</string>
<string name="type.barrier.bollard">Bolardo</string>
<string name="type.barrier.border_control">Control fronterizo</string>

View File

@@ -186,6 +186,7 @@
<string name="type.amenity.water_point">Joogivee tankimispunkt</string>
<string name="type.amenity.water_point.drinking_water_no">Joogivee tankimispunkt</string>
<string name="type.barrier">Barjäär</string>
<string name="type.barrier.yes">Barjäär</string>
<string name="type.barrier.block">Kiviplokk</string>
<string name="type.barrier.bollard">Piirdetulp</string>
<string name="type.barrier.border_control">Piirikontroll</string>

View File

@@ -181,6 +181,7 @@
<string name="type.amenity.water_point">Ur iturria</string>
<string name="type.amenity.water_point.drinking_water_no">Ur iturria</string>
<string name="type.barrier">Hesia</string>
<string name="type.barrier.yes">Hesia</string>
<string name="type.barrier.block">Blokea</string>
<string name="type.barrier.bollard">Pibotea</string>
<string name="type.barrier.border_control">Muga kontrola</string>

View File

@@ -184,6 +184,7 @@
<string name="type.amenity.water_point">Vesipiste</string>
<string name="type.amenity.water_point.drinking_water_no">Vesipiste</string>
<string name="type.barrier">Este</string>
<string name="type.barrier.yes">Este</string>
<string name="type.barrier.block">Este</string>
<string name="type.barrier.bollard">Tolppa</string>
<string name="type.barrier.border_control">Rajavalvonta</string>

View File

@@ -177,6 +177,7 @@
<string name="type.amenity.water_point">Point deau</string>
<string name="type.amenity.water_point.drinking_water_no">Point deau</string>
<string name="type.barrier">Barrière</string>
<string name="type.barrier.yes">Barrière</string>
<string name="type.barrier.block">Bloc</string>
<string name="type.barrier.bollard">Poteau</string>
<string name="type.barrier.border_control">Contrôle aux frontières</string>

View File

@@ -189,6 +189,7 @@
<string name="type.amenity.water_point">Fonte de auga para caravanas</string>
<string name="type.amenity.water_point.drinking_water_no">Fonte de auga para caravanas</string>
<string name="type.barrier">Barreira</string>
<string name="type.barrier.yes">Barreira</string>
<string name="type.barrier.block">Bloque</string>
<string name="type.barrier.bollard">Bolardo</string>
<string name="type.barrier.border_control">Control fronteirizo</string>

View File

@@ -176,6 +176,7 @@
<string name="type.amenity.waste_disposal">Müllcontainer</string>
<string name="type.amenity.water_point">Wasseraaschluss</string>
<string name="type.barrier">Barriere</string>
<string name="type.barrier.yes">Barriere</string>
<string name="type.barrier.block">Block</string>
<string name="type.barrier.bollard">Poller</string>
<string name="type.barrier.border_control">Grenzkontrolle</string>

View File

@@ -1220,6 +1220,7 @@
<string name="type.aerialway.chair_lift">Ülőlift</string>
<string name="type.aerialway.gondola">Gondolakabinos felvonó</string>
<string name="type.barrier">Akadály</string>
<string name="type.barrier.yes">Akadály</string>
<string name="type.barrier.cycle_barrier">Kerékpárakadály</string>
<string name="type.barrier.fence">Kerítés</string>
<string name="type.barrier.hedge">Sövény</string>

View File

@@ -620,6 +620,7 @@
<string name="type.amenity.water_point">Vatnspóstur</string>
<string name="type.amenity.water_point.drinking_water_no">Vatnspóstur</string>
<string name="type.barrier">Hindrun</string>
<string name="type.barrier.yes">Hindrun</string>
<string name="type.barrier.city_wall">Borgarmúr</string>
<string name="type.barrier.cycle_barrier">Hjólahindrun</string>
<string name="type.waterway.ditch">Drenskurður</string>

View File

@@ -186,6 +186,7 @@
<string name="type.amenity.water_point">Punto acqua</string>
<string name="type.amenity.water_point.drinking_water_no">Punto acqua</string>
<string name="type.barrier">Barriera</string>
<string name="type.barrier.yes">Barriera</string>
<string name="type.barrier.block">Blocco</string>
<string name="type.barrier.bollard">Pilastro</string>
<string name="type.barrier.border_control">Controllo di frontiera</string>

View File

@@ -186,6 +186,7 @@
<string name="type.amenity.water_point">נקודת מילוי מיכלי מים</string>
<string name="type.amenity.water_point.drinking_water_no">נקודת מילוי מיכלי מים</string>
<string name="type.barrier">מחסום</string>
<string name="type.barrier.yes">מחסום</string>
<string name="type.barrier.block">חסימה</string>
<string name="type.barrier.bollard">עמוד</string>
<string name="type.barrier.border_control">ביקורת גבולות</string>

View File

@@ -170,6 +170,7 @@
<string name="type.amenity.water_point">給水所</string>
<string name="type.amenity.water_point.drinking_water_no">給水所</string>
<string name="type.barrier">障害物</string>
<string name="type.barrier.yes">障害物</string>
<string name="type.barrier.block">ブロック</string>
<string name="type.barrier.bollard"></string>
<string name="type.barrier.border_control">国境管理</string>

View File

@@ -163,6 +163,7 @@
<string name="type.amenity.waste_disposal">कचऱ्याची मोठी पेटी</string>
<string name="type.amenity.waste_transfer_station">कचरा हस्तांतरण केंद्र</string>
<string name="type.barrier">अडथळा</string>
<string name="type.barrier.yes">अडथळा</string>
<string name="type.barrier.block">अडथळा</string>
<string name="type.barrier.bollard">खांब</string>
<string name="type.barrier.border_control">सीमा नियंत्रण</string>

View File

@@ -158,6 +158,7 @@
<string name="type.amenity.water_point">Vannpunkt</string>
<string name="type.amenity.water_point.drinking_water_no">Vannpunkt</string>
<string name="type.barrier">Barriere</string>
<string name="type.barrier.yes">Barriere</string>
<string name="type.barrier.block">Blokk</string>
<string name="type.barrier.bollard">Pullert</string>
<string name="type.barrier.border_control">Grensekontroll</string>

View File

@@ -185,6 +185,7 @@
<string name="type.amenity.water_point">Waterpunt</string>
<string name="type.amenity.water_point.drinking_water_no">Waterpunt</string>
<string name="type.barrier">Barrière</string>
<string name="type.barrier.yes">Barrière</string>
<string name="type.barrier.block">Blok</string>
<string name="type.barrier.bollard">Pilaar</string>
<string name="type.barrier.border_control">Grenscontrole</string>

View File

@@ -185,6 +185,7 @@
<string name="type.amenity.water_point">Ujęcie wody</string>
<string name="type.amenity.water_point.drinking_water_no">Ujęcie wody</string>
<string name="type.barrier">Bariera</string>
<string name="type.barrier.yes">Bariera</string>
<string name="type.barrier.block">Blok</string>
<string name="type.barrier.bollard">Słupek</string>
<string name="type.barrier.border_control">Kontrola graniczna</string>

View File

@@ -162,6 +162,7 @@
<string name="type.amenity.water_point">Ponto de água</string>
<string name="type.amenity.water_point.drinking_water_no">Ponto de água</string>
<string name="type.barrier">Barreira</string>
<string name="type.barrier.yes">Barreira</string>
<string name="type.barrier.block">Bloco</string>
<string name="type.barrier.bollard">Pilarete</string>
<string name="type.barrier.border_control">Controle de fronteira</string>

View File

@@ -174,6 +174,7 @@
<string name="type.amenity.water_point">Ponto de água</string>
<string name="type.amenity.water_point.drinking_water_no">Ponto de água</string>
<string name="type.barrier">Barreira</string>
<string name="type.barrier.yes">Barreira</string>
<string name="type.barrier.block">Bloco</string>
<string name="type.barrier.bollard">Pilarete</string>
<string name="type.barrier.border_control">Controlo de fronteira</string>

View File

@@ -182,12 +182,14 @@
<string name="type.amenity.vehicle_inspection">Техосмотр автомобиля</string>
<string name="type.amenity.vending_machine.fuel">Топливная колонка</string>
<string name="type.amenity.veterinary">Ветеринарная клиника</string>
<string name="type.amenity.animal_shelter">Приют для животных</string>
<string name="type.amenity.waste_basket">Урна</string>
<string name="type.amenity.waste_disposal">Мусорный контейнер</string>
<string name="type.amenity.waste_transfer_station">Станция перевалки отходов</string>
<string name="type.amenity.water_point">Вода для автодомов</string>
<string name="type.amenity.water_point.drinking_water_no">Вода для автодомов</string>
<string name="type.barrier">Преграда</string>
<string name="type.barrier.yes">Преграда</string>
<string name="type.barrier.block">Блок</string>
<string name="type.barrier.bollard">Столбик</string>
<string name="type.barrier.border_control">Погранконтроль</string>
@@ -206,6 +208,7 @@
<string name="type.barrier.retaining_wall">Поддерживающая стена</string>
<string name="type.barrier.stile">Перелаз</string>
<string name="type.barrier.turnstile">Турникет</string>
<string name="type.barrier.wicket_gate">Калитка</string>
<string name="type.barrier.swing_gate">Шлагбаум</string>
<string name="type.barrier.toll_booth">Пункт оплаты</string>
<string name="type.barrier.wall">Стена</string>

View File

@@ -178,6 +178,7 @@
<string name="type.amenity.water_point">Voda</string>
<string name="type.amenity.water_point.drinking_water_no">Voda</string>
<string name="type.barrier">Zábrana</string>
<string name="type.barrier.yes">Zábrana</string>
<string name="type.barrier.block">Blok</string>
<string name="type.barrier.bollard">Pilier</string>
<string name="type.barrier.border_control">Hraničná kontrola</string>

View File

@@ -187,6 +187,7 @@
<string name="type.amenity.water_point">Чесма</string>
<string name="type.amenity.water_point.drinking_water_no">Чесма</string>
<string name="type.barrier">Баријера</string>
<string name="type.barrier.yes">Баријера</string>
<string name="type.barrier.block">Блок</string>
<string name="type.barrier.bollard">Стуб</string>
<string name="type.barrier.border_control">Гранична контрола</string>

View File

@@ -1182,6 +1182,7 @@
<string name="type.amenity.vending_machine.coffee">Kaffeautomat</string>
<string name="type.amenity.vending_machine.fuel">Bränslepump</string>
<string name="type.barrier">Hinder</string>
<string name="type.barrier.yes">Hinder</string>
<string name="type.barrier.chain">Kedja</string>
<string name="type.barrier.cycle_barrier">Cykelhinder</string>
<string name="type.barrier.hedge">Häck</string>

View File

@@ -181,6 +181,7 @@
<string name="type.amenity.water_point">Su Tankı Yeniden Doldurma Noktası</string>
<string name="type.amenity.water_point.drinking_water_no">Su Tankı Yeniden Doldurma Noktası</string>
<string name="type.barrier">Bariyer</string>
<string name="type.barrier.yes">Bariyer</string>
<string name="type.barrier.block">Blok</string>
<string name="type.barrier.bollard">Direk</string>
<string name="type.barrier.border_control">Sınır Denetimi</string>

View File

@@ -188,6 +188,7 @@
<string name="type.amenity.water_point">Вода для автобудинків</string>
<string name="type.amenity.water_point.drinking_water_no">Вода для автобудинків</string>
<string name="type.barrier">Перешкода</string>
<string name="type.barrier.yes">Перешкода</string>
<string name="type.barrier.block">Блок</string>
<string name="type.barrier.bollard">Стовпчик</string>
<string name="type.barrier.border_control">Прикордонний контроль</string>

View File

@@ -183,6 +183,7 @@
<string name="type.amenity.water_point">飲水站</string>
<string name="type.amenity.water_point.drinking_water_no">飲水站</string>
<string name="type.barrier">障礙物</string>
<string name="type.barrier.yes">障礙物</string>
<string name="type.barrier.block">街區</string>
<string name="type.barrier.bollard"></string>
<string name="type.barrier.border_control">邊境管制</string>

View File

@@ -292,6 +292,7 @@
<string name="type.healthcare.physiotherapist">物理治療師</string>
<string name="type.leisure.escape_game">密室脫逃</string>
<string name="type.barrier">障礙物</string>
<string name="type.barrier.yes">障礙物</string>
<string name="type.entrance.main">主要入口</string>
<string name="type.entrance.exit">出口</string>
<string name="type.amenity.shelter">涼亭</string>

View File

@@ -183,6 +183,7 @@
<string name="type.amenity.water_point">取水点</string>
<string name="type.amenity.water_point.drinking_water_no">取水点</string>
<string name="type.barrier">障碍物</string>
<string name="type.barrier.yes">障碍物</string>
<string name="type.barrier.block">路障</string>
<string name="type.barrier.bollard">护柱</string>
<string name="type.barrier.border_control">边境检查站</string>

View File

@@ -187,12 +187,14 @@
<string name="type.amenity.vehicle_inspection">Vehicle Inspection</string>
<string name="type.amenity.vending_machine.fuel">Fuel Pump</string>
<string name="type.amenity.veterinary">Veterinary Doctor</string>
<string name="type.amenity.animal_shelter">Animal Shelter</string>
<string name="type.amenity.waste_basket">Trash Bin</string>
<string name="type.amenity.waste_disposal">Dumpster</string>
<string name="type.amenity.waste_transfer_station">Waste Transfer Station</string>
<string name="type.amenity.water_point">Water Tank Refill Point</string>
<string name="type.amenity.water_point.drinking_water_no">Water Tank Refill Point</string>
<string name="type.barrier">Barrier</string>
<string name="type.barrier.yes">Barrier</string>
<string name="type.barrier.block">Block</string>
<string name="type.barrier.bollard">Bollard</string>
<string name="type.barrier.border_control">Border Control</string>
@@ -212,6 +214,7 @@
<string name="type.barrier.retaining_wall">Retaining Wall</string>
<string name="type.barrier.stile">Stile</string>
<string name="type.barrier.turnstile">Turnstile</string>
<string name="type.barrier.wicket_gate">Wicket Gate</string>
<string name="type.barrier.swing_gate">Swing Gate</string>
<string name="type.barrier.toll_booth">Toll Booth</string>
<string name="type.barrier.wall">Wall</string>

View File

@@ -114,6 +114,20 @@ project.afterEvaluate {
nativeTask.onlyIf { false }
}
}
final taskName = gradle.startParameter.taskNames
if (['assemble', 'bundle', 'compile', 'install'].any{taskName.any{task->task.startsWith(it)}}) {
exec {
workingDir '../..'
if (!taskName.toString().contains('Google')) {
environment 'SKIP_MAP_DOWNLOAD', '1'
}
commandLine './configure.sh'
}
}
}
tasks.withType(JavaCompile).configureEach {

View File

@@ -29,7 +29,7 @@ JNIEXPORT void JNICALL Java_app_organicmaps_sdk_OrganicMaps_nativeInitFramework(
{
if (!g_framework)
{
g_framework = std::make_unique<android::Framework>([onComplete = jni::make_global_ref(onComplete)]()
g_framework = std::make_unique<android::Framework>([onComplete = jni::make_global_ref_safe(onComplete)]()
{
JNIEnv * env = jni::GetEnv();
jmethodID const methodId = jni::GetMethodID(env, *onComplete, "run", "()V");

View File

@@ -98,18 +98,26 @@ JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *, void *)
namespace jni
{
JNIEnv * GetEnv()
JNIEnv * GetEnvSafe()
{
JNIEnv * env;
auto const res = g_jvm->GetEnv((void **)&env, JNI_VERSION_1_6);
if (res != JNI_OK)
{
LOG(LERROR, ("Can't get JNIEnv. Is the thread attached to JVM?", res));
MYTHROW(RootException, ("Can't get JNIEnv. Is the thread attached to JVM?", res));
env = nullptr;
}
return env;
}
JNIEnv * GetEnv()
{
JNIEnv * env = GetEnvSafe();
if (env == nullptr)
MYTHROW(RootException, ("Can't get JNIEnv. Is the thread attached to JVM?"));
return env;
}
JavaVM * GetJVM()
{
ASSERT(g_jvm, ("JVM is not initialized"));
@@ -218,6 +226,20 @@ std::shared_ptr<jobject> make_global_ref(jobject obj)
});
}
// https://github.com/organicmaps/organicmaps/issues/9397
/// @todo There are no other ideas, let's try a safe version with a forever global ref ..
std::shared_ptr<jobject> make_global_ref_safe(jobject obj)
{
jobject * ref = new jobject(GetEnv()->NewGlobalRef(obj));
return std::shared_ptr<jobject>(ref, [](jobject * ref)
{
JNIEnv * env = GetEnvSafe();
if (env)
env->DeleteGlobalRef(*ref);
delete ref;
});
}
std::string ToNativeString(JNIEnv * env, jthrowable const & e)
{
jni::TScopedLocalClassRef logClassRef(env, env->FindClass("android/util/Log"));

View File

@@ -66,6 +66,8 @@ bool HandleJavaException(JNIEnv * env);
base::LogLevel GetLogLevelForException(JNIEnv * env, jthrowable const & e);
std::shared_ptr<jobject> make_global_ref(jobject obj);
std::shared_ptr<jobject> make_global_ref_safe(jobject obj);
using TScopedLocalRef = ScopedLocalRef<jobject>;
using TScopedLocalClassRef = ScopedLocalRef<jclass>;
using TScopedLocalObjectArrayRef = ScopedLocalRef<jobjectArray>;

View File

@@ -493,6 +493,12 @@ JNIEXPORT jboolean JNICALL Java_app_organicmaps_sdk_editor_Editor_nativeIsHouseV
return osm::EditableMapObject::ValidateHouseNumber(jni::ToNativeString(env, houseNumber));
}
JNIEXPORT jboolean JNICALL
Java_app_organicmaps_sdk_editor_Editor_nativeCheckHouseNumberWhenIsAddress(JNIEnv * env, jclass clazz)
{
return g_editableMapObject.CheckHouseNumberWhenIsAddress();
}
JNIEXPORT jboolean JNICALL Java_app_organicmaps_sdk_editor_Editor_nativeIsNameValid(JNIEnv * env, jclass clazz,
jstring name)
{

View File

@@ -9,6 +9,26 @@ SKIP_MAP_DOWNLOAD=$SKIP_MAP_DOWNLOAD
SKIP_GENERATE_SYMBOLS=$SKIP_GENERATE_SYMBOLS
SKIP_GENERATE_DRULES=$SKIP_GENERATE_DRULES
DRULES_NOT_GENERATED=
SYMBOLS_NOT_GENERATED=
DRULES_FILES=(drules_proto.bin drules_proto_default_dark.bin drules_proto_default_light.bin drules_proto_outdoors_dark.bin drules_proto_outdoors_light.bin drules_proto_vehicle_dark.bin drules_proto_vehicle_light.bin classificator.txt types.txt visibility.txt colors.txt patterns.txt)
SYMBOLS_FILES=(xhdpi/light/symbols.png xhdpi/light/symbols.sdf xhdpi/dark/symbols.png xhdpi/dark/symbols.sdf mdpi/light/symbols.png mdpi/light/symbols.sdf mdpi/dark/symbols.png mdpi/dark/symbols.sdf 6plus/light/symbols.png 6plus/light/symbols.sdf 6plus/dark/symbols.png 6plus/dark/symbols.sdf xxxhdpi/light/symbols.png xxxhdpi/light/symbols.sdf xxxhdpi/dark/symbols.png xxxhdpi/dark/symbols.sdf hdpi/light/symbols.png hdpi/light/symbols.sdf hdpi/dark/symbols.png hdpi/dark/symbols.sdf xxhdpi/light/symbols.png xxhdpi/light/symbols.sdf xxhdpi/dark/symbols.png xxhdpi/dark/symbols.sdf)
for f in ${DRULES_FILES[*]}; do
if [ ! -f "data/$f" ]; then
DRULES_NOT_GENERATED=1
break
fi
done
for f in ${SYMBOLS_FILES[*]}; do
if [ ! -f "data/symbols/$f" ]; then
SYMBOLS_NOT_GENERATED=1
break
fi
done
############################# PROCESS OPTIONS ################################
TEMP=$(getopt -o ms --long skip-map-download,skip-generate-symbols,skip-generate-drules \
@@ -87,7 +107,7 @@ else
fi
if [ -z "$SKIP_GENERATE_SYMBOLS" ]; then
if Diff data/symbols_hash data/styles/*/*/symbols/*; then
if Diff data/symbols_hash data/styles/*/*/symbols/* || [ ! -z "$SYMBOLS_NOT_GENERATED" ]; then
echo "Generating symbols..."
bash ./tools/unix/generate_symbols.sh
fi
@@ -96,7 +116,7 @@ else
fi
if [ -z "$SKIP_GENERATE_DRULES" ]; then
if Diff data/drules_hash data/styles/*/*/*.mapcss data/styles/*/*/*.prio.txt data/mapcss-mapping.csv; then
if Diff data/drules_hash data/styles/*/*/*.mapcss data/styles/*/*/*.prio.txt data/mapcss-mapping.csv || [ ! -z "$DRULES_NOT_GENERATED" ]; then
echo "Generating drules..."
bash ./tools/unix/generate_drules.sh
fi

View File

@@ -10162,6 +10162,48 @@ sw:Jengo
fa:ساختمان
mr:इमारत|बिल्डिंग|वाडा
building-address
en:Address
ar:العنوان
be:Адрас
bg:Адрес
ca:Adreça
cs:Adresa
da:Adresse
de:Adresse
el:Διεύθυνση
es:Dirección
et:Aadress
eu:Helbidea
fa:آدرس
fi:Osoite
fr:Adresse
he:כתובת
hi:पता
hu:Cím
id:Alamat
it:Indirizzo
ja:住所
ko:주소
mr:पत्ता
nb:Adresse
nl:Adres
pl:Adres
pt:Morada|Endereço
pt-BR:Endereço
ro:Adresă
ru:Адрес
sk:Adresa
sr:Адреса
sv:Adress
sw:Anwani
th:ที่อยู่
tr:Adres
uk:Адреса
vi:Địa chỉ
zh-Hans:地址
zh-Hant:地址
# First keyword should match [police] definition in strings.txt!
@category_police
en:4Police|cops
@@ -12952,6 +12994,10 @@ sk:4Veterinár
fa:دامپزشکی
mr:पशुवैद्यकीय डॉक्टर|प्राण्यांचा डॉक्टर
amenity-animal_shelter
en:Animal Shelter
ru:Приют для животных
@charging_station
en:4Charging Station|charging
ru:4Зарядная станция|зарядка|электрозарядка|зарядить

View File

@@ -455,6 +455,9 @@
<type id="amenity-veterinary" group="health">
<include group="poi_internet" />
</type>
<type id="amenity-animal_shelter">
<include group="poi_internet" />
</type>
<type id="amenity-charging_station">
<include group="poi" />
<include field="operator" />
@@ -1449,8 +1452,7 @@
<type id="building" can_add="no">
<include group="address" />
</type>
<!-- No consensus yet, see https://github.com/organicmaps/organicmaps/issues/6394 -->
<type id="building-address" can_add="no">
<type id="building-address" can_add="yes">
<include group="address" />
</type>
<!-- Uncomment this after a map style is added

View File

@@ -642,7 +642,8 @@ sport|diving;520;
#~270k uses.
man_made|utility_pole;521;
deprecated:boundary|administrative|suburb:04.2024;[boundary=administrative][border_type=suburb];x;name;int_name;522;
deprecated|deprecated;523;x
# Generic unspecified barrier, could be node (50k) or way (100k)
barrier|yes;523;
railway|monorail|tunnel;[railway=monorail][tunnel?];;name;int_name;524;
railway|funicular|bridge;[railway=funicular][bridge?];;name;int_name;525;
deprecated|deprecated;526;x
@@ -1021,9 +1022,9 @@ historic|pillory;[historic=pillory];;name;int_name;897;
amenity|money_transfer;898;
man_made|crane;899;
railway|subway|darkgreen;[railway=subway][colour=darkgreen];x;name;int_name;900;railway|subway|tunnel
deprecated|deprecated;901;x
barrier|wicket_gate;901;
railway|subway|gray;[railway=subway][colour=gray];x;name;int_name;902;railway|subway|tunnel
deprecated|deprecated;903;x
amenity|animal_shelter;903;
railway|subway|lightblue;[railway=subway][colour=lightblue];x;name;int_name;904;railway|subway|tunnel
amenity|motorcycle_rental;[amenity=motorcycle_rental],[shop=motorcycle][motorcycle:rental=yes],[shop=motorcycle][rental=yes],[amenity=scooter_rental];;;;905;
railway|subway|lightgreen;[railway=subway][colour=lightgreen];x;name;int_name;906;railway|subway|tunnel
Can't render this file because it contains an unexpected character in line 7 and column 16.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 468 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 786 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 464 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1007 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 765 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 357 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 960 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 620 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 584 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 891 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 506 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

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