Compare commits

..

14 Commits

Author SHA1 Message Date
Jean-Baptiste
ffea67a2b3 [android] Rework socials networks on the place page
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
2025-11-14 23:32:48 +01:00
map-per
9bfebc2046 Add "Business is vacant"/'disused' option to editor (#526)
Signed-off-by: map-per <map-per@gmx.de>
Co-authored-by: map-per <map-per@gmx.de>
Co-committed-by: map-per <map-per@gmx.de>
2025-11-14 22:10:02 +01:00
Jean-Baptiste
24b498e386 [android] Fix FAB styles not apply
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
2025-11-14 19:34:23 +01:00
Jean-Baptiste
0a0bb61942 [android] Improve opening_hours layout in the editor
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
2025-11-14 19:26:33 +01:00
x7z4w
d78fe108ad [tools][styles] Suppress drules diffs output
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-11-14 14:08:02 +01:00
x7z4w
4aa441101c [tools] Cache python bytecode
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-11-14 14:08:02 +01:00
Konstantin Pastbin
2d275d9148 [generator] Use more threads to Index Taiwan_*
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-11-14 13:59:25 +01:00
Konstantin Pastbin
0814b574a9 [core] Add mapgen to default CDNs list
Signed-off-by: Konstantin Pastbin <konstantin.pastbin@gmail.com>
2025-11-14 10:04:40 +01:00
patepelo
b4abce822e [search] Improve search terms and synonyms
Signed-off-by: patepelo <developing.anton@gmail.com>
Co-authored-by: patepelo <developing.anton@gmail.com>
Co-committed-by: patepelo <developing.anton@gmail.com>
2025-11-14 10:04:10 +01:00
gekeleda
2e0443097a [android] Improve map language settings
Signed-off-by: gekeleda <git@davidgekeler.eu>
Co-authored-by: gekeleda <git@davidgekeler.eu>
Co-committed-by: gekeleda <git@davidgekeler.eu>
2025-11-14 07:58:47 +01:00
Jean-Baptiste
f6426fe689 [android] Update Add schedule button to M3
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
2025-11-13 22:26:42 +01:00
Yannik Bloscheck
6296de6ce9 [types] Add day spas
Signed-off-by: Yannik Bloscheck <git@yannikbloscheck.com>
2025-11-13 17:59:17 +01:00
NoelClick
4f63c5fdcf [android] Hide offline explanation after two downloads
Signed-off-by: NoelClick <dev@noel.click>
Co-authored-by: NoelClick <dev@noel.click>
Co-committed-by: NoelClick <dev@noel.click>
2025-11-13 13:32:01 +01:00
x7z4w
e4648fbc1f Revert "[core][drape] Making arrows smooth again"
Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
2025-11-13 11:36:21 +01:00
36 changed files with 466 additions and 488 deletions

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;
@@ -26,6 +27,10 @@ public class OnmapDownloader implements MwmActivity.LeftAnimationTrackListener
{
private static boolean sAutodownloadLocked;
private static final int HIDE_THRESHOLD = 2;
// Default bundles (e.g., world/coasts). Used to approximate “user-downloaded” count.
private static final int DEFAULT_MAP_BASELINE = 2;
private final MwmActivity mActivity;
private final View mFrame;
private final MaterialTextView mParent;
@@ -33,6 +38,7 @@ public class OnmapDownloader implements MwmActivity.LeftAnimationTrackListener
private final MaterialTextView mSize;
private final WheelProgressView mProgress;
private final MaterialButton mButton;
private final View mOfflineExplanation;
private int mStorageSubscriptionSlot;
@@ -43,8 +49,10 @@ public class OnmapDownloader implements MwmActivity.LeftAnimationTrackListener
@Override
public void onStatusChanged(List<MapManager.StorageCallbackData> data)
{
if (mCurrentCountry == null)
if (mCurrentCountry == null) {
updateOfflineExplanationVisibility();
return;
}
for (MapManager.StorageCallbackData item : data)
{
@@ -58,7 +66,7 @@ public class OnmapDownloader implements MwmActivity.LeftAnimationTrackListener
{
mCurrentCountry.update();
updateProgressState(false);
updateOfflineExplanationVisibility();
return;
}
}
@@ -101,6 +109,12 @@ public class OnmapDownloader implements MwmActivity.LeftAnimationTrackListener
return enqueued || progress || applying;
}
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);
}
private void updateProgressState(boolean shouldAutoDownload)
{
updateStateInternal(shouldAutoDownload);
@@ -108,6 +122,8 @@ public class OnmapDownloader implements MwmActivity.LeftAnimationTrackListener
private void updateStateInternal(boolean shouldAutoDownload)
{
updateOfflineExplanationVisibility();
boolean showFrame =
(mCurrentCountry != null && !mCurrentCountry.present && !RoutingController.get().isNavigating());
if (showFrame)
@@ -191,6 +207,9 @@ public class OnmapDownloader implements MwmActivity.LeftAnimationTrackListener
mProgress = controls.findViewById(R.id.wheel_downloader_progress);
mButton = controls.findViewById(R.id.downloader_button);
mOfflineExplanation = mFrame.findViewById(R.id.offline_explanation);
updateOfflineExplanationVisibility();
mProgress.setOnClickListener(v -> {
if (mCurrentCountry == null)
return;
@@ -247,6 +266,7 @@ public class OnmapDownloader implements MwmActivity.LeftAnimationTrackListener
public void onResume()
{
updateOfflineExplanationVisibility();
if (mStorageSubscriptionSlot == 0)
{
mStorageSubscriptionSlot = MapManager.nativeSubscribe(mStorageCallback);

View File

@@ -1,7 +1,10 @@
package app.organicmaps.editor;
import android.content.res.Configuration;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.core.os.ConfigurationCompat;
import androidx.core.os.LocaleListCompat;
import androidx.fragment.app.Fragment;
import app.organicmaps.base.BaseMwmRecyclerFragment;
import app.organicmaps.sdk.editor.Editor;
@@ -11,6 +14,7 @@ import java.util.Collections;
import java.util.Comparator;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Set;
public class LanguagesFragment extends BaseMwmRecyclerFragment<LanguagesAdapter>
@@ -32,10 +36,23 @@ public class LanguagesFragment extends BaseMwmRecyclerFragment<LanguagesAdapter>
Set<String> existingLanguages =
args != null ? new HashSet<>(args.getStringArrayList(EXISTING_LOCALIZED_NAMES)) : new HashSet<>();
Configuration config = requireContext().getResources().getConfiguration();
LocaleListCompat systemLocales = ConfigurationCompat.getLocales(config);
List<Language> languages = new ArrayList<>();
List<Language> systemLanguages = new ArrayList<>();
for (Language lang : Editor.nativeGetSupportedLanguages(false))
{
if (existingLanguages.contains(lang.code))
// Separately extract system languages
for (int i = 0; i < systemLocales.size(); i++)
{
Locale locale = systemLocales.get(i);
if (locale != null && locale.getLanguage().equals(lang.code))
systemLanguages.add(lang);
}
if (existingLanguages.contains(lang.code) || systemLanguages.contains(lang))
continue;
languages.add(lang);
@@ -43,6 +60,8 @@ public class LanguagesFragment extends BaseMwmRecyclerFragment<LanguagesAdapter>
Collections.sort(languages, Comparator.comparing(lhs -> lhs.name));
languages.addAll(0, systemLanguages);
return new LanguagesAdapter(this, languages.toArray(new Language[languages.size()]));
}

View File

@@ -1,5 +1,6 @@
package app.organicmaps.editor;
import android.content.res.ColorStateList;
import android.util.SparseArray;
import android.view.LayoutInflater;
import android.view.View;
@@ -11,6 +12,7 @@ import androidx.annotation.IdRes;
import androidx.annotation.IntRange;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.SwitchCompat;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.RecyclerView;
import app.organicmaps.R;
@@ -381,6 +383,29 @@ class SimpleTimetableAdapter extends RecyclerView.Adapter<SimpleTimetableAdapter
final boolean enable = mComplementItem != null && mComplementItem.weekdays.length != 0;
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)
});
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)
});
mAdd.setBackgroundTintList(bgButtonColor);
mAdd.setTextColor(textButtonColor);
mAdd.setText(enable ? text + " (" + TimeFormatUtils.formatWeekdays(mComplementItem) + ")" : text);
}
}

View File

