Compare commits

..

19 Commits

Author SHA1 Message Date
vikiawv
5af9b0bd0b fix Vienna U-Bahn Icon, using colors by PTA
Signed-off-by: vikiawv <vikiawv@noreply.codeberg.org>
2026-01-09 21:52:23 +07:00
vikiawv
551b0fafa1 fix Vienna U-Bahn Icon, using colors by PTA
Signed-off-by: vikiawv <vikiawv@noreply.codeberg.org>
2026-01-09 21:52:20 +07:00
Yannik Bloscheck
d713ce57c3 [styles] Display names for trees and make those slightly better visibible in forests
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2026-01-09 21:47:27 +07:00
Yannik Bloscheck
b5e68bac0a [styles] Add road borders to major roads
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2026-01-09 21:43:02 +07:00
Yannik Bloscheck
513235646c [styles] Add road borders to minor roads
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2026-01-09 21:43:01 +07:00
gekeleda
6d3263db02 [android] code formatting, nit
Signed-off-by: gekeleda <git@davidgekeler.eu>
2026-01-09 21:33:53 +07:00
gekeleda
0a0e9592f2 [android] Increase logged info of rejected locations
Signed-off-by: gekeleda <git@davidgekeler.eu>
2026-01-09 21:33:51 +07:00
gekeleda
457b68203b [android] remove previous location quality check
Signed-off-by: gekeleda <git@davidgekeler.eu>
2026-01-09 21:33:50 +07:00
gekeleda
b9edfee557 [android] Fix most accurate location provider
Signed-off-by: gekeleda <git@davidgekeler.eu>
2026-01-09 21:33:49 +07:00
matheusgomesms
fe10e2064f Update core to better remove 3D buildings only in navigation
Signed-off-by: matheusgomesms <matheusgomesms@noreply.codeberg.org>
2026-01-09 21:25:31 +07:00
matheusgomesms
f96eaf409e Disable 3D buildings for Android Auto
Signed-off-by: matheusgomesms <matheusgomesms@noreply.codeberg.org>
2026-01-09 21:25:30 +07:00
matheusgomesms
583ddab201 Disable 3D setting for CarPlay mode (iOS)
Signed-off-by: matheusgomesms <matheusgomesms@noreply.codeberg.org>
2026-01-09 21:25:28 +07:00
matheusgomesms
0cf0097785 Disable 3D settings in the core for CarScreen mode
Signed-off-by: matheusgomesms <matheusgomesms@noreply.codeberg.org>
2026-01-09 21:25:27 +07:00
Yannik Bloscheck
96950e766d [ios] Don't let custom map appearance influence CarPlay
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2026-01-09 21:21:39 +07:00
Yannik Bloscheck
15a9511d6e [ios] Always use light map appearance by default
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2026-01-09 21:21:35 +07:00
eisa01
2d7a26132e [carplay] Add myPositionMode button to iOS <26 workaround
See PR #2474

Signed-off-by: eisa01 <eisa01@gmail.com>
2026-01-09 21:20:41 +07:00
eisa01
361e1db078 [carplay] Use system buttons for better appearance
Signed-off-by: eisa01 <eisa01@gmail.com>
2026-01-09 21:20:40 +07:00
Johannes
0c00941412 make sure to use the correct myPositionMode terminology 2026-01-09 21:20:39 +07:00
Johannes
1bc1456128 Add position mode toggle for CarPlay 2026-01-09 21:20:37 +07:00
410 changed files with 3895 additions and 5622 deletions

View File

@@ -2,5 +2,3 @@
480fa6c2fcf53be296504ac6ba8e6b3d70f92b42
a6ede2b1466f0c9d8a443600ef337ba6b5832e58
1377b81bf1cac72bb6da192da7fed6696d5d5281
05ba3afa979104bb33e5f41ede1d43e1ba30a63c
732210b9a24a95d798d092eb3455456a79d4c702

View File

@@ -1,83 +0,0 @@
///////////////////////// ankerl::unordered_dense::{map, set} /////////////////////////
// A fast & densely stored hashmap and hashset based on robin-hood backward shift deletion.
// Version 4.8.1
// https://github.com/martinus/unordered_dense
//
// Licensed under the MIT License <http://opensource.org/licenses/MIT>.
// SPDX-License-Identifier: MIT
// Copyright (c) 2022 Martin Leitner-Ankerl <martin.ankerl@gmail.com>
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
#ifndef ANKERL_STL_H
#define ANKERL_STL_H
#include <array> // for array
#include <cstdint> // for uint64_t, uint32_t, std::uint8_t, UINT64_C
#include <cstring> // for size_t, memcpy, memset
#include <functional> // for equal_to, hash
#include <initializer_list> // for initializer_list
#include <iterator> // for pair, distance
#include <limits> // for numeric_limits
#include <memory> // for allocator, allocator_traits, shared_ptr
#include <optional> // for optional
#include <stdexcept> // for out_of_range
#include <string> // for basic_string
#include <string_view> // for basic_string_view, hash
#include <tuple> // for forward_as_tuple
#include <type_traits> // for enable_if_t, declval, conditional_t, ena...
#include <utility> // for forward, exchange, pair, as_const, piece...
#include <vector> // for vector
// <memory_resource> includes <mutex>, which fails to compile if
// targeting GCC >= 13 with the (rewritten) win32 thread model, and
// targeting Windows earlier than Vista (0x600). GCC predefines
// _REENTRANT when using the 'posix' model, and doesn't when using the
// 'win32' model.
#if defined __MINGW64__ && defined __GNUC__ && __GNUC__ >= 13 && !defined _REENTRANT
// _WIN32_WINNT is guaranteed to be defined here because of the
// <cstdint> inclusion above.
# ifndef _WIN32_WINNT
# error "_WIN32_WINNT not defined"
# endif
# if _WIN32_WINNT < 0x600
# define ANKERL_MEMORY_RESOURCE_IS_BAD() 1 // NOLINT(cppcoreguidelines-macro-usage)
# endif
#endif
#ifndef ANKERL_MEMORY_RESOURCE_IS_BAD
# define ANKERL_MEMORY_RESOURCE_IS_BAD() 0 // NOLINT(cppcoreguidelines-macro-usage)
#endif
#if defined(__has_include) && !defined(ANKERL_UNORDERED_DENSE_DISABLE_PMR)
# if __has_include(<memory_resource>) && !ANKERL_MEMORY_RESOURCE_IS_BAD()
# define ANKERL_UNORDERED_DENSE_PMR std::pmr // NOLINT(cppcoreguidelines-macro-usage)
# include <memory_resource> // for polymorphic_allocator
# elif __has_include(<experimental/memory_resource>)
# define ANKERL_UNORDERED_DENSE_PMR std::experimental::pmr // NOLINT(cppcoreguidelines-macro-usage)
# include <experimental/memory_resource> // for polymorphic_allocator
# endif
#endif
#if defined(_MSC_VER) && defined(_M_X64)
# include <intrin.h>
# pragma intrinsic(_umul128)
#endif
#endif

File diff suppressed because it is too large Load Diff

View File

@@ -256,18 +256,17 @@ android {
noCompress = ['txt', 'bin', 'html', 'png', 'json', 'mwm', 'ttf', 'sdf', 'ui', 'config', 'csv', 'spv', 'obj']
// Some languages not supported by Android require to be specified here to be applied
localeFilters += [
"en",
"af",
"ar",
"az",
"be",
"bg",
"bn",
"ca",
"cs",
"da",
"de",
"el",
"en",
"en-rGB",
"es",
"es-rMX",
@@ -277,16 +276,11 @@ android {
"fi",
"fr",
"fr-rCA",
"gl",
"gsw",
"he",
"iw",
"hi",
"hu",
"id",
"in",
"is",
"it",
"iw",
"ja",
"kw",
"ko",
@@ -295,20 +289,16 @@ android {
"mr",
"mt",
"nb",
"nb-rNO",
"nl",
"pl",
"pt",
"pt-rBR",
"ro",
"ru",
"sl",
"sk",
"sr-rCyrl",
"sr-rLatn",
"sr",
"sv",
"sw",
"ta",
"th",
"tr",
"uk",

View File

@@ -28,6 +28,7 @@ import com.github.mikephil.charting.formatter.IAxisValueFormatter;
import com.github.mikephil.charting.highlight.Highlight;
import com.github.mikephil.charting.listener.OnChartValueSelectedListener;
import com.google.android.material.textview.MaterialTextView;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

View File

@@ -18,6 +18,7 @@ import android.location.Location;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import androidx.activity.result.ActivityResultLauncher;
import androidx.activity.result.contract.ActivityResultContracts;
import androidx.annotation.CallSuper;
@@ -25,6 +26,13 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.core.view.ViewCompat;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.checkbox.MaterialCheckBox;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.progressindicator.LinearProgressIndicator;
import com.google.android.material.textview.MaterialTextView;
import app.organicmaps.base.BaseMwmFragmentActivity;
import app.organicmaps.dialog.CustomMapServerDialog;
import app.organicmaps.downloader.MapManagerHelper;
@@ -39,11 +47,7 @@ import app.organicmaps.sdk.util.StringUtils;
import app.organicmaps.util.UiUtils;
import app.organicmaps.util.Utils;
import app.organicmaps.util.WindowInsetUtils.PaddingInsetsListener;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.checkbox.MaterialCheckBox;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.progressindicator.LinearProgressIndicator;
import com.google.android.material.textview.MaterialTextView;
import java.util.List;
import java.util.Objects;
@@ -255,7 +259,7 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity
mProgress.setMax(bytes);
// Start progress at 1% according to M3 guidelines
mProgress.setProgressCompat(bytes / 100, true);
mProgress.setProgressCompat(bytes/100, true);
}
else
finishFilesDownload(bytes);
@@ -271,8 +275,11 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity
mChbDownloadCountry = findViewById(R.id.chb_download_country);
mBtnAdvanced = findViewById(R.id.btn_advanced);
mBtnAdvanced.setOnClickListener(
v -> { CustomMapServerDialog.show(this, url -> { prepareFilesDownload(false); }); });
mBtnAdvanced.setOnClickListener(v -> {
CustomMapServerDialog.show(this, url -> {
prepareFilesDownload(false);
});
});
mBtnAdvanced.setEnabled(true);
mBtnListeners = new View.OnClickListener[BTN_COUNT];
@@ -387,7 +394,7 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity
mTvMessage.setText(getString(R.string.downloading_country_can_proceed, item.name, fileSizeString));
mProgress.setMax((int) item.totalSize);
// Start progress at 1% according to M3 guidelines
mProgress.setProgressCompat((int) (item.totalSize / 100), true);
mProgress.setProgressCompat((int) (item.totalSize/100), true);
mCountryDownloadListenerSlot = MapManager.nativeSubscribe(mCountryDownloadListener);
MapManagerHelper.startDownload(mCurrentCountry);
@@ -439,18 +446,21 @@ public class DownloadResourcesLegacyActivity extends BaseMwmFragmentActivity
default -> throw new AssertionError("Unexpected result code = " + result);
};
mAlertDialog = new MaterialAlertDialogBuilder(this)
.setTitle(titleId)
.setMessage(messageId)
.setCancelable(true)
.setOnCancelListener((dialog) -> setAction(RESUME))
.setPositiveButton(R.string.try_again,
(dialog, which) -> {
setAction(TRY_AGAIN);
onTryAgainClicked();
})
.setNegativeButton(R.string.cancel, (dialog, which) -> { setAction(RESUME); })
.setOnDismissListener(dialog -> mAlertDialog = null)
.show();
mAlertDialog = new MaterialAlertDialogBuilder(this)
.setTitle(titleId)
.setMessage(messageId)
.setCancelable(true)
.setOnCancelListener((dialog) -> setAction(RESUME))
.setPositiveButton(R.string.try_again,
(dialog, which) -> {
setAction(TRY_AGAIN);
onTryAgainClicked();
})
.setNegativeButton(R.string.cancel,
(dialog, which) -> {
setAction(RESUME);
})
.setOnDismissListener(dialog -> mAlertDialog = null)
.show();
}
}

View File

@@ -38,9 +38,8 @@ public class OsmUploadWork extends Worker
{
final Constraints c = new Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build();
OneTimeWorkRequest.Builder builder = new OneTimeWorkRequest.Builder(OsmUploadWork.class).setConstraints(c);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S)
{
builder.setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
builder.setExpedited(OutOfQuotaPolicy.RUN_AS_NON_EXPEDITED_WORK_REQUEST);
}
final OneTimeWorkRequest wr = builder.build();
WorkManager.getInstance(context).beginUniqueWork("UploadOsmChanges", ExistingWorkPolicy.KEEP, wr).enqueue();

View File

@@ -17,6 +17,7 @@ import androidx.annotation.NonNull;
import androidx.documentfile.provider.DocumentFile;
import app.organicmaps.R;
import app.organicmaps.sdk.util.log.Logger;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;

View File