@@ -20,6 +20,8 @@ import app.organicmaps.sdk.bookmarks.data.Metadata;
import app.organicmaps.util.Utils;
import app.organicmaps.widget.placepage.PlacePageUtils;
import app.organicmaps.widget.placepage.PlacePageViewModel;
import com.google.android.material.imageview.ShapeableImageView;
import com.google.android.material.textview.MaterialTextView;
import java.util.ArrayList;
import java.util.List;
@@ -29,21 +31,15 @@ public class PlacePageLinksFragment extends Fragment implements Observer<MapObje
private static final String TAG = PlacePageLinksFragment.class.getSimpleName();
private View mFrame;
private View mFacebookPage;
private MaterialTextView mTvFacebookPage;
private View mInstagramPage;
private MaterialTextView mTvInstagramPage;
private View mTwitterPage;
private MaterialTextView mTvTwitterPage;
private View mFediversePage;
private MaterialTextView mTvFediversePage;
private View mBlueskyPage;
private MaterialTextView mTvBlueskyPage;
private View mVkPage;
private MaterialTextView mTvVkPage;
private View mLinePage;
private MaterialTextView mTvLinePage;
private View mSocial;
private ShapeableImageView mFacebookIv;
private ShapeableImageView mInstagramIv;
private ShapeableImageView mTwitterIv;
private ShapeableImageView mFediverseIv;
private ShapeableImageView mBlueskyIv;
private ShapeableImageView mVkIv;
private ShapeableImageView mLineIv;
private View mWebsite;
private MaterialTextView mTvWebsite;
private View mWebsiteMenu;
@@ -71,6 +67,16 @@ public class PlacePageLinksFragment extends Fragment implements Observer<MapObje
metaLayout.setVisibility(GONE);
}
private static void refreshMetadataOrHideSocial(@Nullable String metadata, @NonNull ShapeableImageView metaIv)
{
if (!TextUtils.isEmpty(metadata))
{
metaIv.setVisibility(VISIBLE);
}
else
metaIv.setVisibility(GONE);
}
@NonNull
private String getLink(@NonNull Metadata.MetadataType type)
{
@@ -128,40 +134,35 @@ public class PlacePageLinksFragment extends Fragment implements Observer<MapObje
mWikimedia.setOnClickListener((v) -> openUrl(Metadata.MetadataType.FMD_WIKIMEDIA_COMMONS));
mWikimedia.setOnLongClickListener((v) -> copyUrl(mWikimedia, Metadata.MetadataType.FMD_WIKIMEDIA_COMMONS));
mFacebookPage = mFrame.findViewById(R.id.ll__place_facebook);
mTvFacebookPage = mFrame.findViewById(R.id.tv__place_facebook_page);
mFacebookPage.setOnClickListener((v) -> openUrl(Metadata.MetadataType.FMD_CONTACT_FACEBOOK));
mFacebookPage.setOnLongClickListener((v) -> copyUrl(mFacebookPage, Metadata.MetadataType.FMD_CONTACT_FACEBOOK));
mSocial = mFrame.findViewById(R.id.ll__place_social);
mInstagramPage = mFrame.findViewById(R.id.ll__place_instagram);
mTvInstagramPage = mFrame.findViewById(R.id.tv__place_instagram_page);
mInstagramPage.setOnClickListener((v) -> openUrl(Metadata.MetadataType.FMD_CONTACT_INSTAGRAM));
mInstagramPage.setOnLongClickListener((v) -> copyUrl(mInstagramPage, Metadata.MetadataType.FMD_CONTACT_INSTAGRAM));
mFacebookIv = mSocial.findViewById(R.id.iv__place_facebook);
mFacebookIv.setOnClickListener((v) -> openUrl(Metadata.MetadataType.FMD_CONTACT_FACEBOOK));
mFacebookIv.setOnLongClickListener((v) -> copyUrl(mFacebookIv, Metadata.MetadataType.FMD_CONTACT_FACEBOOK));
mFediversePage = mFrame.findViewById(R.id.ll__place_fediverse);
mTvFediversePage = mFrame.findViewById(R.id.tv__place_fediverse_page);
mFediversePage.setOnClickListener((v) -> openUrl(Metadata.MetadataType.FMD_CONTACT_FEDIVERSE));
mFediversePage.setOnLongClickListener((v) -> copyUrl(mFediversePage, Metadata.MetadataType.FMD_CONTACT_FEDIVERSE));
mInstagramIv = mSocial.findViewById(R.id.iv__place_instagram);
mInstagramIv.setOnClickListener((v) -> openUrl(Metadata.MetadataType.FMD_CONTACT_INSTAGRAM));
mInstagramIv.setOnLongClickListener((v) -> copyUrl(mInstagramIv, Metadata.MetadataType.FMD_CONTACT_INSTAGRAM));
mBlueskyPage = mFrame.findViewById(R.id.ll__place_bluesky);
mTvBlueskyPage = mFrame.findViewById(R.id.tv__place_bluesky_page);
mBlueskyPage.setOnClickListener((v) -> openUrl(Metadata.MetadataType.FMD_CONTACT_BLUESKY));
mBlueskyPage.setOnLongClickListener((v) -> copyUrl(mBlueskyPage, Metadata.MetadataType.FMD_CONTACT_BLUESKY));
mFediverseIv = mSocial.findViewById(R.id.iv__place_fediverse);
mFediverseIv.setOnClickListener((v) -> openUrl(Metadata.MetadataType.FMD_CONTACT_FEDIVERSE));
mFediverseIv.setOnLongClickListener((v) -> copyUrl(mFediverseIv, Metadata.MetadataType.FMD_CONTACT_FEDIVERSE));
mTwitterPage = mFrame.findViewById(R.id.ll__place_twitter);
mTvTwitterPage = mFrame.findViewById(R.id.tv__place_twitter_page);
mTwitterPage.setOnClickListener((v) -> openUrl(Metadata.MetadataType.FMD_CONTACT_TWITTER));
mTwitterPage.setOnLongClickListener((v) -> copyUrl(mTwitterPage, Metadata.MetadataType.FMD_CONTACT_TWITTER));
mBlueskyIv = mSocial.findViewById(R.id.iv__place_bluesky);
mBlueskyIv.setOnClickListener((v) -> openUrl(Metadata.MetadataType.FMD_CONTACT_BLUESKY));
mBlueskyIv.setOnLongClickListener((v) -> copyUrl(mBlueskyIv, Metadata.MetadataType.FMD_CONTACT_BLUESKY));
mVkPage = mFrame.findViewById(R.id.ll__place_vk);
mTvVkPage = mFrame.findViewById(R.id.tv__place_vk_page);
mVkPage.setOnClickListener((v) -> openUrl(Metadata.MetadataType.FMD_CONTACT_VK));
mVkPage.setOnLongClickListener((v) -> copyUrl(mVkPage, Metadata.MetadataType.FMD_CONTACT_VK));
mTwitterIv = mSocial.findViewById(R.id.iv__place_twitter);
mTwitterIv.setOnClickListener((v) -> openUrl(Metadata.MetadataType.FMD_CONTACT_TWITTER));
mTwitterIv.setOnLongClickListener((v) -> copyUrl(mTwitterIv, Metadata.MetadataType.FMD_CONTACT_TWITTER));
mLinePage = mFrame.findViewById(R.id.ll__place_line);
mTvLinePage = mFrame.findViewById(R.id.tv__place_line_page);
mLinePage.setOnClickListener((v) -> openUrl(Metadata.MetadataType.FMD_CONTACT_LINE));
mLinePage.setOnLongClickListener((v) -> copyUrl(mLinePage, Metadata.MetadataType.FMD_CONTACT_LINE));
mVkIv = mSocial.findViewById(R.id.iv__place_vk);
mVkIv.setOnClickListener((v) -> openUrl(Metadata.MetadataType.FMD_CONTACT_VK));
mVkIv.setOnLongClickListener((v) -> copyUrl(mVkIv, Metadata.MetadataType.FMD_CONTACT_VK));
mLineIv = mSocial.findViewById(R.id.iv__place_line);
mLineIv.setOnClickListener((v) -> openUrl(Metadata.MetadataType.FMD_CONTACT_LINE));
mLineIv.setOnLongClickListener((v) -> copyUrl(mLineIv, Metadata.MetadataType.FMD_CONTACT_LINE));
mPanoramax = mFrame.findViewById(R.id.ll__place_panoramax);
mTvPanoramax = mFrame.findViewById(R.id.tv__place_panoramax);
@@ -215,25 +216,25 @@ public class PlacePageLinksFragment extends Fragment implements Observer<MapObje
refreshMetadataOrHide(mMapObject.getMetadata(Metadata.MetadataType.FMD_EMAIL), mEmail, mTvEmail);
final String facebook = mMapObject.getMetadata(Metadata.MetadataType.FMD_CONTACT_FACEBOOK);
refreshMetadataOrHide(facebook, mFacebookPage, mTvFacebookPage);
refreshMetadataOrHideSocial(facebook, mFacebookIv);
final String instagram = mMapObject.getMetadata(Metadata.MetadataType.FMD_CONTACT_INSTAGRAM);
refreshMetadataOrHide(instagram, mInstagramPage, mTvInstagramPage);
refreshMetadataOrHideSocial(instagram, mInstagramIv);
final String fediverse = mMapObject.getMetadata(Metadata.MetadataType.FMD_CONTACT_FEDIVERSE);
refreshMetadataOrHide(fediverse, mFediversePage, mTvFediversePage);
refreshMetadataOrHideSocial(fediverse, mFediverseIv);
final String bluesky = mMapObject.getMetadata(Metadata.MetadataType.FMD_CONTACT_BLUESKY);
refreshMetadataOrHide(bluesky, mBlueskyPage, mTvBlueskyPage);
refreshMetadataOrHideSocial(bluesky, mBlueskyIv);
final String twitter = mMapObject.getMetadata(Metadata.MetadataType.FMD_CONTACT_TWITTER);
refreshMetadataOrHide(twitter, mTwitterPage, mTvTwitterPage);
refreshMetadataOrHideSocial(twitter, mTwitterIv);
final String vk = mMapObject.getMetadata(Metadata.MetadataType.FMD_CONTACT_VK);
refreshMetadataOrHide(vk, mVkPage, mTvVkPage);
refreshMetadataOrHideSocial(vk, mVkIv);
final String line = mMapObject.getMetadata(Metadata.MetadataType.FMD_CONTACT_LINE);
refreshMetadataOrHide(line, mLinePage, mTvLinePage);
refreshMetadataOrHideSocial(line, mLineIv);
final String panoramax = mMapObject.getMetadata(Metadata.MetadataType.FMD_PANORAMAX);
final String panoramaxTitle = TextUtils.isEmpty(panoramax) ? "" : getResources().getString(R.string.panoramax);

View File

@@ -26,27 +26,33 @@
android:clipChildren="false"
android:gravity="center"
tools:ignore="UselessParent">
<com.google.android.material.textview.MaterialTextView
<LinearLayout
android:id="@+id/offline_explanation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_eighth"
android:gravity="center_horizontal"
android:textStyle="bold"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/offline_explanation_title"/>
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_eighth"
android:gravity="center_horizontal"
android:textStyle="normal"
android:textAppearance="@style/MwmTextAppearance.Body1"
android:text="@string/offline_explanation_text"/>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginTop="@dimen/margin_quarter"
android:layout_marginBottom="@dimen/margin_quarter"/>
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_eighth"
android:gravity="center_horizontal"
android:textStyle="bold"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/offline_explanation_title"/>
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_eighth"
android:gravity="center_horizontal"
android:textStyle="normal"
android:textAppearance="@style/MwmTextAppearance.Body1"
android:text="@string/offline_explanation_text"/>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginTop="@dimen/margin_quarter"
android:layout_marginBottom="@dimen/margin_quarter"/>
</LinearLayout>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/downloader_parent"
android:layout_width="wrap_content"

View File

@@ -3,8 +3,7 @@
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/feedback_fab"
style="MwmWidget.M3.FAB.Primary"
app:shapeAppearance="@style/ShapeAppearanceOverlay.Material3.FloatingActionButton"
style="@style/MwmWidget.M3.FAB.Primary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/feedback"

View File

@@ -22,7 +22,7 @@
android:id="@+id/empty_opening_hours"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginTop="@dimen/margin_base"
android:layout_marginStart="@dimen/editor_margin_timetable_left"
android:orientation="vertical"
tools:visibility="gone">
@@ -57,10 +57,8 @@
android:layout_height="wrap_content"
style="@style/Widget.Material3.Button.TextButton"
android:layout_below="@id/opening_hours"
android:layout_marginStart="@dimen/editor_margin_timetable_left"
android:layout_marginTop="@dimen/margin_base_plus"
android:gravity="center_vertical"
android:minHeight="@dimen/height_block_base"
android:layout_marginTop="@dimen/margin_base"
android:gravity="center_horizontal"
android:text="@string/edit_opening_hours"
android:textColor="?colorSecondary"
android:textAppearance="@style/MwmTextAppearance.Body1" />

View File

@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/margin_base_plus"
@@ -12,9 +11,7 @@
style="@style/MwmWidget.M3.Button.Primary"
android:layout_gravity="center"
android:enabled="false"
android:background="?accentButtonBackground"
android:padding="@dimen/margin_base"
android:text="@string/editor_time_add"
app:backgroundTint="@null"/>
android:textColor="?android:textColorPrimaryInverse"
android:text="@string/editor_time_add" />
</FrameLayout>

View File

@@ -17,29 +17,34 @@
android:layout_gravity="center"
android:gravity="center_horizontal"
android:background="@drawable/onmap_downloader_background">
<com.google.android.material.textview.MaterialTextView
android:layout_width="@dimen/square_block_size"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_eighth"
android:gravity="center_horizontal"
android:textStyle="bold"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/offline_explanation_title"/>
<com.google.android.material.textview.MaterialTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="212dp"
android:layout_marginBottom="@dimen/margin_eighth"
android:gravity="center_horizontal"
android:textStyle="normal"
android:textAppearance="@style/MwmTextAppearance.Body1"
android:text="@string/offline_explanation_text"/>
<com.google.android.material.divider.MaterialDivider
<LinearLayout
android:id="@+id/offline_explanation"
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginTop="@dimen/margin_quarter"
android:layout_marginBottom="@dimen/margin_quarter"/>
android:layout_height="wrap_content"
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/margin_eighth"
android:gravity="center_horizontal"
android:textStyle="bold"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@string/offline_explanation_title"/>
<com.google.android.material.textview.MaterialTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="212dp"
android:layout_marginBottom="@dimen/margin_eighth"
android:gravity="center_horizontal"
android:textStyle="normal"
android:textAppearance="@style/MwmTextAppearance.Body1"
android:text="@string/offline_explanation_text"/>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="2dp"
android:layout_marginTop="@dimen/margin_quarter"
android:layout_marginBottom="@dimen/margin_quarter"/>
</LinearLayout>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/downloader_parent"
android:layout_width="@dimen/square_block_size"

View File

@@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/ll__place_bluesky"
style="@style/PlacePageItemFrame"
android:tag="website"
tools:background="#20FF0000"
tools:visibility="visible">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/iv__place_bluesky"
style="@style/PlacePageMetadataIcon"
app:srcCompat="@drawable/ic_bluesky"
app:tint="?colorSecondary"/>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__place_bluesky_page"
android:textAlignment="viewStart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/MwmTextAppearance.PlacePage.Accent"
tools:text="@string/bluesky"/>
</LinearLayout>

View File

@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/ll__place_facebook"
style="@style/PlacePageItemFrame"
tools:background="#20FF0000"
tools:visibility="visible">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/iv__place_facebook"
style="@style/PlacePageMetadataIcon"
app:srcCompat="@drawable/ic_facebook_white"
app:tint="?colorSecondary"/>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__place_facebook_page"
android:textAlignment="viewStart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/MwmTextAppearance.PlacePage.Accent"
tools:text="@string/facebook"/>
</LinearLayout>

View File

@@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/ll__place_fediverse"
style="@style/PlacePageItemFrame"
android:tag="website"
tools:background="#20FF0000"
tools:visibility="visible">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/iv__place_fediverse"
style="@style/PlacePageMetadataIcon"
app:srcCompat="@drawable/ic_mastodon"
app:tint="?colorSecondary"/>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__place_fediverse_page"
android:textAlignment="viewStart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/MwmTextAppearance.PlacePage.Accent"
tools:text="@string/mastodon"/>
</LinearLayout>

View File

@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/ll__place_instagram"
style="@style/PlacePageItemFrame"
tools:background="#20FF0000"
tools:visibility="visible">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/iv__place_instagram"
style="@style/PlacePageMetadataIcon"
app:srcCompat="@drawable/ic_instagram_white"
app:tint="?colorSecondary"/>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__place_instagram_page"
android:textAlignment="viewStart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/MwmTextAppearance.PlacePage.Accent"
tools:text="@string/instagram"/>
</LinearLayout>

View File

@@ -1,23 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/ll__place_line"
style="@style/PlacePageItemFrame"
tools:background="#20FF0000"
tools:visibility="visible">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/iv__place_line"
style="@style/PlacePageMetadataIcon"
app:srcCompat="@drawable/ic_line_white"
app:tint="?colorSecondary"/>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__place_line_page"
android:textAlignment="viewStart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/MwmTextAppearance.PlacePage.Accent"
tools:text="@string/editor_line_social_network"/>
</LinearLayout>

View File

@@ -13,13 +13,7 @@
android:layout_height="wrap_content"
tools:layout="@layout/place_page_phone_fragment" />
<include layout="@layout/place_page_email" />
<include layout="@layout/place_page_fediverse" />
<include layout="@layout/place_page_facebook" />
<include layout="@layout/place_page_instagram" />
<include layout="@layout/place_page_twitter" />
<include layout="@layout/place_page_vk" />
<include layout="@layout/place_page_line" />
<include layout="@layout/place_page_bluesky" />
<include layout="@layout/place_page_social" />
<include layout="@layout/place_page_wikimedia" />
<include layout="@layout/place_page_panoramax" />
</LinearLayout>

View File

@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/ll__place_social"
style="@style/PlacePageItemFrame"
android:tag="website"
android:gravity="center"
tools:background="#20FF0000"
tools:visibility="visible">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/iv__place_fediverse"
style="@style/PlacePageMetadataIcon"
android:layout_width="32dp"
android:layout_height="32dp"
android:padding="@dimen/margin_quarter"
app:srcCompat="@drawable/ic_mastodon"
app:tint="?colorSecondary"/>
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/iv__place_facebook"
style="@style/PlacePageMetadataIcon"
android:layout_width="32dp"
android:layout_height="32dp"
android:padding="@dimen/margin_quarter"
app:srcCompat="@drawable/ic_facebook_white"
app:tint="?colorSecondary"/>
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/iv__place_instagram"
style="@style/PlacePageMetadataIcon"
android:layout_width="32dp"
android:layout_height="32dp"
android:padding="@dimen/margin_quarter"
app:srcCompat="@drawable/ic_instagram_white"
app:tint="?colorSecondary"/>
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/iv__place_twitter"
style="@style/PlacePageMetadataIcon"
android:layout_width="32dp"
android:layout_height="32dp"
android:padding="@dimen/margin_quarter"
app:srcCompat="@drawable/ic_twitterx_white"
app:tint="?colorSecondary"/>
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/iv__place_vk"
style="@style/PlacePageMetadataIcon"
android:layout_width="32dp"
android:layout_height="32dp"
android:padding="@dimen/margin_quarter"
app:srcCompat="@drawable/ic_vk_white"
app:tint="?colorSecondary"/>
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/iv__place_line"
style="@style/PlacePageMetadataIcon"
android:layout_width="32dp"
android:layout_height="32dp"
android:padding="@dimen/margin_quarter"
app:srcCompat="@drawable/ic_line_white"
app:tint="?colorSecondary"/>
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/iv__place_bluesky"
style="@style/PlacePageMetadataIcon"
android:layout_width="32dp"
android:layout_height="32dp"
android:padding="@dimen/margin_quarter"
app:srcCompat="@drawable/ic_bluesky"
app:tint="?colorSecondary"/>
</LinearLayout>

View File

@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/ll__place_twitter"
style="@style/PlacePageItemFrame"
tools:background="#20FF0000"
tools:visibility="visible">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/iv__place_twitter"
style="@style/PlacePageMetadataIcon"
app:srcCompat="@drawable/ic_twitterx_white"
app:tint="?colorSecondary"/>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__place_twitter_page"
android:textAlignment="viewStart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/MwmTextAppearance.PlacePage.Accent"
tools:text="@string/twitter"/>
</LinearLayout>

View File

@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/ll__place_vk"
style="@style/PlacePageItemFrame"
tools:background="#20FF0000"
tools:visibility="visible">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/iv__place_vk"
style="@style/PlacePageMetadataIcon"
app:srcCompat="@drawable/ic_vk_white"
app:tint="?colorSecondary"/>
<com.google.android.material.textview.MaterialTextView
android:id="@+id/tv__place_vk_page"
android:textAlignment="viewStart"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAppearance="@style/MwmTextAppearance.PlacePage.Accent"
tools:text="@string/vk"/>
</LinearLayout>

View File

@@ -38,8 +38,7 @@
android:id="@+id/done"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="MwmWidget.M3.FAB.Primary"
app:shapeAppearance="@style/ShapeAppearanceOverlay.Material3.FloatingActionButton"
style="@style/MwmWidget.M3.FAB.Primary"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"
android:contentDescription="@string/save"

View File

@@ -1236,6 +1236,7 @@
<string name="type.shop.kitchen">Kitchen Store</string>
<string name="type.shop.laundry">Laundry</string>
<string name="type.shop.mall">Mall</string>
<string name="type.shop.beauty.day_spa">Day Spa</string>
<string name="type.shop.massage">Massage Salon</string>
<string name="type.shop.mobile_phone">Mobile Phone Store</string>
<string name="type.shop.money_lender">Money Lender</string>

View File

@@ -2,28 +2,28 @@
"@category_eat": "Where to eat|eat|Food",
"@category_food": "4Groceries|Grocery|Food",
"@category_transport": "5Transport",
"@category_fuel": "2Gas|Gasoline|3Petrol|4Diesel|3Fuel",
"@category_fuel": "2Gas|4Gasoline|3Petrol|4Diesel|3Fuel",
"@category_parking": "4Parking",
"@category_shopping": "4Shopping",
"@category_hotel": "Hotel|hotels",
"@category_shopping": "4Shopping|shops",
"@category_hotel": "3Hotel|hotels|4Accomodations|accommodation|sleep",
"@category_tourism": "3Sights|3Attractions|3Tourism",
"@category_entertainment": "Entertainment",
"@category_nightlife": "Nightlife",
"@category_children": "Family holiday",
"@category_entertainment": "4Entertainment",
"@category_nightlife": "4Nightlife",
"@category_children": "4Family holiday|children|kid|kids|babies|family|family friendly",
"@category_atm": "ATM|Cash machine",
"@category_rv": "2RV Facilities|4Caravan|Vanlife|5Campervan|5Motorhome",
"amenity-atm|@category_atm": "money|U+1F3E7|U+1F4B2|U+1F4B3|U+1F4B4|U+1F4B5|U+1F4B6|U+1F4B7",
"@category_rv": "2RV Facilities|RV|4Caravan|Vanlife|5Campervan|5Motorhome|camper",
"amenity-atm|@category_atm": "money|cash|U+1F3E7|U+1F4B2|U+1F4B3|U+1F4B4|U+1F4B5|U+1F4B6|U+1F4B7",
"@category_bank": "3Bank",
"@category_secondhand": "4Second Hand",
"@category_secondhand": "4Second Hand|second-hand|vintage|5Vintage shop|4Thrift store|5Resale shop|6Opportunity shop|4Used-goods|thrift|thrifting",
"amenity-bank|@category_bank": "money|U+1F3E6|U+1F4B0|U+1F4B2|U+1F4B3|U+1F4B4|U+1F4B5|U+1F4B6|U+1F4B7",
"@category_recycling": "4Recycling|Waste utilization|Waste disposal|Recyclables|Separate garbage collection|Waste sorting|Reuse",
"amenity-bureau_de_change": "3Currency Exchange|3exchange|money|U+1F4B1|U+1F4B2|U+1F4B4|U+1F4B5|U+1F4B6|U+1F4B7",
"amenity-studio": "Media Studio|Studio",
"amenity-studio": "5Media studio|studio",
"amenity-bar|amenity-pub|@category_eat|@category_nightlife": "2Bar|2pub|beer|drink|U+1F37A|U+1F37B|U+1F376|tavern|bars and pubs|brew pub|cocktail lounge",
"amenity-cafe|@category_eat": "3Cafe|U+2615|U+1F356|U+1F357|U+1F35A|U+1F35B|U+1F35C|U+1F35D|U+1F363|U+1F366|U+1F367|U+1F368|U+1F369|U+1F370|U+1F372|U+1F374|U+1F377|U+1F60B|U+1F375|coffee|cafeteria",
"amenity-fast_food|@category_eat": "4Fast Food|takeaway|U+1F354|U+1F355|U+1F35F|U+1F363|U+1F366|U+1F367|U+1F368|U+1F369|U+1F370|U+1F372|U+1F374|food to go|junk food",
"amenity-restaurant|@category_eat": "3Restaurant|U+1F356|U+1F357|U+1F35A|U+1F35B|U+1F35C|U+1F35D|U+1F363|U+1F366|U+1F367|U+1F368|U+1F369|U+1F370|U+1F372|U+1F374|U+1F377|U+1F60B",
"amenity-fuel|@category_fuel": "Gas Station|Petrol Station|3Filling Station|U+26FD",
"amenity-fuel|@category_fuel": "3Gas station|4Petrol station|3Filling station|fill up|U+26FD",
"@shop": "Shop|Store|U+1F3EA|U+1F3EC",
"shop-bakery|shop-pastry|@category_eat|@category_food|@shop": "3Bakery|3Pastry|Cake|3Cakes|U+1F35E",
"shop|@shop": "",
@@ -34,13 +34,13 @@
"shop-farm|@category_food|@shop": "Farm food",
"shop-garden_centre|@shop": "4Garden Centre|U+1F3E1",
"shop-grocery|@category_food|@shop": "Grocery",
"shop-health_food|@category_food|@shop": "Health food",
"shop-hearing_aids|@shop": "Hearing Aids",
"shop-health_food|@category_food|@shop": "7Health food|7Healthy food|healthfood|organic|vegan|vegetarian",
"shop-hearing_aids|@shop": "7Hearing Aids",
"shop-mobile_phone|@shop": "4Cell Phones|4Mobile Phones|6smartphones|electronics store|U+1F4F1|U+1F4F2",
"shop-florist|@shop": "4Florist|U+1F337|U+1F338|U+1F339|U+1F33A|U+1F33B|U+1F33C|U+1F490|U+1F33E|4flowers|flower shop|floral shop|floral arrangements|same day flowers|bouquet",
"shop-butcher|@category_food|@shop": "4Butcher|U+1F356|U+1F357",
"shop-butcher|@category_food|@shop": "4Butcher|meat|U+1F356|U+1F357",
"shop-furniture|@shop": "4Furniture",
"shop-kitchen|@shop": "Kitchen|Kitchen Studio",
"shop-kitchen|@shop": "4Kitchen|Kitchen Studio|kitchenware",
"shop-alcohol|@category_food|@shop": "4liquor|4alcohol|U+1F377",
"shop-books|@shop": "Bookstore|bookshop|3books|U+1F4D6|U+1F4DA|U+1F4D9|U+1F4D8|U+1F4D7|U+1F4D5",
"shop-shoes|@category_shopping|@shop": "Shoe|U+1F461|U+1F460|U+1F462|U+1F45E|U+1F45F|3shoes|4footwear",
@@ -48,95 +48,95 @@
"shop-hardware|shop-doityourself|@shop": "4Hardware|4Home Improvement|DIY|U+1F529|U+1F528|do it yourself|do-it-yourself",
"shop-houseware|@shop": "4Housewares",
"shop-jewelry|@category_shopping|@shop": "4Jewelry|U+1F48D",
"shop-optician|@shop": "4Optician|U+1F453",
"shop-gift|@category_shopping|@shop": "Gift|U+1F381|souvenir|4souvenirs|3gifts|presents",
"shop-beauty": "4Beauty Shop|barber|beautician|hairdresser|hairdressing|haircut|U+1F484|beauty salon|hair salon|beauty parlor|hair and nail salon|nail salon|coloring",
"shop-optician|@shop": "4Optician|glasses|sunglasses|U+1F453",
"shop-gift|@category_shopping|@shop": "Gift|U+1F381|souvenir|souvenirs|3gifts|presents|4Souvenir shop|gift shop|giftshop",
"shop-beauty": "4Beauty Shop|beautician|U+1F484|beauty salon|beauty parlor|nail salon|coloring",
"shop-greengrocer|@category_food|@shop": "4Greengrocer|U+1F345|U+1F346|U+1F33D|U+1F360|U+1F348|U+1F347|U+1F349|U+1F34A|U+1F34C|U+1F34D|U+1F34E|U+1F34F|U+1F350|U+1F351|U+1F353",
"shop-sports|@category_shopping|@shop": "4Sports Goods|U+1F3BF|U+1F3A3|U+1F3C2|U+1F6B4|U+26BD|U+1F3C0|U+1F3C8|U+26BE|U+1F3BE|U+1F3C9|U+26F3",
"shop-supermarket|@category_food|@shop": "3Supermarket",
"shop-mall|@category_shopping|@shop": "Mall|Gallery|shopping arcade|entertainment center|retail",
"shop-department_store|@category_shopping|@shop": "4Department",
"shop-mall|@category_shopping|@shop": "3Mall|Gallery|shopping arcade|entertainment center|retail",
"shop-department_store|@category_shopping|@shop": "4Department|department store",
"shop-beverages|@category_food|@shop": "4Beverages|4drinks|U+1F379",
"shop-computer|@shop": "4Computer|U+1F4BB",
"shop-computer|@shop": "4Computer shop|computer|computers|U+1F4BB",
"shop-confectionery|craft-confectionery|@category_food|@shop": "4Sweets|4confectionery|candies|candy|U+1F36C|U+1F36D|sweetshop|tuck|Confectioner",
"shop-laundry": "4Laundry|Laundrette|laundromat",
"shop-toys|@category_children|@shop": "Toy|toyshop|kids|toys|kids toys",
"amenity-marketplace|@category_food": "3Marketplace|market",
"amenity-mobile_money_agent": "Mobile Money Agent|mobile money",
"amenity-money_transfer": "Money Transfer",
"shop-clothes|@category_shopping|@shop": "3Clothes|U+1F45A|U+1F457|U+1F456|U+1F455|clothing|wear",
"shop-caravan|@category_rv|@shop": "2RV dealership|4Caravan dealership|Motorhome dealership",
"shop-car|@shop": "3Car Dealership|Auto Dealer|U+1F697|U+1F698|U+1F699",
"shop-bicycle|@shop": "4Bicycle|Bike|cycles|bikes|U+1F6B2|U+1F6B4|U+1F6B5",
"amenity-mobile_money_agent": "6Mobile Money Agent|mobile money",
"amenity-money_transfer": "5Money Transfer",
"shop-clothes|@category_shopping|@shop": "3Clothes|U+1F45A|U+1F457|U+1F456|U+1F455|clothing|apparel|wear|fashion|garments ",
"shop-caravan|@category_rv|@shop": "2RV dealership|4Caravan dealership|5Motorhome dealership",
"shop-car|@shop": "3Car Dealership|4Auto Dealer|U+1F697|U+1F698|U+1F699",
"shop-bicycle|@shop": "4Bicycle|Bike|7Cycling shop|cycles|bikes|U+1F6B2|U+1F6B4|U+1F6B5",
"shop-kiosk": "3Kiosk|U+1F4F0",
"highway-bus_stop|@category_transport": "2Bus Stop|bus|stop|U+1F68C|U+1F68F|U+1F68E|U+1F690",
"railway-tram_stop|@category_transport": "3Tram Stop|tram|stop|U+1F683",
"amenity-bus_station|@category_transport": "2Bus Station|bus|U+1F68C|U+1F68F|U+1F68D",
"railway-station|railway-halt|building-train_station|@category_transport": "3Train Station|trainstation|4railway|railroad|4station|U+1F684|U+1F685|U+1F689|U+1F682|U+1F686|U+1F688|U+1F68A|U+1F68B|Rail Halt",
"railway-station-funicular": "Funicular",
"railway-station-subway|@category_transport": "3Subway Station|3tube|3metro|3underground|U+1F687",
"railway-station-funicular": "4Funicular",
"railway-station-subway|@category_transport": "3Subway Station|subway|3tube|3metro|3underground|U+1F687",
"amenity-ferry_terminal|@category_transport": "3Ferry|terminal|U+1F6A2|U+1F6A4|U+2693",
"amenity-taxi|@category_transport": "3Taxi|Taxi Stand|Taxi Rank|U+1F695|U+1F696",
"amenity-taxi|@category_transport": "Taxi|3Taxi Stand|Taxi Rank|U+1F695|U+1F696",
"amenity-townhall": "3Town Hall|townhall|city hall|guildhall|village hall|4municipal hall|civic centre",
"tourism-attraction|@category_tourism": "4Attraction|U+1F3A0|U+1F3A1|U+1F3A2|U+1F3AA",
"tourism-artwork": "3Artwork|U+1F3A8",
"tourism-viewpoint|@category_tourism": "4Viewpoint|Vista",
"tourism-information": "4Tourist Information|4information|U+1F481",
"tourism-picnic_site|amenity-bbq|leisure-picnic_table": "3Picnic Site|Barbecue Grill|Picnic Table",
"amenity-place_of_worship": "Place of Worship|3temple|U+1F64F",
"amenity-place_of_worship-christian": "4Church|place of worship|temple|4cathedral|basilica|U+1F64F|U+26EA|U+271D|U+2626",
"amenity-place_of_worship-muslim": "4Mosque|tekke|place of worship|temple|U+1F64F|U+262A|U+1F54B|U+1F54C|U+262A",
"amenity-place_of_worship-buddhist": "3Temple|place of worship|U+1F64F|U+26EA|U+2638",
"amenity-place_of_worship-hindu": "3Temple|place of worship|U+1F64F|U+1F549",
"amenity-place_of_worship-shinto": "Shrine|place of worship|3temple|U+1F64F|U+26E9",
"amenity-place_of_worship-jewish": "4Synagogue|place of worship|temple|U+1F64F|U+1F54D|U+2721",
"amenity-place_of_worship-taoist": "3Temple|place of worship|U+1F64F|U+262F",
"tourism-picnic_site|amenity-bbq|leisure-picnic_table": "3Picnic Site|picnic|Barbecue Grill|Picnic Table|bbq|Barbec",
"amenity-place_of_worship": "5Place of Worship|3temple|U+1F64F",
"amenity-place_of_worship-christian": "4Church|place of worship|temple|4cathedral|basilica|christianity|U+1F64F|U+26EA|U+271D|U+2626",
"amenity-place_of_worship-muslim": "4Mosque|tekke|place of worship|temple|islam|U+1F64F|U+262A|U+1F54B|U+1F54C|U+262A",
"amenity-place_of_worship-buddhist": "3Temple|place of worship|4buddist temple|4buddhism|U+1F64F|U+26EA|U+2638",
"amenity-place_of_worship-hindu": "3Temple|place of worship|4hindu temple|4hinduism|U+1F64F|U+1F549",
"amenity-place_of_worship-shinto": "Shrine|place of worship|3temple|4shinto temple|4shinto|U+1F64F|U+26E9",
"amenity-place_of_worship-jewish": "4Synagogue|place of worship|3temple|judaism|U+1F64F|U+1F54D|U+2721",
"amenity-place_of_worship-taoist": "3Temple|place of worship|4taoism|4taoist temple|U+1F64F|U+262F",
"tourism-museum|@category_tourism": "2Museum|U+1F3A8|3exhibition|3gallery",
"waterway-waterfall|@category_tourism": "2Waterfall",
"historic-archaeological_site|@category_tourism": "4Archaeological Site",
"historic-battlefield": "Battlefield",
"historic-stone": "Historic Stone",
"historic-boundary_stone": "Boundary Stone",
"historic-stone": "Historic stone",
"historic-boundary_stone": "Boundary stone",
"historic-castle|@category_tourism": "4Castle|4Palace|4Fortress|U+1F3EF|U+1F3F0|U+1F451|U+1F478|Hillfort|Kremlin|Manor house",
"historic-city_gate|@category_tourism": "City gate",
"historic-citywalls|@category_tourism": "City Wall",
"historic-city_gate|@category_tourism": "4City gate",
"historic-citywalls|@category_tourism": "4City wall",
"historic-fort|@category_tourism": "Fort",
"historic-gallows|@category_tourism": "Gallows",
"historic-memorial|@category_tourism": "4Memorial|monument|U+1F5FC|U+1F5FD|U+1F5FF",
"historic-memorial-cross": "Memorial cross",
"historic-memorial-plaque": "Commemorative plaque",
"historic-memorial-sculpture|@category_tourism": "Sculpture",
"historic-memorial-statue|@category_tourism": "Statue",
"historic-memorial-sculpture|@category_tourism": "5Sculpture",
"historic-memorial-statue|@category_tourism": "3Statue",
"historic-memorial-stolperstein": "Stolperstein",
"historic-memorial-war_memorial|@category_tourism": "War memorial",
"historic-monument|@category_tourism": "4Monument|U+1F5FD|U+1F5FF",
"historic-pillory|@category_tourism": "Pillory",
"historic-cannon": "Cannon",
"historic-anchor": "Historic Anchor",
"historic-ruins|@category_tourism": "4Historic Ruins|3Ruins|U+1F5FF",
"historic-mine": "Historic Mine",
"historic-anchor": "4Historic anchor",
"historic-ruins|@category_tourism": "4Historic ruins|3Ruins|U+1F5FF",
"historic-mine": "4Historic mine",
"historic-ship|@category_tourism": "Ship|boat",
"historic-wreck": "Shipwreck",
"historic-locomotive|@category_tourism": "Historic Locomotive",
"historic-tank|@category_tourism": "Historic Tank",
"historic-aircraft|@category_tourism": "Historic Aircraft",
"historic-locomotive|@category_tourism": "4Historic locomotive",
"historic-tank|@category_tourism": "4Historic tank",
"historic-aircraft|@category_tourism": "4Historic aircraft",
"historic-tomb|@category_tourism": "Tomb|grave|memorial",
"man_made-cross": "Cross",
"historic-wayside_cross": "Wayside cross",
"historic-wayside_shrine": "Wayside shrine",
"leisure-dog_park": "3Dog area|Dog park",
"leisure-dog_park": "Dog area|3Dog park",
"leisure-dance|@category_entertainment": "4Dance|Dancing school",
"leisure-garden": "3Garden",
"leisure-firepit": "5Firepit",
"amenity-bench|amenity-bench-backless": "Bench",
"amenity-boat_rental": "4Boat Rental|boat|3rental",
"amenity-bicycle_rental": "4Bicycle Rental|cycle|bike|3rental|U+1F6B2|U+1F6B4|U+1F6B5|bicycle hire|bike rental",
"amenity-bicycle_repair_station": "4Bicycle Repair Station|cycle|bike|4repair of bicycles",
"amenity-car_sharing": "Car Share|3carsharing|car|sharing|U+1F697|U+1F698|U+1F699|carpool|carsharing services|car sharing|4rideshare",
"amenity-car_rental": "3Car Rental|car|rental|U+1F697|U+1F698|U+1F699|car hire|rent a car|auto rental|vehicle rent",
"amenity-motorcycle_rental": "4Motorcycle Rental|bike|hire|4scooter",
"amenity-cinema|@category_entertainment": "3Cinema|3Movie Theatre|Film|Movies|U+1F3A6|U+1F3AC",
"leisure-bowling_alley|@category_entertainment": "4Bowling Alley",
"amenity-boat_rental": "4Boat rental|boat|boats|3Rental",
"amenity-bicycle_rental": "4Bicycle rental|cycling|cycle|bike|3Rental|U+1F6B2|U+1F6B4|U+1F6B5|bicycle hire|bike rental",
"amenity-bicycle_repair_station": "4Bicycle repair station|cycle|bike|4repair of bicycles",
"amenity-car_sharing": "Car Share|3carsharing|car|sharing|U+1F697|U+1F698|U+1F699|carsharing services|car sharing|4rideshare",
"amenity-car_rental": "3Car rental|car|rental|U+1F697|U+1F698|U+1F699|car hire|rent a car|auto rental|vehicle rent",
"amenity-motorcycle_rental": "4Motorcycle rental|bike|hire|4scooter|4Rental motorcycles|motorcycles",
"amenity-cinema|@category_entertainment": "3Cinema|3Movie theatre|Film|4Movies|U+1F3A6|U+1F3AC",
"leisure-bowling_alley|@category_entertainment": "4Bowling alley",
"amenity-theatre|@category_entertainment": "4Theatre|U+1F3AD",
"amenity-nightclub|@category_entertainment|@category_nightlife": "3Nightclub|night club|4disco|dance|U+1F378|U+1F379|U+1F46F|U+1F483|club|nightspot|night bar",
"amenity-brothel": "Brothel|whorehouse|bordello|U+1F3E9",
@@ -166,10 +166,10 @@
"healthcare-psychotherapist": "Psychotherapist",
"healthcare-sample_collection": "Sample collection",
"healthcare-speech_therapist": "Logopedics|Speech therapist|Speech therapy",
"amenity-hunting_stand": "Hunting Stand",
"amenity-hunting_stand": "4Hunting stand",
"amenity-kindergarten": "5Kindergarten|U+1F476|U+1F37C|U+1F6BC|nursery|4Child Care|childcare",
"amenity-library": "3Library|U+1F4D6",
"amenity-parking|amenity-parking_entrance|@category_parking": "U+1F697|U+1F17F|U+1F698|U+1F699",
"amenity-library": "3Library|3books|book|U+1F4D6",
"amenity-parking|amenity-parking_entrance|@category_parking": "car parking|U+1F697|U+1F17F|U+1F698|U+1F699",
"@category_pharmacy": "3Pharmacy",
"amenity-pharmacy|@category_pharmacy": "4Drugstore|apothecary|4dispensary|U+1F489|U+1F48A",
"@category_post": "3Post",
@@ -192,15 +192,15 @@
"recycling-shoes|@category_recycling": "4Recycling of Shoes|Shoes Recycling|Donate Shoes|Shoes",
"recycling-green_waste|@category_recycling": "4Recycling of Green Waste|5Organic Waste Recycling|5Green Waste Recycling|Food Waste|Garden Waste",
"recycling-cartons|@category_recycling": "4Recycling of Bewerage Cartons|5Cartons Recycling|5Bewerage Cartons Recycling|Cartons",
"amenity-sanitary_dump_station|@category_rv": "2RV Dump Station|5Holding Tank Dump Station|4Dump Station|sanitary dump station|sewage|RV waste|5motorhome dump station|5camper dump station|4caravan dump station",
"amenity-sanitary_dump_station|@category_rv": "2RV Dump Station|5Holding Tank Dump Station|4Dump station|sanitary dump station|sewage|RV waste|5motorhome dump station|5camper dump station|4caravan dump station",
"amenity-school": "3School|U+1F392|U+1F3EB",
"amenity-shelter": "4Shelter|refuge",
"amenity-shelter-basic_hut": "3Bivouac Hut|Bivvy|Bothy|Hut",
"amenity-shelter-lean_to": "3Lean-to Shelter|4Shelter|Refuge",
"amenity-stripclub": "Stripclub",
"amenity-shelter-basic_hut": "basic hut|3Bivouac Hut|Bivvy|Bothy|Hut",
"amenity-shelter-lean_to": "3Lean-to Shelter|4Shelter|Refuge|lean shelter|shelter",
"amenity-stripclub": "Stripclub|strip club",
"amenity-telephone": "2Phone|U+260E|U+1F4DE|5Telephone",
"@category_toilet": "3Toilet",
"amenity-toilets|toilets-yes|@category_toilet": "wc|5restroom|4bathroom|loo|lavatory|U+1F6BD|U+1F6BE|U+1F4A9|U+1F6BB|U+1F6B9|U+1F6BA",
"@category_toilet": "3Toilet|toilets|4Restroom|potty|WC|water closet",
"amenity-toilets|toilets-yes|@category_toilet": "wc|4Bathroom|loo|lavatory|U+1F6BD|U+1F6BE|U+1F4A9|U+1F6BB|U+1F6B9|U+1F6BA",
"amenity-university": "4University|U+1F393|Uni",
"place-continent": "Continent|U+1F30D|U+1F30E|U+1F30F",
"place-country": "Country",
@@ -212,8 +212,8 @@
"place-region": "Region",
"place-island|place-islet": "Island|islet",
"place-suburb|place-quarter|place-neighbourhood|landuse-residential": "Suburb|district|quarter|neighbourhood|neighborhood|Residential Area",
"place-hamlet": "Hamlet|village",
"place-village": "Village|hamlet",
"place-hamlet": "Hamlet|village|settlement|civilization",
"place-village": "Village|hamlet|settlement|civilization",
"place-locality": "Locality",
"place-farm": "Farm|U+1F411|U+1F414|U+1F417|U+1F42E|U+1F404|U+1F430|U+1F407|U+1F40F|U+1F410|U+1F413|U+1F424|U+1F437|U+1F43D|U+1F69C",
"highway-raceway": "Racetrack|U+1F3C1",
@@ -233,18 +233,18 @@
"tourism-guest_house|@category_hotel": "4Guest House|hostel|U+1F3E8",
"tourism-motel|@category_hotel": "3Motel|hostel|U+1F3E8",
"tourism-alpine_hut|@category_hotel": "5Mountain Lodge|5backcountry hut|hut|lodge|alpine hut",
"shop-hairdresser": "3Hairdresser|U+2702|U+1F488|hair salon|hairdressing saloon|barbershop|hair cuttery|haircut|beauty parlor|coloring",
"aeroway-aerodrome": "3Airport|3plane|U+2708",
"leisure-stadium": "4Stadium|4sport|U+26BD|U+26BE|U+1F3BE|U+1F3C0|U+1F3C8|U+1F4AA|U+1F3C9|olympic stadium|sports stadium|sports complex|arena",
"shop-hairdresser": "3Hairdresser|U+2702|U+1F488|hair salon|hairdressing saloon|4barbershop|barber|hair cuttery|haircut|beauty parlor|coloring",
"aeroway-aerodrome": "4Aerodrome|3Airport|3plane|U+2708",
"leisure-stadium": "4Stadium|4sport|U+26BD|U+26BE|U+1F3BE|U+1F3C0|U+1F3C8|U+1F4AA|U+1F3C9|olympic stadium|sports stadium|sports complex|arena|sports arena",
"leisure-playground|@category_children": "4Playground",
"leisure-sports_centre|leisure-sports_centre-sport-american_football|leisure-sports_centre-sport-archery|leisure-sports_centre-sport-athletics|leisure-sports_centre-sport-australian_football|leisure-sports_centre-sport-badminton|leisure-sports_centre-sport-baseball|leisure-sports_centre-sport-basketball|leisure-sports_centre-sport-beachvolleyball|leisure-sports_centre-sport-bowls|leisure-sports_centre-sport-climbing|leisure-sports_centre-sport-cricket|leisure-sports_centre-sport-curling|leisure-sports_centre-sport-equestrian|leisure-sports_centre-sport-field_hockey|leisure-sports_centre-sport-futsal|leisure-sports_centre-sport-golf|leisure-sports_centre-sport-gymnastics|leisure-sports_centre-sport-handball|leisure-sports_centre-sport-ice_hockey|leisure-sports_centre-sport-multi|leisure-sports_centre-sport-padel|leisure-sports_centre-sport-pelota|leisure-sports_centre-sport-scuba_diving|leisure-sports_centre-sport-shooting|leisure-sports_centre-sport-skateboard|leisure-sports_centre-sport-skiing|leisure-sports_centre-sport-soccer|leisure-sports_centre-sport-table_tennis|leisure-sports_centre-sport-tennis|leisure-sports_centre-sport-volleyball|leisure-sports_centre-sport-yoga": "4Sports Center|sport|U+26BD|U+26BE|U+1F3BE|U+1F4AA|U+1F3C8|U+1F3C0|U+1F3C9|sports complex|sports forum",
"leisure-sports_centre|leisure-sports_centre-sport-american_football|leisure-sports_centre-sport-archery|leisure-sports_centre-sport-athletics|leisure-sports_centre-sport-australian_football|leisure-sports_centre-sport-badminton|leisure-sports_centre-sport-baseball|leisure-sports_centre-sport-basketball|leisure-sports_centre-sport-beachvolleyball|leisure-sports_centre-sport-bowls|leisure-sports_centre-sport-climbing|leisure-sports_centre-sport-cricket|leisure-sports_centre-sport-curling|leisure-sports_centre-sport-equestrian|leisure-sports_centre-sport-field_hockey|leisure-sports_centre-sport-futsal|leisure-sports_centre-sport-golf|leisure-sports_centre-sport-gymnastics|leisure-sports_centre-sport-handball|leisure-sports_centre-sport-ice_hockey|leisure-sports_centre-sport-multi|leisure-sports_centre-sport-padel|leisure-sports_centre-sport-pelota|leisure-sports_centre-sport-scuba_diving|leisure-sports_centre-sport-shooting|leisure-sports_centre-sport-skateboard|leisure-sports_centre-sport-skiing|leisure-sports_centre-sport-soccer|leisure-sports_centre-sport-table_tennis|leisure-sports_centre-sport-tennis|leisure-sports_centre-sport-volleyball|leisure-sports_centre-sport-yoga": "4Sports Center|sport|sports|U+26BD|U+26BE|U+1F3BE|U+1F4AA|U+1F3C8|U+1F3C0|U+1F3C9|sports complex|sports forum",
"leisure-sports_centre-sport-swimming": "4Swimmming Centre",
"leisure-golf_course": "Golf Course|U+26F3",
"leisure-golf_course": "4Golf Course|golf|U+26F3",
"leisure-miniature_golf": "4Minigolf|Miniature Golf|Putt Putt|mini golf|mini-golf",
"leisure-escape_game": "4Escape Room|Escape Game|quest",
"leisure-hackerspace": "Hackerspace",
"leisure-pitch": "4Sports Ground|sport|U+26BD|U+26BE|U+1F3BE|U+1F3C0|U+1F3C8|U+1F3C9|U+1F3C3",
"leisure-swimming_pool": "4Swimming Pool|sport|U+1F3CA",
"leisure-hackerspace": "6Hackerspace|hacker space|hacklab|hackspace|5makerspace",
"leisure-pitch": "4Sports Ground|sport|sports|U+26BD|U+26BE|U+1F3BE|U+1F3C0|U+1F3C8|U+1F3C9|U+1F3C3",
"leisure-swimming_pool": "4Swimming Pool|sport|sports|U+1F3CA",
"leisure-swimming_pool-private": "DoNotMatchThisType_OneLanguageDefinitionIsEnoughHere",
"sport-american_football": "American Football",
"sport-archery": "Archery",
@@ -276,16 +276,16 @@
"building": "Building|U+1F3E0|U+1F3E1|U+1F3E2",
"building-address": "Address",
"@category_police": "4Police|cops",
"amenity-police|@category_police": "U+1F693|U+1F46E|U+1F694|U+1F482|U+1F6A8",
"office-diplomatic": "4Embassy",
"amenity-police|@category_police": "Police station|U+1F693|U+1F46E|U+1F694|U+1F482|U+1F6A8",
"office-diplomatic": "4Embassy|5Consulate",
"natural-bay": "Bay",
"@category_water": "3Water|water source",
"amenity-drinking_water|drinking_water-yes|@category_water": "4Drinking Water|3Potable Water|U+1F6B0",
"natural-hot_spring|@category_water": "3Hot Spring",
"natural-spring|@category_water": "3Spring|4Natural Spring",
"man_made-water_well|@category_water": "Water Well",
"amenity-water_point|@category_water|@category_rv": "Water Tank Refill Point|2RV Water Point|water for rv|water for campervan|water for caravan",
"man_made-water_tap|@category_water": "Water Tap",
"amenity-water_point|@category_water|@category_rv": "5Water tank refill point|2RV water roint|water for rv|water for campervan|water for caravan",
"man_made-water_tap|@category_water": "5Water tap",
"@waterbody": "Water body|water surface",
"natural-water|@waterbody": "",
"natural-water-basin|landuse-basin|@waterbody": "Basin",
@@ -294,18 +294,18 @@
"natural-water-reservoir|landuse-reservoir|@waterbody": "5Reservoir",
"waterway-river|waterway-stream|natural-water-river": "River|stream|creek|brook",
"waterway-canal": "Canal",
"shop-car_repair": "3Car Repair Workshop|4service station|auto|garage|4mechanic|U+1F527",
"tourism-camp_site|@category_hotel": "4Camping|campsite|campground|4tent spot|U+26FA",
"shop-car_repair": "3Car Repair Workshop|4service station|auto|garage|4mechanic|4Repair car|U+1F527",
"tourism-camp_site|@category_hotel": "4Camping|campsite|campground|4Tent spot|U+26FA",
"tourism-caravan_site|@category_rv||@category_hotel": "2RV Park|4Caravan Site|RV site|U+1F69A|U+26FA|U+1F69B",
"office": "Office|company|U+1F454|U+1F4BC|U+1F3E2|bureau|administrative office|firm|business|corporation",
"office-company": "Company Office",
"office-government": "Government Office",
"office-lawyer": "3Lawyer|advocate|attorney|4barrister|counsel|councellor|4solicitor",
"office-telecommunication": "Telecom Company|telecommunications",
"office-government": "6Government office",
"office-lawyer": "3Lawyer|advocate|attorney|4Barrister|counsel|councellor|4Solicitor",
"office-telecommunication": "Telecom Company|6Telecommunication office",
"craft-beekeeper": "Beekeeper",
"craft-blacksmith": "Blacksmith",
"craft-brewery": "Craft brewery|4Brewery|brew house|beer|beer bar|craft beer",
"craft-caterer": "Caterer",
"craft-caterer": "4Caterer",
"craft-carpenter": "4Carpenter",
"craft-confectionery": "Confectionery|Confectioner",
"craft-electrician": "4Electrician",
@@ -313,69 +313,69 @@
"craft-gardener": "Gardener",
"craft-grinding_mill": "Grinding Mill|Mill",
"craft-handicraft": "Handicraft",
"craft-hvac": "HVAC",
"craft-hvac": "3HVAC|AC|aircon|heating|air conditioner|ventilation|climate|climatization",
"craft-metal_construction": "5Metal Worker",
"craft-key_cutter": "4Key Cutting|Key Duplication|Key Copying",
"craft-key_cutter": "4Key cutting|Key duplication|Key copying",
"craft-locksmith": "Locksmith",
"craft-painter": "House Painter|painter|decorator",
"craft-photographer": "4Photographer|photography Studio",
"craft-plumber": "Plumber",
"craft-plumber": "4Plumber",
"craft-sawmill": "Sawmill",
"craft-shoemaker": "4Shoe Repair|shoe maker",
"craft-winery": "4Winery|Wine",
"craft-winery": "Winery|Wine",
"craft-tailor": "4Tailor|clothes alteration|alterations",
"area:highway-footway|area:highway-pedestrian|area:highway-steps|place-square": "Square",
"place-sea": "Sea|U+1F30A",
"place-ocean": "Ocean|U+1F30A",
"@category_wifi": "WiFi|Wi-Fi",
"@category_wifi": "WiFi|Wi-Fi|WLAN",
"internet_access|internet_access-wlan|@category_wifi": "3Internet|U+1F4F6",
"natural-beach|natural-beach-sand|natural-beach-gravel|leisure-beach_resort": "Beach|U+1F459",
"man_made-lighthouse": "Lighthouse",
"man_made-lighthouse": "5Lighthouse",
"man_made-survey_point": "4Survey Point|survey marker|survey benchmark|4geodetic mark|geodetic vertex|4triangulation station|4trigonometrical point|trig point|trig pillar|4trig station|trig beacon|trig",
"man_made-flagpole": "Flagpole",
"man_made-flagpole": "4Flagpole",
"man_made-mast": "Mast|pole",
"man_made-communications_tower|man_made-tower-communication": "Communications Tower|cell tower|cellular tower|mast",
"man_made-petroleum_well": "Petroleum Well|Oil Well|Boring",
"man_made-petroleum_well": "7Petroleum Well|Oil Well|Boring",
"organic-only|organic-yes": "4organic|bio|biological|eco|ecological|healthy",
"shop-copyshop": "4Copyshop|copy shop|4printing|4photocopy",
"shop-photo|@shop": "4Photo|frames",
"shop-camera|@shop": "3Camera",
"shop-camera|@shop": "3Camera|cameras|photography",
"shop-travel_agency": "4Travel Agency|tours|4tour agency|trips|journeys|travel bureau|holidays|travel agent|tourist office|last minute tour",
"shop-outdoor|@shop": "4Outdoor Equipment|trekking|hiking|climbing|camping",
"shop-dry_cleaning": "3Dry Cleaner|cleaning",
"shop-tyres|@shop": "3Tyre|tyres",
"shop-tyres|@shop": "3Tyre|tyres|tyre shop|3Tires|tire|tire shop",
"amenity-car_wash": "3Car Wash",
"man_made-telescope|man_made-telescope-optical|man_made-telescope-radio|man_made-telescope-gamma": "5Telescope",
"man_made-telescope|man_made-telescope-optical|man_made-telescope-radio|man_made-telescope-gamma": "4Telescope",
"man_made-observatory": "4Observatory",
"amenity-veterinary": "Veterinary Doctor|4veterinary",
"amenity-animal_shelter": "Animal Shelter",
"amenity-veterinary": "4Veterinary Doctor|3Veterinary|vet|veterinarian",
"amenity-animal_shelter": "6Animal Shelter",
"@charging_station": "4Charging Station|charging",
"amenity-charging_station|@charging_station": "",
"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|waste basket",
"amenity-waste_basket": "4Trash Bin|4litter bin|5waste basket|bin",
"emergency-phone": "4Emergency Phone",
"leisure-fitness_centre": "3Fitness Centre|gym|U+1F4AA|fitness|workout|fitness gym|fitness club|health club|fitness studio|workout studio",
"leisure-fitness_centre": "3Fitness Centre|gym|U+1F4AA|fitness|workout|fitness gym|fitness club|health club|fitness studio|workout studio|sport|sports",
"leisure-sauna": "3Sauna|sweatbath|sweat lodge|steam room|steam sauna|sauna room",
"shop-car_repair-tyres|shop-car_repair": "3Tyre Repair|tyres|4puncture repair|tyre puncture repair|flat tyre repair|tyre replacement",
"shop-chemist|@shop": "4Chemist|Pharmacist",
"shop-pet|@shop": "3Pet",
"tourism-zoo|@category_tourism|@category_children": "2Zoo",
"attraction-animal": "Animal Enclosure",
"tourism-information-office|amenity-ranger_station|@category_tourism": "4Tourist Office",
"tourism-information-visitor_centre|amenity-ranger_station|@category_tourism": "3Visitor Centre",
"amenity-community_centre": "4Community Centre",
"amenity-compressed_air": "Compressed Air",
"tourism-information-office|amenity-ranger_station|@category_tourism": "4Tourism office|6Ranger station",
"tourism-information-visitor_centre|amenity-ranger_station|@category_tourism": "3Visitor centre|6Ranger station",
"amenity-community_centre": "4Community centre",
"amenity-compressed_air": "6Compressed air",
"amenity-courthouse": "4Courthouse",
"amenity-vending_machine-cigarettes": "4Cigarette Dispenser",
"amenity-vending_machine-coffee": "4Coffee Dispenser|Coffee",
"amenity-vending_machine-condoms": "4Condoms Dispenser|Condoms|Condomat",
"amenity-vending_machine-drinks": "4Drinks Dispenser|4Beverages",
"amenity-vending_machine-food|@category_food": "4Food Dispenser|Food|Snacks",
"amenity-vending_machine-parking_tickets|@category_parking": "4Parking Tickets|3Pay and Display|Parkomat|Parking Meter",
"amenity-vending_machine-public_transport_tickets|@category_transport": "Ticket Machine|Transport Tickets|Tickets",
"amenity-vending_machine-cigarettes": "4Cigarette dispenser",
"amenity-vending_machine-coffee": "4Coffee dispenser|Coffee",
"amenity-vending_machine-condoms": "4Condoms dispenser|Condoms|Condomat",
"amenity-vending_machine-drinks": "4Drinks dispenser|4Beverages",
"amenity-vending_machine-food|@category_food": "4Food dispenser|Food|Snacks",
"amenity-vending_machine-parking_tickets|@category_parking": "4Parking tickets|3Pay and Display|Parkomat|Parking Meter",
"amenity-vending_machine-public_transport_tickets|@category_transport": "6Ticket machine|Transport Tickets|Tickets|4Fare machine|Bus tickets|Train tickets|Ticketing",
"amenity-vending_machine-newspapers": "4Newspaper Dispenser|Newspapers",
"amenity-vending_machine-sweets": "4Sweets Dispenser|Sweets|4Candies|Lollies",
"amenity-vending_machine-excrement_bags": "5Excrement Bags Dispenser|4Poop Bags|3Dog Poop Bags|Animal Waste",
@@ -383,61 +383,62 @@
"shop-outpost": "4Pickup Point|4Parcel Pickup",
"amenity-vending_machine-fuel|@category_fuel": "Fuel Dispenser|Gas Pump",
"building-garage": "Garage",
"highway-rest_area|highway-services": "4Rest Area|4Service Area|station",
"highway-rest_area|highway-services": "4Rest area|4Service area|station",
"man_made-chimney": "Chimney",
"man_made-crane": "Crane",
"man_made-tower|man_made-flare": "Tower",
"shop-bookmaker|@gambling": "Bookmaker",
"shop-bookmaker|@gambling": "4Bookmaker",
"shop-seafood|@category_food|@shop": "4Fishmonger|4Seafood|fish market|fish|shellfish|marine",
"shop-second_hand|@category_shopping|@shop|@category_secondhand": "Thrift|Flea market",
"shop-charity|@shop|@category_secondhand": "4Charity",
"shop-ticket": "4Ticket Shop|tickets|booking",
"shop-wine|@category_food|@shop": "4Wine|Winery",
"shop-second_hand|@category_shopping|@shop|@category_secondhand": "Thrift|4Thrift store|Flea market",
"shop-charity|@shop|@category_secondhand": "4Charity|charity shop",
"shop-ticket": "4Ticket Shop|tickets|ticket|booking",
"shop-wine|@category_food|@shop": "Wine|Winery",
"shop-car_parts|@shop": "3Car Parts|4Auto Parts",
"tourism-chalet|@category_hotel": "5Holiday Cottage|5vacation home",
"tourism-chalet|@category_hotel": "5Holiday Cottage|5vacation home|4Chalet",
"tourism-information-board": "Information Board",
"tourism-information-map": "Tourist Map",
"aerialway-station": "Aerialway Station|Cable Car Station",
"aeroway-helipad": "Helipad",
"tourism-information-map": "Tourist map|map|4Information",
"aerialway-station": "Aerialway Station|5Cable car station",
"aeroway-helipad": "4Helipad",
"barrier-border_control": "4Border Control",
"leisure-water_park|@category_tourism|@category_children": "Water Park|3aqua park",
"man_made-water_tower": "Water Tower",
"man_made-windmill": "Windmill",
"man_made-windmill": "4Windmill",
"natural-cave_entrance": "Cave",
"natural-volcano|@mountain": "4Volcano",
"office-estate_agent": "4Estate Agent|Realtor|4Real Estate",
"waterway-lock_gate": "Lock Gate",
"amenity-public_bookcase": "4Book Exchange|Book swap",
"sport-climbing": "4Climbing Centre",
"amenity-public_bookcase": "4Book Exchange|Book swap|book|books|public bookcase|bookcase|free library|street library|sidewalk library",
"sport-climbing": "4Climbing Centre|climbing",
"sport-yoga": "Yoga",
"leisure-fitness_centre-sport-yoga": "Yoga Studio",
"tourism-apartment|@category_hotel": "4Holiday Apartment",
"leisure-resort|@category_hotel": "Resort",
"amenity-biergarten|@category_eat|@category_nightlife": "5Biergarten",
"amenity-driving_school": "4Driving School",
"amenity-music_school": "Music School",
"amenity-language_school": "Language School",
"amenity-ice_cream": "3Ice Cream|Gelato",
"amenity-internet_cafe": "3Internet Cafe",
"amenity-driving_school": "4Driving school",
"amenity-music_school": "4Music school",
"amenity-language_school": "4Language school",
"amenity-ice_cream": "3Ice cream|Gelato",
"amenity-internet_cafe": "3Internet Cafe|5Cybercafé",
"amenity-motorcycle_parking": "4Motorcycle Parking",
"amenity-parking_space-disabled|@category_parking": "Disabled Parking Space",
"amenity-car_pooling|@category_parking": "Car Pooling",
"amenity-parking_space-disabled|@category_parking": "4Disabled parking space",
"amenity-car_pooling|@category_parking": "4Carpooling|car pooling",
"amenity-nursing_home": "4Nursing Home",
"amenity-payment_terminal": "Payment Terminal",
"amenity-payment_centre": "Payment Centre",
"amenity-public_bath": "Public Bath",
"amenity-payment_terminal": "3Payment Terminal",
"amenity-payment_centre": "3Payment Centre",
"amenity-public_bath": "6Public bath",
"amenity-shower": "Shower",
"emergency-access_point": "5Emergency Rescue Point|Emergency Location|Emergency Marker|Emergency Access Point",
"emergency-assembly_point": "Emergency Assembly Point",
"emergency-assembly_point": "5Emergency assembly point",
"emergency-life_ring": "5Lifebuoy|6Life Ring|life-ring|lifering|flotation device|floatation device",
"emergency-defibrillator": "4Defibrillator|AED",
"emergency-fire_hydrant": "4Fire Hydrant|Fire Plug",
"emergency-lifeguard": "Lifeguard|Lifesaver",
"emergency-mountain_rescue": "Mountain Rescue Station|Search and Rescue",
"leisure-fitness_station": "3Fitness Station|street workout",
"emergency-mountain_rescue": "Mountain Rescue Station|Search and Rescue|rescue",
"leisure-fitness_station": "3Fitness Station|street workout|fitness|workout|4Exercise station|Exercise bench|outdoor gym|5Calisthenics park|trim trail",
"office-insurance": "4Insurance Office",
"office-ngo": "4Non-Governmental Organization|NGO",
"shop-erotic|@shop": "4Erotic|4Adult|3Sex",
"shop-beauty-day_spa": "4Day Spa|spa|wellness",
"shop-massage": "Massage salon|Massage Parlour|4massage|spa|massage center|massage therapy|massage services|spa treatment|spa services",
"shop-motorcycle|@shop": "4Motorcycle",
"shop-motorcycle_repair": "4Motorcycle Repair",
@@ -445,14 +446,14 @@
"shop-pawnbroker": "4Pawnbroker",
"shop-stationery|@shop": "5Stationery",
"shop-tattoo": "Tattoo Parlour|4tattoos",
"shop-variety_store|@category_shopping|@shop": "Variety",
"shop-video|@shop": "4Video|3DVD",
"shop-video_games|@shop": "Video games|4videogames|video games|videogames|U+1F47E|U+1F579|U+1F3AE",
"shop-variety_store|@category_shopping|@shop": "4Variety|6Dollar store|5Pound shop|5Five and dime",
"shop-video|@shop": "4Video|3DVD|videoshop|5video shop|video rental|video rental shop|video rental store",
"shop-video_games|@shop": "Video games|4videogames|video games|videogames|gaming|games|U+1F47E|U+1F579|U+1F3AE",
"tourism-wilderness_hut|@category_hotel": "4Wilderness Hut|5backcountry hut|hut|mountain hut|bothy|bivvy",
"tourism-gallery|@category_tourism": "3Art Gallery|3Gallery|museum",
"tourism-theme_park|@category_tourism|@category_children": "Theme park|Amusement park",
"boundary-national_park|@category_tourism": "National Park",
"leisure-nature_reserve|@category_tourism": "Nature reserve",
"tourism-theme_park|@category_tourism|@category_children": "5Theme park|Amusement park",
"boundary-national_park|@category_tourism": "5National Park",
"leisure-nature_reserve|@category_tourism": "4Nature reserve",
"natural-cape": "Cape",
"natural-geyser": "3Geyser",
"natural-glacier|@category_tourism": "Glacier",
@@ -461,31 +462,31 @@
"leisure-indoor_play": "3Indoor Play Centre|indoor play|indoor playground",
"piste:type-downhill|piste:type-nordic": "Skiing|3Ski run|4Piste",
"amenity-events_venue": "Events Venue",
"shop-chocolate|@category_food|@shop": "Chocolate",
"shop-chocolate|@category_food|@shop": "5Chocolate",
"shop-coffee|@category_food|@shop": "Coffee Retailer|Coffee",
"shop-fabric|@shop": "Fabric",
"shop-money_lender": "Money lender",
"shop-music|@shop": "Record|vinyl|Music",
"shop-musical_instrument|@shop": "Musical instruments",
"shop-money_lender": "5Money lender",
"shop-music|@shop": "Record|4vinyl|Music|6Record store",
"shop-musical_instrument|@shop": "7Musical instruments|instruments|guitar|guitars",
"shop-tea|@shop": "Tea",
"shop-telecommunication|@shop": "Telecommunication",
"shop-antiques|@category_shopping|@shop|@category_secondhand": "Antiques",
"shop-telecommunication|@shop": "6Telecommunications shop|Telecommunications|telecom",
"shop-antiques|@category_shopping|@shop|@category_secondhand": "5Antiques",
"shop-art|@category_shopping|@shop": "3Artwork|Arts",
"shop-baby_goods|@category_children|@shop": "Baby Goods",
"shop-baby_goods|@category_children|@shop": "4Baby Goods",
"shop-bag|@category_shopping|@shop": "Bags",
"shop-cheese|@category_food|@shop": "Cheese",
"shop-dairy|@category_food|@shop": "Dairy Products",
"shop-electrical|@shop": "Electrical Supplies|Electrical|U+1F50B|U+1F50C|U+1F4A1|U+1F526",
"shop-fishing|@shop": "Fishing",
"shop-interior_decoration|@shop": "Interior Decorations",
"shop-interior_decoration|@shop": "6Interior decorations|interior design",
"shop-lighting|@shop": "4Lighting|Lighting fixtures|4Lamps",
"shop-lottery|@gambling": "Lottery Tickets",
"shop-medical_supply|@shop": "Medical Supplies",
"shop-nutrition_supplements|@shop": "Nutrition Supplements",
"shop-medical_supply|@shop": "7Medical supplies",
"shop-nutrition_supplements|@shop": "9Nutrition supplements",
"shop-paint|@shop": "Paints",
"shop-perfumery|@category_shopping|@shop": "Perfumery",
"shop-sewing|@shop": "3Sewing Supplies|4Haberdashery",
"shop-storage_rental": "Storage Rental",
"shop-perfumery|@category_shopping|@shop": "5Perfumery|perfume|perfumes",
"shop-sewing|@shop": "3Sewing supplies|4Haberdashery",
"shop-storage_rental": "5Storage rental|4Rent storage",
"shop-tobacco|@shop": "Smoke|Tobacco",
"shop-trade|@shop": "Trades Supplies|Trade Supplies",
"shop-watches|@category_shopping|@shop": "Watches",
@@ -496,35 +497,35 @@
"shop-auction|@category_secondhand": "4Auction|Auctioneer|Auction House",
"shop-collector|@category_shopping|@category_secondhand": "Collectables|Collector",
"man_made-cairn": "4Cairn",
"wheelchair-yes": "5Wheelchair",
"amenity-social_facility": "Social Facility",
"wheelchair-yes": "5Wheelchair|accessible|accessibility|5Handicap accessible",
"amenity-social_facility": "Social Facility|social|group home|nursing home|assisted living|drug clinic|halfway house|disabled workshop|job center|homeless shelter",
"social_facility-soup_kitchen": "4Soup Kitchen|Food",
"social_facility-food_bank": "4Food Bank|foodbank|Food",
"amenity-food_sharing": "Food Sharing|Food",
"amenity-give_box": "Give Box",
"social_facility-food_bank": "4Food Bank|foodbank|Food|donate|Free pantry|Free fridge",
"amenity-food_sharing": "Food Sharing|Food|donate",
"amenity-give_box": "Give Box|donate",
"leisure-sports_hall": "Sports hall",
"amenity-arts_centre|@category_tourism": "Arts Center",
"amenity-prison": "prison",
"amenity-exhibition_centre": "Exhibition Center",
"shop-bathroom_furnishing|@shop": "Bathroom Furnishings",
"shop-bed|@shop": "Bed Shop",
"shop-boutique|@shop": "Boutique",
"amenity-food_court": "Food Court",
"shop-curtain|@shop": "Curtain Shop",
"shop-gas|@shop": "Gas Store",
"shop-pet_grooming": "Pet Grooming",
"shop-hifi|@shop": "HiFi Audio Shop",
"amenity-conference_centre": "Conference Center",
"shop-herbalist|@shop": "Herbalist",
"shop-appliance|@shop": "Appliance Shop",
"shop-agrarian|@shop": "Agricultural Shop",
"shop-fashion_accessories|@shop": "Fashion Accessories",
"amenity-prison": "prison|jail|penitentiary|detention centre|detention center",
"amenity-exhibition_centre": "5Exhibition Center",
"shop-bathroom_furnishing|@shop": "9Bathroom Furnishings",
"shop-bed|@shop": "3Bed Shop",
"shop-boutique|@shop": "4Boutique",
"amenity-food_court": "5Food Court",
"shop-curtain|@shop": "5Curtain Shop",
"shop-gas|@shop": "4Gas Store|gas shop|propane|butane|cooking gas|LNG|CNG|gas bottles",
"shop-pet_grooming": "4Pet Grooming|groomer|dog grooming",
"shop-hifi|@shop": "4HiFi Audio Shop",
"amenity-conference_centre": "5Conference Center",
"shop-herbalist|@shop": "4Herbalist",
"shop-appliance|@shop": "4Appliance Shop|Kitchen appliances|Kitchen gallery",
"shop-agrarian|@shop": "4Agricultural Shop|Feed store|Feed and seed|Farm supply",
"shop-fashion_accessories|@shop": "4Fashion Accessories",
"amenity-waste_transfer_station": "Waste Transfer Station",
"shop-carpet|@shop": "Carpet Shop",
"shop-craft|@shop": "Craft",
"shop-carpet|@shop": "4Carpet Shop",
"shop-craft|@shop": "3Craft",
"shop-pasta|@shop": "Pasta",
"attraction-amusement_ride|attraction-carousel|attraction-roller_coaster|attraction-maze|attraction-historic|attraction-big_wheel|attraction-bumper_car|@category_children": "Attraction|Maze",
"amenity-luggage_locker": "Luggage|locker|storage",
"attraction-amusement_ride|attraction-carousel|attraction-roller_coaster|attraction-maze|attraction-historic|attraction-big_wheel|attraction-bumper_car|@category_children": "Attraction|Maze|Amusement|attractions",
"amenity-luggage_locker": "5Luggage locker|Luggage|locker|4Lockers|storage|5Coin lockers",
"office-security": "4Security Office",
"building-guardhouse": "4Guard"
}

View File

@@ -987,7 +987,7 @@ highway|busway|tunnel;[highway=busway][tunnel?];;name;int_name;860;
natural|salt_pond;861;landuse|salt_pond
amenity|conference_centre;862;
amenity|exhibition_centre;863;
deprecated:railway|siding|tunnel:06.2023;864;x
shop|beauty|day_spa;[shop=beauty][beauty=spa];;name;int_name;864;
amenity|boat_rental;865;
area:highway|footway;866;
junction|circular;867;
Can't render this file because it contains an unexpected character in line 7 and column 16.

View File

@@ -0,0 +1 @@
<svg height="18" viewBox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><g fill="none"><circle cx="9" cy="9" fill="#000" opacity=".6" r="9"/><circle cx="9" cy="9" fill="#6b425c" r="8.25"/><path d="m6.30055657 9.36465433.00689805.0737763c.14582844 1.17941477.67189526 2.27631057 1.56061293 3.27868287l-.00113465.0761216c-1.22761107.0592649-2.19488995-.2708693-2.90183667-.9904025-.70694671-.7195332-1.02550703-1.6981313-.95568097-2.93579437.9045588-.05286646 1.66827257.11300557 2.29114131.4976161zm7.46682273-.50627566.2232054.00865956c.0698261 1.23766307-.2487342 2.21626117-.9556809 2.93579437s-1.6742256 1.0496674-2.9018367.9904025l-.0011346-.0761216c.8887176-1.0023723 1.4147844-2.0992681 1.5606129-3.27868287l.006898-.0737763c.570963-.35255965 1.260275-.5213182 2.0679359-.50627566zm-4.7673793-4.05837867.19024281.17805949c1.17397699 1.13425665 1.76096549 2.39289765 1.76096549 3.77592299 0 1.45581612-.6504028 2.78575212-1.9512083 3.98980792-1.30080552-1.2040558-1.95120828-2.5339918-1.95120828-3.98980792 0-1.45581615.65040276-2.77381031 1.95120828-3.95398248zm-3.64250524 1.23453276c.52429331.11064075.98164792.28211324 1.37206381.51441745-.26807889.60635877-.42055963 1.24178775-.45592669 1.90388473-.3404372-.15607091-.70942568-.26527279-1.10368332-.32818887-.12186067-.63450512-.05872551-1.33159631.1875462-2.09011331zm7.28501044 0c.2462718.758517.3094069 1.45560819.1875462 2.09011331-.3942576.06291608-.7632461.17211796-1.1036833.32818887-.035367-.66209698-.1878478-1.29752596-.4559267-1.90388473.3904159-.23230421.8477705-.4037767 1.3720638-.51441745z" fill="#000" fill-rule="evenodd"/></g></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -2107,6 +2107,8 @@ node|z17-[shop=variety_store],
{icon-image: shop-m.svg;}
node|z17-[shop=massage],
{icon-image: massage_salon-m.svg;icon-min-distance: 24;}
node|z17-[shop=beauty][beauty=spa],
{icon-image: day-spa-m.svg;icon-min-distance: 24;}
node|z17-[shop=money_lender],
{icon-image: bank-m.svg;icon-min-distance: 24;}
node|z17-[shop=pawnbroker],