@@ -10,6 +10,7 @@ import androidx.fragment.app.DialogFragment;
public class BaseMwmDialogFragment extends DialogFragment
{
protected int getStyle()
{
return STYLE_NORMAL;

View File

@@ -282,13 +282,11 @@ public class BookmarksListFragment extends BaseMwmRecyclerFragment<ConcatAdapter
{
if (isEmptySearchResults())
{
requirePlaceholder().setContent(R.string.search_not_found, R.string.search_not_found_query,
R.drawable.ic_search_fail);
requirePlaceholder().setContent(R.string.search_not_found, R.string.search_not_found_query, R.drawable.ic_search_fail);
}
else if (isEmpty())
{
requirePlaceholder().setContent(R.string.bookmarks_empty_list_title, R.string.bookmarks_empty_list_message,
R.drawable.ic_bookmarks);
requirePlaceholder().setContent(R.string.bookmarks_empty_list_title, R.string.bookmarks_empty_list_message, R.drawable.ic_bookmarks);
}
boolean isEmptyRecycler = isEmpty() || isEmptySearchResults();

View File

@@ -23,6 +23,7 @@ import app.organicmaps.util.UiUtils;
import app.organicmaps.util.Utils;
import app.organicmaps.widget.recycler.RecyclerClickListener;
import app.organicmaps.widget.recycler.RecyclerLongClickListener;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.checkbox.MaterialCheckBox;
import com.google.android.material.imageview.ShapeableImageView;
@@ -457,12 +458,10 @@ public class Holders
String formattedDesc = desc.replace("\n", "<br>");
Spanned spannedDesc = Utils.fromHtml(formattedDesc);
if (!TextUtils.isEmpty(spannedDesc))
{
if (!TextUtils.isEmpty(spannedDesc)) {
mDescText.setText(spannedDesc);
}
else
{
else {
mDescText.setText(R.string.list_description_empty);
}
}

View File

@@ -114,6 +114,7 @@ public final class CarAppSession extends Session implements DefaultLifecycleObse
public void onCreate(@NonNull LifecycleOwner owner)
{
Logger.d(TAG);
Framework.nativeSetCarScreenMode(true);
mSensorsManager = new CarSensorsManager(getCarContext());
mDisplayManager = MwmApplication.from(getCarContext()).getDisplayManager();
mDisplayManager.addListener(DisplayType.Car, this);
@@ -159,6 +160,7 @@ public final class CarAppSession extends Session implements DefaultLifecycleObse
public void onDestroy(@NonNull LifecycleOwner owner)
{
mDisplayManager.removeListener(DisplayType.Car);
Framework.nativeSetCarScreenMode(false);
}
private void init()

View File

@@ -50,8 +50,8 @@ public final class IntentUtils
}
// https://developer.android.com/reference/androidx/car/app/CarContext#startCarApp(android.content.Intent)
private static void processNavigationIntent(@NonNull CarContext carContext, @NonNull Renderer surfaceRenderer,
@NonNull Intent intent)
private static void processNavigationIntent(@NonNull CarContext carContext,
@NonNull Renderer surfaceRenderer, @NonNull Intent intent)
{
// TODO (AndrewShkrob): This logic will need to be revised when we introduce support for adding stops during
// navigation or route planning. Skip navigation intents during navigation

View File

@@ -31,7 +31,7 @@ public final class RoutingHelpers
default -> Distance.UNIT_METERS;
};
return Distance.create(distance.mDistance, displayUnit);
return Distance.create(distance.mDistance, displayUnit);
}
@NonNull
@@ -52,7 +52,7 @@ public final class RoutingHelpers
default -> LaneDirection.SHAPE_UNKNOWN;
};
return LaneDirection.create(shape, isRecommended);
return LaneDirection.create(shape, isRecommended);
}
@NonNull
@@ -77,7 +77,7 @@ public final class RoutingHelpers
case EXIT_HIGHWAY_TO_LEFT -> Maneuver.TYPE_OFF_RAMP_SLIGHT_LEFT;
case EXIT_HIGHWAY_TO_RIGHT -> Maneuver.TYPE_OFF_RAMP_SLIGHT_RIGHT;
};
final Maneuver.Builder builder = new Maneuver.Builder(maneuverType);
final Maneuver.Builder builder = new Maneuver.Builder(maneuverType);
if (maneuverType == Maneuver.TYPE_ROUNDABOUT_ENTER_AND_EXIT_CCW)
builder.setRoundaboutExitNumber(roundaboutExitNum > 0 ? roundaboutExitNum : 1);
builder.setIcon(new CarIcon.Builder(createManeuverIcon(context, carDirection, roundaboutExitNum)).build());
@@ -85,8 +85,7 @@ public final class RoutingHelpers
}
@NonNull
private static IconCompat createManeuverIcon(@NonNull final CarContext context, @NonNull CarDirection carDirection,
int roundaboutExitNum)
private static IconCompat createManeuverIcon(@NonNull final CarContext context, @NonNull CarDirection carDirection, int roundaboutExitNum)
{
if (!CarDirection.isRoundAbout(carDirection) || roundaboutExitNum == 0)
{

View File

@@ -39,7 +39,8 @@ public final class UiHelpers
}
@NonNull
public static ActionStrip createMapActionStrip(@NonNull CarContext context, @NonNull Renderer surfaceRenderer)
public static ActionStrip createMapActionStrip(@NonNull CarContext context,
@NonNull Renderer surfaceRenderer)
{
final CarIcon iconPlus = new CarIcon.Builder(IconCompat.createWithResource(context, R.drawable.ic_plus)).build();
final CarIcon iconMinus = new CarIcon.Builder(IconCompat.createWithResource(context, R.drawable.ic_minus)).build();
@@ -58,13 +59,15 @@ public final class UiHelpers
}
@NonNull
public static MapController createMapController(@NonNull CarContext context, @NonNull Renderer surfaceRenderer)
public static MapController createMapController(@NonNull CarContext context,
@NonNull Renderer surfaceRenderer)
{
return new MapController.Builder().setMapActionStrip(createMapActionStrip(context, surfaceRenderer)).build();
}
@NonNull
public static Action createSettingsAction(@NonNull BaseMapScreen mapScreen, @NonNull Renderer surfaceRenderer)
public static Action createSettingsAction(@NonNull BaseMapScreen mapScreen,
@NonNull Renderer surfaceRenderer)
{
return createSettingsAction(mapScreen, surfaceRenderer, null);
}
@@ -78,7 +81,8 @@ public final class UiHelpers
}
@NonNull
private static Action createSettingsAction(@NonNull BaseMapScreen mapScreen, @NonNull Renderer surfaceRenderer,
private static Action createSettingsAction(@NonNull BaseMapScreen mapScreen,
@NonNull Renderer surfaceRenderer,
@Nullable OnScreenResultListener onScreenResultListener)
{
final CarContext context = mapScreen.getCarContext();
@@ -119,7 +123,8 @@ public final class UiHelpers
return null;
final Row.Builder builder = new Row.Builder();
builder.setImage(new CarIcon.Builder(IconCompat.createWithResource(context, R.drawable.ic_opening_hours)).build());
builder.setImage(
new CarIcon.Builder(IconCompat.createWithResource(context, R.drawable.ic_opening_hours)).build());
if (isEmptyTT)
builder.setTitle(ohStr);

View File

@@ -6,16 +6,19 @@ import android.content.SharedPreferences;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.preference.PreferenceManager;
import app.organicmaps.R;
import app.organicmaps.sdk.Framework;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout;
import app.organicmaps.R;
import app.organicmaps.sdk.Framework;
public final class CustomMapServerDialog
{
public interface OnUrlAppliedListener
@@ -25,22 +28,26 @@ public final class CustomMapServerDialog
private CustomMapServerDialog() {}
public static void show(@NonNull Context context, @Nullable OnUrlAppliedListener listener)
public static void show(@NonNull Context context,
@Nullable OnUrlAppliedListener listener)
{
View dialogView = LayoutInflater.from(context).inflate(R.layout.dialog_custom_map_server, null);
View dialogView = LayoutInflater.from(context)
.inflate(R.layout.dialog_custom_map_server, null);
TextInputLayout til = dialogView.findViewById(R.id.til_custom_map_server);
TextInputEditText edit = dialogView.findViewById(R.id.edit_custom_map_server);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences prefs =
PreferenceManager.getDefaultSharedPreferences(context);
String current = prefs.getString(context.getString(R.string.pref_custom_map_download_url), "");
edit.setText(current);
MaterialAlertDialogBuilder builder = new MaterialAlertDialogBuilder(context)
.setTitle(R.string.download_resources_custom_url_title)
.setMessage(R.string.download_resources_custom_url_message)
.setView(dialogView)
.setNegativeButton(R.string.cancel, null)
.setPositiveButton(R.string.save, null);
MaterialAlertDialogBuilder builder =
new MaterialAlertDialogBuilder(context)
.setTitle(R.string.download_resources_custom_url_title)
.setMessage(R.string.download_resources_custom_url_message)
.setView(dialogView)
.setNegativeButton(R.string.cancel, null)
.setPositiveButton(R.string.save, null);
AlertDialog dialog = builder.create();
dialog.setOnShowListener(dlg -> {
@@ -48,7 +55,9 @@ public final class CustomMapServerDialog
ok.setOnClickListener(v -> {
String url = edit.getText() != null ? edit.getText().toString().trim() : "";
if (!url.isEmpty() && !url.startsWith("http://") && !url.startsWith("https://"))
if (!url.isEmpty()
&& !url.startsWith("http://")
&& !url.startsWith("https://"))
{
til.setError(context.getString(R.string.download_resources_custom_url_error_scheme));
return;
@@ -58,7 +67,9 @@ public final class CustomMapServerDialog
String normalizedUrl = Framework.normalizeServerUrl(url);
prefs.edit().putString(context.getString(R.string.pref_custom_map_download_url), normalizedUrl).apply();
prefs.edit()
.putString(context.getString(R.string.pref_custom_map_download_url), normalizedUrl)
.apply();
// Apply to native
Framework.applyCustomMapDownloadUrl(context, normalizedUrl);

View File

@@ -125,8 +125,7 @@ public class EditTextDialogFragment extends BaseMwmDialogFragment
positiveButton.setOnClickListener(view -> {
final String result = mEtInput.getText().toString();
if (validateInput(requireActivity(), result))
{
if (validateInput(requireActivity(), result)) {
processInput(result);
editTextDialog.dismiss();
}

View File

@@ -4,6 +4,7 @@ import android.location.Location;
import android.text.TextUtils;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.Nullable;
import androidx.core.view.ViewCompat;
import app.organicmaps.MwmActivity;
@@ -48,8 +49,7 @@ public class OnmapDownloader implements MwmActivity.LeftAnimationTrackListener
@Override
public void onStatusChanged(List<MapManager.StorageCallbackData> data)
{
if (mCurrentCountry == null)
{
if (mCurrentCountry == null) {
updateOfflineExplanationVisibility();
return;
}
@@ -109,13 +109,10 @@ public class OnmapDownloader implements MwmActivity.LeftAnimationTrackListener
return enqueued || progress || applying;
}
private void updateOfflineExplanationVisibility()
{
if (mOfflineExplanation == null)
return;
private void updateOfflineExplanationVisibility() {
if (mOfflineExplanation == null) return;
// hide once threshold reached; safe to call repeatedly.
app.organicmaps.util.UiUtils.showIf(MapManager.nativeGetDownloadedCount() < (DEFAULT_MAP_BASELINE + HIDE_THRESHOLD),
mOfflineExplanation);
app.organicmaps.util.UiUtils.showIf(MapManager.nativeGetDownloadedCount() < (DEFAULT_MAP_BASELINE + HIDE_THRESHOLD), mOfflineExplanation);
}
private void updateProgressState(boolean shouldAutoDownload)

View File

@@ -15,6 +15,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.AutoCompleteTextView;
import android.widget.GridLayout;
import androidx.annotation.CallSuper;
import androidx.annotation.DrawableRes;
import androidx.annotation.IdRes;
@@ -195,9 +196,8 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
{
final Context context = mInputBuildingLevels.getContext();
final boolean isValid = Editor.nativeIsLevelValid(s.toString());
mInputBuildingLevels.setError(isValid ? null
: context.getString(R.string.error_enter_correct_storey_number,
Editor.nativeGetMaxEditableBuildingLevels()));
mInputBuildingLevels.setError(isValid ? null : context.getString(R.string.error_enter_correct_storey_number,
Editor.nativeGetMaxEditableBuildingLevels()));
}
});
@@ -396,7 +396,7 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
List<String> SOCKET_TYPES = Arrays.stream(getResources().getStringArray(R.array.charge_socket_types)).toList();
for (String socketType : SOCKET_TYPES)
{
ChargeSocketDescriptor socket = new ChargeSocketDescriptor(socketType, 0, 0);
ChargeSocketDescriptor socket = new ChargeSocketDescriptor(socketType,0,0);
MaterialButton btn = (MaterialButton) inflater.inflate(R.layout.button_socket_type, typeBtns, false);
@@ -404,16 +404,16 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
// load SVG icon converted into VectorDrawable in res/drawable
@SuppressLint("DiscouragedApi")
int resIconId = getResources().getIdentifier("ic_charge_socket_" + socket.visualType(), "drawable",
requireContext().getPackageName());
int resIconId =
getResources().getIdentifier("ic_charge_socket_" + socket.visualType(), "drawable", requireContext().getPackageName());
if (resIconId != 0)
{
btn.setIcon(getResources().getDrawable(resIconId));
}
@SuppressLint("DiscouragedApi")
int resTypeId = getResources().getIdentifier("charge_socket_" + socket.visualType(), "string",
requireContext().getPackageName());
int resTypeId =
getResources().getIdentifier("charge_socket_" + socket.visualType(), "string", requireContext().getPackageName());
if (resTypeId != 0)
{
btn.setText(getResources().getString(resTypeId));
@@ -461,16 +461,13 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
// Add a TextWatcher to validate on text change
countView.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after)
{}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{}
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void afterTextChanged(Editable s)
{
public void afterTextChanged(Editable s) {
validatePositiveField(s.toString(), countInputLayout);
}
});
@@ -485,16 +482,13 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
// Add a TextWatcher to validate on text change
powerView.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after)
{}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{}
public void onTextChanged(CharSequence s, int start, int before, int count) {}
@Override
public void afterTextChanged(Editable s)
{
public void afterTextChanged(Editable s) {
validatePositiveField(s.toString(), powerInputLayout);
}
});
@@ -502,82 +496,74 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
return new MaterialAlertDialogBuilder(requireActivity())
.setTitle(R.string.editor_socket)
.setView(dialogView)
.setPositiveButton(
R.string.save,
(dialog, which) -> {
String socketType = "";
for (MaterialButton b : buttonList)
{
if (b.isChecked())
{
socketType = b.getTag(R.id.socket_type).toString();
break;
}
}
.setPositiveButton(R.string.save,
(dialog, which) -> {
String socketType = "";
for (MaterialButton b : buttonList)
{
if (b.isChecked())
{
socketType = b.getTag(R.id.socket_type).toString();
break;
}
}
int countValue = 0; // 0 means 'unknown count'
try
{
countValue = Integer.parseInt(countView.getText().toString());
}
catch (NumberFormatException ignored)
{
Logger.w(CHARGE_SOCKETS_TAG, "Invalid count value for socket:" + countView.getText().toString());
}
int countValue = 0; // 0 means 'unknown count'
try
{
countValue = Integer.parseInt(countView.getText().toString());
}
catch (NumberFormatException ignored)
{
Logger.w(CHARGE_SOCKETS_TAG, "Invalid count value for socket:" + countView.getText().toString());
}
if (countValue < 0)
{
countValue = 0;
Logger.w(CHARGE_SOCKETS_TAG, "Invalid count value for socket:" + countView.getText().toString());
}
if (countValue < 0)
{
countValue = 0;
Logger.w(CHARGE_SOCKETS_TAG, "Invalid count value for socket:" + countView.getText().toString());
}
double powerValue = 0; // 0 means 'unknown power'
try
{
powerValue = Double.parseDouble(powerView.getText().toString());
}
catch (NumberFormatException ignored)
{
Logger.w(CHARGE_SOCKETS_TAG, "Invalid power value for socket:" + powerView.getText().toString());
}
double powerValue = 0; // 0 means 'unknown power'
try
{
powerValue = Double.parseDouble(powerView.getText().toString());
}
catch (NumberFormatException ignored)
{
Logger.w(CHARGE_SOCKETS_TAG, "Invalid power value for socket:" + powerView.getText().toString());
}
if (powerValue < 0)
{
powerValue = 0;
Logger.w(CHARGE_SOCKETS_TAG, "Invalid power value for socket:" + powerView.getText().toString());
}
if (powerValue < 0)
{
powerValue = 0;
Logger.w(CHARGE_SOCKETS_TAG, "Invalid power value for socket:" + powerView.getText().toString());
}
ChargeSocketDescriptor socket = new ChargeSocketDescriptor(socketType, countValue, powerValue);
ChargeSocketDescriptor socket =
new ChargeSocketDescriptor(socketType, countValue, powerValue);
updateChargeSockets(socketIndex, socket);
})
updateChargeSockets(socketIndex, socket);
})
.setNegativeButton(R.string.cancel, (dialog, which) -> dialog.dismiss());
}
// Helper method for validation logic
private boolean validatePositiveField(String text, TextInputLayout layout)
{
if (text.isEmpty())
{
private boolean validatePositiveField(String text, TextInputLayout layout) {
if (text.isEmpty()) {
layout.setError(null); // No error if empty (assuming 0 is the default)
return true;
}
try
{
try {
double value = Double.parseDouble(text);
if (value < 0)
{
if (value < 0) {
layout.setError(getString(R.string.error_value_must_be_positive));
return false;
} else {
layout.setError(null);
return true;
}
else
{
layout.setError(null);
return true;
}
}
catch (NumberFormatException e)
{
} catch (NumberFormatException e) {
layout.setError(getString(R.string.error_invalid_number));
return false;
}
@@ -597,8 +583,7 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
{
sockets[socketIndex] = socket;
}
else
{
else {
List<ChargeSocketDescriptor> list = new ArrayList<>(Arrays.asList(sockets));
list.add(socket);
sockets = list.toArray(new ChargeSocketDescriptor[0]);
@@ -616,8 +601,7 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
GridLayout socketsGrid = mChargeSockets.findViewById(R.id.socket_grid_editor);
socketsGrid.removeAllViews();
for (int i = 0; i < sockets.length; i++)
{
for (int i = 0; i < sockets.length; i++) {
final int currentIndex = i;
ChargeSocketDescriptor socket = sockets[i];
@@ -628,30 +612,27 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
MaterialTextView power = itemView.findViewById(R.id.socket_power);
MaterialTextView count = itemView.findViewById(R.id.socket_count);
// load SVG icon converted into VectorDrawable in res/drawable
@SuppressLint("DiscouragedApi")
int resIconId = getResources().getIdentifier("ic_charge_socket_" + socket.visualType(), "drawable",
requireContext().getPackageName());
if (resIconId != 0)
{
requireContext().getPackageName());
if (resIconId != 0) {
icon.setImageResource(resIconId);
}
@SuppressLint("DiscouragedApi")
int resTypeId = getResources().getIdentifier("charge_socket_" + socket.visualType(), "string",
requireContext().getPackageName());
if (resTypeId != 0)
{
int resTypeId =
getResources().getIdentifier("charge_socket_" + socket.visualType(), "string", requireContext().getPackageName());
if (resTypeId != 0) {
type.setText(resTypeId);
}
if (socket.power() != 0)
{
if (socket.power() != 0) {
DecimalFormat df = new DecimalFormat("#.##");
power.setText(getString(R.string.kw_label, df.format(socket.power())));
}
else if (socket.ignorePower())
{
else if (socket.ignorePower()) {
power.setVisibility(INVISIBLE);
}
@@ -660,8 +641,7 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
count.setText(getString(R.string.count_label, socket.count()));
}
itemView.setOnClickListener(
v -> buildChargeSocketDialog(currentIndex, socket.type(), socket.count(), socket.power()).show());
itemView.setOnClickListener(v -> buildChargeSocketDialog(currentIndex, socket.type(), socket.count(), socket.power()).show());
socketsGrid.addView(itemView);
}
@@ -807,8 +787,9 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
View lineContactBlock =
initBlock(view, Metadata.MetadataType.FMD_CONTACT_LINE, R.id.block_line, R.drawable.ic_line_white,
R.string.editor_line_social_network, InputType.TYPE_TEXT_VARIATION_URI);
View blueskyContactBlock = initBlock(view, Metadata.MetadataType.FMD_CONTACT_BLUESKY, R.id.block_bluesky,
R.drawable.ic_bluesky, R.string.bluesky, InputType.TYPE_TEXT_VARIATION_URI);
View blueskyContactBlock =
initBlock(view, Metadata.MetadataType.FMD_CONTACT_BLUESKY, R.id.block_bluesky, R.drawable.ic_bluesky,
R.string.bluesky, InputType.TYPE_TEXT_VARIATION_URI);
View operatorBlock = initBlock(view, Metadata.MetadataType.FMD_OPERATOR, R.id.block_operator,
R.drawable.ic_operator, R.string.editor_operator, 0);
@@ -1040,15 +1021,14 @@ public class EditorFragment extends BaseMwmFragment implements View.OnClickListe
private void placeDisused()
{
new MaterialAlertDialogBuilder(requireActivity())
.setTitle(R.string.editor_mark_business_vacant_title)
.setMessage(R.string.editor_mark_business_vacant_description)
.setPositiveButton(R.string.editor_submit,
(dlg, which) -> {
Editor.nativeMarkPlaceAsDisused();
mParent.processEditedFeatures();
})
.setNegativeButton(android.R.string.cancel, null)
.show();
.setTitle(R.string.editor_mark_business_vacant_title)
.setMessage(R.string.editor_mark_business_vacant_description)
.setPositiveButton(R.string.editor_submit, (dlg, which) -> {
Editor.nativeMarkPlaceAsDisused();
mParent.processEditedFeatures();
})
.setNegativeButton(android.R.string.cancel, null)
.show();
}
private void commitPlaceDoesntExists(@NonNull String text)

View File

@@ -13,6 +13,7 @@ import app.organicmaps.R;
import app.organicmaps.sdk.editor.data.FeatureCategory;
import app.organicmaps.sdk.util.StringUtils;
import app.organicmaps.util.UiUtils;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textview.MaterialTextView;
@@ -68,7 +69,8 @@ public class FeatureCategoryAdapter extends RecyclerView.Adapter<RecyclerView.Vi
}
case TYPE_FOOTER ->
{
return new FooterViewHolder(inflater.inflate(R.layout.item_feature_category_footer, parent, false), mFragment);
return new FooterViewHolder(inflater.inflate(R.layout.item_feature_category_footer, parent, false),
mFragment);
}
default -> throw new IllegalArgumentException("Unsupported viewType: " + viewType);
}
@@ -132,21 +134,26 @@ public class FeatureCategoryAdapter extends RecyclerView.Adapter<RecyclerView.Vi
mSendNoteButton = itemView.findViewById(R.id.send_note_button);
mSendNoteButton.setOnClickListener(v -> listener.onSendNoteClicked());
final ColorStateList bgButtonColor = new ColorStateList(
new int[][] {
new int[] {android.R.attr.state_enabled}, // enabled
new int[] {-android.R.attr.state_enabled} // disabled
},
new int[] {ContextCompat.getColor(mSendNoteButton.getContext(), R.color.base_accent),
ContextCompat.getColor(mSendNoteButton.getContext(), R.color.button_accent_disabled)});
new int[][]{
new int[]{android.R.attr.state_enabled}, // enabled
new int[]{-android.R.attr.state_enabled} // disabled
},
new int[]{
ContextCompat.getColor(
mSendNoteButton.getContext(), R.color.base_accent),
ContextCompat.getColor(mSendNoteButton.getContext(), R.color.button_accent_disabled)
});
final ColorStateList textButtonColor = new ColorStateList(
new int[][] {
new int[] {android.R.attr.state_enabled}, // enabled
new int[] {-android.R.attr.state_enabled} // disabled
},
new int[] {ContextCompat.getColor(mSendNoteButton.getContext(),
UiUtils.getStyledResourceId(mSendNoteButton.getContext(),
android.R.attr.textColorPrimaryInverse)),
ContextCompat.getColor(mSendNoteButton.getContext(), R.color.button_accent_text_disabled)});
new int[][]{
new int[]{android.R.attr.state_enabled}, // enabled
new int[]{-android.R.attr.state_enabled} // disabled
},
new int[]{
ContextCompat.getColor(
mSendNoteButton.getContext(),
UiUtils.getStyledResourceId(mSendNoteButton.getContext(), android.R.attr.textColorPrimaryInverse)),
ContextCompat.getColor(mSendNoteButton.getContext(), R.color.button_accent_text_disabled)
});
mSendNoteButton.setBackgroundTintList(bgButtonColor);
mSendNoteButton.setTextColor(textButtonColor);
mNoteEditText.addTextChangedListener(new StringUtils.SimpleTextWatcher() {

View File

@@ -2,16 +2,19 @@ package app.organicmaps.editor;
import android.content.res.Configuration;
import android.content.res.Resources;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import com.google.android.material.timepicker.MaterialTimePicker;
import com.google.android.material.timepicker.TimeFormat;
import app.organicmaps.R;
import app.organicmaps.sdk.editor.data.HoursMinutes;
import app.organicmaps.sdk.util.DateUtils;
import com.google.android.material.timepicker.MaterialTimePicker;
import com.google.android.material.timepicker.TimeFormat;
public class FromToTimePicker
{
@@ -29,11 +32,18 @@ public class FromToTimePicker
private boolean mIsFromTimePicked;
private int mInputMode;
public static void pickTime(@NonNull Fragment fragment, @NonNull FromToTimePicker.OnPickListener listener,
@NonNull HoursMinutes fromTime, @NonNull HoursMinutes toTime, int id,
public static void pickTime(@NonNull Fragment fragment,
@NonNull FromToTimePicker.OnPickListener listener,
@NonNull HoursMinutes fromTime,
@NonNull HoursMinutes toTime,
int id,
boolean startWithToTime)
{
FromToTimePicker timePicker = new FromToTimePicker(fragment, listener, fromTime, toTime, id);
FromToTimePicker timePicker = new FromToTimePicker(fragment,
listener,
fromTime,
toTime,
id);
if (startWithToTime)
timePicker.showToTimePicker();
@@ -41,8 +51,11 @@ public class FromToTimePicker
timePicker.showFromTimePicker();
}
private FromToTimePicker(@NonNull Fragment fragment, @NonNull FromToTimePicker.OnPickListener listener,
@NonNull HoursMinutes fromTime, @NonNull HoursMinutes toTime, int id)
private FromToTimePicker(@NonNull Fragment fragment,
@NonNull FromToTimePicker.OnPickListener listener,
@NonNull HoursMinutes fromTime,
@NonNull HoursMinutes toTime,
int id)
{
mActivity = fragment.requireActivity();
mFragmentManager = fragment.getChildFragmentManager();
@@ -87,12 +100,15 @@ public class FromToTimePicker
private MaterialTimePicker buildFromTimePicker()
{
MaterialTimePicker timePicker = buildTimePicker(mFromTime, mResources.getString(R.string.editor_time_from),
mResources.getString(R.string.next_button), null);
MaterialTimePicker timePicker = buildTimePicker(mFromTime,
mResources.getString(R.string.editor_time_from),
mResources.getString(R.string.next_button),
null);
timePicker.addOnNegativeButtonClickListener(view -> finishTimePicking(false));
timePicker.addOnPositiveButtonClickListener(view -> {
timePicker.addOnPositiveButtonClickListener(view ->
{
mIsFromTimePicked = true;
saveState(timePicker, true);
mFromTimePicker = null;
@@ -106,10 +122,13 @@ public class FromToTimePicker
private MaterialTimePicker buildToTimePicker()
{
MaterialTimePicker timePicker = buildTimePicker(mToTime, mResources.getString(R.string.editor_time_to), null,
MaterialTimePicker timePicker = buildTimePicker(mToTime,
mResources.getString(R.string.editor_time_to),
null,
mResources.getString(R.string.back));
timePicker.addOnNegativeButtonClickListener(view -> {
timePicker.addOnNegativeButtonClickListener(view ->
{
saveState(timePicker, false);
mToTimePicker = null;
if (mIsFromTimePicked)
@@ -118,7 +137,8 @@ public class FromToTimePicker
finishTimePicking(false);
});
timePicker.addOnPositiveButtonClickListener(view -> {
timePicker.addOnPositiveButtonClickListener(view ->
{
saveState(timePicker, false);
finishTimePicking(true);
});
@@ -129,18 +149,18 @@ public class FromToTimePicker
}
@NonNull
private MaterialTimePicker buildTimePicker(@NonNull HoursMinutes time, @NonNull String title,
private MaterialTimePicker buildTimePicker(@NonNull HoursMinutes time,
@NonNull String title,
@Nullable String positiveButtonTextOverride,
@Nullable String negativeButtonTextOverride)
{
MaterialTimePicker.Builder builder =
new MaterialTimePicker.Builder()
.setTitleText(title)
.setTimeFormat(mIs24HourFormat ? TimeFormat.CLOCK_24H : TimeFormat.CLOCK_12H)
.setInputMode(mInputMode)
.setTheme(R.style.MwmTheme_MaterialTimePicker)
.setHour((int) time.hours)
.setMinute((int) time.minutes);
MaterialTimePicker.Builder builder = new MaterialTimePicker.Builder()
.setTitleText(title)
.setTimeFormat(mIs24HourFormat ? TimeFormat.CLOCK_24H : TimeFormat.CLOCK_12H)
.setInputMode(mInputMode)
.setTheme(R.style.MwmTheme_MaterialTimePicker)
.setHour((int) time.hours)
.setMinute((int) time.minutes);
if (positiveButtonTextOverride != null)
builder.setPositiveButtonText(positiveButtonTextOverride);

View File

@@ -8,6 +8,7 @@ import androidx.annotation.NonNull;
import androidx.core.os.ConfigurationCompat;
import androidx.core.os.LocaleListCompat;
import androidx.fragment.app.Fragment;
import app.organicmaps.R;
import app.organicmaps.base.BaseMwmRecyclerFragment;
import app.organicmaps.sdk.editor.Editor;
@@ -38,7 +39,8 @@ public class LanguagesFragment extends BaseMwmRecyclerFragment<LanguagesAdapter>
protected LanguagesAdapter createAdapter()
{
Bundle args = getArguments();
boolean includeLocalLanguage = args != null ? args.getBoolean(INCLUDE_LOCAL_LANGUAGE) : true;
boolean includeLocalLanguage =
args != null ? args.getBoolean(INCLUDE_LOCAL_LANGUAGE) : true;
Set<String> existingLanguages =
args != null ? new HashSet<>(args.getStringArrayList(EXISTING_LOCALIZED_NAMES)) : new HashSet<>();
@@ -73,8 +75,7 @@ public class LanguagesFragment extends BaseMwmRecyclerFragment<LanguagesAdapter>
languages.addAll(0, systemLanguages.stream().filter(Objects::nonNull).toList());
if (includeLocalLanguage)
{
if (includeLocalLanguage) {
String localLanguageLabel = getString(R.string.pref_maplanguage_local);
Language localLanguage = new Language(DEFAULT_LANG_CODE, localLanguageLabel);
languages.add(0, localLanguage);

View File

@@ -7,6 +7,7 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.CompoundButton;
import android.widget.LinearLayout;
import androidx.annotation.IdRes;
import androidx.annotation.IntRange;
import androidx.annotation.Nullable;
@@ -121,14 +122,20 @@ class SimpleTimetableAdapter extends RecyclerView.Adapter<SimpleTimetableAdapter
notifyItemChanged(getItemCount() - 1);
}
private void pickTime(int position, @IntRange(from = ID_OPENING_TIME, to = ID_CLOSED_SPAN) int id,
private void pickTime(int position,
@IntRange(from = ID_OPENING_TIME, to = ID_CLOSED_SPAN) int id,
boolean startWithToTime)
{
final Timetable data = mItems.get(position);
mPickingPosition = position;
FromToTimePicker.pickTime(mFragment, this, data.workingTimespan.start, data.workingTimespan.end, id,
startWithToTime);
FromToTimePicker.pickTime(mFragment,
this,
data.workingTimespan.start,
data.workingTimespan.end,
id,
startWithToTime);
}
@Override
@@ -377,21 +384,26 @@ class SimpleTimetableAdapter extends RecyclerView.Adapter<SimpleTimetableAdapter
final String text = mFragment.getString(R.string.editor_time_add);
mAdd.setEnabled(enable);
final ColorStateList bgButtonColor = new ColorStateList(
new int[][] {
new int[] {android.R.attr.state_enabled}, // enabled
new int[] {-android.R.attr.state_enabled} // disabled
},
new int[] {ContextCompat.getColor(mAdd.getContext(), R.color.base_accent),
ContextCompat.getColor(mAdd.getContext(), R.color.button_accent_disabled)});
new int[][]{
new int[]{android.R.attr.state_enabled}, // enabled
new int[]{-android.R.attr.state_enabled} // disabled
},
new int[]{
ContextCompat.getColor(
mAdd.getContext(), R.color.base_accent),
ContextCompat.getColor(mAdd.getContext(), R.color.button_accent_disabled)
});
final ColorStateList textButtonColor = new ColorStateList(
new int[][] {
new int[] {android.R.attr.state_enabled}, // enabled
new int[] {-android.R.attr.state_enabled} // disabled
},
new int[] {
ContextCompat.getColor(mAdd.getContext(), UiUtils.getStyledResourceId(
mAdd.getContext(), android.R.attr.textColorPrimaryInverse)),
ContextCompat.getColor(mAdd.getContext(), R.color.button_accent_text_disabled)});
new int[][]{
new int[]{android.R.attr.state_enabled}, // enabled
new int[]{-android.R.attr.state_enabled} // disabled
},
new int[]{
ContextCompat.getColor(
mAdd.getContext(),
UiUtils.getStyledResourceId(mAdd.getContext(), android.R.attr.textColorPrimaryInverse)),
ContextCompat.getColor(mAdd.getContext(), R.color.button_accent_text_disabled)
});
mAdd.setBackgroundTintList(bgButtonColor);
mAdd.setTextColor(textButtonColor);
mAdd.setText(enable ? text + " (" + TimeFormatUtils.formatWeekdays(mComplementItem) + ")" : text);

View File

@@ -9,8 +9,8 @@ import androidx.annotation.Nullable;
import app.organicmaps.R;
import app.organicmaps.base.BaseMwmRecyclerFragment;
public class SimpleTimetableFragment
extends BaseMwmRecyclerFragment<SimpleTimetableAdapter> implements TimetableProvider
public class SimpleTimetableFragment extends BaseMwmRecyclerFragment<SimpleTimetableAdapter>
implements TimetableProvider
{
private SimpleTimetableAdapter mAdapter;
@Nullable

View File

@@ -35,30 +35,25 @@ public class LayerBottomSheetItem
@DrawableRes
int drawableResId = 0;
@StringRes
int buttonTextResource = switch (mode)
{
case OUTDOORS ->
{
drawableResId = R.drawable.ic_layers_outdoors;
yield R.string.button_layer_outdoor;
}
case SUBWAY ->
{
drawableResId = R.drawable.ic_layers_subway;
yield R.string.subway;
}
case ISOLINES ->
{
drawableResId = R.drawable.ic_layers_isoline;
yield R.string.button_layer_isolines;
}
case TRAFFIC ->
{
drawableResId = R.drawable.ic_layers_traffic;
yield R.string.button_layer_traffic;
}
int buttonTextResource = switch (mode) {
case OUTDOORS -> {
drawableResId = R.drawable.ic_layers_outdoors;
yield R.string.button_layer_outdoor;
}
case SUBWAY -> {
drawableResId = R.drawable.ic_layers_subway;
yield R.string.subway;
}
case ISOLINES -> {
drawableResId = R.drawable.ic_layers_isoline;
yield R.string.button_layer_isolines;
}
case TRAFFIC -> {
drawableResId = R.drawable.ic_layers_traffic;
yield R.string.button_layer_traffic;
}
};
return new LayerBottomSheetItem(drawableResId, buttonTextResource, mode, layerItemClickListener);
return new LayerBottomSheetItem(drawableResId, buttonTextResource, mode, layerItemClickListener);
}
@NonNull

View File

@@ -5,9 +5,11 @@ import android.widget.ImageView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.textview.MaterialTextView;
import app.organicmaps.R;
import app.organicmaps.adapter.OnItemClickListener;
import com.google.android.material.textview.MaterialTextView;
class LayerHolder extends RecyclerView.ViewHolder
{

View File

@@ -395,7 +395,7 @@ public class MapButtonsController extends Fragment
0;
// Allow offset tolerance for zoom buttons
};
showButton(getViewTopOffset(translation, button) >= toleranceOffset, entry.getKey());
showButton(getViewTopOffset(translation, button) >= toleranceOffset, entry.getKey());
}
}
}

View File

@@ -99,9 +99,9 @@ public class NavigationController implements TrafficManager.TrafficCallback, Nav
mCurrentSpeed = topFrame.findViewById(R.id.nav_current_speed);
View mTopbar = topFrame.findViewById(R.id.statutbar);
ViewCompat.setOnApplyWindowInsetsListener(mTopbar, (v, windowInsets) -> {
UiUtils.setViewNavigationTopInsetsMargin(v, windowInsets);
return windowInsets;
ViewCompat.setOnApplyWindowInsetsListener(mTopbar,(v, windowInsets) -> {
UiUtils.setViewNavigationTopInsetsMargin(v, windowInsets);
return windowInsets;
});
// Show a blank view below the navbar to hide the menu content
final View navigationBarBackground = mFrame.findViewById(R.id.nav_bottom_sheet_nav_bar);

View File

@@ -43,6 +43,7 @@ import app.organicmaps.util.UiUtils;
import app.organicmaps.util.Utils;
import app.organicmaps.widget.recycler.DotDividerItemDecoration;
import app.organicmaps.widget.recycler.MultilineLayoutManager;
import com.google.android.material.button.MaterialButton;
import com.google.android.material.imageview.ShapeableImageView;
import com.google.android.material.textview.MaterialTextView;
@@ -122,9 +123,9 @@ final class RoutingBottomMenuController implements View.OnClickListener
@NonNull View timeElevationLine, @NonNull View transitFrame,
@NonNull MaterialTextView error, @NonNull MaterialButton start,
@NonNull ShapeableImageView altitudeChart, @NonNull MaterialTextView time,
@NonNull MaterialTextView altitudeDifference,
@NonNull MaterialTextView timeVehicle, @Nullable MaterialTextView arrival,
@NonNull View actionFrame, @Nullable RoutingBottomMenuListener listener)
@NonNull MaterialTextView altitudeDifference, @NonNull MaterialTextView timeVehicle,
@Nullable MaterialTextView arrival, @NonNull View actionFrame,
@Nullable RoutingBottomMenuListener listener)
{
mContext = context;
mAltitudeChartFrame = altitudeChartFrame;

View File

@@ -12,6 +12,9 @@ import androidx.annotation.IdRes;
import androidx.annotation.NonNull;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import com.google.android.material.textview.MaterialTextView;
import app.organicmaps.MwmApplication;
import app.organicmaps.R;
import app.organicmaps.sdk.Framework;
@@ -26,7 +29,6 @@ import app.organicmaps.util.WindowInsetUtils.PaddingInsetsListener;
import app.organicmaps.widget.RoutingToolbarButton;
import app.organicmaps.widget.ToolbarController;
import app.organicmaps.widget.WheelProgressView;
import com.google.android.material.textview.MaterialTextView;
public class RoutingPlanController extends ToolbarController
{
@@ -262,7 +264,7 @@ public class RoutingPlanController extends ToolbarController
default -> throw new IllegalArgumentException("unknown router: " + router);
};
RoutingToolbarButton button = mRouterTypes.findViewById(mRouterTypes.getCheckedRadioButtonId());
RoutingToolbarButton button = mRouterTypes.findViewById(mRouterTypes.getCheckedRadioButtonId());
button.progress();
updateProgressLabels();

View File

@@ -14,10 +14,12 @@ import androidx.annotation.NonNull;
import androidx.annotation.StringRes;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.textview.MaterialTextView;
import app.organicmaps.R;
import app.organicmaps.sdk.search.DisplayedCategories;
import app.organicmaps.sdk.util.Language;
import com.google.android.material.textview.MaterialTextView;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Locale;

View File

@@ -10,12 +10,14 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.textview.MaterialTextView;
import app.organicmaps.R;
import app.organicmaps.sdk.search.SearchResult;
import app.organicmaps.util.Graphics;
import app.organicmaps.util.ThemeUtils;
import app.organicmaps.util.UiUtils;
import com.google.android.material.textview.MaterialTextView;
class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.SearchDataViewHolder>
{
@@ -150,8 +152,7 @@ class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.SearchDataViewHol
{
final Resources resources = mSearchFragment.getResources();
if (result.description.openNow != SearchResult.OPEN_NOW_YES
&& result.description.openNow != SearchResult.OPEN_NOW_NO)
if (result.description.openNow != SearchResult.OPEN_NOW_YES && result.description.openNow != SearchResult.OPEN_NOW_NO)
{
// Hide if unknown opening hours state
UiUtils.hide(mOpen);
@@ -168,18 +169,15 @@ class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.SearchDataViewHol
{
final String minsToChangeStr = resources.getQuantityString(
R.plurals.minutes_short, Math.max(minsToNextState, 1), Math.max(minsToNextState, 1));
final String nextChangeFormatted =
resources.getString(isOpen ? R.string.closes_in : R.string.opens_in, minsToChangeStr);
final String nextChangeFormatted = resources.getString(isOpen ? R.string.closes_in : R.string.opens_in, minsToChangeStr);
UiUtils.setTextAndShow(mOpen, nextChangeFormatted);
mOpen.setTextColor(ContextCompat.getColor(mSearchFragment.getContext(), R.color.base_yellow));
}
else
{
UiUtils.setTextAndShow(
mOpen, isOpen ? resources.getString(R.string.editor_time_open) : resources.getString(R.string.closed));
mOpen.setTextColor(
ContextCompat.getColor(mSearchFragment.getContext(), isOpen ? R.color.base_green : R.color.base_red));
UiUtils.setTextAndShow(mOpen, isOpen ? resources.getString(R.string.editor_time_open) : resources.getString(R.string.closed));
mOpen.setTextColor(ContextCompat.getColor(mSearchFragment.getContext(), isOpen ? R.color.base_green : R.color.base_red));
}
}

View File

@@ -273,8 +273,7 @@ public class SearchFragment extends BaseMwmFragment implements SearchListener, C
RecyclerView mResults = mResultsFrame.findViewById(R.id.recycler);
setRecyclerScrollListener(mResults);
mResultsPlaceholder = mResultsFrame.findViewById(R.id.placeholder);
mResultsPlaceholder.setContent(R.string.search_not_found, R.string.search_not_found_query,
R.drawable.ic_search_fail);
mResultsPlaceholder.setContent(R.string.search_not_found, R.string.search_not_found_query, R.drawable.ic_search_fail);
mSearchAdapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver()
{

View File

@@ -5,13 +5,15 @@ import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.google.android.material.textview.MaterialTextView;
import app.organicmaps.MwmApplication;
import app.organicmaps.R;
import app.organicmaps.sdk.routing.RoutingController;
import app.organicmaps.sdk.search.SearchRecents;
import app.organicmaps.util.Graphics;
import app.organicmaps.widget.SearchToolbarController;
import com.google.android.material.textview.MaterialTextView;
class SearchHistoryAdapter extends RecyclerView.Adapter<SearchHistoryAdapter.ViewHolder>
{

View File

@@ -8,12 +8,14 @@ import android.view.ViewGroup;
import android.widget.CompoundButton;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.google.android.material.materialswitch.MaterialSwitch;
import app.organicmaps.R;
import app.organicmaps.base.BaseMwmToolbarFragment;
import app.organicmaps.sdk.routing.RoutingController;
import app.organicmaps.sdk.routing.RoutingOptions;
import app.organicmaps.sdk.settings.RoadType;
import com.google.android.material.materialswitch.MaterialSwitch;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;

View File

@@ -8,6 +8,7 @@ import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.preference.ListPreference;
@@ -15,6 +16,9 @@ import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceManager;
import androidx.preference.TwoStatePreference;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import app.organicmaps.MwmApplication;
import app.organicmaps.R;
import app.organicmaps.dialog.CustomMapServerDialog;
@@ -39,7 +43,7 @@ import app.organicmaps.sdk.util.SharedPropertiesUtils;
import app.organicmaps.sdk.util.log.LogsManager;
import app.organicmaps.util.ThemeSwitcher;
import app.organicmaps.util.Utils;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@@ -138,12 +142,9 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment implements La
{
final Preference pref = getPreference(getString(R.string.pref_map_locale));
String mapLanguageCode = MapLanguageCode.getMapLanguageCode();
if (mapLanguageCode.equals(DEFAULT_LANG_CODE))
{
if (mapLanguageCode.equals(DEFAULT_LANG_CODE)) {
pref.setSummary(R.string.pref_maplanguage_local);
}
else
{
} else {
Locale locale = new Locale(mapLanguageCode);
pref.setSummary(locale.getDisplayLanguage());
}
@@ -558,8 +559,9 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment implements La
String normalizedUrl = Framework.normalizeServerUrl(current);
// Initial summary
customUrlPref.setSummary(normalizedUrl.isEmpty() ? getString(R.string.download_resources_custom_url_summary_none)
: normalizedUrl);
customUrlPref.setSummary(normalizedUrl.isEmpty()
? getString(R.string.download_resources_custom_url_summary_none)
: normalizedUrl);
// Sync native
Framework.applyCustomMapDownloadUrl(requireContext(), normalizedUrl);
@@ -567,7 +569,9 @@ public class SettingsPrefsFragment extends BaseXmlSettingsFragment implements La
// Show dialog
customUrlPref.setOnPreferenceClickListener(preference -> {
CustomMapServerDialog.show(requireContext(), url -> {
preference.setSummary(url.isEmpty() ? getString(R.string.download_resources_custom_url_summary_none) : url);
preference.setSummary(url.isEmpty()
? getString(R.string.download_resources_custom_url_summary_none)
: url);
});
return true;
});

View File

@@ -274,10 +274,10 @@ public final class UiUtils
public static void setViewNavigationTopInsetsMargin(View view, WindowInsetsCompat windowInsets)
{
final Insets systemInsets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars());
ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
lp.topMargin = systemInsets.top;
view.setLayoutParams(lp);
final Insets systemInsets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars());
ViewGroup.MarginLayoutParams lp = (ViewGroup.MarginLayoutParams) view.getLayoutParams();
lp.topMargin = systemInsets.top;
view.setLayoutParams(lp);
}
public static void setupNavigationIcon(@NonNull MaterialToolbar toolbar, @NonNull View.OnClickListener listener)

View File

@@ -53,7 +53,7 @@ public class MenuBottomSheetFragment extends BottomSheetDialogFragment
@Override
public Dialog onCreateDialog(@Nullable Bundle savedInstanceState)
{
return new BottomSheetDialog(requireContext(), R.style.MwmTheme_BottomSheetDialog) {
return new BottomSheetDialog(requireContext(), getTheme()) {
@Override
public void onAttachedToWindow()
{

View File

@@ -8,165 +8,165 @@ import android.graphics.Typeface;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public abstract class BaseSignView extends View
{
private float mBorderWidthRatio = 0.1f;
protected void setBorderWidthRatio(float ratio)
{
mBorderWidthRatio = ratio;
}
private float mBorderInsetRatio = 0f;
protected void setBorderInsetRatio(float ratio)
{
mBorderInsetRatio = ratio;
}
// colors
protected int mBackgroundColor;
protected int mBorderColor;
protected int mAlertColor;
protected int mTextColor;
protected int mTextAlertColor;
// paints
protected final Paint mBackgroundPaint;
protected final Paint mBorderPaint;
protected final Paint mTextPaint;
// geometry
protected float mWidth;
protected float mHeight;
protected float mRadius;
protected float mBorderWidth;
protected float mBorderRadius;
public BaseSignView(Context ctx, @Nullable AttributeSet attrs)
{
super(ctx, attrs);
mBackgroundPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mBorderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mBorderPaint.setStyle(Paint.Style.STROKE);
mTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mTextPaint.setTextAlign(Paint.Align.CENTER);
mTextPaint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD));
}
protected void setColors(int backgroundColor, int borderColor, int alertColor, int textColor, int textAlertColor)
{
mBackgroundColor = backgroundColor;
mBorderColor = borderColor;
mAlertColor = alertColor;
mTextColor = textColor;
mTextAlertColor = textAlertColor;
mBackgroundPaint.setColor(mBackgroundColor);
mBorderPaint.setColor(mBorderColor);
mTextPaint.setColor(mTextColor);
}
@Override
protected void onSizeChanged(int width, int height, int oldWidth, int oldHeight)
{
super.onSizeChanged(width, height, oldWidth, oldHeight);
final float paddingX = getPaddingLeft() + getPaddingRight();
final float paddingY = getPaddingTop() + getPaddingBottom();
mWidth = width - paddingX;
mHeight = height - paddingY;
mRadius = Math.min(mWidth, mHeight) / 2f;
mBorderWidth = mRadius * mBorderWidthRatio;
// subtract half the stroke PLUS the extra inset
final float gap = mRadius * mBorderInsetRatio;
mBorderRadius = mRadius - (mBorderWidth / 2f) - gap;
configureTextSize();
}
@Override
protected void onDraw(@NonNull Canvas canvas)
{
super.onDraw(canvas);
final String str = getValueString();
if (str == null)
return;
final float cx = mWidth / 2f;
final float cy = mHeight / 2f;
// background & border
boolean alert = isAlert();
mBackgroundPaint.setColor(alert ? mAlertColor : mBackgroundColor);
canvas.drawCircle(cx, cy, mRadius, mBackgroundPaint);
if (!alert)
{
mBorderPaint.setStrokeWidth(mBorderWidth);
mBorderPaint.setColor(mBorderColor);
canvas.drawCircle(cx, cy, mBorderRadius, mBorderPaint);
private float mBorderWidthRatio = 0.1f;
protected void setBorderWidthRatio(float ratio) {
mBorderWidthRatio = ratio;
}
// text
mTextPaint.setColor(alert ? mTextAlertColor : mTextColor);
drawValueString(canvas, cx, cy, str);
}
@Override
public boolean onTouchEvent(@NonNull MotionEvent e)
{
final float cx = mWidth / 2f, cy = mHeight / 2f;
final float dx = e.getX() - cx, dy = e.getY() - cy;
if ((dx * dx) + (dy * dy) <= (mRadius * mRadius))
{
performClick();
return true;
private float mBorderInsetRatio = 0f;
protected void setBorderInsetRatio(float ratio) {
mBorderInsetRatio = ratio;
}
return false;
}
@Override
public boolean performClick()
{
super.performClick();
return false;
}
// colors
protected int mBackgroundColor;
protected int mBorderColor;
protected int mAlertColor;
protected int mTextColor;
protected int mTextAlertColor;
private void drawValueString(Canvas c, float cx, float cy, String str)
{
Rect b = new Rect();
mTextPaint.getTextBounds(str, 0, str.length(), b);
final float y = cy - b.exactCenterY();
c.drawText(str, cx, y, mTextPaint);
}
// paints
protected final Paint mBackgroundPaint;
protected final Paint mBorderPaint;
protected final Paint mTextPaint;
void configureTextSize()
{
String text = getValueString();
if (text == null)
return;
final float textRadius = mBorderRadius - mBorderWidth;
final float maxTextSize = 2f * textRadius;
final float maxTextSize2 = maxTextSize * maxTextSize;
float lo = 0f, hi = maxTextSize, sz = maxTextSize;
Rect b = new Rect();
while (lo <= hi)
// geometry
protected float mWidth;
protected float mHeight;
protected float mRadius;
protected float mBorderWidth;
protected float mBorderRadius;
public BaseSignView(Context ctx, @Nullable AttributeSet attrs)
{
sz = (lo + hi) / 2f;
mTextPaint.setTextSize(sz);
mTextPaint.getTextBounds(text, 0, text.length(), b);
float area = b.width() * b.width() + b.height() * b.height();
if (area <= maxTextSize2)
lo = sz + 1f;
else
hi = sz - 1f;
super(ctx, attrs);
mBackgroundPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mBorderPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mBorderPaint.setStyle(Paint.Style.STROKE);
mTextPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
mTextPaint.setTextAlign(Paint.Align.CENTER);
mTextPaint.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD));
}
mTextPaint.setTextSize(Math.max(1f, sz));
}
/** child must return the string to draw, or null if nothing */
@Nullable
protected abstract String getValueString();
protected void setColors(int backgroundColor,
int borderColor,
int alertColor,
int textColor,
int textAlertColor)
{
mBackgroundColor = backgroundColor;
mBorderColor = borderColor;
mAlertColor = alertColor;
mTextColor = textColor;
mTextAlertColor = textAlertColor;
/** child decides if this is in “alert” state */
protected abstract boolean isAlert();
mBackgroundPaint.setColor(mBackgroundColor);
mBorderPaint.setColor(mBorderColor);
mTextPaint.setColor(mTextColor);
}
@Override
protected void onSizeChanged(int width, int height, int oldWidth, int oldHeight) {
super.onSizeChanged(width, height, oldWidth, oldHeight);
final float paddingX = getPaddingLeft() + getPaddingRight();
final float paddingY = getPaddingTop() + getPaddingBottom();
mWidth = width - paddingX;
mHeight = height - paddingY;
mRadius = Math.min(mWidth, mHeight) / 2f;
mBorderWidth = mRadius * mBorderWidthRatio;
// subtract half the stroke PLUS the extra inset
final float gap = mRadius * mBorderInsetRatio;
mBorderRadius = mRadius - (mBorderWidth / 2f) - gap;
configureTextSize();
}
@Override
protected void onDraw(@NonNull Canvas canvas)
{
super.onDraw(canvas);
final String str = getValueString();
if (str == null) return;
final float cx = mWidth / 2f;
final float cy = mHeight / 2f;
// background & border
boolean alert = isAlert();
mBackgroundPaint.setColor(alert ? mAlertColor : mBackgroundColor);
canvas.drawCircle(cx, cy, mRadius, mBackgroundPaint);
if (!alert)
{
mBorderPaint.setStrokeWidth(mBorderWidth);
mBorderPaint.setColor(mBorderColor);
canvas.drawCircle(cx, cy, mBorderRadius, mBorderPaint);
}
// text
mTextPaint.setColor(alert ? mTextAlertColor : mTextColor);
drawValueString(canvas, cx, cy, str);
}
@Override
public boolean onTouchEvent(@NonNull MotionEvent e)
{
final float cx = mWidth / 2f, cy = mHeight / 2f;
final float dx = e.getX() - cx, dy = e.getY() - cy;
if ((dx * dx) + (dy * dy) <= (mRadius * mRadius))
{
performClick();
return true;
}
return false;
}
@Override
public boolean performClick()
{
super.performClick();
return false;
}
private void drawValueString(Canvas c, float cx, float cy, String str)
{
Rect b = new Rect();
mTextPaint.getTextBounds(str, 0, str.length(), b);
final float y = cy - b.exactCenterY();
c.drawText(str, cx, y, mTextPaint);
}
void configureTextSize()
{
String text = getValueString();
if (text == null) return;
final float textRadius = mBorderRadius - mBorderWidth;
final float maxTextSize = 2f * textRadius;
final float maxTextSize2 = maxTextSize * maxTextSize;
float lo = 0f, hi = maxTextSize, sz = maxTextSize;
Rect b = new Rect();
while (lo <= hi)
{
sz = (lo + hi) / 2f;
mTextPaint.setTextSize(sz);
mTextPaint.getTextBounds(text, 0, text.length(), b);
float area = b.width()*b.width() + b.height()*b.height();
if (area <= maxTextSize2)
lo = sz + 1f;
else
hi = sz - 1f;
}
mTextPaint.setTextSize(Math.max(1f, sz));
}
/** child must return the string to draw, or null if nothing */
@Nullable
protected abstract String getValueString();
/** child decides if this is in “alert” state */
protected abstract boolean isAlert();
}

View File

@@ -4,7 +4,9 @@ import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.util.Pair;
import androidx.annotation.Nullable;
import app.organicmaps.R;
import app.organicmaps.sdk.util.StringUtils;
@@ -20,18 +22,18 @@ public class CurrentSpeedView extends BaseSignView
setBorderWidthRatio(0.1f);
setBorderInsetRatio(0.05f);
try (TypedArray a = ctx.getTheme().obtainStyledAttributes(
attrs, R.styleable.CurrentSpeedView /* reuse same attrs or define new */, 0, 0))
try (TypedArray a = ctx.getTheme()
.obtainStyledAttributes(attrs, R.styleable.CurrentSpeedView /* reuse same attrs or define new */ , 0, 0))
{
int bg = a.getColor(R.styleable.CurrentSpeedView_currentSpeedBackgroundColor, DefaultValues.BACKGROUND_COLOR);
int bd = a.getColor(R.styleable.CurrentSpeedView_currentSpeedBorderColor, DefaultValues.BORDER_COLOR);
int tc = a.getColor(R.styleable.CurrentSpeedView_currentSpeedTextColor, DefaultValues.TEXT_COLOR);
int bg = a.getColor(R.styleable.CurrentSpeedView_currentSpeedBackgroundColor, DefaultValues.BACKGROUND_COLOR);
int bd = a.getColor(R.styleable.CurrentSpeedView_currentSpeedBorderColor, DefaultValues.BORDER_COLOR);
int tc = a.getColor(R.styleable.CurrentSpeedView_currentSpeedTextColor, DefaultValues.TEXT_COLOR);
setColors(bg, bd, 0, tc, 0);
if (isInEditMode())
{
mSpeedMps = a.getInt(R.styleable.CurrentSpeedView_currentSpeedEditModeCurrentSpeed, 50);
mSpeedStr = Integer.toString((int) mSpeedMps);
mSpeedMps = a.getInt(R.styleable.CurrentSpeedView_currentSpeedEditModeCurrentSpeed, 50);
mSpeedStr = Integer.toString((int)mSpeedMps);
}
}
}
@@ -45,7 +47,7 @@ public class CurrentSpeedView extends BaseSignView
}
else
{
Pair<String, String> su = StringUtils.nativeFormatSpeedAndUnits(mps);
Pair<String,String> su = StringUtils.nativeFormatSpeedAndUnits(mps);
mSpeedStr = su.first;
}
requestLayout();
@@ -68,8 +70,8 @@ public class CurrentSpeedView extends BaseSignView
private interface DefaultValues
{
int BACKGROUND_COLOR = 0xFFFFFFFF;
int BORDER_COLOR = 0xFF000000;
int TEXT_COLOR = 0xFF000000;
int BACKGROUND_COLOR = 0xFFFFFFFF;
int BORDER_COLOR = 0xFF000000;
int TEXT_COLOR = 0xFF000000;
}
}

View File

@@ -12,11 +12,13 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.core.content.ContextCompat;
import app.organicmaps.R;
import app.organicmaps.util.UiUtils;
import com.google.android.material.imageview.ShapeableImageView;
import com.google.android.material.textview.MaterialTextView;
import app.organicmaps.R;
import app.organicmaps.util.UiUtils;
public class PlaceholderView extends LinearLayout
{
@SuppressWarnings("NullableProblems")

View File

@@ -5,14 +5,16 @@ import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import androidx.annotation.Nullable;
import app.organicmaps.R;
public class SpeedLimitView extends BaseSignView
{
private int mSpeedLimit = -1;
private boolean mAlert = false;
private String mSpeedStr = "-1";
private int mSpeedLimit = -1;
private boolean mAlert = false;
private String mSpeedStr = "-1";
private final int unlimitedBorderColor;
private final int unlimitedStripeColor;
@@ -25,22 +27,15 @@ public class SpeedLimitView extends BaseSignView
try (TypedArray styleAttrs = ctx.getTheme().obtainStyledAttributes(attrs, R.styleable.SpeedLimitView, 0, 0))
{
final int bgColor =
styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitBackgroundColor, DefaultValues.BACKGROUND_COLOR);
final int borderColor =
styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitBorderColor, DefaultValues.BORDER_COLOR);
final int alertColor =
styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitAlertColor, DefaultValues.ALERT_COLOR);
final int textColor =
styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitTextColor, DefaultValues.TEXT_COLOR);
final int txtAlertColor =
styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitTextAlertColor, DefaultValues.TEXT_ALERT_COLOR);
final int bgColor = styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitBackgroundColor, DefaultValues.BACKGROUND_COLOR);
final int borderColor = styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitBorderColor, DefaultValues.BORDER_COLOR);
final int alertColor = styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitAlertColor, DefaultValues.ALERT_COLOR);
final int textColor = styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitTextColor, DefaultValues.TEXT_COLOR);
final int txtAlertColor = styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitTextAlertColor, DefaultValues.TEXT_ALERT_COLOR);
setColors(bgColor, borderColor, alertColor, textColor, txtAlertColor);
unlimitedBorderColor = styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitUnlimitedBorderColor,
DefaultValues.UNLIMITED_BORDER_COLOR);
unlimitedStripeColor = styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitUnlimitedStripeColor,
DefaultValues.UNLIMITED_STRIPE_COLOR);
unlimitedBorderColor = styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitUnlimitedBorderColor, DefaultValues.UNLIMITED_BORDER_COLOR);
unlimitedStripeColor = styleAttrs.getColor(R.styleable.SpeedLimitView_speedLimitUnlimitedStripeColor, DefaultValues.UNLIMITED_STRIPE_COLOR);
if (isInEditMode())
{
@@ -56,7 +51,7 @@ public class SpeedLimitView extends BaseSignView
if (mSpeedLimit != limit)
{
mSpeedLimit = limit;
mSpeedStr = Integer.toString(limit);
mSpeedStr = Integer.toString(limit);
requestLayout();
}
mAlert = alert;
@@ -80,7 +75,7 @@ public class SpeedLimitView extends BaseSignView
@Override
protected void onDraw(Canvas canvas)
{
final float cx = mWidth / 2f, cy = mHeight / 2f;
final float cx = mWidth/2f, cy = mHeight/2f;
if (mSpeedLimit == 0) // 0 means unlimited speed (maxspeed=none)
{
@@ -110,7 +105,7 @@ public class SpeedLimitView extends BaseSignView
stripe.setStrokeWidth(mBorderWidth * 0.4f);
final float radius = mRadius * 0.8f; // Shorten to 80% of full radius
final float diag = (float) (1 / Math.sqrt(2)); // 45 degrees
final float diag = (float) (1/Math.sqrt(2)); // 45 degrees
final float dx = -diag, dy = +diag;
final float px = -dy, py = +dx; // Perpendicular
final float step = radius * 0.15f; // Spacing
@@ -127,13 +122,14 @@ public class SpeedLimitView extends BaseSignView
}
}
private interface DefaultValues
{
int BACKGROUND_COLOR = 0xFFFFFFFF;
int BORDER_COLOR = 0xFFFF0000;
int ALERT_COLOR = 0xFFFF0000;
int TEXT_COLOR = 0xFF000000;
int TEXT_ALERT_COLOR = 0xFFFFFFFF;
int BACKGROUND_COLOR = 0xFFFFFFFF;
int BORDER_COLOR = 0xFFFF0000;
int ALERT_COLOR = 0xFFFF0000;
int TEXT_COLOR = 0xFF000000;
int TEXT_ALERT_COLOR = 0xFFFFFFFF;
int UNLIMITED_BORDER_COLOR = 0xFF000000;
int UNLIMITED_STRIPE_COLOR = 0xFF000000;
}

View File

@@ -72,7 +72,7 @@ public class MyPositionButton
case LocationState.FOLLOW_AND_ROTATE -> R.drawable.ic_follow_and_rotate;
default -> throw new IllegalArgumentException("Invalid button mode: " + mode);
};
image = ResourcesCompat.getDrawable(resources, drawableRes, context.getTheme());
image = ResourcesCompat.getDrawable(resources, drawableRes, context.getTheme());
mIcons.put(mode, image);
}

View File

@@ -1,9 +1,9 @@
package app.organicmaps.widget.placepage;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import app.organicmaps.sdk.util.StringUtils;
import com.github.mikephil.charting.charts.BarLineChartBase;
import androidx.annotation.Nullable;
import com.github.mikephil.charting.components.AxisBase;
import com.github.mikephil.charting.formatter.IAxisValueFormatter;

View File

@@ -105,8 +105,7 @@ public class EditBookmarkFragment extends BaseMwmDialogFragment implements View.
public EditBookmarkFragment() {}
@Override
public void onCreate(@Nullable Bundle savedInstanceState)
{
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(DialogFragment.STYLE_NORMAL, R.style.MwmTheme_FullScreenDialog);
}
@@ -185,9 +184,10 @@ public class EditBookmarkFragment extends BaseMwmDialogFragment implements View.
{
super.onStart();
Dialog dialog = getDialog();
if (dialog != null)
{
dialog.getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
if (dialog != null) {
dialog.getWindow().setLayout(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT);
}
// Focus name and show keyboard for "Unknown Place" bookmarks

View File

@@ -6,6 +6,9 @@ import android.widget.RelativeLayout;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.widget.NestedScrollView;
import com.google.android.material.textview.MaterialTextView;
import app.organicmaps.ChartController;
import app.organicmaps.R;
import app.organicmaps.sdk.Framework;
@@ -14,7 +17,6 @@ import app.organicmaps.sdk.bookmarks.data.Track;
import app.organicmaps.sdk.bookmarks.data.TrackStatistics;
import app.organicmaps.util.UiUtils;
import app.organicmaps.util.Utils;
import com.google.android.material.textview.MaterialTextView;
import java.util.Objects;
public class ElevationProfileViewRenderer implements PlacePageStateListener

View File

@@ -14,8 +14,7 @@ public class OpenStateTextFormatter
return String.format(Locale.ROOT, "%02d:%02d", hour, minute);
int h = hour % 12;
if (h == 0)
h = 12;
if (h == 0) h = 12;
String ampm = (hour < 12) ? "AM" : "PM";
return String.format(Locale.ROOT, "%d:%02d %s", h, minute, ampm);
}
@@ -30,13 +29,21 @@ public class OpenStateTextFormatter
return t.getDayOfWeek().getDisplayName(TextStyle.SHORT, locale);
}
static String buildAtLabel(boolean opens, boolean isToday, String dayShort, String time, String opensAtLocalized,
String closesAtLocalized, String opensDayAtLocalized, String closesDayAtLocalized)
static String buildAtLabel(
boolean opens,
boolean isToday,
String dayShort,
String time,
String opensAtLocalized,
String closesAtLocalized,
String opensDayAtLocalized,
String closesDayAtLocalized
)
{
if (isToday)
return opens ? String.format(Locale.ROOT, opensAtLocalized, time) // Opens at %s
: String.format(Locale.ROOT, closesAtLocalized, time); // Closes at %s
: String.format(Locale.ROOT, closesAtLocalized, time); // Closes at %s
return opens ? String.format(Locale.ROOT, opensDayAtLocalized, dayShort, time) // Opens %s at %s
: String.format(Locale.ROOT, closesDayAtLocalized, dayShort, time); // Closes %s at %s
: String.format(Locale.ROOT, closesDayAtLocalized, dayShort, time); // Closes %s at %s
}
}

View File

@@ -80,6 +80,6 @@ public class PlacePageButtonFactory
yield R.drawable.ic_more;
}
};
return new PlacePageButton(titleId, iconId, buttonType);
return new PlacePageButton(titleId, iconId, buttonType);
}
}

View File

@@ -31,6 +31,7 @@ import androidx.fragment.app.FragmentFactory;
import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import app.organicmaps.MwmActivity;
import app.organicmaps.MwmApplication;
import app.organicmaps.R;
@@ -427,7 +428,7 @@ public class PlacePageView extends Fragment
private void updateBookmarkView()
{
boolean enabled = mMapObject.isBookmark() || mMapObject.isTrack();
boolean enabled = mMapObject.isBookmark() || mMapObject.isTrack();
updateViewFragment(PlacePageBookmarkFragment.class, BOOKMARK_FRAGMENT_TAG, R.id.place_page_bookmark_fragment,
enabled);
}
@@ -714,10 +715,12 @@ public class PlacePageView extends Fragment
// map editing is disabled because the map is too old
mTvEditPlace.setEnabled(true);
mTvAddPlace.setEnabled(true);
mTvEditPlace.setOnClickListener(
(v) -> { Utils.showSnackbar(v.getContext(), v.getRootView(), R.string.place_page_too_old_to_edit); });
mTvAddPlace.setOnClickListener(
(v) -> { Utils.showSnackbar(v.getContext(), v.getRootView(), R.string.place_page_too_old_to_edit); });
mTvEditPlace.setOnClickListener((v) -> {
Utils.showSnackbar(v.getContext(), v.getRootView(), R.string.place_page_too_old_to_edit);
});
mTvAddPlace.setOnClickListener((v) -> {
Utils.showSnackbar(v.getContext(), v.getRootView(), R.string.place_page_too_old_to_edit);
});
CountryItem map = CountryItem.fill(countryId);
@@ -762,7 +765,9 @@ public class PlacePageView extends Fragment
mTvAddPlace.setTextColor(editButtonColor);
mTvEditPlace.setStrokeColor(ColorStateList.valueOf(editButtonColor));
mTvAddPlace.setStrokeColor(ColorStateList.valueOf(editButtonColor));
UiUtils.showIf(UiUtils.isVisible(mEditPlace) || UiUtils.isVisible(mAddPlace), mEditTopSpace);
UiUtils.showIf(
UiUtils.isVisible(mEditPlace) || UiUtils.isVisible(mAddPlace),
mEditTopSpace);
}
updateLinksView();
updateOpeningHoursView();
@@ -863,9 +868,10 @@ public class PlacePageView extends Fragment
}
// Get colours
final ForegroundColorSpan colorGreen = new ForegroundColorSpan(ContextCompat.getColor(context, R.color.base_green));
final ForegroundColorSpan colorGreen =
new ForegroundColorSpan(ContextCompat.getColor(context, R.color.base_green));
final ForegroundColorSpan colorYellow =
new ForegroundColorSpan(ContextCompat.getColor(context, R.color.base_yellow));
new ForegroundColorSpan(ContextCompat.getColor(context, R.color.base_yellow));
final ForegroundColorSpan colorRed = new ForegroundColorSpan(ContextCompat.getColor(context, R.color.base_red));
// Get next state info
@@ -891,12 +897,13 @@ public class PlacePageView extends Fragment
if (nextStateTime > 0 && nextStateTime < Long.MAX_VALUE / 2)
{
// NOTE: Timezone is currently device timezone. TODO: use feature-specific timezone.
nextChangeLocal = ZonedDateTime.ofInstant(Instant.ofEpochSecond(nextStateTime), ZoneId.systemDefault());
nextChangeLocal = ZonedDateTime.ofInstant(
Instant.ofEpochSecond(nextStateTime), ZoneId.systemDefault()
);
hasFiniteNextChange = true;
}
}
catch (Throwable ignored)
{}
catch (Throwable ignored) {}
}
if (!hasFiniteNextChange) // No valid next change
@@ -911,7 +918,7 @@ public class PlacePageView extends Fragment
}
String localizedTimeString = OpenStateTextFormatter.formatHoursMinutes(
nextChangeLocal.getHour(), nextChangeLocal.getMinute(), DateUtils.is24HourFormat(context));
nextChangeLocal.getHour(), nextChangeLocal.getMinute(), DateUtils.is24HourFormat(context));
final boolean shortHorizonClosing = isOpen && minsToNextState >= 0 && minsToNextState <= SHORT_HORIZON_CLOSE_MIN;
final boolean shortHorizonOpening = !isOpen && minsToNextState >= 0 && minsToNextState <= SHORT_HORIZON_OPEN_MIN;
@@ -919,12 +926,12 @@ public class PlacePageView extends Fragment
if (shortHorizonClosing || shortHorizonOpening) // POI Opens/Closes in 60 mins • at 18:00
{
final String minsToChangeStr = getResources().getQuantityString(
R.plurals.minutes_short, Math.max(minsToNextState, 1), Math.max(minsToNextState, 1));
R.plurals.minutes_short, Math.max(minsToNextState, 1), Math.max(minsToNextState, 1));
final String nextChangeFormatted = getString(isOpen ? R.string.closes_in : R.string.opens_in, minsToChangeStr);
openStateString.append(nextChangeFormatted, colorYellow, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
.append("") // Add spacer
.append(getString(R.string.at, localizedTimeString));
.append("") // Add spacer
.append(getString(R.string.at, localizedTimeString));
}
else
{
@@ -934,16 +941,18 @@ public class PlacePageView extends Fragment
final String closesDayAtStr = getString(R.string.closes_day_at); // "Closes %1$s at %2$s"
final boolean isToday =
OpenStateTextFormatter.isSameLocalDate(nextChangeLocal, ZonedDateTime.now(nextChangeLocal.getZone()));
OpenStateTextFormatter.isSameLocalDate(nextChangeLocal, ZonedDateTime.now(nextChangeLocal.getZone()));
// Full weekday name per design feedback.
final String dayName = nextChangeLocal.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.getDefault());
final String dayName =
nextChangeLocal.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.getDefault());
if (isOpen) // > 60 minutes OR negative (safety). Show “Open now • Closes at 18:00”
{
openStateString.append(getString(R.string.open_now), colorGreen, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
final String atLabel = OpenStateTextFormatter.buildAtLabel(
false, isToday, dayName, localizedTimeString, opensAtStr, closesAtStr, opensDayAtStr, closesDayAtStr);
final String atLabel =
OpenStateTextFormatter.buildAtLabel(false, isToday, dayName, localizedTimeString,
opensAtStr, closesAtStr, opensDayAtStr, closesDayAtStr);
if (!TextUtils.isEmpty(atLabel))
openStateString.append("").append(atLabel);
@@ -952,8 +961,9 @@ public class PlacePageView extends Fragment
{
openStateString.append(getString(R.string.closed_now), colorRed, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
final String atLabel = OpenStateTextFormatter.buildAtLabel(
true, isToday, dayName, localizedTimeString, opensAtStr, closesAtStr, opensDayAtStr, closesDayAtStr);
final String atLabel =
OpenStateTextFormatter.buildAtLabel(true, isToday, dayName, localizedTimeString,
opensAtStr, closesAtStr, opensDayAtStr, closesDayAtStr);
if (!TextUtils.isEmpty(atLabel))
openStateString.append("").append(atLabel);

View File

@@ -3,7 +3,9 @@ package app.organicmaps.widget.placepage;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import app.organicmaps.sdk.bookmarks.data.MapObject;
import java.util.List;
public class PlacePageViewModel extends ViewModel

View File

@@ -32,8 +32,7 @@ import app.organicmaps.widget.placepage.PlacePageViewModel;
import com.google.android.material.textview.MaterialTextView;
public class PlacePageBookmarkFragment extends Fragment implements View.OnClickListener, View.OnLongClickListener,
Observer<MapObject>,
EditBookmarkFragment.EditBookmarkListener
Observer<MapObject>, EditBookmarkFragment.EditBookmarkListener
{
private View mFrame;
private MaterialTextView mTvBookmarkNote;
@@ -91,15 +90,15 @@ public class PlacePageBookmarkFragment extends Fragment implements View.OnClickL
private void updateBookmarkDetails()
{
String notes = null;
if (currentBookmark != null)
{
notes = currentBookmark.getBookmarkDescription();
}
if (currentTrack != null)
{
notes = currentTrack.getTrackDescription();
}
String notes = null;
if (currentBookmark != null)
{
notes = currentBookmark.getBookmarkDescription();
}
if (currentTrack != null)
{
notes = currentTrack.getTrackDescription();
}
if (TextUtils.isEmpty(notes))
{
UiUtils.hide(mTvBookmarkNote);
@@ -133,13 +132,13 @@ public class PlacePageBookmarkFragment extends Fragment implements View.OnClickL
final FragmentActivity activity = requireActivity();
if (currentBookmark != null)
{
EditBookmarkFragment.editBookmark(currentBookmark.getCategoryId(), currentBookmark.getBookmarkId(), activity,
getChildFragmentManager(), PlacePageBookmarkFragment.this);
EditBookmarkFragment.editBookmark(currentBookmark.getCategoryId(), currentBookmark.getBookmarkId(), activity,
getChildFragmentManager(), PlacePageBookmarkFragment.this);
}
else if (currentTrack != null)
{
EditBookmarkFragment.editBookmark(currentTrack.getCategoryId(), currentTrack.getTrackId(), activity,
getChildFragmentManager(), PlacePageBookmarkFragment.this);
EditBookmarkFragment.editBookmark(currentTrack.getCategoryId(), currentTrack.getTrackId(), activity,
getChildFragmentManager(), PlacePageBookmarkFragment.this);
}
}

View File

@@ -13,13 +13,15 @@ import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.google.android.material.imageview.ShapeableImageView;
import com.google.android.material.textview.MaterialTextView;
import app.organicmaps.R;
import app.organicmaps.sdk.Framework;
import app.organicmaps.sdk.bookmarks.data.ChargeSocketDescriptor;
import app.organicmaps.sdk.bookmarks.data.MapObject;
import app.organicmaps.widget.placepage.PlacePageViewModel;
import com.google.android.material.imageview.ShapeableImageView;
import com.google.android.material.textview.MaterialTextView;
import java.text.DecimalFormat;
public class PlacePageChargeSocketsFragment extends Fragment implements Observer<MapObject>
@@ -94,8 +96,8 @@ public class PlacePageChargeSocketsFragment extends Fragment implements Observer
}
@SuppressLint("DiscouragedApi")
int resTypeId = getResources().getIdentifier("charge_socket_" + socket.visualType(), "string",
requireContext().getPackageName());
int resTypeId =
getResources().getIdentifier("charge_socket_" + socket.visualType(), "string", requireContext().getPackageName());
if (resTypeId != 0)
{
type.setText(resTypeId);
@@ -106,8 +108,7 @@ public class PlacePageChargeSocketsFragment extends Fragment implements Observer
DecimalFormat df = new DecimalFormat("#.##");
power.setText(getString(R.string.kw_label, df.format(socket.power())));
}
else if (socket.ignorePower())
{
else if (socket.ignorePower()) {
power.setVisibility(INVISIBLE);
}

View File

@@ -191,9 +191,8 @@ public class PlacePageLinksFragment extends Fragment implements Observer<MapObje
case FMD_PANORAMAX -> null; // Don't add raw ID to list, as it's useless for users.
default -> mMapObject.getMetadata(type);
};
// Add user names for social media if available
if (!TextUtils.isEmpty(title) && !title.equals(url) && !title.contains("/"))
items.add(title);
// Add user names for social media if available
if (!TextUtils.isEmpty(title) && !title.equals(url) && !title.contains("/")) items.add(title);
if (items.size() == 1)
PlacePageUtils.copyToClipboard(requireContext(), mFrame, items.get(0));

View File

@@ -41,5 +41,5 @@
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_gravity="bottom|start"
android:background="?colorSurfaceContainerLow"/>
android:background="?cardBackground"/>
</FrameLayout>

View File

@@ -8,6 +8,7 @@
android:paddingStart="@dimen/margin_base"
android:paddingEnd="@dimen/margin_base"
android:gravity="center_vertical"
android:background="?clickableBackground"
android:orientation="horizontal">
<com.google.android.material.imageview.ShapeableImageView

View File

@@ -40,5 +40,5 @@
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_gravity="bottom|center"
android:background="?colorSurfaceContainerLow"/>
android:background="?cardBackground"/>
</FrameLayout>

View File

@@ -4,7 +4,6 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="blocksDescendants"
android:background="?cardBackground"
android:orientation="vertical">
<include
android:id="@+id/pp__preview"

View File

@@ -15,7 +15,6 @@
<color name="bg_cards">#FF3C4044</color>
<color name="bg_panel">@color/bg_window</color>
<color name="bg_primary_dark">#FF588157</color>
<color name="bg_app">#10140F</color>
<color name="bg_menu">#CC2D3237</color>

View File

@@ -287,13 +287,13 @@
</style>
<style name="MwmWidget.BottomSheetDialog" parent="Widget.Material3.BottomSheet.Modal">
<item name="backgroundTint">?colorSurfaceContainerLow</item>
<item name="backgroundTint">?cardBackground</item>
<item name="elevationOverlayEnabled">false</item>
<item name="shapeAppearance">@style/ShapeAppearance.Material3.LargeComponent</item>
</style>
<style name="MwmWidget.BottomSheet" parent="MwmWidget.BottomSheetDialog">
<item name="android:background">?colorSurfaceContainerLow</item>
<item name="android:background">?cardBackground</item>
<item name="behavior_hideable">false</item>
</style>

View File

@@ -7,7 +7,6 @@
<locale android:name="az" />
<locale android:name="be" />
<locale android:name="bg" />
<locale android:name="bn" />
<locale android:name="ca" />
<locale android:name="cs" />
<locale android:name="da" />
@@ -22,16 +21,11 @@
<locale android:name="fi" />
<locale android:name="fr" />
<locale android:name="fr-CA" />
<locale android:name="gl" />
<locale android:name="gsw" />
<locale android:name="he" />
<locale android:name="iw" />
<locale android:name="hi" />
<locale android:name="hu" />
<locale android:name="id" />
<locale android:name="in" />
<locale android:name="is" />
<locale android:name="it" />
<locale android:name="iw" />
<locale android:name="ja" />
<locale android:name="kw" />
<locale android:name="ko" />
@@ -40,20 +34,16 @@
<locale android:name="mr" />
<locale android:name="mt" />
<locale android:name="nb" />
<locale android:name="nb-NO" />
<locale android:name="nl" />
<locale android:name="pl" />
<locale android:name="pt" />
<locale android:name="pt-BR" />
<locale android:name="ro" />
<locale android:name="ru" />
<locale android:name="sl" />
<locale android:name="sk" />
<locale android:name="sr-Cyrl" />
<locale android:name="sr-Latn" />
<locale android:name="sr" />
<locale android:name="sv" />
<locale android:name="sw" />
<locale android:name="ta" />
<locale android:name="th" />
<locale android:name="tr" />
<locale android:name="uk" />

View File

@@ -4,10 +4,11 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Locale;
import org.junit.Test;
public class OpenStateTextFormatterTest
{
@@ -35,10 +36,10 @@ public class OpenStateTextFormatterTest
@Test
public void buildAtLabel_today_open_close()
{
String open = OpenStateTextFormatter.buildAtLabel(true, true, "Sat", "09:00", OPENS_AT, CLOSES_AT, OPENS_DAY_AT,
CLOSES_DAY_AT);
String close = OpenStateTextFormatter.buildAtLabel(false, true, "Sat", "18:00", OPENS_AT, CLOSES_AT, OPENS_DAY_AT,
CLOSES_DAY_AT);
String open = OpenStateTextFormatter.buildAtLabel(true, true, "Sat", "09:00",
OPENS_AT, CLOSES_AT, OPENS_DAY_AT, CLOSES_DAY_AT);
String close = OpenStateTextFormatter.buildAtLabel(false, true, "Sat", "18:00",
OPENS_AT, CLOSES_AT, OPENS_DAY_AT, CLOSES_DAY_AT);
assertEquals("Opens at 09:00", open);
assertEquals("Closes at 18:00", close);
}
@@ -46,10 +47,10 @@ public class OpenStateTextFormatterTest
@Test
public void buildAtLabel_other_day()
{
String open = OpenStateTextFormatter.buildAtLabel(true, false, "Sat", "09:00", OPENS_AT, CLOSES_AT, OPENS_DAY_AT,
CLOSES_DAY_AT);
String close = OpenStateTextFormatter.buildAtLabel(false, false, "Tue", "18:00", OPENS_AT, CLOSES_AT, OPENS_DAY_AT,
CLOSES_DAY_AT);
String open = OpenStateTextFormatter.buildAtLabel(true, false, "Sat", "09:00",
OPENS_AT, CLOSES_AT, OPENS_DAY_AT, CLOSES_DAY_AT);
String close = OpenStateTextFormatter.buildAtLabel(false, false, "Tue", "18:00",
OPENS_AT, CLOSES_AT, OPENS_DAY_AT, CLOSES_DAY_AT);
assertEquals("Opens Sat at 09:00", open);
assertEquals("Closes Tue at 18:00", close);
}

View File

@@ -182,7 +182,8 @@ JNIEXPORT void JNICALL Java_app_organicmaps_sdk_DownloadResourcesLegacyActivity_
g_currentRequest.reset();
}
JNIEXPORT void JNICALL Java_app_organicmaps_sdk_DownloadResourcesLegacyActivity_nativeResetMetaConfig(JNIEnv *, jclass)
JNIEXPORT void JNICALL Java_app_organicmaps_sdk_DownloadResourcesLegacyActivity_nativeResetMetaConfig(JNIEnv *,
jclass)
{
auto & downloader = LegacyDownloader();
if (downloader)

View File

@@ -1490,6 +1490,12 @@ JNIEXPORT void JNICALL Java_app_organicmaps_sdk_Framework_nativeSet3dMode(JNIEnv
g_framework->Set3dMode(allow3d, allow3dBuildings);
}
JNIEXPORT void JNICALL Java_app_organicmaps_sdk_Framework_nativeSetCarScreenMode(JNIEnv * env, jclass, jboolean enabled)
{
if (g_framework)
frm()->SetCarScreenMode(static_cast<bool>(enabled));
}
JNIEXPORT void JNICALL Java_app_organicmaps_sdk_Framework_nativeGet3dMode(JNIEnv * env, jclass, jobject result)
{
bool enabled;
@@ -1505,16 +1511,20 @@ JNIEXPORT void JNICALL Java_app_organicmaps_sdk_Framework_nativeGet3dMode(JNIEnv
env->SetBooleanField(result, buildingsField, buildings);
}
JNIEXPORT void JNICALL Java_app_organicmaps_sdk_Framework_nativeSetCustomMapDownloadUrl(JNIEnv * env, jclass,
JNIEXPORT void JNICALL Java_app_organicmaps_sdk_Framework_nativeSetCustomMapDownloadUrl(JNIEnv * env, jclass,
jstring url)
{
std::string nativeUrl = jni::ToNativeString(env, url);
GetPlatform().SetCustomMapServerUrl(nativeUrl);
if (g_framework)
{
frm()->GetStorage().ResetMapDownloadMetaConfig();
}
else
{
LOG(LINFO, ("nativeSetCustomMapDownloadUrl: framework not created yet, skipping ResetMapDownloadMetaConfig"));
}
}
JNIEXPORT void JNICALL Java_app_organicmaps_sdk_Framework_nativeSetAutoZoomEnabled(JNIEnv * env, jclass,

View File

@@ -18,6 +18,7 @@
#include <functional>
#include <memory>
#include <unordered_map>
#include <vector>
namespace
@@ -52,7 +53,7 @@ struct TBatchedData
jobject g_countryChangedListener = nullptr;
DECLARE_THREAD_CHECKER(g_batchingThreadChecker);
ankerl::unordered_dense::map<jobject, std::vector<TBatchedData>> g_batchedCallbackData;
std::unordered_map<jobject, std::vector<TBatchedData>> g_batchedCallbackData;
bool g_isBatched;
storage::Storage & GetStorage()
@@ -588,9 +589,8 @@ JNIEXPORT jstring JNICALL Java_app_organicmaps_sdk_downloader_MapManager_nativeG
}
// static native boolean nativeIsMapTooOldToEdit(String countryId);
JNIEXPORT jboolean JNICALL Java_app_organicmaps_sdk_downloader_MapManager_nativeIsMapTooOldToEdit(JNIEnv * env,
jclass clazz,
jstring country_id)
JNIEXPORT jboolean JNICALL Java_app_organicmaps_sdk_downloader_MapManager_nativeIsMapTooOldToEdit(JNIEnv *env, jclass clazz,
jstring country_id)
{
return GetStorage().IsMapTooOldToEdit(jni::ToNativeString(env, country_id));
}

View File

@@ -580,8 +580,7 @@ JNIEXPORT jint JNICALL Java_app_organicmaps_sdk_editor_Editor_nativeGetMapObject
return static_cast<jint>(osm::Editor::Instance().GetFeatureStatus(g_editableMapObject.GetID()));
}
JNIEXPORT jboolean JNICALL Java_app_organicmaps_sdk_editor_Editor_nativeAreSomeFeatureChangesUploaded(JNIEnv * env,
jclass clazz)
JNIEXPORT jboolean JNICALL Java_app_organicmaps_sdk_editor_Editor_nativeAreSomeFeatureChangesUploaded(JNIEnv * env, jclass clazz)
{
return osm::Editor::Instance().AreSomeFeatureChangesUploaded(g_editableMapObject.GetID().m_mwmId,
g_editableMapObject.GetID().m_index);

View File

@@ -320,7 +320,7 @@ JNIEXPORT jobject JNICALL Java_app_organicmaps_sdk_editor_OpeningHours_nativeCur
jclass ohStateClass = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/editor/OhState");
jclass ruleStateClass = jni::GetGlobalClassRef(env, "app/organicmaps/sdk/editor/OhState$State");
static ankerl::unordered_dense::map<RuleState, char const *> const ruleState = {
static std::unordered_map<RuleState, char const *> const ruleState = {
{RuleState::Open, "Open"}, {RuleState::Closed, "Closed"}, {RuleState::Unknown, "Unknown"}};
jfieldID stateField =

View File

@@ -35,8 +35,7 @@ SOFTWARE.
#include <iterator>
#include <string>
#include "3party/ankerl/unordered_dense.h"
#include <unordered_map>
DECLARE_EXCEPTION(JniException, RootException);
@@ -152,7 +151,7 @@ public:
}
private:
ankerl::unordered_dense::map<std::string, jfieldID> m_fieldIds;
std::unordered_map<std::string, jfieldID> m_fieldIds;
};
} // namespace

View File

@@ -2,10 +2,12 @@ package app.organicmaps.sdk;
import android.content.Context;
import android.graphics.Bitmap;
import androidx.annotation.Keep;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.Size;
import app.organicmaps.sdk.api.ParsedRoutingData;
import app.organicmaps.sdk.api.ParsedSearchRequest;
import app.organicmaps.sdk.api.RequestType;
@@ -24,6 +26,7 @@ import app.organicmaps.sdk.routing.RoutingRecommendationListener;
import app.organicmaps.sdk.routing.TransitRouteInfo;
import app.organicmaps.sdk.settings.SpeedCameraMode;
import app.organicmaps.sdk.util.Constants;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
@@ -277,6 +280,8 @@ public class Framework
public static native void nativeSet3dMode(boolean allow3d, boolean allow3dBuildings);
public static native void nativeSetCarScreenMode(boolean enabled);
public static native boolean nativeGetAutoZoomEnabled();
public static native void nativeSetAutoZoomEnabled(boolean enabled);

View File

@@ -2,11 +2,13 @@ package app.organicmaps.sdk;
import android.content.Context;
import android.content.SharedPreferences;
import androidx.annotation.NonNull;
import androidx.lifecycle.DefaultLifecycleObserver;
import androidx.lifecycle.LifecycleOwner;
import androidx.lifecycle.ProcessLifecycleOwner;
import androidx.preference.PreferenceManager;
import app.organicmaps.sdk.bookmarks.data.BookmarkManager;
import app.organicmaps.sdk.bookmarks.data.Icon;
import app.organicmaps.sdk.downloader.Android7RootCertificateWorkaround;
@@ -26,6 +28,7 @@ import app.organicmaps.sdk.util.SharedPropertiesUtils;
import app.organicmaps.sdk.util.StorageUtils;
import app.organicmaps.sdk.util.log.Logger;
import app.organicmaps.sdk.util.log.LogsManager;
import java.io.IOException;
public final class OrganicMaps implements DefaultLifecycleObserver

View File

@@ -4,30 +4,28 @@ package app.organicmaps.sdk.bookmarks.data;
* represents the details of the socket available on a particular charging station
*
*/
public record ChargeSocketDescriptor(String type, int count, double power)
{
/**
* Some charge sockets have the same visuals as other sockets, even though they are different and are tagged
* differently in OSM. This method returns the 'visual' type that should be used for the socket.
*
* @return the 'equivalent' visual style that should be used for this socket
*/
public String visualType()
{
if (type.equals("typee"))
{
return "schuko";
}
return type;
}
public record ChargeSocketDescriptor(String type, int count, double power) {
/**
* Some charge sockets have the same visuals as other sockets, even though they are different and are tagged
* differently in OSM. This method returns the 'visual' type that should be used for the socket.
*
* @return the 'equivalent' visual style that should be used for this socket
*/
public String visualType() {
if (type.equals("typee")) {
return "schuko";
}
return type;
}
/**
* For some sockets (eg, domestic sockets), the power is usually not provided, as it is 'implicit'
*
* @return true if this socket type does not require displaying the power
*/
public Boolean ignorePower() {
return type.equals("typee") || type.equals("schuko");
}
/**
* For some sockets (eg, domestic sockets), the power is usually not provided, as it is 'implicit'
*
* @return true if this socket type does not require displaying the power
*/
public Boolean ignorePower()
{
return type.equals("typee") || type.equals("schuko");
}
}

View File

@@ -3,6 +3,7 @@ package app.organicmaps.sdk.editor;
import androidx.annotation.IntRange;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import app.organicmaps.sdk.editor.data.Timespan;
import app.organicmaps.sdk.editor.data.Timetable;

View File

@@ -9,6 +9,7 @@ import android.content.Context;
import android.location.Location;
import android.location.LocationManager;
import android.os.Handler;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresPermission;
@@ -16,6 +17,9 @@ import androidx.annotation.UiThread;
import androidx.core.content.ContextCompat;
import androidx.core.location.GnssStatusCompat;
import androidx.core.location.LocationManagerCompat;
import org.chromium.base.ObserverList;
import app.organicmaps.sdk.Framework;
import app.organicmaps.sdk.Map;
import app.organicmaps.sdk.bookmarks.data.FeatureId;
@@ -25,7 +29,8 @@ import app.organicmaps.sdk.util.Config;
import app.organicmaps.sdk.util.LocationUtils;
import app.organicmaps.sdk.util.NetworkPolicy;
import app.organicmaps.sdk.util.log.Logger;
import org.chromium.base.ObserverList;
import java.util.HashMap;
public class LocationHelper implements BaseLocationProvider.Listener
{
@@ -56,6 +61,12 @@ public class LocationHelper implements BaseLocationProvider.Listener
private Handler mHandler;
private Runnable mLocationTimeoutRunnable = this::notifyLocationUpdateTimeout;
private static final double INTERVAL_PROVIDER_DECISION = 3.0; // seconds
private final HashMap<String, Integer> mProviderLocationCounts = new HashMap<>();
private final HashMap<String, Float> mProviderAccuracyMeans = new HashMap<>();
private double mTimeAtLastProviderChange = Double.NaN;
private String mCurrentProvider = null;
@NonNull
private final GnssStatusCompat.Callback mGnssStatusCallback = new GnssStatusCompat.Callback() {
@Override
@@ -187,7 +198,6 @@ public class LocationHelper implements BaseLocationProvider.Listener
@Override
public void onLocationChanged(@NonNull Location location)
{
Logger.d(TAG, "provider = " + mLocationProvider.getClass().getSimpleName() + " location = " + location);
if (!isActive())
{
@@ -201,20 +211,80 @@ public class LocationHelper implements BaseLocationProvider.Listener
return;
}
if (mSavedLocation != null)
updateProviderDecision(location);
if (mCurrentProvider != null && !mCurrentProvider.equals(location.getProvider()))
{
if (!LocationUtils.isLocationBetterThanLast(location, mSavedLocation))
{
Logger.d(TAG, "The new " + location + " is worse than the last " + mSavedLocation);
return;
}
Logger.d(TAG, "REJECTED: provider = " + mLocationProvider.getClass().getSimpleName() + " location = " + location);
return;
}
Logger.d(TAG, "provider = " + mLocationProvider.getClass().getSimpleName() + " location = " + location);
mSavedLocation = location;
mMyPosition = null;
notifyLocationUpdated();
}
private void updateProviderDecision(Location location)
{
if (Double.isNaN(mTimeAtLastProviderChange))
mTimeAtLastProviderChange = location.getElapsedRealtimeNanos() * 1.0E-9;
String provider = location.getProvider();
Integer cnt = mProviderLocationCounts.getOrDefault(provider, 0);
Float avg = mProviderAccuracyMeans.getOrDefault(provider, 0.0f);
if (cnt == null || avg == null)
{
mProviderLocationCounts.clear();
mProviderAccuracyMeans.clear();
return;
}
int count = cnt;
float average = avg;
float accuracy = location.getAccuracy();
int newCount = count + 1;
float newAverage = (count * average + accuracy) / newCount;
mProviderLocationCounts.put(provider, newCount);
mProviderAccuracyMeans.put(provider, newAverage);
double currentTime = location.getElapsedRealtimeNanos();
double timeDiff = (currentTime - mTimeAtLastProviderChange) * 1.0E-9;
if (timeDiff > INTERVAL_PROVIDER_DECISION)
{
mCurrentProvider = getMinAccuracyProvider();
Logger.d(TAG, "Selected: " + mCurrentProvider + ", with acc. " + mProviderAccuracyMeans.get(mCurrentProvider));
mTimeAtLastProviderChange = currentTime;
mProviderLocationCounts.clear();
mProviderAccuracyMeans.clear();
}
}
private String getMinAccuracyProvider()
{
String minAccuracyProvider = null;
float minAccuracy = Float.MAX_VALUE;
for (String p : mProviderAccuracyMeans.keySet())
{
Float pAcc = mProviderAccuracyMeans.get(p);
if (pAcc == null)
continue;
float pAccuracy = pAcc;
if (pAccuracy < minAccuracy)
{
minAccuracy = pAccuracy;
minAccuracyProvider = p;
}
}
return minAccuracyProvider;
}
// Used by GoogleFusedLocationProvider.
@SuppressWarnings("unused")
@Override

View File

@@ -2,14 +2,16 @@ package app.organicmaps.sdk.util;
import android.content.Context;
import android.content.res.Resources;
import androidx.annotation.Keep;
import androidx.annotation.NonNull;
import app.organicmaps.sdk.R;
import java.text.DateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;
import app.organicmaps.sdk.R;
public final class DateUtils
{
private DateUtils() {}
@@ -42,7 +44,7 @@ public final class DateUtils
if (days == 1)
return resources.getString(R.string.yesterday).toLowerCase();
if (days < 7)
return resources.getString(R.string.days_ago, Integer.toString(days));
return resources.getString(R.string.days_ago, Integer.toString(days));
if (days < 30)
return resources.getString(days < 14 ? R.string.week_ago : R.string.weeks_ago, Integer.toString(days / 7));
if (days < 365)

View File

@@ -81,20 +81,6 @@ public class LocationUtils
return location.getAccuracy() > 0.0f;
}
public static boolean isLocationBetterThanLast(@NonNull Location newLocation, @NonNull Location lastLocation)
{
if (newLocation.getElapsedRealtimeNanos() < lastLocation.getElapsedRealtimeNanos())
return false;
// As described in isAccuracySatisfied, GPS may have zero accuracy "for some reasons".
if (isFromGpsProvider(lastLocation) && lastLocation.getAccuracy() == 0.0f)
return true;
double speed = Math.max(DEFAULT_SPEED_MPS, (newLocation.getSpeed() + lastLocation.getSpeed()) / 2.0);
double lastAccuracy = lastLocation.getAccuracy() + speed * LocationUtils.getTimeDiff(lastLocation, newLocation);
return newLocation.getAccuracy() < lastAccuracy;
}
public static boolean areLocationServicesTurnedOn(@NonNull Context context)
{
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P)

View File

@@ -43,10 +43,9 @@
<string name="type.leisure.adult_gaming_centre">Spielhalle für Erwachsene</string>
<string name="type.leisure.amusement_arcade">Spielhalle für Unterhaltungsspiele</string>
<string name="type.amenity.charging_station">Ladestation</string>
<string name="type.amenity.charging_station.bicycle">Fahrräder</string>
<string name="type.amenity.charging_station.motorcycle">Motorräder</string>
<string name="type.amenity.charging_station.motorcar">Autos</string>
<string name="type.amenity.charging_station.small">Begrenzte Kapazität</string>
<string name="type.amenity.charging_station.bicycle">Fahrrad-Ladestation</string>
<string name="type.amenity.charging_station.motorcar">Kfz-Ladestation</string>
<string name="type.amenity.charging_station.motorcar.small">Kfz-Ladestation</string>
<string name="type.amenity.childcare">Kindertagesstätte</string>
<string name="type.amenity.cinema">Kino</string>
<string name="type.leisure.bowling_alley">Bowlingbahn</string>

View File

@@ -53,10 +53,9 @@
<string name="type.leisure.adult_gaming_centre">Adult Gaming Centre</string>
<string name="type.leisure.amusement_arcade">Arcade</string>
<string name="type.amenity.charging_station">Charging Station</string>
<string name="type.amenity.charging_station.bicycle">Bicycles</string>
<string name="type.amenity.charging_station.motorcycle">Motorcycles</string>
<string name="type.amenity.charging_station.motorcar">Cars</string>
<string name="type.amenity.charging_station.small">Limited Capacity</string>
<string name="type.amenity.charging_station.bicycle">Bicycle Charging Station</string>
<string name="type.amenity.charging_station.motorcar">Car Charging Station</string>
<string name="type.amenity.charging_station.motorcar.small">Car Charging Point</string>
<string name="type.amenity.childcare">Nursery</string>
<string name="type.amenity.cinema">Cinema</string>
<string name="type.amenity.studio">Media Studio</string>
@@ -932,11 +931,11 @@
<string name="type.public_transport.platform">Platform</string>
<string name="type.railway">Railway</string>
<string name="type.railway.abandoned">Abandoned Railway</string>
<string name="type.railway.abandoned.bridge">Abandoned Railway Bridge</string>
<string name="type.railway.abandoned.tunnel">Abandoned Railway Tunnel</string>
<string name="type.railway.construction">Railway Construction</string>
<string name="type.railway.crossing">Railway Crossing</string>
<string name="type.railway.disused">Disused Railway</string>
<string name="type.railway.disused.bridge">Disused Railway Bridge</string>
<string name="type.railway.disused.tunnel">Disused Railway Tunnel</string>
<string name="type.railway.funicular">Funicular</string>
<string name="type.railway.funicular.bridge">Funicular Bridge</string>
<string name="type.railway.funicular.tunnel">Funicular Tunnel</string>

View File

@@ -331,9 +331,7 @@
"amenity-car_wash": "4Autowaschanlage|Autowäsche",
"amenity-veterinary": "4Tierarzt|4Tierärztin|4Tierarztpraxis|4Tierpraxis|4Tierdoktor|5Hundearzt|5Katzenarzt|4Haustiere|U+2695",
"@charging_station": "4Ladestation|aufladen",
"amenity-charging_station-bicycle|@charging_station": "5Fahrradladestation|Fahrrad aufladen|E-Bike aufladen|Fahrrad laden|E-Bike laden",
"amenity-charging_station-motorcycle|@charging_station": "6Motorradladestation|Motorrad aufladen|Motorrad laden",
"amenity-charging_station-motorcar|@charging_station": "4Autoladestation|5Autoladegerät|Auto aufladen|Auto laden",
"amenity-charging_station-bicycle|@charging_station": "Fahrrad aufladen",
"amenity-childcare": "Kindertagesstätte|Kindergarten|Kinderbetreuung",
"amenity-bicycle_parking": "6Fahrradständer",
"amenity-waste_basket": "6Abfalleimer|4Mülleimer|4Restmüll|3Müll|4Müllkorb|U+1F6AE|U+1F5D1",
@@ -518,6 +516,7 @@
"attraction-amusement_ride|attraction-carousel|attraction-roller_coaster|attraction-maze|attraction-historic|attraction-big_wheel|attraction-bumper_car|@category_children": "4Attraktion|4Labyrinth",
"building-guardhouse": "4Wache",
"shop-lighting|@shop": "Leuchtmittel|Lampen|Leuchte",
"amenity-charging_station-motorcar|amenity-charging_station-motorcar-small|@charging_station": "4Autoladestation|5Autoladegerät|4Ladestation|4Ladegerät|U+1F50C|U+1FAAB|U+1F50B",
"amenity-mobile_money_agent": "6Mobile Money Vertretung|6Mobile Money|6Mobiles Geld",
"man_made-telescope|man_made-telescope-optical|man_made-telescope-radio|man_made-telescope-gamma": "4Teleskop",
"amenity-sailing_school": "5Segelschule|5Bootsschule|Bootsfahrschule",

View File

@@ -353,11 +353,10 @@
"man_made-observatory": "4Observatory",
"amenity-veterinary": "4Veterinary Doctor|3Veterinary|vet|veterinarian",
"amenity-animal_shelter": "6Animal Shelter",
"@charging_station": "4Charging Station|charging|charger",
"@charging_station": "4Charging Station|charging",
"amenity-charging_station|@charging_station": "",
"amenity-charging_station-bicycle|@charging_station": "4Bicycle Charging Station|Bicycle Charging|Bike Charging",
"amenity-charging_station-motorcycle|@charging_station": "5Motorcycle Charging Station|Motorcycle Charging|Motorbike Charging",
"amenity-charging_station-motorcar|@charging_station": "3Car Charging Station|Motorcar Charging|Car Charging",
"amenity-charging_station-bicycle|@charging_station": "4Bicycle Charging|4Bike Charging",
"amenity-charging_station-motorcar|amenity-charging_station-motorcar-small|@charging_station": "4Motorcar Charging|3Car Charging|Charger",
"amenity-childcare": "Nursery|4Child Care|childcare",
"amenity-bicycle_parking": "4Bicycle Parking|4Bike Parking",
"amenity-waste_basket": "4Trash Bin|4litter bin|5waste basket|bin",

View File

@@ -518,7 +518,7 @@
"amenity-toilets|toilets-yes|@category_toilet": "wc",
"leisure-sports_centre-sport-swimming": "4Centro de natación",
"amenity-police|@category_police": "Estación de policía|policía",
"amenity-charging_station-motorcar|@charging_station": "Cargador de autos|cargador de coches|cargador de carros|4Estación de carga|3Estación de carga|Cargador",
"amenity-charging_station-motorcar|amenity-charging_station-motorcar-small|@charging_station": "Cargador de autos|cargador de coches|cargador de carros|4Estación de carga|3Estación de carga|Cargador",
"amenity-sailing_school": "Escuela de vela|Escuela de navegación",
"amenity-flight_school": "Escuela de aviación|Escuela de aeronáutica|Escuela de pilotos|aeronáutica|vuelo|aviación",
"amenity-prep_school": "Propedéutico|Tutoría",

View File

@@ -486,7 +486,7 @@
"amenity-love_hotel": "Hôtel de passe|Hôtel de sexe|Hôtel pour adultes",
"healthcare-sample_collection": "Prélèvement d'échantillons",
"recycling-cardboard|@category_recycling": "5Recyclage de carton|Déchets de carton|Carton",
"amenity-charging_station-motorcar|@charging_station": "Chargeur automobile|Chargeur de voiture|Chargeur",
"amenity-charging_station-motorcar|amenity-charging_station-motorcar-small|@charging_station": "Chargeur automobile|Chargeur de voiture|Chargeur",
"shop-lighting|@shop": "4Lumières|Luminaires|4Lampes",
"office-security": "Bureau de sécurité",
"building-guardhouse": "Garde|poste de sécurité|poste de gardiennage",

View File

@@ -320,7 +320,7 @@
"amenity-veterinary": "4Veterinārārsts|vetārsts|vetklīnika|veterinārā klīnika",
"@charging_station": "4Uzlādes stacija|uzlāde",
"amenity-charging_station-bicycle|@charging_station": "4Velosipēdu uzlāde|Riteņu uzlāde|Ričuku uzlāde|Divriteņu uzlāde",
"amenity-charging_station-motorcar|@charging_station": "Automobiļu uzlāde|mašīnu uzlāde",
"amenity-charging_station-motorcar|amenity-charging_station-motorcar-small|@charging_station": "Automobiļu uzlāde|mašīnu uzlāde",
"amenity-childcare": "Bērnistaba",
"amenity-bicycle_parking": "4Velonovietne",
"amenity-waste_basket": "Atkritumu tvertne|4miskaste",

View File

@@ -330,7 +330,7 @@
"amenity-animal_shelter": "Приют для животных",
"@charging_station": "4Зарядная станция|зарядка|электрозарядка|зарядить",
"amenity-charging_station-bicycle|@charging_station": "4Велозарядка|Зарядка для велосипедов",
"amenity-charging_station-motorcar|@charging_station": "4Автозарядка",
"amenity-charging_station-motorcar|amenity-charging_station-motorcar-small|@charging_station": "4Автозарядка",
"amenity-childcare": "Детская комната|3ясли",
"amenity-bicycle_parking": "4Велопарковка|велостоянка",
"amenity-waste_basket": "3Урна|4Мусорная корзина",

View File

@@ -331,7 +331,7 @@
"amenity-veterinary": "4Veteriner",
"@charging_station": "Şarj İstasyonu|şarj etme",
"amenity-charging_station-bicycle|@charging_station": "4Bisiklet Şarjı",
"amenity-charging_station-motorcar|@charging_station": "4Otomobil Şarj Cihazı|4Araba Şarj Cihazı|4Araç Şarj Cihazı|3Trugo|4TOGG Şarj",
"amenity-charging_station-motorcar|amenity-charging_station-motorcar-small|@charging_station": "4Otomobil Şarj Cihazı|4Araba Şarj Cihazı|4Araç Şarj Cihazı|3Trugo|4TOGG Şarj",
"amenity-childcare": "Çocuk Yuvası|Kreş",
"amenity-bicycle_parking": "4Bisiklet park etme|bisiklet park",
"amenity-waste_basket": "Çöp Kutusu",

View File

@@ -148,11 +148,11 @@
<ul class="license-list">
<li><a href="https://agg.sourceforge.net/antigrain.com/index.html">Anti-Grain Geometry</a><br>&copy; 2002&ndash;2005 Maxim Shemanarev; <a href="#agg-license" class="license">License</a></li>
<li><a href="https://www.boost.org">Boost</a>; <a href="#boost-license" class="license">Boost License</a></li>
<li><a href="https://www.boost.org/">Boost</a>; <a href="#boost-license" class="license">Boost License</a></li>
<li><a href="https://www.daemonology.net/bsdiff">bsdiff</a>; <a href="#bsd3-license" class="license">BSD License</a></li>
<li><a href="https://www.daemonology.net/bsdiff/">bsdiff</a>; <a href="#bsd3-license" class="license">BSD License</a></li>
<li><a href="https://chromium.googlesource.com/chromium/src/courgette">Chromium's Courgette</a>;
<li><a href="https://chromium.googlesource.com/chromium/src/courgette/">Chromium's Courgette</a>;
<a href="#bsd3-license" class="license">BSD License</a></li>
<li><a href="https://github.com/dpogue/CMake-MetalShaderSupport">CMake Metal support files</a><br>
@@ -170,22 +170,22 @@
<li><a href="https://www.freetype.org">FreeType</a><br>
&copy; 2013 The FreeType Project; <a href="#freetype-license" class="license">FTL</a></li>
<li><a href="https://stephenberry.github.io/glaze">glaze</a><br>
<li><a href="https://stephenberry.github.io/glaze/">glaze</a><br>
&copy; 2019 - present, Stephen Berry; <a href="#mit-license" class="license">MIT License</a></li>
<li><a href="https://www.glfw.org">GLFW</a><br>
<li><a href="https://www.glfw.org/">GLFW</a><br>
&copy; 2002-2006 Marcus Geelnard;2006-2019 Camilla Löwy; <a href="#zlib-license" class="license">Zlib License</a></li>
<li><a href="https://www.g-truc.net/project-0016.html">GLM</a><br>
&copy; 2005&ndash;2014 G-Truc Creation; <a href="#mit-license" class="license">MIT License</a></li>
<li><a href="https://site.icu-project.org">ICU</a><br>
<li><a href="https://site.icu-project.org/">ICU</a><br>
&copy; 1995&ndash;2016 IBM Corporation and others; <a href="#icu-license" class="license">ICU License</a></li>
<li><a href="https://www.digip.org/jansson">Jansson</a><br>
<li><a href="https://www.digip.org/jansson/">Jansson</a><br>
&copy; 2009-2013 Petri Lehtinen; <a href="#mit-license" class="license">MIT License</a></li>
<li><a href="https://libkdtree.alioth.debian.org">libkdtree++</a><br>
<li><a href="https://libkdtree.alioth.debian.org/">libkdtree++</a><br>
&copy; 2004-2007 Martin F. Krafft, parts are &copy; 2004-2008 Paul Harris and &copy; 2007-2008 Sylvain Bougerel; <a href="#artistic-license" class="license">Artistic License</a></li>
<li><a href="https://github.com/mapsme/omim">MAPS.ME</a><br>
@@ -215,7 +215,7 @@
<li><a href="https://github.com/googlesamples/android-vulkan-tutorials">Vulkan Wrapper</a><br>
&copy; 2016 Google Inc.; <a href="#apache2-license" class="license">Apache License</a></li>
<li class="android"><a href="https://cocosw.com/BottomSheet">BottomSheet</a><br>
<li class="android"><a href="https://cocosw.com/BottomSheet/">BottomSheet</a><br>
&copy; 2011, 2015 Kai Liao; <a href="#apache2-license" class="license">Apache License</a></li>
<li><a href="https://github.com/google/open-location-code">Open Location Code</a><br>
@@ -226,9 +226,6 @@
<li><a href="https://github.com/skarupke/flat_hash_map">Skarupke Hash Tables</a><br>
&copy; Malte Skarupke 2017; <a href="#boost-license" class="license">Boost License</a></li>
<li><a href="https://github.com/martinus/unordered_dense"></a><br>
&copy; 2022 Martin Leitner-Ankerl; <a href="#mit-license" class="license">MIT License</a></li>
</ul>
<p lang="en">Beyond OpenStreetMap, we also use a few other open data sources to improve our map data:</p>

View File

@@ -302,7 +302,7 @@ railway|crossing;197;
boundary|national_park;198;
deprecated:natural|wood|deciduous:01.2020;[natural=wood][wood=deciduous],[natural=wood][leaf_type=deciduous],[natural=wood][leaf_cycle=deciduous];x;name;int_name;199;landuse|forest|deciduous
waterway|dam;200;
amenity|charging_station|small;[amenity=charging_station][motorcar?][!capacity],[amenity=charging_station][motorcar?][capacity=1],[amenity=charging_station][motorcar?][capacity=2],[amenity=charging_station][!capacity],[amenity=charging_station][capacity=1],[amenity=charging_station][capacity=2],;;name;int_name;201;
amenity|charging_station|motorcar|small;[amenity=charging_station][motorcar?][!capacity],[amenity=charging_station][motorcar?][capacity=1],[amenity=charging_station][motorcar?][capacity=2];;name;int_name;201;
leisure|golf_course;202;
highway|service|bridge;[highway=service][bridge?];;name;int_name;203;
# ~250K usages.
@@ -403,14 +403,15 @@ place|farm;294;
deprecated:boundary|administrative|11:04.2024;[boundary=administrative][admin_level=11];x;name;int_name;295;
waterway|weir;296;
highway|secondary|tunnel;[highway=secondary][tunnel?];;name;int_name;297;
railway|disused|bridge;[railway=disused][bridge?],[railway=abandoned][bridge?];;name;int_name;298;
# TODO: its a mismapping likely, if there is a bridge structure still, then it should be railway=disused.
railway|abandoned|bridge;[railway=abandoned][bridge?];;name;int_name;298;
man_made|lighthouse;299;
amenity|charging_station|motorcycle;[amenity=charging_station][motorcycle?];;name;int_name;300;
deprecated:highway|path|demanding_mountain_hiking:04.2024;[highway=path][sac_scale=demanding_mountain_hiking];x;name;int_name;300;highway|path|difficult
man_made|storage_tank;301;
man_made|silo;302;
power|generator;303;
highway|pedestrian|bridge;[highway=pedestrian][bridge?];;name;int_name;304;
amenity|charging_station|motorcar;[amenity=charging_station][motorcar?][capacity?],[amenity=charging_station][motorcar?];;name;int_name;305;
amenity|charging_station|motorcar;[amenity=charging_station][motorcar?][capacity?];;name;int_name;305;
natural|saddle;306;
mountain_pass;[mountain_pass];;name;int_name;307;
highway|raceway;308;
@@ -419,7 +420,7 @@ highway|primary_link|bridge;[highway=primary_link][bridge?];;name;int_name;310;
man_made|tower|communication;[man_made=tower][tower:type=communication];;name;int_name;311;
sport|equestrian;312;
tourism|information|office;[tourism=information][information=office];;name;int_name;313;
amenity|charging_station|carless;[amenity=charging_station][motorcar=not],[amenity=charging_station][motorcar=no];;name;int_name;314;
deprecated:highway|footway|hiking:04.2024;[highway=footway][sac_scale=hiking];x;name;int_name;314;highway|path
aeroway|gate;315;
# TODO: railway=preserved is deprecated in OSM, recommended mapping is railway:preserved=yes + railway=*
railway|preserved;316;
@@ -510,7 +511,8 @@ railway|rail|spur|tunnel;[railway=rail][service=spur][!usage][tunnel?];;name;int
highway|secondary_link|bridge;[highway=secondary_link][bridge?];;name;int_name;397;
railway|tram|tunnel;[railway=tram][tunnel?];;name;int_name;398;
railway|rail|tourism;[railway=rail][usage=tourism][!service];;name;int_name;399;
railway|disused|tunnel;[railway=disused][tunnel?],[railway=abandoned][tunnel?];;name;int_name;400;
# TODO: its a mismapping likely, if there is a tunnel structure still, then it should be railway=disused.
railway|abandoned|tunnel;[railway=abandoned][tunnel?];;name;int_name;400;
area:highway|living_street;401;
piste:type|sled;402;
leisure|beach_resort;403;
@@ -1191,7 +1193,7 @@ shop|tyres;1064;
craft|beekeeper;1065;
amenity|car_wash;1066;
amenity|veterinary;1067;
amenity|charging_station;[amenity=charging_station];;name;int_name;1068;
amenity|charging_station;1068;
amenity|childcare;1069;
craft|blacksmith;1070;
amenity|bicycle_parking;1071;
Can't render this file because it contains an unexpected character in line 7 and column 16.

View File

@@ -162,11 +162,22 @@
@path: #944A12;
@path_expert: #523E33;
@bridleway: #2B2827;
@motorway0_border: #7A4006;
@motorway1_border: #784606;
@trunk0_border: #794D11;
@trunk1_border: #79511D;
@primary0_border: #7A5C2A;
@primary1_border: #7C5E24;
@primary2_border: #7C622F;
@secondary0_border: #7F6730;
@secondary1_border: #7F6B3C;
@minor_road_border: #b2b2b2;
/* 5.2 Bridges */
@bridge_background: #2C2C1A;
@bridge_casing: #505050;
@bridge_minor_road_border: #393928;
/* 5.3 Tunnels */

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -1,7 +1,6 @@
<svg viewBox="0 0 24 24" width="18" height="18" xmlns="http://www.w3.org/2000/svg">
<g>
<circle cx="12" cy="12" r="12" fill="#FFF" opacity=".4"/>
<circle cx="12" cy="12" r="11" fill="#0D3C73"/>
<path d="m12.7 19.1c-3.6 0.4-6.7-2.5-6.7-6.1v-8h4v7.9c0 0.8 0.5 1.6 1.3 1.9 1.4 0.4 2.7-0.5 2.7-1.8v-8h4v7.8c0 3.1-2.2 5.9-5.3 6.3z" fill="#FFF" opacity=".6"/>
</g>
<?xml version="1.0" encoding="UTF-8"?>
<svg width="18" height="18" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<circle cx="12" cy="12" r="12" fill="#fff" opacity=".4"/>
<circle cx="12" cy="12" r="11" fill="#0d3c73"/>
<path d="m12 19.141c-2.6667 0-6-1.8076-6-6.141v-7.0295h4v6.9295c0 0.66086 0.66667 1.9 2 1.9 1.3333 0 2-1.0119 2-1.8v-7.0295h4v6.8295c0 4.5333-3.3333 6.341-6 6.341z" fill="#e7ecf1"/>
</svg>

Before

Width:  |  Height:  |  Size: 374 B

After

Width:  |  Height:  |  Size: 435 B

View File

@@ -1,7 +1,8 @@
<svg viewBox="0 0 18 18" width="14" height="14" xmlns="http://www.w3.org/2000/svg">
<g>
<circle cx="9" cy="9" r="9" fill="#FFF" opacity=".4"/>
<circle cx="9" cy="9" r="8" fill="#0D3C73"/>
<path d="m5 4h3v6c0 0.57157 0.42843 1 1 1s1-0.42843 1-1v-6h3v6c0 2.2284-1.7716 4-4 4-2.2284 0-4-1.7716-4-4v-6z" fill="#FFF" opacity=".6"/>
<?xml version="1.0" encoding="UTF-8"?>
<svg width="14" height="14" version="1.1" viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg">
<g stroke-width=".75">
<circle cx="9" cy="9" r="9" fill="#fff" opacity=".4"/>
<circle cx="9" cy="9" r="8.25" fill="#0d3c73"/>
<path d="m9 14.356c-2 0-4.5-1.3557-4.5-4.6057v-5.2722h3v5.1972c0 0.49565 0.5 1.425 1.5 1.425 1 0 1.5-0.75896 1.5-1.35v-5.2722h3v5.1222c0 3.4-2.5 4.7557-4.5 4.7557z" fill="#e7ecf1"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 347 B

After

Width:  |  Height:  |  Size: 465 B

View File

@@ -0,0 +1 @@
<svg height="12" viewBox="0 0 12 12" width="12" xmlns="http://www.w3.org/2000/svg"><g fill="none"><path d="m6.70796435.16441116 2.91781369 1.20859801c.45330196.18776383.81344906.54791086 1.00121276 1.00121279l1.208598 2.91781371c.1877638.45330195.1877638.96262671 0 1.41592868l-1.208598 2.91781367c-.1877637.45330198-.5479108.81344908-1.00121276 1.00121278l-2.91781371 1.208598c-.45330195.1877638-.96262671.1877638-1.41592868 0l-2.91781367-1.208598c-.45330195-.1877637-.81344898-.5479108-1.00121281-1.00121276l-1.20859801-2.91781369c-.18776381-.45330196-.18776381-.96262674 0-1.4159287l1.20859801-2.91781369c.18776382-.45330196.54791083-.81344897 1.00121279-1.00121279l2.91781369-1.20859801c.45330196-.18776381.96262674-.18776381 1.4159287 0z" fill="#181715" fill-opacity=".5"/><path d="m6.57402515.487769 2.91781369 1.20859801c.36754213.15224093.65955326.44425202.81179416.81179415l1.208598 2.91781369c.1522409.36754213.1522409.78050817 0 1.1480503l-1.208598 2.91781369c-.1522409.36754213-.44425203.65955326-.81179416.81179416l-2.91781369 1.208598c-.36754213.1522409-.78050817.1522409-1.1480503 0l-2.91781369-1.208598c-.36754213-.1522409-.65955322-.44425203-.81179415-.81179416l-1.20859801-2.91781369c-.15224093-.36754213-.15224093-.78050817 0-1.1480503l1.20859801-2.91781369c.15224093-.36754213.44425202-.65955322.81179415-.81179415l2.91781369-1.20859801c.36754213-.15224093.78050817-.15224093 1.1480503 0z" fill="#202510" fill-rule="evenodd"/></g></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@@ -559,9 +559,8 @@ area|z15-[amenity=marketplace],
area|z15-[office=diplomatic],
area|z15-[amenity=vehicle_inspection],
area|z15-[amenity=car_wash],
area|z15-[amenity=fuel],
area|z15-[amenity=charging_station][motorcar?],
area|z16-[amenity=charging_station],
area|z15-[amenity=fuel],
area|z15-[amenity=motorcycle_parking],
area|z15-[amenity=bicycle_parking],
{fill-opacity: 1; fill-color: @general_area;}

View File

@@ -70,6 +70,7 @@ node|z14-[natural=geyser],
node|z16-[natural=beach],
area|z14-[natural=bare_rock],
node|z17-[natural=rock],
node|z18-[natural=tree],
{text: name;text-color: @poi_label;text-position: center;text-offset: 1;}
node|z13-[natural=peak][!name],
@@ -206,7 +207,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],
node|z18-[natural=tree][name],
{icon-image: tree-special-m.svg;}
node|z18-[natural=tree][!name],
{icon-image: tree-m.svg;}
node|z18-[xmas:feature=tree],
@@ -2399,28 +2402,18 @@ node|z17-[amenity=fuel],
node|z18-[amenity=fuel],
{font-size: 11;}
node|z15-[amenity=charging_station][motorcar?],
node|z16-[amenity=charging_station][motorcycle?],
node|z16-[amenity=charging_station][bicycle?],
node|z16-[amenity=charging_station][motorcar=not],
node|z16-[amenity=charging_station],
{icon-image: charging_station-small-m.svg;}
node|z14[amenity=charging_station][motorcar?][capacity?],
{icon-image: charging_station-s.svg;}
node|z15-[amenity=charging_station][motorcar?][capacity?],
{icon-image: charging_station-m.svg;}
node|z14[amenity=charging_station][motorcar?][!capacity],
node|z14[amenity=charging_station][motorcar?][capacity=1],
node|z14[amenity=charging_station][motorcar?][capacity=2],
{icon-image: none;}
node|z15-[amenity=charging_station][motorcar?][!capacity],
node|z15-[amenity=charging_station][motorcar?][capacity=1],
node|z15-[amenity=charging_station][motorcar?][capacity=2],
{icon-image: charging_station-small-m.svg;}
node|z16-[amenity=charging_station],
{icon-image: charging-point-m.svg;}
node|z14[amenity=charging_station][motorcar?],
node|z14[amenity=charging_station][motorcar?][capacity?],
{icon-image: charging-station-s.svg;}
node|z15-[amenity=charging_station][motorcar?][capacity?],
{icon-image: charging-station-m.svg;}
node|z14[amenity=charging_station][motorcar?][capacity?],
{text-offset: 1;font-size: 10;icon-min-distance: 20;}
node|z15[amenity=charging_station][motorcar?],
{icon-min-distance: 20;}

View File

@@ -35,7 +35,9 @@
8.7 Footway 15-22 ZOOM
8.8 Steps 15-22 ZOOM
8.9 Bridleway 14-22 ZOOM
8.10 Runway 12-22 ZOOM
8.10 Major road borders
8.11 Minor road borders
8.12 Runway 12-22 ZOOM
9.RAIL 11-22 ZOOM
9.1 RAIL 11-22 ZOOM
9.2 Rail tunnel 14-22 ZOOM
@@ -1137,7 +1139,420 @@ line|z15-[highway=bridleway][bridge?]::bridgewhite
line|z17-[highway=bridleway][bridge?]::bridgeblack
{casing-width-add: 1;}
/* 8.10 Runway 12-22 ZOOM */
/* 8.10 Major road borders */
line|z6-9[highway=motorway]::border,
line|z6-9[highway=trunk]::border,
{color: @trunk0_border; opacity: 1;}
line|z10-13[highway=motorway]::border,
line|z10-13[highway=motorway_link]::border,
{color: @motorway0_border; opacity: 1;}
line|z10-13[highway=trunk]::border,
line|z10-13[highway=trunk_link]::border,
{color: @trunk1_border; opacity: 1;}
line|z14-[highway=motorway]::border,
line|z14-[highway=motorway_link]::border,
{color: @motorway1_border; opacity: 1;}
line|z14-[highway=trunk]::border,
line|z14-[highway=trunk_link]::border,
{color: @trunk1_border; opacity: 1;}
line|z8-10[highway=primary]::border,
{color: @primary0_border; opacity: 1;}
line|z11-13[highway=primary]::border,
line|z11-13[highway=primary_link]::border,
{color: @primary1_border; opacity: 1;}
line|z14-[highway=primary]::border,
line|z14-[highway=primary_link]::border,
{color: @primary2_border; opacity: 1;}
line|z10-13[highway=secondary]::border,
line|z13[highway=secondary_link]::border,
{color: @secondary0_border; opacity: 1;}
line|z14-[highway=secondary]::border,
line|z14-[highway=secondary_link]::border,
{color: @secondary1_border; opacity: 1;}
/* Width is like the original road, but increased by 1. Then set everything smaller or equal 2 to 0. Finally subtract 0.5 from everything smaller than 3. */
line|z10[highway=motorway]::border,
{width: 3.6;}
line|z11[highway=motorway]::border,
{width: 4.0;}
line|z12[highway=motorway]::border,
{width: 4.6;}
line|z13[highway=motorway]::border,
{width: 5.0;}
line|z14[highway=motorway]::border,
{width: 5.4;}
line|z15[highway=motorway]::border,
{width: 6.6;}
line|z16[highway=motorway]::border,
{width: 8.8;}
line|z17[highway=motorway]::border,
{width: 10.0;}
line|z18[highway=motorway]::border,
{width: 13.0;}
line|z19-[highway=motorway]::border,
{width: 17.0;}
line|z6[highway=motorway]::border,
line|z6[highway=trunk]::border,
{width: 0;}
line|z7[highway=motorway]::border,
line|z7[highway=trunk]::border,
{width: 0;}
line|z8[highway=motorway]::border,
line|z8[highway=trunk]::border,
{width: 1.7;}
line|z9[highway=motorway]::border,
line|z9[highway=trunk]::border,
{width: 1.8;}
line|z10[highway=trunk]::border,
{width: 3.2;}
line|z11[highway=trunk]::border,
{width: 3.5;}
line|z12[highway=trunk]::border,
{width: 4.0;}
line|z13[highway=trunk]::border,
{width: 4.6;}
line|z14[highway=trunk]::border,
{width: 5.0;}
line|z15[highway=trunk]::border,
{width: 5.8;}
line|z16[highway=trunk]::border,
{width: 7.2;}
line|z17[highway=trunk]::border,
{width: 9.2;}
line|z18[highway=trunk]::border,
{width: 12;}
line|z19-[highway=trunk]::border,
{width: 14.5;}
line|z10[highway=motorway_link]::border,
line|z10[highway=trunk_link]::border,
{width: 0;}
line|z11[highway=motorway_link]::border,
line|z11[highway=trunk_link]::border,
{width: 1.6;}
line|z12[highway=motorway_link]::border,
line|z12[highway=trunk_link]::border,
{width: 1.9;}
line|z13[highway=motorway_link]::border,
line|z13[highway=trunk_link]::border,
{width: 2.4;}
line|z14[highway=motorway_link]::border,
line|z14[highway=trunk_link]::border,
{width: 3.7;}
line|z15[highway=motorway_link]::border,
line|z15[highway=trunk_link]::border,
{width: 4.7;}
line|z16[highway=motorway_link]::border,
line|z16[highway=trunk_link]::border,
{width: 6.1;}
line|z17[highway=motorway_link]::border,
line|z17[highway=trunk_link]::border,
{width: 7.7;}
line|z18[highway=motorway_link]::border,
line|z18[highway=trunk_link]::border,
{width: 10.5;}
line|z19-[highway=motorway_link]::border,
line|z19-[highway=trunk_link]::border,
{width: 12.7;}
line|z8[highway=primary]::border,
{width: 0;}
line|z9[highway=primary]::border,
{width: 0;}
line|z10[highway=primary]::border,
{width: 2.3;}
line|z11[highway=primary]::border,
{width: 3.3;}
line|z12[highway=primary]::border,
{width: 3.7;}
line|z13[highway=primary]::border,
{width: 4.0;}
line|z14[highway=primary]::border,
{width: 4.8;}
line|z15[highway=primary]::border,
{width: 5.4;}
line|z16[highway=primary]::border,
{width: 6.4;}
line|z17[highway=primary]::border,
{width: 8;}
line|z18[highway=primary]::border,
{width: 11;}
line|z19-[highway=primary]::border,
{width: 13;}
line|z11[highway=primary_link]::border,
{width: 0;}
line|z12[highway=primary_link]::border,
{width: 0;}
line|z13[highway=primary_link]::border,
{width: 1.8;}
line|z14[highway=primary_link]::border,
{width: 2.3;}
line|z15[highway=primary_link]::border,
{width: 3.5;}
line|z16[highway=primary_link]::border,
{width: 4.2;}
line|z17[highway=primary_link]::border,
{width: 5.7;}
line|z18[highway=primary_link]::border,
{width: 7.4;}
line|z19-[highway=primary_link]::border,
{width: 9.2;}
line|z10[highway=secondary]::border,
{width: 1.9;}
line|z11[highway=secondary]::border,
{width: 3.2;}
line|z12[highway=secondary]::border,
{width: 3.5;}
line|z13[highway=secondary]::border,
{width: 3.7;}
line|z14[highway=secondary]::border,
{width: 4.2;}
line|z15[highway=secondary]::border,
{width: 4.8;}
line|z16[highway=secondary]::border,
{width: 6;}
line|z17[highway=secondary]::border,
{width: 7.6;}
line|z18[highway=secondary]::border,
{width: 10.4;}
line|z19-[highway=secondary]::border,
{width: 12.6;}
line|z13[highway=secondary_link]::border,
{width: 1.8;}
line|z14[highway=secondary_link]::border,
{width: 2.3;}
line|z15[highway=secondary_link]::border,
{width: 3.5;}
line|z16[highway=secondary_link]::border,
{width: 4.2;}
line|z17[highway=secondary_link]::border,
{width: 5.7;}
line|z18[highway=secondary_link]::border,
{width: 7.4;}
line|z19-[highway=secondary_link]::border,
{width: 9.2;}
/* 8.11 Minor road borders */
line|z11-[highway=tertiary]::border,
line|z14-[highway=tertiary_link]::border,
line|z11-[highway=unclassified]::border,
line|z12-[highway=residential]::border,
line|z12-[highway=road]::border,
line|z12-[highway=living_street]::border,
line|z13-[highway=pedestrian]::border,
line|z13-[highway=ford]::border,
line|z15-[highway=service]::border,
line|z15-[highway=service][service=busway]::border,
line|z15-[highway=busway]::border,
line|z15-[highway=footway]::border,
line|z15-[highway=ladder]::border,
line|z15-[highway=steps]::border,
{color: @minor_road_border; opacity: 0.1;}
line|z11-[highway=tertiary][bridge?]::border,
line|z14-[highway=tertiary_link][bridge?]::border,
line|z11-[highway=unclassified][bridge?]::border,
line|z12-[highway=residential][bridge?]::border,
line|z12-[highway=road][bridge?]::border,
line|z12-[highway=living_street][bridge?]::border,
line|z13-[highway=pedestrian][bridge?]::border,
line|z15-[highway=service][bridge?]::border,
line|z15-[highway=service][service=busway][bridge?]::border,
line|z15-[highway=busway][bridge?]::border,
line|z15-[highway=footway][bridge?]::border,
line|z15-[highway=steps][bridge?]::border,
{color: @bridge_minor_road_border; opacity: 1; linecap: butt}
/* Width is like the original road, but increased by 1. Then set everything smaller or equal 2 to 0. Finally subtract 0.5 from everything smaller than 3. */
line|z11[highway=tertiary]::border,
{width: 1.7;}
line|z12[highway=tertiary]::border,
{width: 2.1;}
line|z13[highway=tertiary]::border,
{width: 2.3;}
line|z14[highway=tertiary]::border,
{width: 3.7;}
line|z15[highway=tertiary]::border,
{width: 4.8;}
line|z16[highway=tertiary]::border,
{width: 6;}
line|z17[highway=tertiary]::border,
{width: 7.6;}
line|z18[highway=tertiary]::border,
{width: 10.4;}
line|z19-[highway=tertiary]::border,
{width: 12.6;}
line|z14[highway=tertiary_link]::border,
{width: 2.3;}
line|z15[highway=tertiary_link]::border,
{width: 3.5;}
line|z16[highway=tertiary_link]::border,
{width: 4.2;}
line|z17[highway=tertiary_link]::border,
{width: 5.7;}
line|z18[highway=tertiary_link]::border,
{width: 7.4;}
line|z19-[highway=tertiary_link]::border,
{width: 9.2;}
line|z11[highway=unclassified]::border,
{width: 0;}
line|z12[highway=unclassified]::border,
{width: 0;}
line|z13[highway=unclassified]::border,
{width: 1.9;}
line|z14[highway=unclassified]::border,
{width: 3.3;}
line|z15[highway=unclassified]::border,
{width: 4.2;}
line|z16[highway=unclassified]::border,
{width: 5.2;}
line|z17[highway=unclassified]::border,
{width: 7;}
line|z18[highway=unclassified]::border,
{width: 9;}
line|z19-[highway=unclassified]::border,
{width: 11;}
line|z12[highway=residential]::border,
line|z12[highway=road]::border,
line|z12[highway=living_street]::border,
{width: 0;}
line|z13[highway=residential]::border,
line|z13[highway=road]::border,
line|z13[highway=living_street]::border,
{width: 0;}
line|z14[highway=residential]::border,
line|z14[highway=road]::border,
line|z14[highway=living_street]::border,
{width: 2.1;}
line|z15[highway=residential]::border,
line|z15[highway=road]::border,
line|z15[highway=living_street]::border,
{width: 3.4;}
line|z16[highway=residential]::border,
line|z16[highway=road]::border,
line|z16[highway=living_street]::border,
{width: 4.2;}
line|z17[highway=residential]::border,
line|z17[highway=road]::border,
line|z17[highway=living_street]::border,
{width: 5.7;}
line|z18[highway=residential]::border,
line|z18[highway=road]::border,
line|z18[highway=living_street]::border,
{width: 7.4;}
line|z19-[highway=residential]::border,
line|z19-[highway=road]::border,
line|z19-[highway=living_street]::border,
{width: 9.2;}
line|z13[highway=pedestrian]::border,
line|z13[highway=ford]::border,
{width: 0;dashes: 4,1;}
line|z14[highway=pedestrian]::border,
line|z14[highway=ford]::border,
{width: 2.1;dashes: 6,1.3;}
line|z15[highway=pedestrian]::border,
line|z15[highway=ford]::border,
{width: 3;dashes: 8,1.5;}
line|z16[highway=pedestrian]::border,
line|z16[highway=ford]::border,
{width: 3.4;dashes: 8,1.5;}
line|z17[highway=pedestrian]::border,
line|z17[highway=ford]::border,
{width: 4;dashes: 9,1.8;}
line|z18[highway=pedestrian]::border,
line|z18[highway=ford]::border,
{width: 5;dashes: 11,2.3;}
line|z19-[highway=pedestrian]::border,
line|z19-[highway=ford]::border,
{width: 6;dashes: 13,2.7;}
line|z15[highway=service]::border,
line|z15[highway=service][service=busway]::border,
line|z15[highway=busway]::border,
{width: 1.7;}
line|z15[highway=service][service=driveway]::border,
{width: 0;}
line|z16[highway=service]::border,
line|z16[highway=service][service=busway]::border,
line|z16[highway=busway]::border,
{width: 2.1;}
line|z17[highway=service]::border,
line|z17[highway=service][service=busway]::border,
line|z17[highway=busway]::border,
{width: 3;}
line|z18[highway=service]::border,
line|z18[highway=service][service=busway]::border,
line|z18[highway=busway]::border,
{width: 4;}
line|z19-[highway=service]::border,
line|z19-[highway=service][service=busway]::border,
line|z19-[highway=busway]::border,
{width: 5;}
line|z15[highway=footway]::border,
{width: 2; dashes: 5,1.5;}
line|z16[highway=footway]::border,
{width: 3; dashes: 5,1.5;}
line|z17[highway=footway]::border,
{width: 3.4; dashes: 6,1.8;}
line|z18[highway=footway]::border,
{width: 4.2; dashes: 8,2.3;}
line|z19-[highway=footway]::border,
{width: 5.2; dashes: 10,2.7;}
line|z15[highway=footway][bicycle=designated]::border,
{width: 2; dashes: 6,9;}
line|z16[highway=footway][bicycle=designated]::border,
{width: 3; dashes: 8,10;}
line|z17[highway=footway][bicycle=designated]::border,
{width: 3.4; dashes: 10,11;}
line|z18[highway=footway][bicycle=designated]::border,
{width: 4.2; dashes: 15,15;}
line|z19-[highway=footway][bicycle=designated]::border,
{width: 5.2; dashes: 20,20;}
/* Don't display sidewalks and pedestrian crossings on z15. */
line|z15[highway=footway][footway=sidewalk]::border,
line|z15[highway=footway][footway=crossing]::border,
{width: 0;}
line|z15[highway=ladder]::border,
line|z15[highway=steps]::border,
{width: 3.4; dashes: 1.5,1.3;}
line|z16[highway=ladder]::border,
line|z16[highway=steps]::border,
{width: 5; dashes: 1.8,1.6;}
line|z17-[highway=ladder]::border,
line|z17-[highway=steps]::border,
{width: 7; dashes: 2.5,2.2;}
line|z18[highway=ladder]::border,
line|z18[highway=steps]::border,
{width: 9; dashes: 3.2,2.8;}
line|z19-[highway=ladder]::border,
line|z19-[highway=steps]::border,
{width: 11; dashes: 4,3.5;}
/* 8.12 Runway 12-22 ZOOM */
line|z12-[aeroway=runway],
line|z14-[aeroway=taxiway],
@@ -1217,14 +1632,14 @@ line|z13-[railway=subway][bridge?]::bridgewhite,
line|z13-[railway=light_rail][bridge?]::bridgewhite,
line|z15-[railway=preserved][bridge?]::bridgewhite,
line|z16-[railway=miniature][bridge?]::bridgewhite,
line|z16-[railway=disused][bridge?]::bridgewhite,
line|z16-[railway=abandoned][bridge?]::bridgewhite,
{casing-linecap: butt;casing-color:@bridge_background;casing-opacity: 0.8;}
line|z16-[railway=rail][bridge?]::bridgeblack,
line|z16-[railway=subway][bridge?]::bridgeblack,
line|z16-[railway=light_rail][bridge?]::bridgeblack,
line|z16-[railway=preserved][bridge?]::bridgeblack,
line|z16-[railway=miniature][bridge?]::bridgeblack,
line|z16-[railway=disused][bridge?]::bridgeblack,
line|z16-[railway=abandoned][bridge?]::bridgeblack,
{casing-linecap: butt;casing-color:@bridge_casing;casing-opacity: 0.7;}
/* 9.1 RAIL 11-22 ZOOM */
@@ -1375,11 +1790,11 @@ line|z18-[railway=light_rail][!tunnel]::dash,
line|z15-[railway=preserved],
line|z16-[railway=miniature],
line|z16-[railway=disused],
line|z16-[railway=abandoned],
{width: 1.6;dashes: 6.3,6.3;}
line|z15-[railway=construction],
line|z16-[railway=abandoned],
line|z16-[railway=disused],
{width: 1;dashes: 1.8,5.4;}
line|z17-[railway=turntable],
@@ -1434,21 +1849,21 @@ line|z16[railway=subway][bridge?]::bridgewhite,
line|z16[railway=light_rail][bridge?]::bridgewhite,
line|z16[railway=preserved][bridge?]::bridgewhite,
line|z16[railway=miniature][bridge?]::bridgewhite,
line|z16[railway=disused][bridge?]::bridgewhite,
line|z16[railway=abandoned][bridge?]::bridgewhite,
{casing-width-add: 1.6;}
line|z17[railway=rail][bridge?]::bridgewhite,
line|z17[railway=subway][bridge?]::bridgewhite,
line|z17[railway=light_rail][bridge?]::bridgewhite,
line|z17[railway=preserved][bridge?]::bridgewhite,
line|z17[railway=miniature][bridge?]::bridgewhite,
line|z17[railway=disused][bridge?]::bridgewhite,
line|z17[railway=abandoned][bridge?]::bridgewhite,
{casing-width-add: 2.3;}
line|z18-[railway=rail][bridge?]::bridgewhite,
line|z18-[railway=subway][bridge?]::bridgewhite,
line|z18-[railway=light_rail][bridge?]::bridgewhite,
line|z18-[railway=preserved][bridge?]::bridgewhite,
line|z18-[railway=miniature][bridge?]::bridgewhite,
line|z18-[railway=disused][bridge?]::bridgewhite,
line|z18-[railway=abandoned][bridge?]::bridgewhite,
{casing-width-add: 3.5;}
line|z16[railway=rail][bridge?]::bridgeblack,
@@ -1456,21 +1871,21 @@ line|z16[railway=subway][bridge?]::bridgeblack,
line|z16[railway=light_rail][bridge?]::bridgeblack,
line|z16[railway=preserved][bridge?]::bridgeblack,
line|z16[railway=miniature][bridge?]::bridgeblack,
line|z16[railway=disused][bridge?]::bridgeblack,
line|z16[railway=abandoned][bridge?]::bridgeblack,
{casing-width-add: 2.2;}
line|z17[railway=rail][bridge?]::bridgeblack,
line|z17[railway=subway][bridge?]::bridgeblack,
line|z17[railway=light_rail][bridge?]::bridgeblack,
line|z17[railway=preserved][bridge?]::bridgeblack,
line|z17[railway=miniature][bridge?]::bridgeblack,
line|z17[railway=disused][bridge?]::bridgeblack,
line|z17[railway=abandoned][bridge?]::bridgeblack,
{casing-width-add: 3;}
line|z18-[railway=rail][bridge?]::bridgeblack,
line|z18-[railway=subway][bridge?]::bridgeblack,
line|z18-[railway=light_rail][bridge?]::bridgeblack,
line|z18-[railway=preserved][bridge?]::bridgeblack,
line|z18-[railway=miniature][bridge?]::bridgeblack,
line|z18-[railway=disused][bridge?]::bridgeblack,
line|z18-[railway=abandoned][bridge?]::bridgeblack,
{casing-width-add: 4.4;}
/* 9.4 Monorail 14-22 ZOOM */

View File

@@ -85,12 +85,8 @@ landuse-cemetery-christian # area z10- (also has icon z
=== 180
amenity-car_wash # area z15- (also has icon z17-, caption(optional) z17-)
amenity-charging_station # area z16- (also has icon z16-, caption(optional) z16-)
amenity-charging_station-bicycle # area z16- (also has icon z16-, caption(optional) z16-)
amenity-charging_station-carless # area z16- (also has icon z16-, caption(optional) z16-)
amenity-charging_station-motorcar # area z15- (also has icon z14-, caption(optional) z14-)
amenity-charging_station-motorcycle # area z16- (also has icon z16-, caption(optional) z16-)
amenity-charging_station-small # area z15- (also has icon z15-, caption(optional) z16-)
amenity-charging_station-motorcar-small # area z15- (also has icon z16-, caption(optional) z16-)
amenity-courthouse # area z15- (also has icon z17-, caption(optional) z17-)
amenity-fire_station # area z15- (also has icon z16-, caption(optional) z17-)
amenity-fuel # area z15- (also has icon z14-, caption(optional) z14-)
@@ -101,8 +97,8 @@ amenity-recycling-centre # area z15- (also has icon z
amenity-social_facility # area z15- (also has icon z17-, caption(optional) z17-)
amenity-vehicle_inspection # area z15- (also has icon z16-, caption(optional) z16-)
emergency-mountain_rescue # area z13- (also has icon z16-, caption(optional) z16-)
highway-pedestrian-area # area z14- (also has line z13-, pathtext z14-)
highway-pedestrian-square # area z14- (also has line z13-, pathtext z14-)
highway-pedestrian-area # area z14- (also has line z13-, line::border z14-, pathtext z14-)
highway-pedestrian-square # area z14- (also has line z13-, line::border z14-, pathtext z14-)
highway-rest_area # area z13- (also has icon z15-, caption(optional) z15-)
highway-services # area z13- (also has icon z14-, caption(optional) z14-)
landuse-garages # area z13- (also has caption z15-)
@@ -115,7 +111,7 @@ tourism-information-office # area z15- (also has icon z
tourism-information-visitor_centre # area z13- (also has icon z15-, caption(optional) z15-)
=== 170
highway-footway-area # area z14- (also has line z15-, pathtext z15-)
highway-footway-area # area z14- (also has line z15-, line::border z15-, pathtext z15-)
leisure-track-area # area z15- (also has caption z16-)
=== 160

View File

@@ -45,10 +45,10 @@ power-line # line z19- (also has line::
power-line::dash # line::dash z19- (also has line z19-)
=== 340
highway-ladder # line z15- (also has icon z17-, pathtext z17-)
highway-steps # line z15- (also has pathtext z16-)
highway-steps-bridge # line z15- (also has line::bridgeblack z17-, line::bridgewhite z15-, pathtext z16-)
highway-steps-tunnel # line z15- (also has line::tunnelBackground z17-, line::tunnelCasing z17-, pathtext z16-)
highway-ladder # line z15- (also has line::border z15-, icon z17-, pathtext z17-)
highway-steps # line z15- (also has line::border z15-, pathtext z16-)
highway-steps-bridge # line z15- (also has line::border z15-, line::bridgeblack z17-, line::bridgewhite z15-, pathtext z16-)
highway-steps-tunnel # line z15- (also has line::border z15-, line::tunnelBackground z17-, line::tunnelCasing z17-, pathtext z16-)
hwtag-oneway::arrows # line::arrows z15-
waterway-weir # line z14- (also has pathtext z15-)
=== 330
@@ -73,23 +73,23 @@ railway-tram-bridge # line z13-
railway-tram-tunnel # line z13-
=== 320
highway-motorway # line z6- (also has pathtext z10-, shield::shield z10-)
highway-motorway-bridge # line z6- (also has line::bridgeblack z13-, line::bridgewhite z13-, pathtext z10-, shield::shield z10-)
highway-motorway-tunnel # line z6- (also has line(casing) z12-, pathtext z10-, shield::shield z10-)
highway-trunk # line z6- (also has pathtext z10-, shield::shield z10-)
highway-trunk-bridge # line z6- (also has line::bridgeblack z13-, line::bridgewhite z13-, pathtext z10-, shield::shield z10-)
highway-trunk-tunnel # line z6- (also has line(casing) z12-, pathtext z10-, shield::shield z10-)
highway-motorway # line z6- (also has line::border z8-, pathtext z10-, shield::shield z10-)
highway-motorway-bridge # line z6- (also has line::border z8-, line::bridgeblack z13-, line::bridgewhite z13-, pathtext z10-, shield::shield z10-)
highway-motorway-tunnel # line z6- (also has line::border z8-, line(casing) z12-, pathtext z10-, shield::shield z10-)
highway-trunk # line z6- (also has line::border z8-, pathtext z10-, shield::shield z10-)
highway-trunk-bridge # line z6- (also has line::border z8-, line::bridgeblack z13-, line::bridgewhite z13-, pathtext z10-, shield::shield z10-)
highway-trunk-tunnel # line z6- (also has line::border z8-, line(casing) z12-, pathtext z10-, shield::shield z10-)
highway-world_level # line z4-9
highway-world_towns_level # line z6-9
=== 310
# highway-motorway-tunnel # line(casing) z12- (also has line z6-, pathtext z10-, shield::shield z10-)
# highway-trunk-tunnel # line(casing) z12- (also has line z6-, pathtext z10-, shield::shield z10-)
# highway-motorway-tunnel # line(casing) z12- (also has line z6-, line::border z8-, pathtext z10-, shield::shield z10-)
# highway-trunk-tunnel # line(casing) z12- (also has line z6-, line::border z8-, pathtext z10-, shield::shield z10-)
# === 309
highway-primary # line z8- (also has pathtext z10-, shield::shield z10-)
highway-primary-bridge # line z8- (also has line::bridgeblack z14-, line::bridgewhite z14-, pathtext z10-, shield::shield z10-)
highway-primary-tunnel # line z8- (also has line(casing) z14-, pathtext z10-, shield::shield z10-)
highway-primary # line z8- (also has line::border z10-, pathtext z10-, shield::shield z10-)
highway-primary-bridge # line z8- (also has line::border z10-, line::bridgeblack z14-, line::bridgewhite z14-, pathtext z10-, shield::shield z10-)
highway-primary-tunnel # line z8- (also has line::border z10-, line(casing) z14-, pathtext z10-, shield::shield z10-)
railway-rail-branch::dash # line::dash z16- (also has line z11-)
railway-rail-branch-bridge::dash # line::dash z16- (also has line z11-, line::bridgeblack z16-, line::bridgewhite z13-)
railway-rail-branch-tunnel::dash # line::dash z16- (also has line z11-, line(casing) z14-)
@@ -104,7 +104,7 @@ railway-rail-tourism-bridge::dash # line::dash z16- (also has
railway-rail-tourism-tunnel::dash # line::dash z16- (also has line z10-, line(casing) z14-, pathtext z14-)
=== 290
# highway-primary-tunnel # line(casing) z14- (also has line z8-, pathtext z10-, shield::shield z10-)
# highway-primary-tunnel # line(casing) z14- (also has line z8-, line::border z10-, pathtext z10-, shield::shield z10-)
# === 289
railway-rail-branch # line z11- (also has line::dash z16-)
@@ -127,88 +127,88 @@ railway-rail-tourism-tunnel # line z10- (also has line::
# railway-rail-tourism-tunnel # line(casing) z14- (also has line z10-, line::dash z16-, pathtext z14-)
# === 279
highway-secondary # line z10- (also has pathtext z10-, shield::shield z12-)
highway-secondary-bridge # line z10- (also has line::bridgeblack z14-, line::bridgewhite z14-, pathtext z10-, shield::shield z12-)
highway-secondary-tunnel # line z10- (also has line(casing) z16-, pathtext z10-, shield::shield z12-)
highway-secondary # line z10- (also has line::border z10-, pathtext z10-, shield::shield z12-)
highway-secondary-bridge # line z10- (also has line::border z10-, line::bridgeblack z14-, line::bridgewhite z14-, pathtext z10-, shield::shield z12-)
highway-secondary-tunnel # line z10- (also has line::border z10-, line(casing) z16-, pathtext z10-, shield::shield z12-)
=== 270
# highway-secondary-tunnel # line(casing) z16- (also has line z10-, pathtext z10-, shield::shield z12-)
# highway-secondary-tunnel # line(casing) z16- (also has line z10-, line::border z10-, pathtext z10-, shield::shield z12-)
# === 269
highway-tertiary # line z11- (also has pathtext z12-, shield::shield z13-)
highway-tertiary-bridge # line z11- (also has line::bridgeblack z14-, line::bridgewhite z14-, pathtext z12-, shield::shield z13-)
highway-tertiary-tunnel # line z11- (also has line(casing) z16-, pathtext z12-, shield::shield z13-)
highway-unclassified # line z11- (also has pathtext z13-)
highway-unclassified-area # line z11- (also has pathtext z13-)
highway-unclassified-bridge # line z11- (also has line::bridgeblack z14-, line::bridgewhite z14-, pathtext z13-)
highway-unclassified-tunnel # line z11- (also has line(casing) z16-, pathtext z13-)
highway-tertiary # line z11- (also has line::border z11-, pathtext z12-, shield::shield z13-)
highway-tertiary-bridge # line z11- (also has line::border z11-, line::bridgeblack z14-, line::bridgewhite z14-, pathtext z12-, shield::shield z13-)
highway-tertiary-tunnel # line z11- (also has line::border z11-, line(casing) z16-, pathtext z12-, shield::shield z13-)
highway-unclassified # line z11- (also has line::border z13-, pathtext z13-)
highway-unclassified-area # line z11- (also has line::border z13-, pathtext z13-)
highway-unclassified-bridge # line z11- (also has line::border z13-, line::bridgeblack z14-, line::bridgewhite z14-, pathtext z13-)
highway-unclassified-tunnel # line z11- (also has line::border z13-, line(casing) z16-, pathtext z13-)
=== 250
# highway-tertiary-tunnel # line(casing) z16- (also has line z11-, pathtext z12-, shield::shield z13-)
# highway-unclassified-tunnel # line(casing) z16- (also has line z11-, pathtext z13-)
# highway-tertiary-tunnel # line(casing) z16- (also has line z11-, line::border z11-, pathtext z12-, shield::shield z13-)
# highway-unclassified-tunnel # line(casing) z16- (also has line z11-, line::border z13-, pathtext z13-)
# === 249
highway-living_street # line z12- (also has pathtext z14-)
highway-living_street-bridge # line z12- (also has pathtext z14-)
highway-living_street-tunnel # line z12- (also has line(casing) z16-, pathtext z14-)
highway-residential # line z12- (also has pathtext z13-, shield::shield z15-)
highway-residential-area # line z12- (also has pathtext z13-, shield::shield z15-)
highway-residential-bridge # line z12- (also has line::bridgeblack z14-, line::bridgewhite z14-, pathtext z13-, shield::shield z15-)
highway-residential-tunnel # line z12- (also has line(casing) z16-, pathtext z13-, shield::shield z15-)
highway-road # line z12- (also has pathtext z14-)
highway-road-bridge # line z12- (also has line::bridgeblack z16-, line::bridgewhite z16-, pathtext z14-)
highway-road-tunnel # line z12- (also has pathtext z14-)
highway-living_street # line z12- (also has line::border z14-, pathtext z14-)
highway-living_street-bridge # line z12- (also has line::border z14-, pathtext z14-)
highway-living_street-tunnel # line z12- (also has line::border z14-, line(casing) z16-, pathtext z14-)
highway-residential # line z12- (also has line::border z14-, pathtext z13-, shield::shield z15-)
highway-residential-area # line z12- (also has line::border z14-, pathtext z13-, shield::shield z15-)
highway-residential-bridge # line z12- (also has line::border z14-, line::bridgeblack z14-, line::bridgewhite z14-, pathtext z13-, shield::shield z15-)
highway-residential-tunnel # line z12- (also has line::border z14-, line(casing) z16-, pathtext z13-, shield::shield z15-)
highway-road # line z12- (also has line::border z14-, pathtext z14-)
highway-road-bridge # line z12- (also has line::border z14-, line::bridgeblack z16-, line::bridgewhite z16-, pathtext z14-)
highway-road-tunnel # line z12- (also has line::border z14-, pathtext z14-)
=== 230
# highway-living_street-tunnel # line(casing) z16- (also has line z12-, pathtext z14-)
# highway-residential-tunnel # line(casing) z16- (also has line z12-, pathtext z13-, shield::shield z15-)
# highway-living_street-tunnel # line(casing) z16- (also has line z12-, line::border z14-, pathtext z14-)
# highway-residential-tunnel # line(casing) z16- (also has line z12-, line::border z14-, pathtext z13-, shield::shield z15-)
# === 229
highway-motorway_link # line z10- (also has pathtext z10-, shield::shield z10-)
highway-motorway_link-bridge # line z10- (also has line::bridgeblack z14-, line::bridgewhite z14-, pathtext z10-, shield::shield z10-)
highway-motorway_link-tunnel # line z10- (also has line(casing) z13-, pathtext z10-, shield::shield z10-)
highway-trunk_link # line z10- (also has pathtext z10-, shield::shield z10-)
highway-trunk_link-bridge # line z10- (also has line::bridgeblack z14-, line::bridgewhite z14-, pathtext z10-, shield::shield z10-)
highway-trunk_link-tunnel # line z10- (also has line(casing) z13-, pathtext z10-, shield::shield z10-)
highway-motorway_link # line z10- (also has line::border z11-, pathtext z10-, shield::shield z10-)
highway-motorway_link-bridge # line z10- (also has line::border z11-, line::bridgeblack z14-, line::bridgewhite z14-, pathtext z10-, shield::shield z10-)
highway-motorway_link-tunnel # line z10- (also has line::border z11-, line(casing) z13-, pathtext z10-, shield::shield z10-)
highway-trunk_link # line z10- (also has line::border z11-, pathtext z10-, shield::shield z10-)
highway-trunk_link-bridge # line z10- (also has line::border z11-, line::bridgeblack z14-, line::bridgewhite z14-, pathtext z10-, shield::shield z10-)
highway-trunk_link-tunnel # line z10- (also has line::border z11-, line(casing) z13-, pathtext z10-, shield::shield z10-)
=== 228
# highway-motorway_link-tunnel # line(casing) z13- (also has line z10-, pathtext z10-, shield::shield z10-)
# highway-trunk_link-tunnel # line(casing) z13- (also has line z10-, pathtext z10-, shield::shield z10-)
# highway-motorway_link-tunnel # line(casing) z13- (also has line z10-, line::border z11-, pathtext z10-, shield::shield z10-)
# highway-trunk_link-tunnel # line(casing) z13- (also has line z10-, line::border z11-, pathtext z10-, shield::shield z10-)
# === 227
highway-primary_link # line z11- (also has pathtext z11-, shield::shield z11-)
highway-primary_link-bridge # line z11- (also has line::bridgeblack z14-, line::bridgewhite z14-, pathtext z11-, shield::shield z11-)
highway-primary_link-tunnel # line z11- (also has line(casing) z14-, pathtext z11-, shield::shield z11-)
highway-primary_link # line z11- (also has line::border z13-, pathtext z11-, shield::shield z11-)
highway-primary_link-bridge # line z11- (also has line::border z13-, line::bridgeblack z14-, line::bridgewhite z14-, pathtext z11-, shield::shield z11-)
highway-primary_link-tunnel # line z11- (also has line::border z13-, line(casing) z14-, pathtext z11-, shield::shield z11-)
=== 226
# highway-primary_link-tunnel # line(casing) z14- (also has line z11-, pathtext z11-, shield::shield z11-)
# highway-primary_link-tunnel # line(casing) z14- (also has line z11-, line::border z13-, pathtext z11-, shield::shield z11-)
# === 225
highway-secondary_link # line z13- (also has pathtext z16-)
highway-secondary_link-bridge # line z13- (also has line::bridgeblack z14-, line::bridgewhite z14-, pathtext z16-)
highway-secondary_link-tunnel # line z13- (also has line(casing) z16-, pathtext z16-)
highway-secondary_link # line z13- (also has line::border z13-, pathtext z16-)
highway-secondary_link-bridge # line z13- (also has line::border z13-, line::bridgeblack z14-, line::bridgewhite z14-, pathtext z16-)
highway-secondary_link-tunnel # line z13- (also has line::border z13-, line(casing) z16-, pathtext z16-)
=== 224
# highway-secondary_link-tunnel # line(casing) z16- (also has line z13-, pathtext z16-)
highway-tertiary_link # line z14- (also has pathtext z18-)
highway-tertiary_link-bridge # line z14- (also has line::bridgeblack z14-, line::bridgewhite z14-, pathtext z18-)
highway-tertiary_link-tunnel # line z14- (also has line(casing) z16-, pathtext z18-)
# highway-secondary_link-tunnel # line(casing) z16- (also has line z13-, line::border z13-, pathtext z16-)
highway-tertiary_link # line z14- (also has line::border z14-, pathtext z18-)
highway-tertiary_link-bridge # line z14- (also has line::border z14-, line::bridgeblack z14-, line::bridgewhite z14-, pathtext z18-)
highway-tertiary_link-tunnel # line z14- (also has line::border z14-, line(casing) z16-, pathtext z18-)
=== 223
highway-busway # line z15- (also has pathtext z16-)
highway-busway-bridge # line z15- (also has line::bridgeblack z15-, line::bridgewhite z15-, pathtext z16-)
highway-busway-tunnel # line z15- (also has line(casing) z15-, pathtext z16-)
highway-service # line z15- (also has pathtext z16-)
highway-service-area # line z15- (also has pathtext z16-)
highway-service-bridge # line z15- (also has line::bridgeblack z15-, line::bridgewhite z15-, pathtext z16-)
highway-service-driveway # line z16- (also has pathtext z16-)
highway-service-parking_aisle # line z15- (also has pathtext z16-)
highway-service-tunnel # line z15- (also has line(casing) z15-, pathtext z16-)
# highway-tertiary_link-tunnel # line(casing) z16- (also has line z14-, pathtext z18-)
highway-busway # line z15- (also has line::border z15-, pathtext z16-)
highway-busway-bridge # line z15- (also has line::border z15-, line::bridgeblack z15-, line::bridgewhite z15-, pathtext z16-)
highway-busway-tunnel # line z15- (also has line::border z15-, line(casing) z15-, pathtext z16-)
highway-service # line z15- (also has line::border z15-, pathtext z16-)
highway-service-area # line z15- (also has line::border z15-, pathtext z16-)
highway-service-bridge # line z15- (also has line::border z15-, line::bridgeblack z15-, line::bridgewhite z15-, pathtext z16-)
highway-service-driveway # line z16- (also has line::border z16-, pathtext z16-)
highway-service-parking_aisle # line z15- (also has line::border z15-, pathtext z16-)
highway-service-tunnel # line z15- (also has line::border z15-, line(casing) z15-, pathtext z16-)
# highway-tertiary_link-tunnel # line(casing) z16- (also has line z14-, line::border z14-, pathtext z18-)
=== 222
# highway-busway-tunnel # line(casing) z15- (also has line z15-, pathtext z16-)
# highway-service-tunnel # line(casing) z15- (also has line z15-, pathtext z16-)
# highway-busway-tunnel # line(casing) z15- (also has line z15-, line::border z15-, pathtext z16-)
# highway-service-tunnel # line(casing) z15- (also has line z15-, line::border z15-, pathtext z16-)
railway-light_rail::dash # line::dash z16- (also has line z13-)
railway-light_rail-bridge::dash # line::dash z16- (also has line z13-, line::bridgeblack z16-, line::bridgewhite z13-)
railway-rail::dash # line::dash z16- (also has line z11-)
@@ -227,11 +227,11 @@ railway-subway::dash # line::dash z16- (also has
railway-subway-bridge::dash # line::dash z16- (also has line z13-, line::bridgeblack z16-, line::bridgewhite z13-)
=== 221
highway-footway-bicycle # line z15- (also has line::cycleline z15-, pathtext z15-)
highway-footway-bicycle # line z15- (also has line::border z15-, line::cycleline z15-, pathtext z15-)
highway-path-bicycle # line z15- (also has line::cycleline z14-, pathtext z15-)
=== 220
highway-footway-bicycle::cycleline # line::cycleline z15- (also has line z15-, pathtext z15-)
highway-footway-bicycle::cycleline # line::cycleline z15- (also has line z15-, line::border z15-, pathtext z15-)
highway-path-bicycle::cycleline # line::cycleline z14- (also has line z15-, pathtext z15-)
=== 219
@@ -264,23 +264,23 @@ railway-subway-bridge # line z13- (also has line::
# railway-rail-utility-tunnel # line(casing) z14- (also has line z13-, line::dash z17-)
# === 209
highway-ford # line z13- (also has icon z16-, pathtext z16-)
highway-pedestrian # line z13- (also has pathtext z14-)
highway-pedestrian-area # line z13- and area z14- (also has pathtext z14-)
highway-pedestrian-bridge # line z13- (also has line::bridgeblack z14-, line::bridgewhite z13-, pathtext z14-)
highway-pedestrian-square # line z13- and area z14- (also has pathtext z14-)
highway-pedestrian-tunnel # line z13- (also has line(casing) z16-, pathtext z14-)
highway-ford # line z13- (also has line::border z14-, icon z16-, pathtext z16-)
highway-pedestrian # line z13- (also has line::border z14-, pathtext z14-)
highway-pedestrian-area # line z13- and area z14- (also has line::border z14-, pathtext z14-)
highway-pedestrian-bridge # line z13- (also has line::border z14-, line::bridgeblack z14-, line::bridgewhite z13-, pathtext z14-)
highway-pedestrian-square # line z13- and area z14- (also has line::border z14-, pathtext z14-)
highway-pedestrian-tunnel # line z13- (also has line::border z14-, line(casing) z16-, pathtext z14-)
=== 200
# highway-pedestrian-tunnel # line(casing) z16- (also has line z13-, pathtext z14-)
# highway-pedestrian-tunnel # line(casing) z16- (also has line z13-, line::border z14-, pathtext z14-)
# === 199
highway-bridleway # line z14- (also has pathtext z15-)
highway-bridleway-bridge # line z14- (also has line::bridgeblack z17-, line::bridgewhite z15-, pathtext z15-)
highway-bridleway-tunnel # line z14- (also has line::tunnelBackground z17-, line::tunnelCasing z17-, pathtext z15-)
highway-footway # line z15- (also has pathtext z15-)
highway-footway-area # line z15- and area z14- (also has pathtext z15-)
highway-footway-crossing # line z16-
highway-footway # line z15- (also has line::border z15-, pathtext z15-)
highway-footway-area # line z15- and area z14- (also has line::border z15-, pathtext z15-)
highway-footway-crossing # line z16- (also has line::border z16-)
highway-path # line z15- (also has pathtext z15-)
highway-path-difficult # line z15- (also has pathtext z15-)
highway-path-expert # line z15- (also has pathtext z15-)
@@ -290,15 +290,15 @@ highway-track-area # line z15- (also has pathte
highway-track-bridge # line z15- (also has line::bridgeblack z17-, line::bridgewhite z15-, pathtext z15-)
highway-track-no-access # line z15- (also has pathtext z15-)
highway-track-tunnel # line z15- (also has line::tunnelBackground z17-, line::tunnelCasing z17-, pathtext z15-)
=== 180
=== 190
highway-construction # line z13- (also has pathtext z15-)
leisure-track # line z15- (also has caption z16-)
railway-abandoned # line z16-
railway-abandoned-bridge # line z16- (also has line::bridgeblack z16-, line::bridgewhite z16-)
railway-abandoned-tunnel # line z16-
railway-construction # line z15-
railway-disused # line z16-
railway-disused-bridge # line z16- (also has line::bridgeblack z16-, line::bridgewhite z16-)
railway-disused-tunnel # line z16-
railway-miniature # line z16-
railway-miniature-bridge # line z16- (also has line::bridgeblack z16-, line::bridgewhite z16-)
railway-miniature-tunnel # line z16-
@@ -306,55 +306,173 @@ railway-preserved # line z15-
railway-preserved-bridge # line z15- (also has line::bridgeblack z16-, line::bridgewhite z15-)
railway-preserved-tunnel # line z15-
railway-turntable # line z17-
=== 160
=== 180
highway-footway-bridge # line z15- (also has line::bridgeblack z17-, line::bridgewhite z15-, pathtext z15-)
highway-footway-sidewalk # line z16-
highway-footway-tunnel # line z15- (also has line::tunnelBackground z17-, line::tunnelCasing z17-, pathtext z15-)
highway-footway-bridge # line z15- (also has line::border z15-, line::bridgeblack z17-, line::bridgewhite z15-, pathtext z15-)
highway-footway-sidewalk # line z16- (also has line::border z16-)
highway-footway-tunnel # line z15- (also has line::border z15-, line::tunnelBackground z17-, line::tunnelCasing z17-, pathtext z15-)
highway-path-bridge # line z15- (also has line::bridgeblack z17-, line::bridgewhite z15-, pathtext z15-)
highway-path-horse # line z15- (also has pathtext z15-)
highway-path-tunnel # line z15- (also has line::tunnelBackground z17-, line::tunnelCasing z17-, pathtext z15-)
=== 155
=== 170
highway-bridleway-tunnel::tunnelBackground # line::tunnelBackground z17- (also has line z14-, line::tunnelCasing z17-, pathtext z15-)
highway-cycleway-tunnel::tunnelBackground # line::tunnelBackground z17- (also has line z13-, line::tunnelCasing z17-, pathtext z15-)
highway-footway-tunnel::tunnelBackground # line::tunnelBackground z17- (also has line z15-, line::tunnelCasing z17-, pathtext z15-)
highway-footway-tunnel::tunnelBackground # line::tunnelBackground z17- (also has line z15-, line::border z15-, line::tunnelCasing z17-, pathtext z15-)
highway-path-tunnel::tunnelBackground # line::tunnelBackground z17- (also has line z15-, line::tunnelCasing z17-, pathtext z15-)
highway-steps-tunnel::tunnelBackground # line::tunnelBackground z17- (also has line z15-, line::tunnelCasing z17-, pathtext z16-)
highway-steps-tunnel::tunnelBackground # line::tunnelBackground z17- (also has line z15-, line::border z15-, line::tunnelCasing z17-, pathtext z16-)
highway-track-tunnel::tunnelBackground # line::tunnelBackground z17- (also has line z15-, line::tunnelCasing z17-, pathtext z15-)
=== 154
=== 169
highway-bridleway-tunnel::tunnelCasing # line::tunnelCasing z17- (also has line z14-, line::tunnelBackground z17-, pathtext z15-)
highway-cycleway-tunnel::tunnelCasing # line::tunnelCasing z17- (also has line z13-, line::tunnelBackground z17-, pathtext z15-)
highway-footway-tunnel::tunnelCasing # line::tunnelCasing z17- (also has line z15-, line::tunnelBackground z17-, pathtext z15-)
highway-footway-tunnel::tunnelCasing # line::tunnelCasing z17- (also has line z15-, line::border z15-, line::tunnelBackground z17-, pathtext z15-)
highway-path-tunnel::tunnelCasing # line::tunnelCasing z17- (also has line z15-, line::tunnelBackground z17-, pathtext z15-)
highway-steps-tunnel::tunnelCasing # line::tunnelCasing z17- (also has line z15-, line::tunnelBackground z17-, pathtext z16-)
highway-steps-tunnel::tunnelCasing # line::tunnelCasing z17- (also has line z15-, line::border z15-, line::tunnelBackground z17-, pathtext z16-)
highway-track-tunnel::tunnelCasing # line::tunnelCasing z17- (also has line z15-, line::tunnelBackground z17-, pathtext z15-)
=== 168
highway-motorway::border # line::border z8- (also has line z6-, pathtext z10-, shield::shield z10-)
highway-trunk::border # line::border z8- (also has line z6-, pathtext z10-, shield::shield z10-)
=== 163
highway-primary::border # line::border z10- (also has line z8-, pathtext z10-, shield::shield z10-)
=== 162
highway-secondary::border # line::border z10- (also has line z10-, pathtext z10-, shield::shield z12-)
=== 161
highway-motorway_link::border # line::border z11- (also has line z10-, pathtext z10-, shield::shield z10-)
highway-trunk_link::border # line::border z11- (also has line z10-, pathtext z10-, shield::shield z10-)
=== 160
highway-primary_link::border # line::border z13- (also has line z11-, pathtext z11-, shield::shield z11-)
=== 159
highway-secondary_link::border # line::border z13- (also has line z13-, pathtext z16-)
=== 158
highway-motorway-bridge::border # line::border z8- (also has line z6-, line::bridgeblack z13-, line::bridgewhite z13-, pathtext z10-, shield::shield z10-)
highway-trunk-bridge::border # line::border z8- (also has line z6-, line::bridgeblack z13-, line::bridgewhite z13-, pathtext z10-, shield::shield z10-)
=== 157
highway-primary-bridge::border # line::border z10- (also has line z8-, line::bridgeblack z14-, line::bridgewhite z14-, pathtext z10-, shield::shield z10-)
=== 156
highway-secondary-bridge::border # line::border z10- (also has line z10-, line::bridgeblack z14-, line::bridgewhite z14-, pathtext z10-, shield::shield z12-)
=== 155
highway-motorway_link-bridge::border # line::border z11- (also has line z10-, line::bridgeblack z14-, line::bridgewhite z14-, pathtext z10-, shield::shield z10-)
highway-trunk_link-bridge::border # line::border z11- (also has line z10-, line::bridgeblack z14-, line::bridgewhite z14-, pathtext z10-, shield::shield z10-)
=== 154
highway-primary_link-bridge::border # line::border z13- (also has line z11-, line::bridgeblack z14-, line::bridgewhite z14-, pathtext z11-, shield::shield z11-)
=== 153
highway-secondary_link-bridge::border # line::border z13- (also has line z13-, line::bridgeblack z14-, line::bridgewhite z14-, pathtext z16-)
=== 152
highway-motorway-tunnel::border # line::border z8- (also has line z6-, line(casing) z12-, pathtext z10-, shield::shield z10-)
highway-trunk-tunnel::border # line::border z8- (also has line z6-, line(casing) z12-, pathtext z10-, shield::shield z10-)
=== 151
highway-primary-tunnel::border # line::border z10- (also has line z8-, line(casing) z14-, pathtext z10-, shield::shield z10-)
=== 150
highway-secondary-tunnel::border # line::border z10- (also has line z10-, line(casing) z16-, pathtext z10-, shield::shield z12-)
=== 149
highway-motorway_link-tunnel::border # line::border z11- (also has line z10-, line(casing) z13-, pathtext z10-, shield::shield z10-)
highway-trunk_link-tunnel::border # line::border z11- (also has line z10-, line(casing) z13-, pathtext z10-, shield::shield z10-)
=== 148
highway-primary_link-tunnel::border # line::border z13- (also has line z11-, line(casing) z14-, pathtext z11-, shield::shield z11-)
=== 147
highway-secondary_link-tunnel::border # line::border z13- (also has line z13-, line(casing) z16-, pathtext z16-)
=== 146
highway-busway::border # line::border z15- (also has line z15-, pathtext z16-)
highway-living_street::border # line::border z14- (also has line z12-, pathtext z14-)
highway-residential::border # line::border z14- (also has line z12-, pathtext z13-, shield::shield z15-)
highway-residential-area::border # line::border z14- (also has line z12-, pathtext z13-, shield::shield z15-)
highway-road::border # line::border z14- (also has line z12-, pathtext z14-)
highway-service::border # line::border z15- (also has line z15-, pathtext z16-)
highway-service-area::border # line::border z15- (also has line z15-, pathtext z16-)
highway-service-driveway::border # line::border z16- (also has line z16-, pathtext z16-)
highway-service-parking_aisle::border # line::border z15- (also has line z15-, pathtext z16-)
highway-tertiary::border # line::border z11- (also has line z11-, pathtext z12-, shield::shield z13-)
highway-tertiary-bridge::border # line::border z11- (also has line z11-, line::bridgeblack z14-, line::bridgewhite z14-, pathtext z12-, shield::shield z13-)
highway-tertiary_link::border # line::border z14- (also has line z14-, pathtext z18-)
highway-unclassified::border # line::border z13- (also has line z11-, pathtext z13-)
highway-unclassified-area::border # line::border z13- (also has line z11-, pathtext z13-)
=== 145
highway-footway::border # line::border z15- (also has line z15-, pathtext z15-)
highway-footway-area::border # line::border z15- (also has line z15-, area z14-, pathtext z15-)
highway-footway-bicycle::border # line::border z15- (also has line z15-, line::cycleline z15-, pathtext z15-)
highway-footway-crossing::border # line::border z16- (also has line z16-)
highway-footway-sidewalk::border # line::border z16- (also has line z16-)
highway-ford::border # line::border z14- (also has line z13-, icon z16-, pathtext z16-)
highway-ladder::border # line::border z15- (also has line z15-, icon z17-, pathtext z17-)
highway-pedestrian::border # line::border z14- (also has line z13-, pathtext z14-)
highway-pedestrian-area::border # line::border z14- (also has line z13-, area z14-, pathtext z14-)
highway-pedestrian-square::border # line::border z14- (also has line z13-, area z14-, pathtext z14-)
highway-steps::border # line::border z15- (also has line z15-, pathtext z16-)
=== 144
highway-busway-bridge::border # line::border z15- (also has line z15-, line::bridgeblack z15-, line::bridgewhite z15-, pathtext z16-)
highway-living_street-bridge::border # line::border z14- (also has line z12-, pathtext z14-)
highway-residential-bridge::border # line::border z14- (also has line z12-, line::bridgeblack z14-, line::bridgewhite z14-, pathtext z13-, shield::shield z15-)
highway-road-bridge::border # line::border z14- (also has line z12-, line::bridgeblack z16-, line::bridgewhite z16-, pathtext z14-)
highway-service-bridge::border # line::border z15- (also has line z15-, line::bridgeblack z15-, line::bridgewhite z15-, pathtext z16-)
highway-tertiary_link-bridge::border # line::border z14- (also has line z14-, line::bridgeblack z14-, line::bridgewhite z14-, pathtext z18-)
highway-unclassified-bridge::border # line::border z13- (also has line z11-, line::bridgeblack z14-, line::bridgewhite z14-, pathtext z13-)
=== 143
highway-footway-bridge::border # line::border z15- (also has line z15-, line::bridgeblack z17-, line::bridgewhite z15-, pathtext z15-)
highway-pedestrian-bridge::border # line::border z14- (also has line z13-, line::bridgeblack z14-, line::bridgewhite z13-, pathtext z14-)
highway-steps-bridge::border # line::border z15- (also has line z15-, line::bridgeblack z17-, line::bridgewhite z15-, pathtext z16-)
=== 142
highway-busway-tunnel::border # line::border z15- (also has line z15-, line(casing) z15-, pathtext z16-)
highway-living_street-tunnel::border # line::border z14- (also has line z12-, line(casing) z16-, pathtext z14-)
highway-residential-tunnel::border # line::border z14- (also has line z12-, line(casing) z16-, pathtext z13-, shield::shield z15-)
highway-road-tunnel::border # line::border z14- (also has line z12-, pathtext z14-)
highway-service-tunnel::border # line::border z15- (also has line z15-, line(casing) z15-, pathtext z16-)
highway-tertiary-tunnel::border # line::border z11- (also has line z11-, line(casing) z16-, pathtext z12-, shield::shield z13-)
highway-tertiary_link-tunnel::border # line::border z14- (also has line z14-, line(casing) z16-, pathtext z18-)
highway-unclassified-tunnel::border # line::border z13- (also has line z11-, line(casing) z16-, pathtext z13-)
=== 141
highway-footway-tunnel::border # line::border z15- (also has line z15-, line::tunnelBackground z17-, line::tunnelCasing z17-, pathtext z15-)
highway-pedestrian-tunnel::border # line::border z14- (also has line z13-, line(casing) z16-, pathtext z14-)
highway-steps-tunnel::border # line::border z15- (also has line z15-, line::tunnelBackground z17-, line::tunnelCasing z17-, pathtext z16-)
=== 140
highway-bridleway-bridge::bridgewhite # line::bridgewhite z15- (also has line z14-, line::bridgeblack z17-, pathtext z15-)
highway-busway-bridge::bridgewhite # line::bridgewhite z15- (also has line z15-, line::bridgeblack z15-, pathtext z16-)
highway-busway-bridge::bridgewhite # line::bridgewhite z15- (also has line z15-, line::border z15-, line::bridgeblack z15-, pathtext z16-)
highway-cycleway-bridge::bridgewhite # line::bridgewhite z15- (also has line z13-, line::bridgeblack z17-, pathtext z15-)
highway-footway-bridge::bridgewhite # line::bridgewhite z15- (also has line z15-, line::bridgeblack z17-, pathtext z15-)
highway-motorway-bridge::bridgewhite # line::bridgewhite z13- (also has line z6-, line::bridgeblack z13-, pathtext z10-, shield::shield z10-)
highway-motorway_link-bridge::bridgewhite # line::bridgewhite z14- (also has line z10-, line::bridgeblack z14-, pathtext z10-, shield::shield z10-)
highway-footway-bridge::bridgewhite # line::bridgewhite z15- (also has line z15-, line::border z15-, line::bridgeblack z17-, pathtext z15-)
highway-motorway-bridge::bridgewhite # line::bridgewhite z13- (also has line z6-, line::border z8-, line::bridgeblack z13-, pathtext z10-, shield::shield z10-)
highway-motorway_link-bridge::bridgewhite # line::bridgewhite z14- (also has line z10-, line::border z11-, line::bridgeblack z14-, pathtext z10-, shield::shield z10-)
highway-path-bridge::bridgewhite # line::bridgewhite z15- (also has line z15-, line::bridgeblack z17-, pathtext z15-)
highway-pedestrian-bridge::bridgewhite # line::bridgewhite z13- (also has line z13-, line::bridgeblack z14-, pathtext z14-)
highway-primary-bridge::bridgewhite # line::bridgewhite z14- (also has line z8-, line::bridgeblack z14-, pathtext z10-, shield::shield z10-)
highway-primary_link-bridge::bridgewhite # line::bridgewhite z14- (also has line z11-, line::bridgeblack z14-, pathtext z11-, shield::shield z11-)
highway-residential-bridge::bridgewhite # line::bridgewhite z14- (also has line z12-, line::bridgeblack z14-, pathtext z13-, shield::shield z15-)
highway-road-bridge::bridgewhite # line::bridgewhite z16- (also has line z12-, line::bridgeblack z16-, pathtext z14-)
highway-secondary-bridge::bridgewhite # line::bridgewhite z14- (also has line z10-, line::bridgeblack z14-, pathtext z10-, shield::shield z12-)
highway-secondary_link-bridge::bridgewhite # line::bridgewhite z14- (also has line z13-, line::bridgeblack z14-, pathtext z16-)
highway-service-bridge::bridgewhite # line::bridgewhite z15- (also has line z15-, line::bridgeblack z15-, pathtext z16-)
highway-steps-bridge::bridgewhite # line::bridgewhite z15- (also has line z15-, line::bridgeblack z17-, pathtext z16-)
highway-tertiary-bridge::bridgewhite # line::bridgewhite z14- (also has line z11-, line::bridgeblack z14-, pathtext z12-, shield::shield z13-)
highway-tertiary_link-bridge::bridgewhite # line::bridgewhite z14- (also has line z14-, line::bridgeblack z14-, pathtext z18-)
highway-pedestrian-bridge::bridgewhite # line::bridgewhite z13- (also has line z13-, line::border z14-, line::bridgeblack z14-, pathtext z14-)
highway-primary-bridge::bridgewhite # line::bridgewhite z14- (also has line z8-, line::border z10-, line::bridgeblack z14-, pathtext z10-, shield::shield z10-)
highway-primary_link-bridge::bridgewhite # line::bridgewhite z14- (also has line z11-, line::border z13-, line::bridgeblack z14-, pathtext z11-, shield::shield z11-)
highway-residential-bridge::bridgewhite # line::bridgewhite z14- (also has line z12-, line::border z14-, line::bridgeblack z14-, pathtext z13-, shield::shield z15-)
highway-road-bridge::bridgewhite # line::bridgewhite z16- (also has line z12-, line::border z14-, line::bridgeblack z16-, pathtext z14-)
highway-secondary-bridge::bridgewhite # line::bridgewhite z14- (also has line z10-, line::border z10-, line::bridgeblack z14-, pathtext z10-, shield::shield z12-)
highway-secondary_link-bridge::bridgewhite # line::bridgewhite z14- (also has line z13-, line::border z13-, line::bridgeblack z14-, pathtext z16-)
highway-service-bridge::bridgewhite # line::bridgewhite z15- (also has line z15-, line::border z15-, line::bridgeblack z15-, pathtext z16-)
highway-steps-bridge::bridgewhite # line::bridgewhite z15- (also has line z15-, line::border z15-, line::bridgeblack z17-, pathtext z16-)
highway-tertiary-bridge::bridgewhite # line::bridgewhite z14- (also has line z11-, line::border z11-, line::bridgeblack z14-, pathtext z12-, shield::shield z13-)
highway-tertiary_link-bridge::bridgewhite # line::bridgewhite z14- (also has line z14-, line::border z14-, line::bridgeblack z14-, pathtext z18-)
highway-track-bridge::bridgewhite # line::bridgewhite z15- (also has line z15-, line::bridgeblack z17-, pathtext z15-)
highway-trunk-bridge::bridgewhite # line::bridgewhite z13- (also has line z6-, line::bridgeblack z13-, pathtext z10-, shield::shield z10-)
highway-trunk_link-bridge::bridgewhite # line::bridgewhite z14- (also has line z10-, line::bridgeblack z14-, pathtext z10-, shield::shield z10-)
highway-unclassified-bridge::bridgewhite # line::bridgewhite z14- (also has line z11-, line::bridgeblack z14-, pathtext z13-)
railway-disused-bridge::bridgewhite # line::bridgewhite z16- (also has line z16-, line::bridgeblack z16-)
highway-trunk-bridge::bridgewhite # line::bridgewhite z13- (also has line z6-, line::border z8-, line::bridgeblack z13-, pathtext z10-, shield::shield z10-)
highway-trunk_link-bridge::bridgewhite # line::bridgewhite z14- (also has line z10-, line::border z11-, line::bridgeblack z14-, pathtext z10-, shield::shield z10-)
highway-unclassified-bridge::bridgewhite # line::bridgewhite z14- (also has line z11-, line::border z13-, line::bridgeblack z14-, pathtext z13-)
railway-abandoned-bridge::bridgewhite # line::bridgewhite z16- (also has line z16-, line::bridgeblack z16-)
railway-light_rail-bridge::bridgewhite # line::bridgewhite z13- (also has line z13-, line::bridgeblack z16-, line::dash z16-)
railway-miniature-bridge::bridgewhite # line::bridgewhite z16- (also has line z16-, line::bridgeblack z16-)
railway-preserved-bridge::bridgewhite # line::bridgewhite z15- (also has line z15-, line::bridgeblack z16-)
@@ -367,31 +485,31 @@ railway-rail-spur-bridge::bridgewhite # line::bridgewhite z15- (al
railway-rail-tourism-bridge::bridgewhite # line::bridgewhite z13- (also has line z10-, line::bridgeblack z16-, line::dash z16-, pathtext z14-)
railway-rail-utility-bridge::bridgewhite # line::bridgewhite z13- (also has line z13-, line::bridgeblack z16-, line::dash z17-)
railway-subway-bridge::bridgewhite # line::bridgewhite z13- (also has line z13-, line::bridgeblack z16-, line::dash z16-)
=== 150
=== 135
highway-bridleway-bridge::bridgeblack # line::bridgeblack z17- (also has line z14-, line::bridgewhite z15-, pathtext z15-)
highway-busway-bridge::bridgeblack # line::bridgeblack z15- (also has line z15-, line::bridgewhite z15-, pathtext z16-)
highway-busway-bridge::bridgeblack # line::bridgeblack z15- (also has line z15-, line::border z15-, line::bridgewhite z15-, pathtext z16-)
highway-cycleway-bridge::bridgeblack # line::bridgeblack z17- (also has line z13-, line::bridgewhite z15-, pathtext z15-)
highway-footway-bridge::bridgeblack # line::bridgeblack z17- (also has line z15-, line::bridgewhite z15-, pathtext z15-)
highway-motorway-bridge::bridgeblack # line::bridgeblack z13- (also has line z6-, line::bridgewhite z13-, pathtext z10-, shield::shield z10-)
highway-motorway_link-bridge::bridgeblack # line::bridgeblack z14- (also has line z10-, line::bridgewhite z14-, pathtext z10-, shield::shield z10-)
highway-footway-bridge::bridgeblack # line::bridgeblack z17- (also has line z15-, line::border z15-, line::bridgewhite z15-, pathtext z15-)
highway-motorway-bridge::bridgeblack # line::bridgeblack z13- (also has line z6-, line::border z8-, line::bridgewhite z13-, pathtext z10-, shield::shield z10-)
highway-motorway_link-bridge::bridgeblack # line::bridgeblack z14- (also has line z10-, line::border z11-, line::bridgewhite z14-, pathtext z10-, shield::shield z10-)
highway-path-bridge::bridgeblack # line::bridgeblack z17- (also has line z15-, line::bridgewhite z15-, pathtext z15-)
highway-pedestrian-bridge::bridgeblack # line::bridgeblack z14- (also has line z13-, line::bridgewhite z13-, pathtext z14-)
highway-primary-bridge::bridgeblack # line::bridgeblack z14- (also has line z8-, line::bridgewhite z14-, pathtext z10-, shield::shield z10-)
highway-primary_link-bridge::bridgeblack # line::bridgeblack z14- (also has line z11-, line::bridgewhite z14-, pathtext z11-, shield::shield z11-)
highway-residential-bridge::bridgeblack # line::bridgeblack z14- (also has line z12-, line::bridgewhite z14-, pathtext z13-, shield::shield z15-)
highway-road-bridge::bridgeblack # line::bridgeblack z16- (also has line z12-, line::bridgewhite z16-, pathtext z14-)
highway-secondary-bridge::bridgeblack # line::bridgeblack z14- (also has line z10-, line::bridgewhite z14-, pathtext z10-, shield::shield z12-)
highway-secondary_link-bridge::bridgeblack # line::bridgeblack z14- (also has line z13-, line::bridgewhite z14-, pathtext z16-)
highway-service-bridge::bridgeblack # line::bridgeblack z15- (also has line z15-, line::bridgewhite z15-, pathtext z16-)
highway-steps-bridge::bridgeblack # line::bridgeblack z17- (also has line z15-, line::bridgewhite z15-, pathtext z16-)
highway-tertiary-bridge::bridgeblack # line::bridgeblack z14- (also has line z11-, line::bridgewhite z14-, pathtext z12-, shield::shield z13-)
highway-tertiary_link-bridge::bridgeblack # line::bridgeblack z14- (also has line z14-, line::bridgewhite z14-, pathtext z18-)
highway-pedestrian-bridge::bridgeblack # line::bridgeblack z14- (also has line z13-, line::border z14-, line::bridgewhite z13-, pathtext z14-)
highway-primary-bridge::bridgeblack # line::bridgeblack z14- (also has line z8-, line::border z10-, line::bridgewhite z14-, pathtext z10-, shield::shield z10-)
highway-primary_link-bridge::bridgeblack # line::bridgeblack z14- (also has line z11-, line::border z13-, line::bridgewhite z14-, pathtext z11-, shield::shield z11-)
highway-residential-bridge::bridgeblack # line::bridgeblack z14- (also has line z12-, line::border z14-, line::bridgewhite z14-, pathtext z13-, shield::shield z15-)
highway-road-bridge::bridgeblack # line::bridgeblack z16- (also has line z12-, line::border z14-, line::bridgewhite z16-, pathtext z14-)
highway-secondary-bridge::bridgeblack # line::bridgeblack z14- (also has line z10-, line::border z10-, line::bridgewhite z14-, pathtext z10-, shield::shield z12-)
highway-secondary_link-bridge::bridgeblack # line::bridgeblack z14- (also has line z13-, line::border z13-, line::bridgewhite z14-, pathtext z16-)
highway-service-bridge::bridgeblack # line::bridgeblack z15- (also has line z15-, line::border z15-, line::bridgewhite z15-, pathtext z16-)
highway-steps-bridge::bridgeblack # line::bridgeblack z17- (also has line z15-, line::border z15-, line::bridgewhite z15-, pathtext z16-)
highway-tertiary-bridge::bridgeblack # line::bridgeblack z14- (also has line z11-, line::border z11-, line::bridgewhite z14-, pathtext z12-, shield::shield z13-)
highway-tertiary_link-bridge::bridgeblack # line::bridgeblack z14- (also has line z14-, line::border z14-, line::bridgewhite z14-, pathtext z18-)
highway-track-bridge::bridgeblack # line::bridgeblack z17- (also has line z15-, line::bridgewhite z15-, pathtext z15-)
highway-trunk-bridge::bridgeblack # line::bridgeblack z13- (also has line z6-, line::bridgewhite z13-, pathtext z10-, shield::shield z10-)
highway-trunk_link-bridge::bridgeblack # line::bridgeblack z14- (also has line z10-, line::bridgewhite z14-, pathtext z10-, shield::shield z10-)
highway-unclassified-bridge::bridgeblack # line::bridgeblack z14- (also has line z11-, line::bridgewhite z14-, pathtext z13-)
railway-disused-bridge::bridgeblack # line::bridgeblack z16- (also has line z16-, line::bridgewhite z16-)
highway-trunk-bridge::bridgeblack # line::bridgeblack z13- (also has line z6-, line::border z8-, line::bridgewhite z13-, pathtext z10-, shield::shield z10-)
highway-trunk_link-bridge::bridgeblack # line::bridgeblack z14- (also has line z10-, line::border z11-, line::bridgewhite z14-, pathtext z10-, shield::shield z10-)
highway-unclassified-bridge::bridgeblack # line::bridgeblack z14- (also has line z11-, line::border z13-, line::bridgewhite z14-, pathtext z13-)
railway-abandoned-bridge::bridgeblack # line::bridgeblack z16- (also has line z16-, line::bridgewhite z16-)
railway-light_rail-bridge::bridgeblack # line::bridgeblack z16- (also has line z13-, line::bridgewhite z13-, line::dash z16-)
railway-miniature-bridge::bridgeblack # line::bridgeblack z16- (also has line z16-, line::bridgewhite z16-)
railway-preserved-bridge::bridgeblack # line::bridgeblack z16- (also has line z15-, line::bridgewhite z15-)
@@ -404,14 +522,14 @@ railway-rail-spur-bridge::bridgeblack # line::bridgeblack z16- (al
railway-rail-tourism-bridge::bridgeblack # line::bridgeblack z16- (also has line z10-, line::bridgewhite z13-, line::dash z16-, pathtext z14-)
railway-rail-utility-bridge::bridgeblack # line::bridgeblack z16- (also has line z13-, line::bridgewhite z13-, line::dash z17-)
railway-subway-bridge::bridgeblack # line::bridgeblack z16- (also has line z13-, line::bridgewhite z13-, line::dash z16-)
=== 140
=== 130
building # area z14- (also has caption z17-)
building-garage # area z14- (also has caption z17-)
building-guardhouse # area z14- (also has icon z18-, caption(optional) z18-)
building-has_parts # area z14- (also has caption z17-)
building-train_station # area z14- (also has icon z17-, caption(optional) z17-)
=== 130
=== 120
piste:type-connection # line z15-
piste:type-downhill # line z14- (also has pathtext z15-)
@@ -425,30 +543,30 @@ piste:type-hike # line z15- (also has pathte
piste:type-nordic # line z14- (also has pathtext z15-)
piste:type-skitour # line z14- (also has pathtext z15-)
piste:type-sled # line z14- (also has pathtext z15-)
=== 120
=== 110
building:part # area z16-
=== 110
=== 100
barrier-retaining_wall # line z16-
man_made-embankment # line z16- (also has pathtext z18-)
natural-cliff # line z14- (also has pathtext z16-)
natural-earth_bank # line z14-
=== 100
=== 90
boundary-administrative-2 # line z2-
boundary-administrative-3 # line z4
boundary-administrative-4 # line z5-
=== 90
=== 80
man_made-cutline # line z14-
route-ferry # line z7- (also has pathtext z10-)
=== 80
=== 70
aeroway-runway # line z12-
aeroway-taxiway # line z14-
barrier-ditch # line z16-
=== 70
=== 60
isoline-step_10 # line z15- (also has pathtext z17-)
isoline-step_100 # line z12- (also has pathtext z14-)
@@ -456,7 +574,7 @@ isoline-step_1000 # line z11- (also has pathte
isoline-step_50 # line z14- (also has pathtext z16-)
isoline-step_500 # line z11- (also has pathtext z12-)
isoline-zero # line z15- (also has pathtext z17-)
=== 60
=== 50
man_made-breakwater # line z14- and area z12- (also has caption z17-)
man_made-pier # line z14- and area z12- (also has caption z17-)

View File

@@ -78,20 +78,20 @@ amenity-ferry_terminal # icon z11- (also has captio
railway-station # icon z12- (also has caption(optional) z12-)
=== 6800
highway-motorway # pathtext z10- (also has shield::shield z10-, line z6-)
highway-motorway-bridge # pathtext z10- (also has shield::shield z10-, line z6-, line::bridgeblack z13-, line::bridgewhite z13-)
highway-motorway-tunnel # pathtext z10- (also has shield::shield z10-, line z6-, line(casing) z12-)
highway-trunk # pathtext z10- (also has shield::shield z10-, line z6-)
highway-trunk-bridge # pathtext z10- (also has shield::shield z10-, line z6-, line::bridgeblack z13-, line::bridgewhite z13-)
highway-trunk-tunnel # pathtext z10- (also has shield::shield z10-, line z6-, line(casing) z12-)
highway-motorway # pathtext z10- (also has shield::shield z10-, line z6-, line::border z8-)
highway-motorway-bridge # pathtext z10- (also has shield::shield z10-, line z6-, line::border z8-, line::bridgeblack z13-, line::bridgewhite z13-)
highway-motorway-tunnel # pathtext z10- (also has shield::shield z10-, line z6-, line::border z8-, line(casing) z12-)
highway-trunk # pathtext z10- (also has shield::shield z10-, line z6-, line::border z8-)
highway-trunk-bridge # pathtext z10- (also has shield::shield z10-, line z6-, line::border z8-, line::bridgeblack z13-, line::bridgewhite z13-)
highway-trunk-tunnel # pathtext z10- (also has shield::shield z10-, line z6-, line::border z8-, line(casing) z12-)
=== 6750
highway-motorway::shield # shield::shield z10- (also has pathtext z10-, line z6-)
highway-motorway-bridge::shield # shield::shield z10- (also has pathtext z10-, line z6-, line::bridgeblack z13-, line::bridgewhite z13-)
highway-motorway-tunnel::shield # shield::shield z10- (also has pathtext z10-, line z6-, line(casing) z12-)
highway-trunk::shield # shield::shield z10- (also has pathtext z10-, line z6-)
highway-trunk-bridge::shield # shield::shield z10- (also has pathtext z10-, line z6-, line::bridgeblack z13-, line::bridgewhite z13-)
highway-trunk-tunnel::shield # shield::shield z10- (also has pathtext z10-, line z6-, line(casing) z12-)
highway-motorway::shield # shield::shield z10- (also has pathtext z10-, line z6-, line::border z8-)
highway-motorway-bridge::shield # shield::shield z10- (also has pathtext z10-, line z6-, line::border z8-, line::bridgeblack z13-, line::bridgewhite z13-)
highway-motorway-tunnel::shield # shield::shield z10- (also has pathtext z10-, line z6-, line::border z8-, line(casing) z12-)
highway-trunk::shield # shield::shield z10- (also has pathtext z10-, line z6-, line::border z8-)
highway-trunk-bridge::shield # shield::shield z10- (also has pathtext z10-, line z6-, line::border z8-, line::bridgeblack z13-, line::bridgewhite z13-)
highway-trunk-tunnel::shield # shield::shield z10- (also has pathtext z10-, line z6-, line::border z8-, line(casing) z12-)
=== 6740
boundary-aboriginal_lands # caption z10-16 (also has line z10-, area z10-16)
@@ -259,31 +259,31 @@ railway-station-subway-yerevan # icon z13- (also has captio
railway-station-subway-yokohama # icon z13- (also has caption(optional) z14-)
=== 6250
highway-primary # pathtext z10- (also has shield::shield z10-, line z8-)
highway-primary-bridge # pathtext z10- (also has shield::shield z10-, line z8-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-primary-tunnel # pathtext z10- (also has shield::shield z10-, line z8-, line(casing) z14-)
highway-primary # pathtext z10- (also has shield::shield z10-, line z8-, line::border z10-)
highway-primary-bridge # pathtext z10- (also has shield::shield z10-, line z8-, line::border z10-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-primary-tunnel # pathtext z10- (also has shield::shield z10-, line z8-, line::border z10-, line(casing) z14-)
route-ferry # pathtext z10- (also has line z7-)
=== 6200
highway-motorway_link # pathtext z10- (also has shield::shield z10-, line z10-)
highway-motorway_link-bridge # pathtext z10- (also has shield::shield z10-, line z10-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-motorway_link-tunnel # pathtext z10- (also has shield::shield z10-, line z10-, line(casing) z13-)
highway-trunk_link # pathtext z10- (also has shield::shield z10-, line z10-)
highway-trunk_link-bridge # pathtext z10- (also has shield::shield z10-, line z10-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-trunk_link-tunnel # pathtext z10- (also has shield::shield z10-, line z10-, line(casing) z13-)
highway-motorway_link # pathtext z10- (also has shield::shield z10-, line z10-, line::border z11-)
highway-motorway_link-bridge # pathtext z10- (also has shield::shield z10-, line z10-, line::border z11-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-motorway_link-tunnel # pathtext z10- (also has shield::shield z10-, line z10-, line::border z11-, line(casing) z13-)
highway-trunk_link # pathtext z10- (also has shield::shield z10-, line z10-, line::border z11-)
highway-trunk_link-bridge # pathtext z10- (also has shield::shield z10-, line z10-, line::border z11-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-trunk_link-tunnel # pathtext z10- (also has shield::shield z10-, line z10-, line::border z11-, line(casing) z13-)
=== 6150
highway-motorway_link::shield # shield::shield z10- (also has pathtext z10-, line z10-)
highway-motorway_link-bridge::shield # shield::shield z10- (also has pathtext z10-, line z10-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-motorway_link-tunnel::shield # shield::shield z10- (also has pathtext z10-, line z10-, line(casing) z13-)
highway-trunk_link::shield # shield::shield z10- (also has pathtext z10-, line z10-)
highway-trunk_link-bridge::shield # shield::shield z10- (also has pathtext z10-, line z10-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-trunk_link-tunnel::shield # shield::shield z10- (also has pathtext z10-, line z10-, line(casing) z13-)
highway-motorway_link::shield # shield::shield z10- (also has pathtext z10-, line z10-, line::border z11-)
highway-motorway_link-bridge::shield # shield::shield z10- (also has pathtext z10-, line z10-, line::border z11-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-motorway_link-tunnel::shield # shield::shield z10- (also has pathtext z10-, line z10-, line::border z11-, line(casing) z13-)
highway-trunk_link::shield # shield::shield z10- (also has pathtext z10-, line z10-, line::border z11-)
highway-trunk_link-bridge::shield # shield::shield z10- (also has pathtext z10-, line z10-, line::border z11-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-trunk_link-tunnel::shield # shield::shield z10- (also has pathtext z10-, line z10-, line::border z11-, line(casing) z13-)
=== 6140
highway-primary_link # pathtext z11- (also has shield::shield z11-, line z11-)
highway-primary_link-bridge # pathtext z11- (also has shield::shield z11-, line z11-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-primary_link-tunnel # pathtext z11- (also has shield::shield z11-, line z11-, line(casing) z14-)
highway-primary_link # pathtext z11- (also has shield::shield z11-, line z11-, line::border z13-)
highway-primary_link-bridge # pathtext z11- (also has shield::shield z11-, line z11-, line::border z13-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-primary_link-tunnel # pathtext z11- (also has shield::shield z11-, line z11-, line::border z13-, line(casing) z14-)
=== 6100
barrier-border_control # icon z14- (also has caption(optional) z14-)
@@ -302,9 +302,9 @@ place-locality # caption z13-
place-neighbourhood # caption z13-
=== 5700
highway-secondary # pathtext z10- (also has shield::shield z12-, line z10-)
highway-secondary-bridge # pathtext z10- (also has shield::shield z12-, line z10-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-secondary-tunnel # pathtext z10- (also has shield::shield z12-, line z10-, line(casing) z16-)
highway-secondary # pathtext z10- (also has shield::shield z12-, line z10-, line::border z10-)
highway-secondary-bridge # pathtext z10- (also has shield::shield z12-, line z10-, line::border z10-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-secondary-tunnel # pathtext z10- (also has shield::shield z12-, line z10-, line::border z10-, line(casing) z16-)
=== 5600
man_made-communications_tower # icon z14- (also has caption(optional) z15-)
@@ -374,13 +374,13 @@ tourism-attraction # icon z14- (also has captio
tourism-gallery # icon z15- (also has caption(optional) z15-)
=== 4300
amenity-charging_station-small # icon z15- (also has caption(optional) z16-, area z15-)
=== 4280
amenity-charging_station-motorcar # icon z14- (also has caption(optional) z14-, area z15-)
amenity-fuel # icon z14- (also has caption(optional) z14-, area z15-)
=== 4270
amenity-charging_station-motorcar-small # icon z16- (also has caption(optional) z16-, area z15-)
=== 4260
highway-services # icon z14- (also has caption(optional) z14-, area z13-)
=== 4250
@@ -424,23 +424,13 @@ highway-rest_area # icon z15- (also has captio
tourism-camp_site # icon z16- (also has caption(optional) z16-, area z13-)
tourism-caravan_site # icon z16- (also has caption(optional) z16-)
tourism-chalet # icon z16- (also has caption(optional) z16-)
=== 3850
shop-car_repair-tyres # icon z15- (also has caption(optional) z15-)
=== 3800
amenity-charging_station-motorcycle # icon z16- (also has caption(optional) z16-, area z16-)
=== 3752
amenity-charging_station-bicycle # icon z16- (also has caption(optional) z16-, area z16-)
=== 3751
amenity-charging_station # icon z16- (also has caption(optional) z16-, area z16-)
amenity-charging_station # icon z16- (also has caption(optional) z16-)
amenity-charging_station-bicycle # icon z16- (also has caption(optional) z16-)
shop-car_repair-tyres # icon z15- (also has caption(optional) z15-)
=== 3750
amenity-charging_station-carless # icon z16- (also has caption(optional) z16-, area z16-)
=== 3749
railway-subway_entrance # icon z16- (also has caption(optional) z17-)
railway-subway_entrance-adana # icon z16- (also has caption(optional) z17-)
railway-subway_entrance-algiers # icon z16- (also has caption(optional) z17-)
@@ -591,14 +581,14 @@ shop-supermarket # icon z16- (also has captio
=== 3200
area:highway-pedestrian # caption z15- (also has area z14-)
highway-pedestrian # pathtext z14- (also has line z13-)
highway-pedestrian-area # pathtext z14- (also has line z13-, area z14-)
highway-pedestrian-bridge # pathtext z14- (also has line z13-, line::bridgeblack z14-, line::bridgewhite z13-)
highway-pedestrian-square # pathtext z14- (also has line z13-, area z14-)
highway-pedestrian-tunnel # pathtext z14- (also has line z13-, line(casing) z16-)
highway-tertiary # pathtext z12- (also has shield::shield z13-, line z11-)
highway-tertiary-bridge # pathtext z12- (also has shield::shield z13-, line z11-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-tertiary-tunnel # pathtext z12- (also has shield::shield z13-, line z11-, line(casing) z16-)
highway-pedestrian # pathtext z14- (also has line z13-, line::border z14-)
highway-pedestrian-area # pathtext z14- (also has line z13-, line::border z14-, area z14-)
highway-pedestrian-bridge # pathtext z14- (also has line z13-, line::border z14-, line::bridgeblack z14-, line::bridgewhite z13-)
highway-pedestrian-square # pathtext z14- (also has line z13-, line::border z14-, area z14-)
highway-pedestrian-tunnel # pathtext z14- (also has line z13-, line::border z14-, line(casing) z16-)
highway-tertiary # pathtext z12- (also has shield::shield z13-, line z11-, line::border z11-)
highway-tertiary-bridge # pathtext z12- (also has shield::shield z13-, line z11-, line::border z11-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-tertiary-tunnel # pathtext z12- (also has shield::shield z13-, line z11-, line::border z11-, line(casing) z16-)
natural-strait # caption z13- (also has line z13-)
natural-water # caption z10- (also has area z1-)
natural-water-pond # caption z10- (also has area z1-)
@@ -610,10 +600,10 @@ waterway-dam # pathtext z15- (also has li
waterway-river # pathtext z11- (also has line z10-)
=== 3150
highway-unclassified # pathtext z13- (also has line z11-)
highway-unclassified-area # pathtext z13- (also has line z11-)
highway-unclassified-bridge # pathtext z13- (also has line z11-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-unclassified-tunnel # pathtext z13- (also has line z11-, line(casing) z16-)
highway-unclassified # pathtext z13- (also has line z11-, line::border z13-)
highway-unclassified-area # pathtext z13- (also has line z11-, line::border z13-)
highway-unclassified-bridge # pathtext z13- (also has line z11-, line::border z13-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-unclassified-tunnel # pathtext z13- (also has line z11-, line::border z13-, line(casing) z16-)
=== 3100
amenity-water_point # icon z17- (also has caption(optional) z18-)
@@ -645,46 +635,46 @@ aerialway-mixed_lift # pathtext z15- (also has li
aerialway-platter # pathtext z15- (also has line z13-, line::dash z13-)
aerialway-rope_tow # pathtext z15- (also has line z13-, line::dash z13-)
aerialway-t-bar # pathtext z15- (also has line z13-, line::dash z13-)
highway-residential # pathtext z13- (also has shield::shield z15-, line z12-)
highway-residential-area # pathtext z13- (also has shield::shield z15-, line z12-)
highway-residential-bridge # pathtext z13- (also has shield::shield z15-, line z12-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-residential-tunnel # pathtext z13- (also has shield::shield z15-, line z12-, line(casing) z16-)
highway-road # pathtext z14- (also has line z12-)
highway-road-bridge # pathtext z14- (also has line z12-, line::bridgeblack z16-, line::bridgewhite z16-)
highway-road-tunnel # pathtext z14- (also has line z12-)
highway-secondary_link # pathtext z16- (also has line z13-)
highway-secondary_link-bridge # pathtext z16- (also has line z13-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-secondary_link-tunnel # pathtext z16- (also has line z13-, line(casing) z16-)
highway-residential # pathtext z13- (also has shield::shield z15-, line z12-, line::border z14-)
highway-residential-area # pathtext z13- (also has shield::shield z15-, line z12-, line::border z14-)
highway-residential-bridge # pathtext z13- (also has shield::shield z15-, line z12-, line::border z14-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-residential-tunnel # pathtext z13- (also has shield::shield z15-, line z12-, line::border z14-, line(casing) z16-)
highway-road # pathtext z14- (also has line z12-, line::border z14-)
highway-road-bridge # pathtext z14- (also has line z12-, line::border z14-, line::bridgeblack z16-, line::bridgewhite z16-)
highway-road-tunnel # pathtext z14- (also has line z12-, line::border z14-)
highway-secondary_link # pathtext z16- (also has line z13-, line::border z13-)
highway-secondary_link-bridge # pathtext z16- (also has line z13-, line::border z13-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-secondary_link-tunnel # pathtext z16- (also has line z13-, line::border z13-, line(casing) z16-)
=== 3000
highway-primary::shield # shield::shield z10- (also has pathtext z10-, line z8-)
highway-primary-bridge::shield # shield::shield z10- (also has pathtext z10-, line z8-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-primary-tunnel::shield # shield::shield z10- (also has pathtext z10-, line z8-, line(casing) z14-)
highway-primary::shield # shield::shield z10- (also has pathtext z10-, line z8-, line::border z10-)
highway-primary-bridge::shield # shield::shield z10- (also has pathtext z10-, line z8-, line::border z10-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-primary-tunnel::shield # shield::shield z10- (also has pathtext z10-, line z8-, line::border z10-, line(casing) z14-)
=== 2975
highway-primary_link::shield # shield::shield z11- (also has pathtext z11-, line z11-)
highway-primary_link-bridge::shield # shield::shield z11- (also has pathtext z11-, line z11-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-primary_link-tunnel::shield # shield::shield z11- (also has pathtext z11-, line z11-, line(casing) z14-)
highway-primary_link::shield # shield::shield z11- (also has pathtext z11-, line z11-, line::border z13-)
highway-primary_link-bridge::shield # shield::shield z11- (also has pathtext z11-, line z11-, line::border z13-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-primary_link-tunnel::shield # shield::shield z11- (also has pathtext z11-, line z11-, line::border z13-, line(casing) z14-)
=== 2970
highway-secondary::shield # shield::shield z12- (also has pathtext z10-, line z10-)
highway-secondary-bridge::shield # shield::shield z12- (also has pathtext z10-, line z10-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-secondary-tunnel::shield # shield::shield z12- (also has pathtext z10-, line z10-, line(casing) z16-)
highway-secondary::shield # shield::shield z12- (also has pathtext z10-, line z10-, line::border z10-)
highway-secondary-bridge::shield # shield::shield z12- (also has pathtext z10-, line z10-, line::border z10-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-secondary-tunnel::shield # shield::shield z12- (also has pathtext z10-, line z10-, line::border z10-, line(casing) z16-)
=== 2965
highway-tertiary::shield # shield::shield z13- (also has pathtext z12-, line z11-)
highway-tertiary-bridge::shield # shield::shield z13- (also has pathtext z12-, line z11-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-tertiary-tunnel::shield # shield::shield z13- (also has pathtext z12-, line z11-, line(casing) z16-)
highway-tertiary::shield # shield::shield z13- (also has pathtext z12-, line z11-, line::border z11-)
highway-tertiary-bridge::shield # shield::shield z13- (also has pathtext z12-, line z11-, line::border z11-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-tertiary-tunnel::shield # shield::shield z13- (also has pathtext z12-, line z11-, line::border z11-, line(casing) z16-)
=== 2960
barrier-city_wall # pathtext z16- (also has line z14-)
historic-citywalls # pathtext z16- (also has line z14-)
=== 2957
highway-residential::shield # shield::shield z15- (also has pathtext z13-, line z12-)
highway-residential-area::shield # shield::shield z15- (also has pathtext z13-, line z12-)
highway-residential-bridge::shield # shield::shield z15- (also has pathtext z13-, line z12-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-residential-tunnel::shield # shield::shield z15- (also has pathtext z13-, line z12-, line(casing) z16-)
highway-residential::shield # shield::shield z15- (also has pathtext z13-, line z12-, line::border z14-)
highway-residential-area::shield # shield::shield z15- (also has pathtext z13-, line z12-, line::border z14-)
highway-residential-bridge::shield # shield::shield z15- (also has pathtext z13-, line z12-, line::border z14-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-residential-tunnel::shield # shield::shield z15- (also has pathtext z13-, line z12-, line::border z14-, line(casing) z16-)
=== 2955
highway-cycleway # pathtext z15- (also has line z13-)
@@ -693,14 +683,14 @@ highway-cycleway-tunnel # pathtext z15- (also has li
=== 2953
area:highway-footway # caption z15- (also has area z14-)
highway-footway # pathtext z15- (also has line z15-)
highway-footway-area # pathtext z15- (also has line z15-, area z14-)
highway-footway-bicycle # pathtext z15- (also has line z15-, line::cycleline z15-)
highway-footway-bridge # pathtext z15- (also has line z15-, line::bridgeblack z17-, line::bridgewhite z15-)
highway-footway-tunnel # pathtext z15- (also has line z15-, line::tunnelBackground z17-, line::tunnelCasing z17-)
highway-tertiary_link # pathtext z18- (also has line z14-)
highway-tertiary_link-bridge # pathtext z18- (also has line z14-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-tertiary_link-tunnel # pathtext z18- (also has line z14-, line(casing) z16-)
highway-footway # pathtext z15- (also has line z15-, line::border z15-)
highway-footway-area # pathtext z15- (also has line z15-, line::border z15-, area z14-)
highway-footway-bicycle # pathtext z15- (also has line z15-, line::border z15-, line::cycleline z15-)
highway-footway-bridge # pathtext z15- (also has line z15-, line::border z15-, line::bridgeblack z17-, line::bridgewhite z15-)
highway-footway-tunnel # pathtext z15- (also has line z15-, line::border z15-, line::tunnelBackground z17-, line::tunnelCasing z17-)
highway-tertiary_link # pathtext z18- (also has line z14-, line::border z14-)
highway-tertiary_link-bridge # pathtext z18- (also has line z14-, line::border z14-, line::bridgeblack z14-, line::bridgewhite z14-)
highway-tertiary_link-tunnel # pathtext z18- (also has line z14-, line::border z14-, line(casing) z16-)
=== 2950
natural-water-basin # caption z10- (also has area z1-)
@@ -717,7 +707,7 @@ waterway-stream-intermittent # pathtext z13- (also has li
waterway-weir # pathtext z15- (also has line z14-)
=== 2900
highway-ford # icon z16- and pathtext z16- (also has line z13-)
highway-ford # icon z16- and pathtext z16- (also has line z13-, line::border z14-)
natural-rock # icon z17- (also has caption(optional) z17-)
=== 2850
@@ -733,9 +723,9 @@ highway-path-horse # pathtext z15- (also has li
highway-path-tunnel # pathtext z15- (also has line z15-, line::tunnelBackground z17-, line::tunnelCasing z17-)
=== 2820
highway-steps # pathtext z16- (also has line z15-)
highway-steps-bridge # pathtext z16- (also has line z15-, line::bridgeblack z17-, line::bridgewhite z15-)
highway-steps-tunnel # pathtext z16- (also has line z15-, line::tunnelBackground z17-, line::tunnelCasing z17-)
highway-steps # pathtext z16- (also has line z15-, line::border z15-)
highway-steps-bridge # pathtext z16- (also has line z15-, line::border z15-, line::bridgeblack z17-, line::bridgewhite z15-)
highway-steps-tunnel # pathtext z16- (also has line z15-, line::border z15-, line::tunnelBackground z17-, line::tunnelCasing z17-)
=== 2810
highway-track # pathtext z15- (also has line z15-)
@@ -745,12 +735,12 @@ highway-track-no-access # pathtext z15- (also has li
highway-track-tunnel # pathtext z15- (also has line z15-, line::tunnelBackground z17-, line::tunnelCasing z17-)
=== 2780
highway-service # pathtext z16- (also has line z15-)
highway-service-area # pathtext z16- (also has line z15-)
highway-service-bridge # pathtext z16- (also has line z15-, line::bridgeblack z15-, line::bridgewhite z15-)
highway-service-driveway # pathtext z16- (also has line z16-)
highway-service-parking_aisle # pathtext z16- (also has line z15-)
highway-service-tunnel # pathtext z16- (also has line(casing) z15-, line z15-)
highway-service # pathtext z16- (also has line z15-, line::border z15-)
highway-service-area # pathtext z16- (also has line z15-, line::border z15-)
highway-service-bridge # pathtext z16- (also has line z15-, line::border z15-, line::bridgeblack z15-, line::bridgewhite z15-)
highway-service-driveway # pathtext z16- (also has line z16-, line::border z16-)
highway-service-parking_aisle # pathtext z16- (also has line z15-, line::border z15-)
highway-service-tunnel # pathtext z16- (also has line z15-, line::border z15-, line(casing) z15-)
piste:type-downhill # pathtext z15- (also has line z14-)
piste:type-downhill-advanced # pathtext z15- (also has line z14-)
piste:type-downhill-easy # pathtext z15- (also has line z14-)
@@ -833,9 +823,9 @@ attraction-historic # icon z17- (also has captio
attraction-maze # icon z17- (also has caption(optional) z17-)
attraction-roller_coaster # icon z17- (also has caption(optional) z17-)
highway-construction # pathtext z15- (also has line z13-)
highway-living_street # pathtext z14- (also has line z12-)
highway-living_street-bridge # pathtext z14- (also has line z12-)
highway-living_street-tunnel # pathtext z14- (also has line z12-, line(casing) z16-)
highway-living_street # pathtext z14- (also has line z12-, line::border z14-)
highway-living_street-bridge # pathtext z14- (also has line z12-, line::border z14-)
highway-living_street-tunnel # pathtext z14- (also has line z12-, line::border z14-, line(casing) z16-)
landuse-plant_nursery # icon z17- (also has caption(optional) z17-, area z12-)
leisure-bowling_alley # icon z17- (also has caption(optional) z17-)
leisure-garden # icon z16- (also has caption(optional) z16-, area z12-)
@@ -902,9 +892,9 @@ barrier-yes # icon z16- (also has captio
leisure-dog_park # icon z16- (also has caption(optional) z16-, area z15-)
=== 2300
highway-busway # pathtext z16- (also has line z15-)
highway-busway-bridge # pathtext z16- (also has line z15-, line::bridgeblack z15-, line::bridgewhite z15-)
highway-busway-tunnel # pathtext z16- (also has line(casing) z15-, line z15-)
highway-busway # pathtext z16- (also has line z15-, line::border z15-)
highway-busway-bridge # pathtext z16- (also has line z15-, line::border z15-, line::bridgeblack z15-, line::bridgewhite z15-)
highway-busway-tunnel # pathtext z16- (also has line z15-, line::border z15-, line(casing) z15-)
=== 2250
amenity-clinic # icon z17- (also has caption(optional) z17-, area z13-)
@@ -1172,7 +1162,7 @@ amenity-nursing_home # icon z17- (also has captio
amenity-prison # icon z17- (also has caption(optional) z17-, area z12-)
amenity-social_facility # icon z17- (also has caption(optional) z17-, area z15-)
amenity-waste_transfer_station # icon z17- (also has caption(optional) z18-, area z13-)
highway-ladder # icon z17- and pathtext z17- (also has line z15-)
highway-ladder # icon z17- and pathtext z17- (also has line z15-, line::border z15-)
landuse-farmland # caption z15- (also has area z10-)
landuse-garages # caption z15- (also has area z13-)
landuse-orchard # caption z15- (also has area z12-)
@@ -1651,13 +1641,13 @@ leisure-swimming_pool-private # icon z17- (also has captio
# tourism-gallery # caption(optional) z15- (also has icon z15-)
# === -5700
# amenity-charging_station-small # caption(optional) z16- (also has icon z15-, area z15-)
# === -5720
# amenity-charging_station-motorcar # caption(optional) z14- (also has icon z14-, area z15-)
# amenity-fuel # caption(optional) z14- (also has icon z14-, area z15-)
# === -5730
# amenity-charging_station-motorcar-small # caption(optional) z16- (also has icon z16-, area z15-)
# === -5740
# highway-services # caption(optional) z14- (also has icon z14-, area z13-)
# === -5750
@@ -1701,23 +1691,13 @@ leisure-swimming_pool-private # icon z17- (also has captio
# tourism-camp_site # caption(optional) z16- (also has icon z16-, area z13-)
# tourism-caravan_site # caption(optional) z16- (also has icon z16-)
# tourism-chalet # caption(optional) z16- (also has icon z16-)
# === -6150
# shop-car_repair-tyres # caption(optional) z15- (also has icon z15-)
# === -6200
# amenity-charging_station-motorcycle # caption(optional) z16- (also has icon z16-, area z16-)
# === -6248
# amenity-charging_station-bicycle # caption(optional) z16- (also has icon z16-, area z16-)
# === -6249
# amenity-charging_station # caption(optional) z16- (also has icon z16-, area z16-)
# amenity-charging_station # caption(optional) z16- (also has icon z16-)
# amenity-charging_station-bicycle # caption(optional) z16- (also has icon z16-)
# shop-car_repair-tyres # caption(optional) z15- (also has icon z15-)
# === -6250
# amenity-charging_station-carless # caption(optional) z16- (also has icon z16-, area z16-)
# === -6251
# railway-subway_entrance # caption(optional) z17- (also has icon z16-)
# railway-subway_entrance-adana # caption(optional) z17- (also has icon z16-)
# railway-subway_entrance-algiers # caption(optional) z17- (also has icon z16-)
@@ -2456,7 +2436,7 @@ emergency-life_ring # icon z19- (also has captio
power-substation # icon z17- (also has caption(optional) z18-, area z13-)
=== -9990
natural-tree # icon z18-
natural-tree # icon z18- (also has caption(optional) z18-)
=== -9991
# amenity-bench # caption(optional) z19- (also has icon z18-)
@@ -2494,6 +2474,7 @@ entrance-service # icon z19- (also has captio
# man_made-survey_point # caption(optional) z18- (also has icon z18-)
# man_made-telescope # caption(optional) z18- (also has icon z18-)
# man_made-telescope-optical # caption(optional) z17- (also has icon z17-)
# natural-tree # caption(optional) z18- (also has icon z18-)
# power-substation # caption(optional) z18- (also has icon z17-, area z13-)
# tourism-information # caption(optional) z16- (also has icon z16-)
# tourism-information-board # caption(optional) z16- (also has icon z16-)

View File

@@ -161,11 +161,22 @@
@path: #8E4E1D;
@path_expert: #3D2617;
@bridleway: #3D361E;
@motorway0_border: #C26E00;
@motorway1_border: #D87A00;
@trunk0_border: #DA8816;
@trunk1_border: #DA8F2B;
@primary0_border: #DDA546;
@primary1_border: #E1A93A;
@primary2_border: #E1AF4E;
@secondary0_border: #E6BA51;
@secondary1_border: #E6C068;
@minor_road_border: #000000;
/* 5.2 Bridges */
@bridge_background: #FCF1DE;
@bridge_casing: #E1D4BE;
@bridge_minor_road_border: #E3D9C8;
/* 5.3 Tunnels */

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