View File

@@ -844,6 +844,7 @@ shop-antiques # icon z16- (also has captio
shop-appliance # icon z18- (also has caption(optional) z18-)
shop-baby_goods # icon z18- (also has caption(optional) z18-)
shop-beauty # icon z16- (also has caption(optional) z16-)
shop-beauty-day_spa # icon z16- (also has caption(optional) z16-)
shop-beverages # icon z16- (also has caption(optional) z16-)
shop-boutique # icon z18- (also has caption(optional) z18-)
shop-car_repair # icon z16- (also has caption(optional) z16-)
@@ -1890,6 +1891,7 @@ leisure-swimming_pool-private # icon z17- (also has captio
# shop-appliance # caption(optional) z18- (also has icon z18-)
# shop-baby_goods # caption(optional) z18- (also has icon z18-)
# shop-beauty # caption(optional) z16- (also has icon z16-)
# shop-beauty-day_spa # caption(optional) z16- (also has icon z16-)
# shop-beverages # caption(optional) z16- (also has icon z16-)
# shop-boutique # caption(optional) z18- (also has icon z18-)
# shop-car_repair # caption(optional) z16- (also has icon z16-)

View File

@@ -0,0 +1 @@
<svg height="18" viewBox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><g fill="none"><circle cx="9" cy="9" fill="#fff" opacity=".6" r="9"/><circle cx="9" cy="9" fill="#be75a3" r="8.25"/><path d="m6.30055657 9.36465433.00689805.0737763c.14582844 1.17941477.67189526 2.27631057 1.56061293 3.27868287l-.00113465.0761216c-1.22761107.0592649-2.19488995-.2708693-2.90183667-.9904025-.70694671-.7195332-1.02550703-1.6981313-.95568097-2.93579437.9045588-.05286646 1.66827257.11300557 2.29114131.4976161zm7.46682273-.50627566.2232054.00865956c.0698261 1.23766307-.2487342 2.21626117-.9556809 2.93579437s-1.6742256 1.0496674-2.9018367.9904025l-.0011346-.0761216c.8887176-1.0023723 1.4147844-2.0992681 1.5606129-3.27868287l.006898-.0737763c.570963-.35255965 1.260275-.5213182 2.0679359-.50627566zm-4.7673793-4.05837867.19024281.17805949c1.17397699 1.13425665 1.76096549 2.39289765 1.76096549 3.77592299 0 1.45581612-.6504028 2.78575212-1.9512083 3.98980792-1.30080552-1.2040558-1.95120828-2.5339918-1.95120828-3.98980792 0-1.45581615.65040276-2.77381031 1.95120828-3.95398248zm-3.64250524 1.23453276c.52429331.11064075.98164792.28211324 1.37206381.51441745-.26807889.60635877-.42055963 1.24178775-.45592669 1.90388473-.3404372-.15607091-.70942568-.26527279-1.10368332-.32818887-.12186067-.63450512-.05872551-1.33159631.1875462-2.09011331zm7.28501044 0c.2462718.758517.3094069 1.45560819.1875462 2.09011331-.3942576.06291608-.7632461.17211796-1.1036833.32818887-.035367-.66209698-.1878478-1.29752596-.4559267-1.90388473.3904159-.23230421.8477705-.4037767 1.3720638-.51441745z" fill="#fff" fill-rule="evenodd"/></g></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -844,6 +844,7 @@ shop-antiques # icon z16- (also has captio
shop-appliance # icon z18- (also has caption(optional) z18-)
shop-baby_goods # icon z18- (also has caption(optional) z18-)
shop-beauty # icon z16- (also has caption(optional) z16-)
shop-beauty-day_spa # icon z16- (also has caption(optional) z16-)
shop-beverages # icon z16- (also has caption(optional) z16-)
shop-boutique # icon z18- (also has caption(optional) z18-)
shop-car_repair # icon z16- (also has caption(optional) z16-)
@@ -1893,6 +1894,7 @@ leisure-swimming_pool-private # icon z17- (also has captio
# shop-appliance # caption(optional) z18- (also has icon z18-)
# shop-baby_goods # caption(optional) z18- (also has icon z18-)
# shop-beauty # caption(optional) z16- (also has icon z16-)
# shop-beauty-day_spa # caption(optional) z16- (also has icon z16-)
# shop-beverages # caption(optional) z16- (also has icon z16-)
# shop-boutique # caption(optional) z18- (also has icon z18-)
# shop-car_repair # caption(optional) z16- (also has icon z16-)

View File

@@ -1291,6 +1291,7 @@
"type.shop.kitchen" = "Kitchen Shop";
"type.shop.laundry" = "Launderette";
"type.shop.mall" = "Shopping Centre";
"type.shop.beauty.day_spa" = "Day Spa";
"type.shop.massage" = "Massage Salon";
"type.shop.mobile_phone" = "Mobile Phone Shop";
"type.shop.money_lender" = "Money Lender";

View File

@@ -1331,6 +1331,7 @@
"type.shop.kitchen" = "Kitchen Store";
"type.shop.laundry" = "Laundry";
"type.shop.mall" = "Mall";
"type.shop.beauty.day_spa" = "Day Spa";
"type.shop.massage" = "Massage Salon";
"type.shop.mobile_phone" = "Mobile Phone Store";
"type.shop.money_lender" = "Money Lender";

View File

@@ -311,7 +311,6 @@ RoutingManager::RoutingManager(Callbacks && callbacks, Delegate & delegate)
, m_delegate(delegate)
, m_extrapolator([this](location::GpsInfo const & gpsInfo) { this->OnExtrapolatedLocationUpdate(gpsInfo); })
{
m_extrapolator.Enable(true); // Keeps smooth arrow movement whether routing or not
m_routingSession.Init(
#ifdef SHOW_ROUTE_DEBUG_MARKS
[this](m2::PointD const & pt)
@@ -556,6 +555,10 @@ void RoutingManager::RemoveRoute(bool deactivateFollowing)
if (deactivateFollowing)
{
m_transitReadManager->BlockTransitSchemeMode(false /* isBlocked */);
// Switching on the extrapolator only for following mode in car and bicycle navigation.
m_extrapolator.Enable(m_currentRouterType == RouterType::Vehicle || m_currentRouterType == RouterType::Bicycle);
// Remove all subroutes.
m_drapeEngine.SafeCall(&df::DrapeEngine::RemoveSubroute, dp::DrapeID(), true /* deactivateFollowing */);
}
@@ -766,6 +769,7 @@ void RoutingManager::FollowRoute()
void RoutingManager::CloseRouting(bool removeRoutePoints)
{
m_extrapolator.Enable(false);
// Hide preview.
HidePreviewSegments();
@@ -942,9 +946,9 @@ void RoutingManager::SetPointsFollowingMode(bool enabled)
void RoutingManager::RemovePassedPoints()
{
ASSERT(m_bmManager != nullptr, ());
RoutePointsLayout routePoints(*m_bmManager);
routePoints.RemovePassedPoints();
ASSERT(m_bmManager != nullptr, ());
RoutePointsLayout routePoints(*m_bmManager);
routePoints.RemovePassedPoints();
}
void RoutingManager::ReorderIntermediatePoints()

View File

@@ -6,7 +6,7 @@
#define MWM_GEOLOCATION_SERVER ""
#define DIFF_LIST_URL ""
#define METASERVER_URL "https://cdn-us-1.comaps.app/servers"
#define DEFAULT_URLS_JSON "[ \"https://cdn-us-2.comaps.tech/\", \"https://comaps.firewall-gateway.de/\", \"https://cdn-fi-1.comaps.app/\", \"https://comaps-cdn.s3-website.cloud.ru/\" ]"
#define DEFAULT_URLS_JSON "[ \"https://cdn-us-2.comaps.tech/\", \"https://comaps.firewall-gateway.de/\", \"https://cdn-fi-1.comaps.app/\", \"https://comaps-cdn.s3-website.cloud.ru/\", \"https://mapgen-fi-1.comaps.app/\" ]"
#define DEFAULT_CONNECTION_CHECK_IP "151.101.195.52" // For now the IP of comaps.app (Fastly CDN)
#define TRAFFIC_DATA_BASE_URL ""
#define USER_BINDING_PKCS12 ""

View File

@@ -36,8 +36,11 @@ def multithread_run_if_one_country(func):
def wrap(env, country, **kwargs):
if len(env.countries) == 1:
kwargs.update({"threads_count": settings.THREADS_COUNT})
# Otherwise index stage of Taiwan_* mwms continues to run after all other mwms have finished:
elif country == 'Taiwan_North':
kwargs.update({"threads_count": 4})
kwargs.update({"threads_count": 6})
elif country == 'Taiwan_South':
kwargs.update({"threads_count": 2})
func(env, country, **kwargs)
return wrap

View File

@@ -1,9 +1,6 @@
#!/usr/bin/env bash
set -e -u
# Prevent python from generating compiled *.pyc files
export PYTHONDONTWRITEBYTECODE=1
OMIM_PATH="${OMIM_PATH:-$(dirname "$0")/../..}"
DATA_PATH="${DATA_PATH:-$OMIM_PATH/data}"
@@ -23,7 +20,7 @@ function BuildDrawingRules() {
-p "$DATA_PATH/styles/$styleType/include/"
# Output diff and store to a file
if [ -f "$DATA_PATH/drules_proto$suffix.txt.prev" ]; then
diff -u "$DATA_PATH/drules_proto$suffix.txt.prev" "$DATA_PATH/drules_proto$suffix.txt" | tee "$DATA_PATH/drules_proto$suffix.txt.diff" || true
diff -u "$DATA_PATH/drules_proto$suffix.txt.prev" "$DATA_PATH/drules_proto$suffix.txt" > "$DATA_PATH/drules_proto$suffix.txt.diff" || true
fi
}
@@ -68,10 +65,10 @@ python3 "$OMIM_PATH/tools/python/stylesheet/drules_merge.py" \
for item in ${outputs[*]}
do
if [ -f "$DATA_PATH/$item.prev" ] && [ -f "$DATA_PATH/$item" ]; then
diff -u "$DATA_PATH/$item.prev" "$DATA_PATH/$item" | tee "$DATA_PATH/$item.diff" || true
diff -u "$DATA_PATH/$item.prev" "$DATA_PATH/$item" > "$DATA_PATH/$item.diff" || true
else
echo "Skipping diff for $item (first run or file missing)"
fi
done
echo "Diffs for all changes are stored in $DATA_PATH/*.txt.diff"
echo "Diffs for all changes are stored in $DATA_PATH/*.txt.diff"

View File

@@ -14,9 +14,6 @@ then
exit
fi
# Prevent python from generating compiled *.pyc files
export PYTHONDONTWRITEBYTECODE=1
# Add env var to disable renderer on a display (renderer not working into a Github container)
export QT_QPA_PLATFORM=offscreen

View File

@@ -1,9 +1,6 @@
#!/usr/bin/env bash
set -e -u
# Prevent python from generating compiled *.pyc files
export PYTHONDONTWRITEBYTECODE=1
DEBUG="${1:-empty}"
MY_PATH="`dirname \"$0\"`" # relative

View File

@@ -13,9 +13,6 @@ if ! command -v scour &> /dev/null; then
exit
fi
# Prevent python from generating compiled *.pyc files
export PYTHONDONTWRITEBYTECODE=1
OMIM_PATH="${OMIM_PATH:-$(cd "$(dirname "$0")/../.."; pwd)}"
echo "Started processing"