diff --git a/android/app/src/main/res/values-iw/strings.xml b/android/app/src/main/res/values-iw/strings.xml index f9a5609243..7aac91b036 100644 --- a/android/app/src/main/res/values-iw/strings.xml +++ b/android/app/src/main/res/values-iw/strings.xml @@ -839,7 +839,7 @@ שדה תעופה שדה תעופה בינלאומי חניית מטוסים - שער עליה למטוס + שער מנחת מסוקים מסלול המראה מסלול הסעה @@ -1321,7 +1321,7 @@ גשר מסלול - מסלול ללא גישה + מסלול מִנהָרָה רמזור @@ -1393,7 +1393,7 @@ אנדרטה עמוד הקלון חורבות עתיקות - ספינה + אונייה טנק היסטורי קֶבֶר צלב בצד הדרך @@ -1414,22 +1414,15 @@ אינטרנט אינטרנט אלחוטי צומת - כיכר - כיכר - שימושי קרקע - חלקות חקלאיות + מעגל תנועה + מעגל תנועה אגן מים - קרקע מזוהמת בית קברות בית קברות נוצרי - חצר כנסיה אזור מסחרי אתר בניה - קריית חינוך - אדמה חקלאית - חצר חקלאית שדה ערוגת פרחים יער diff --git a/data/categories.txt b/data/categories.txt index 60f7092427..ad6583aa62 100644 --- a/data/categories.txt +++ b/data/categories.txt @@ -78,6 +78,7 @@ ru:Где поесть|Поесть|Еда|кушать|покушать be:Дзе паесці|паесці|ежа bg:Места за хапване|ядене|храна ar:طعام|أمكان لتناول الطعام +ca:On menjar|Menjar cs:Kde se najíst|Jídlo da:Spisesteder|Mad nl:Waar iets gaan eten|Eten @@ -161,6 +162,7 @@ ru:5Транспорт be:5Транспарт bg:5Транспорт ar:مواصلات|مواصلات +ca:Transport cs:Doprava da:5Transport nl:5Transport @@ -193,7 +195,6 @@ el:Συγκοινωνία he:תחבורה sk:Doprava fa:حمل و مواصلات -ca:Transport # First keyword should match [category_fuel] definition in strings.txt! @category_fuel @@ -202,6 +203,7 @@ ru:3бензин|3дизель|4топливо|газ be:3бензін|3дызель|4паліва|газ bg:Гориво|Бензиностанция ar:1وقود|بنزين|سولار|ديزل|وقود الحافلات +ca:Benzinera cs:2Čerpací stanice|Benzinová pumpa|benzinka da:Brændstof|Benzin nl:3Benzine @@ -235,7 +237,7 @@ he:גז sk:3Čerpacia stanica sw:Sheli fa:سوخت|بنزین|دیزل|گازوئیل -ca:Benzinera + # First keyword should match [category_parking] definition in strings.txt! @category_parking @@ -244,6 +246,7 @@ ru:4Парковка be:4Паркоўка bg:4Паркинг ar:موقف سيارات|مرافق ركن السيارات +ca:Aparcament cs:4Parkoviště da:4Parkering nl:4Parkeerplaats @@ -276,7 +279,7 @@ el:Χώρος στάθμευσης he:חניה sk:4Parkovisko fa:پارکینگ -ca:Aparcament + # First keyword should match [category_shopping] definition in strings.txt! @category_shopping @@ -285,6 +288,7 @@ ru:3Шоппинг|4Покупки ar:تسوق be:3Шопінг|4Закупы bg:3Шопинг +ca:Compres cs:Nákupy da:Indkøb de:4Shopping @@ -318,7 +322,7 @@ uk:3Шопінг vi:Đi mua sắm zh-Hans:购物 zh-Hant:購物 -ca:Compres + # First keyword should match [category_hotel] definition in strings.txt! @category_hotel @@ -327,6 +331,7 @@ ru:4Гостиница|отель|отели be:4Гатэль|гатэлі bg:Хотел|хотели ar:فندق|الفنادق +ca:Hotel|Hotels cs:Hotel|Hotely da:Hotel|Hoteller nl:Hotel|Hotels @@ -359,7 +364,7 @@ el:4Ξενοδοχείο|Διαμονή|Ξενοδοχεία he:מלון|בתי sk:Hotel|Hotely fa:هتل|هتل ها -ca:Hotel|Hotels + # First keyword should match [category_tourism] definition in strings.txt! @category_tourism @@ -368,6 +373,7 @@ ru:4Достопримечательности|3Туризм be:4Славутасці|4турызм bg:5Забележителности|4Туризъм ar:سياحة +ca:Turisme cs:Pamětihodnost da:5Seværdigheder|4Turisme|3sightseeing nl:5Bezienswaardigheden|4Toerisme @@ -400,7 +406,7 @@ el:4Αξιοθέατα he:נקודות עיניין sk:Pamätihodnosť fa:منظره|گردشگری -ca:Turisme + # First keyword should match [category_entertainment] definition in strings.txt! @category_entertainment @@ -409,6 +415,7 @@ ru:Развлечения be:Забавы bg:Развлечение ar:ترفيه وتسلية|تسلية +ca:Entreteniment cs:Zábava da:Underholdning nl:Uitgaan @@ -441,7 +448,7 @@ el:Ψυχαγωγία he:בידור sk:Zábava fa:سرگرمی -ca:Entreteniment + # First keyword should match [category_nightlife] definition in strings.txt! @category_nightlife @@ -450,6 +457,7 @@ ru:Ночная жизнь|С друзьями|Вечер с друзьями|п be:Начное жыццё|патусіць bg:Нощен живот|С приятели ar:أنشطة ترفيه ليلية +ca:Vida nocturna cs:Noční život da:Natteliv nl:Nachtleven @@ -482,7 +490,7 @@ el:Νυχτερινή Ζωή sk:Nočný život sw:Shughuli za usiku fa:تفریحات شبانه -ca:Vida nocturna + # First keyword should match [category_children] definition in strings.txt! @category_children @@ -491,6 +499,7 @@ ru:Отдых с детьми be:Сямейны адпачынак bg:Семейна почивка ar:عطلة عائلية +ca:Vacances familiars cs:Dovolená s dětmi da:Familieferie nl:Gezinsvakantie @@ -523,7 +532,7 @@ el:Οικογενειακές Διακοπές sk:Rodinná dovolenka sw:Mapumziko ya familia fa:تعطیلات خانوادگی -ca:Vacances familiars + # First keyword should match [category_atm] definition in strings.txt! @category_atm @@ -532,6 +541,7 @@ ru:3Банкомат be:3Банкамат bg:3Банкомат ar:ماكينة صرافة آلية|صراف|صراف آلي|صراف آلي +ca:Caixer automàtic cs:3Bankomat da:3Hæveautomat nl:3Geldautomaat @@ -565,7 +575,7 @@ he:כספומט sk:3Bankomat sw:Benki|fedha fa:خود پرداز -ca:Caixer automàtic + # First keyword should match [category_rv] definition in strings.txt! @category_rv @@ -573,7 +583,7 @@ en:2RV Facilities|4Caravan|Vanlife|5Campervan|5Motorhome ar:منشآت للمنازل المتنقلة be:Для аўтадамоў|5Аўтадом|5Трэйлер|5Караван|Дом на колах bg:За RV -ca:Caravanes +ca:Caravanes|Autocaravana cs:Pro RV da:Til RV de:Einrichtungen für Wohnmobile|4Wohnmobile @@ -606,13 +616,13 @@ uk:Для автобудинків|5Автодім|5Автобудинок|5Тр vi:Đối với RV zh-Hans:房车设施 zh-Hant:露營車設施 -ca:Autocaravana amenity-atm|@category_atm en:money|U+1F3E7|U+1F4B2|U+1F4B3|U+1F4B4|U+1F4B5|U+1F4B6|U+1F4B7 ru:деньги bg:пари ar:ماكينة صراف آلي|الأموال|فلوس|صرافة آلية|نقود +ca:diners cs:spořitelna|peníze da:penge nl:geld @@ -643,7 +653,7 @@ zh-Hant:1atm|理財|錢|金錢 el:χρήματα sk:sporiteľna|peniaze fa:دستگاه خودپرداز -ca:diners + # First keyword should match [category_bank] definition in strings.txt! @category_bank @@ -652,6 +662,7 @@ ru:3Банк be:3Банк bg:3Банка ar:بنك +ca:Banc cs:3Banka da:3Bank nl:3Bank @@ -684,7 +695,7 @@ he:בנק sk:3Banka sw:Benki|fedha fa:بانک -ca:Banc + # First keyword should match [category_secondhand] definition in strings.txt! @category_secondhand @@ -732,6 +743,7 @@ en:money|U+1F3E6|U+1F4B0|U+1F4B2|U+1F4B3|U+1F4B4|U+1F4B5|U+1F4B6|U+1F4B7 ru:деньги bg:пари ar:بنك|الأموال|فلوس|نقود|مال +ca:diners cs:peníze da:3penge nl:geld @@ -761,7 +773,7 @@ zh-Hant:錢 el:χρήματα sk:peniaze fa:بانک -ca:diners + # First keyword should match [category_recycling] definition in strings.txt! @category_recycling @@ -770,6 +782,7 @@ ru:Переработка|5Переработка отходов|Утилиза be:Перапрацоўка|5Перапрацоўка адходаў|Утылізацыя адходаў|5Прыём другаснай сыравіны|5Здаць другсыравіну|Паасобны збор смецця|Сартаванне смецця|Паўторнае выкарыстанне|Утыль bg:Рециклиране|Преизползване|Разделно събиране|Сепаратор ar:إعادة تدوير|استغلال المخلفات|المواد القابلة لإعادة التدوير|جمع القمامة بشكل منفصل|فرز النفايات|إعادة الاستخدام +ca:Reciclatge|Reciclatge de residus|Eliminació de residus|Materials reciclables|Recollida selectiva d’escombraries|Classificació de residus|Reutilització cs:Recyklace|Využití odpadu|Recyklovatelné|Oddělený sběr odpadků|Třídění odpadu|Opětovné použití da:Genbrug|Affaldsudnyttelse|Genanvendelig|Separate dagrenovationer|Affaldssortering nl:Recycling|Afvalgebruik|Recyclebaar materiaal|Gescheiden afvalinzameling|Afval sorteren|Hergebruik @@ -801,13 +814,14 @@ sk:Recyklácia|Využitie odpadu|Recyklovateľné|Separovaný zber odpadu|Trieden zh-Hans:回收|废物利用|可回收物|垃圾分类收集|垃圾分类|再利用 zh-Hant:回收|廢物利用|可回收物|垃圾分類收集|垃圾分類|再利用 fa:بازیافت|مدیریت پسماند|مواد بازیافتنی|جمعآوری جداگانۀ زبالهها |تفکیک پسماند|بازمصرف -ca:Reciclatge|Reciclatge de residus|Eliminació de residus|Materials reciclables|Recollida selectiva d’escombraries|Classificació de residus|Reutilització + amenity-bureau_de_change en:3Currency Exchange|3exchange|money|U+1F4B1|U+1F4B2|U+1F4B4|U+1F4B5|U+1F4B6|U+1F4B7 ru:3Обмен валюты|обмен валют|обменник|4валюта|деньги bg:Чейндж бюро|пари|обмяна|валути ar:تحويل عملات|تغيير عملات|الصرف|الأموال|صرف عملات|صرف +ca:Canvi de divises|diners cs:3Směnárna|peníze da:3Vekselbureau|3penge nl:3Wisselkantoor|3geld wisselen|wisselen|geld @@ -838,13 +852,14 @@ zh-Hant:1匯率|理財|外幣|兌換|貨幣|換錢 el:Συνάλλαγμα|ανταλλακτήριο|χρήματα sk:3Zmenáreň|peniaze fa:صرافی -ca:Canvi de divises|diners + amenity-bar|amenity-pub|@category_eat|@category_nightlife en:2Bar|2pub|beer|drink|U+1F37A|U+1F37B|U+1F376|tavern|bars and pubs|brew pub|cocktail lounge ru:2Бар|2паб|пиво|выпить|пивной ресторан|пивбар|крафт|коктейль бар|пивная|коктейли|алкоголь|алкогольные напитки bg:2Бар|кръчма|бира|питие|напитка|таверна|коктейл|пиво|алкохол ar:بار|حانة|خمارة|بيرة|شراب +ca:Bar cs:2Bar|hospoda|pivo|pití|tekutiny da:2Bar|værtshus|kro|øl|pub|drink nl:2Bar|2pub|kroeg|bier|drinken @@ -877,13 +892,14 @@ el:Μπαρ|Παμπ|μπύρα|ποτό|φαγητό sk:2Bar|pohostinstvo|pivo|pitie|tekutiny sw:Baa|vinywaji fa:میکده|کاباره -ca:Bar + amenity-cafe|@category_eat en:3Cafe|3restaurant|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 ru:3Кафе|3ресторан|кофейня|кофе bg:3Кафе|3ресторант|кафене ar:مقهى|مطعم|طعام|قهوة|كافتيريا +ca:Cafè|Cafeteria cs:3Kavárna|restaurace|hospoda da:3Café|restaurant nl:3Tearoom|3brasserie|3café|3restaurant @@ -916,13 +932,14 @@ el:Καφετέρια|εστιατόριο|φαγητό sk:3Kaviareň|reštaurácia|pohostinstvo sw:Mgahawa|hoteli|chakula fa:کافه|قهوه فروشی|قهوه خانه -ca:Cafè|Cafeteria + amenity-fast_food|@category_eat en:4Fast Food|3restaurant|3cafe|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 ru:3Фастфуд|3ресторан|3кафе|закусочная|быстрое питание|снеки|перекусить|экспресс-питание bg:Бързо хранене|Фастфууд|кафе|храна|за вкъщи|ресторант|закусвалня ar:وجبات سريعة|مطعم|مقهى|وجبة جاهزة|طعام +ca:Menjar ràpid cs:2Rychlé občerstvení|4fastfood|kavárna|restaurace da:4Fastfood|restaurant|café|takeaway nl:4Fast food|3frituur|fritkot|3restaurant|afhaaleten @@ -954,13 +971,14 @@ zh-Hant:1速食店|麥當勞|肯德雞|漢堡王|頂呱呱|薯條|速食|用餐| el:Ταχυφαγίο|καφετέρια|φαγητό για το σπίτι|φαγητό sk:2Rýchle občerstvenie|4fastfood|3kaviareň|reštaurácia fa:فست فود|غذای حاضری -ca:Menjar ràpid + amenity-restaurant|@category_eat en:3Restaurant|3cafe|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 ru:3Ресторан|3кафе bg:3ресторант|3кафе ar:2مطعم|مقهى|طعام +ca:Restaurant cs:3Restaurace|hospoda|kavárna da:3Restaurant|café nl:3Restaurant|3café @@ -993,7 +1011,7 @@ el:Εστιατόριο|καφετέρια|φαγητό sk:3Reštaurácia|pohostinstvo|kaviareň sw:Hoteli|restorenti|mgahawa|chakula fa:رستوران -ca:Restaurant + amenity-fuel|@category_fuel en:Gas Station|Petrol Station|3Filling Station|U+26FD @@ -1080,6 +1098,7 @@ ru:3Булочная|3пекарня|Торт|3Торты|Пирожные be:3Булачная|3Пякарня|Торт|3Тарты bg:3Пекарна ar:مخبز|متجر +ca:Fleca cs:3Pekárna|Pekařství da:3Bager|bageri nl:3Bakkerij|Bakker|Gebak|Taart|3Taarten @@ -1126,6 +1145,7 @@ ru:4Косметика be:4Касметыка bg:4Козметика ar:مستحضرات تجميل|تجميل +ca:Cosmetics cs:4Kosmetika da:4Kosmetik fi:4Kosmetiikka|kauneudenhoito @@ -1238,6 +1258,7 @@ zh-Hant:熟食店 shop-farm|@category_food|@shop en:Farm food +ca:Granja|Agrobotiga de:4Hofladen|4Bauernhofladen et:Talutoit fr:4Produits fermiers|ferme @@ -1654,6 +1675,7 @@ ru:3Хозяйственный|Строительный|Стройтовары| ar:متجر عدد وأدوات|أدوات|عدة|متجر be:Гаспадарчы|Будаўнічы bg:НСС|строителни материали +ca:Ferreteria cs:Železářství da:Isenkræmmer|Byggemarked fi:Rautakauppa|Työkalukauppa @@ -1733,6 +1755,7 @@ en-US:4Jewelry ru:4Ювелирный|бижутерия bg:4Бижутерия|скъпоценни камъни ar:مجوهرات +ca:Joieria cs:Klenotnictví da:Smykkebutik|smykker|4juveler fi:Korukauppa @@ -2269,6 +2292,7 @@ en:3Marketplace|market ru:3Рынок|базар bg:3Пазар ar:سوق|السوق|متجر +ca:Mercat cs:4Tržiště|samoobsluha|market da:3Markedsplads|marked nl:3Markt @@ -2344,6 +2368,7 @@ en:3Clothes|U+1F45A|U+1F457|U+1F456|U+1F455|clothing|wear ru:3Одежда|одежды bg:3Дрехи|магазин за дрехи ar:متجر ملابس|ملابس|متجر +ca:Botiga de roba|Roba cs:Oblečení da:Tøjbutik|tøjforretning|tøj nl:Kledingwinkel|4kleding @@ -2380,6 +2405,7 @@ fa:لباس فروشی|بوتیک shop-caravan|@category_rv|@shop en:2RV dealership|4Caravan dealership|Motorhome dealership be:Аўтадом|Продаж аўтадамоў +ca:Venda de caravanas|Venda de autocaravanas|Venda de motorhomes de:5Wohnmobilhändler|5Wohnwagenhändler es:Venta de caravanas|Venta de autocaravanas|Venta de motorhomes et:Haagiselamute müük @@ -2397,6 +2423,7 @@ be:4Аўтасалон|Машыны ru:4Автосалон|Машины bg:Майстор|автомонтьор|автосалон ar:متجر سيارات|متجر +ca:Venda de cotxes|Concesionari cs:Obchod s auty da:Bilforhandler nl:Autohandelaar @@ -2436,6 +2463,7 @@ ru:4Веломагазин|велосипеды ar:متجر دراجات|متجر be:Веламагазін|Веласіпеды bg:4Веломагазин|велосипед|колело +ca:Botiga de bicicletes|4bicicleta|bici cs:3Cyklistický obchod|jízdní kolo|3kolo da:3Cykelforretning|cykelhandler|cykler fi:3Polkupyöräliike @@ -2475,6 +2503,7 @@ ru:3Киоск ar:كشك|متجر be:Кіеск|Шапік bg:3Киоск +ca:Quiosc cs:3Kiosk da:3Kiosk|pølsevogn nl:3Kiosk @@ -2510,6 +2539,7 @@ en:2Bus Stop|bus|stop|U+1F68C|U+1F68F|U+1F68E|U+1F690 ru:4Остановка|5автобус|4троллейбус bg:4автобусна спирка|4спирка|тролейбус ar:موقف حافلة|باص|حافلة|مواصلات|مواصلات +ca:Parada d'autobús|Parada cs:4Autobusová zastávka|autobus|2bus|4zastávka|stanice da:3Busstoppested|bus nl:3Bushalte|bus|halte @@ -2548,6 +2578,7 @@ en:3Tram Stop|tram|stop|U+1F683 ru:4Остановка|4трамвай bg:4трамвайна спирка|4спирка ar:موقف ترام|مواصلات|مواصلات +ca:Parada de tramvia|Parada cs:4Tramvajová zastávka|tramvaj|4zastávka|stanice da:3Sporvogn|station nl:3Tramhalte @@ -4845,6 +4876,7 @@ en:4College|U+1F3EB ru:4Колледж bg:4Колеж ar:كلية +ca:Col·legi cs:Vysoká škola da:Universitet|4college|gymnasium nl:Hogeschool|hoger beroepsonderwijs|hbo @@ -6455,6 +6487,7 @@ ru:4Укрытие|навес|4убежище be:4Прытулак bg:4Подслон|Убежище|4заслон ar:ملجأ +ca:Refugi cs:Přístřešek|úkryt da:Shelter|læskur|hytte nl:Beschutting @@ -6534,6 +6567,7 @@ en:3Lean-to Shelter|4Shelter|Refuge be:Бівальны навес bg:Подслон за бивак ar:ملجأ +ca:Refugi cs:Přístřešek|úkryt da:Shelter|læskur|hytte nl:Beschutting @@ -6614,6 +6648,7 @@ en:2Phone|U+260E|U+1F4DE|5Telephone ru:3Телефон|4таксофон bg:3Телефон|мобифон|обаждане ar:هاتف +ca:Telèfon cs:2Telefon|telefonní budka|telefonní automat da:2Telefon nl:2Telefoon|publieke telefoon @@ -7569,6 +7604,7 @@ en:Park|U+1F332|U+1F333|U+1F60C ru:Парк bg:Парк|отдих ar:حديقة +ca:Parc cs:Park da:Park nl:Park @@ -9398,6 +9434,7 @@ ru:3Питьевая вода be:3Пітная вада bg:3Питейна вода ar:مياه شرب +ca:3Aigua potable|Font d'aigua potable cs:4Pitná voda da:4Drikkevand nl:4Drinkwater @@ -9476,6 +9513,7 @@ ru:4Родник|ключ|источник be:4Крыніца bg:Извор ar:ينبوع +ca:Manantial cs:Pramen da:Kilde|kildevæld nl:Bron @@ -9515,6 +9553,7 @@ ru:4Колодец|скважина be:4Калодзеж|студня bg:5Кладенец ar:بئر ماء +ca:Pou cs:Studna da:Brønd nl:Waterbron @@ -10366,6 +10405,7 @@ en:4Carpenter ar:نجار be:Цясляр bg:4Дърводелство|дървар| +ca:Fuster cs:Truhlář da:Tømrer de:4Zimmermann @@ -10677,6 +10717,7 @@ en:5Metal Worker ar:عامل معادن be:5Металаканструкцыі bg:5Метални конструкции|металургия|ковач|метал|занаят +ca:Ferrer cs:Kovodílna da:5Metalarbejder de:4Schlosser @@ -10796,6 +10837,7 @@ en:House Painter|painter|decorator ar:رسام be:Мастак bg:Бояджия +ca:Pintor cs:Malíř da:Maler de:Maler @@ -10834,6 +10876,7 @@ en:4Photographer|photography Studio ar:مصور فوتوغرافي|استوديو تصوير be:Фатограф bg:4фотограф|албум|снимка|студио +ca:Fotògraf cs:4Fotograf|fotografické studio da:4Fotograf|studio de:4Fotograf|Fotostudio @@ -11333,6 +11376,7 @@ mr:दीपगृह man_made-survey_point en:4Survey Point|survey marker|survey benchmark|4geodetic mark|geodetic vertex|4triangulation station|4trigonometrical point|trig point|trig pillar|4trig station|trig beacon|trig be:4Геадэзічны пункт +ca:Punt geodèsic de:4Vermessungspunkt el:4Γεωδαιτικό σημείο et:4Vaatluspunkt|geodeetiline punkt|4trigonomeetriline punkt|triangulatsioonipunkt|trigopunkt|4triangulaator @@ -11429,6 +11473,7 @@ en:4Copyshop|copy shop|4printing|4photocopy ru:4Копировальный центр|4печать|полиграфия|ксерокс|принтер|копир bg:4Копирен център|4печат|полиграфия|принтер ar:محل نسخ|طباعة +ca:Copisteria cs:4Kopírovací obchod|4Tiskárny da:4Kopieringsbutik|4Trykkeri nl:4Copy shop|Kopieerwinkel|printer|4drukker @@ -12641,6 +12686,7 @@ mr:वर्तमानपत्र विक्रीयंत्र amenity-vending_machine-sweets en:4Sweets Dispenser|Sweets|4Candies|Lollies be:Аўтамат з прысмакамі|4прысмакі|4цукеркі +ca:Màquina expenedora de dolços de:Süßigkeitenautomat|Süßwaren|Süßigkeiten es:Máquina expendedora de dulces|Dulces|Chuches|Chucherías et:4Maiustuste automaat|Maiustused|4Kommid|Pulgakommid @@ -12733,6 +12779,7 @@ en:Garage ru:Гараж bg:Гараж ar:جراج +ca:Garatge cs:Garáž da:Garage nl:Garage @@ -12804,6 +12851,7 @@ zh-Hant:休息區 highway-services en:4Service Area|service station be:4Зона абслугоўвання +ca:Àrea de servei de:Raststätte es:Área de servicio et:Teenindusala @@ -13123,6 +13171,7 @@ en:3Car Parts|4Auto Parts ru:Автомобильные запчасти|4Автозапчасти|4запчасти bg:Автомобил|части|4авточасти ar:ﺓﺭﺎﻴﺴﻟﺍ ءﺍﺰﺟﺃ +ca:Peçes de cotxe cs:Autodíly da:Bildele nl:Auto onderdelen @@ -15981,6 +16030,7 @@ ar:محل مكملات غذائية be:Харчовыя дабаўкі bg:Хранителни добавки cs:Doplňky výživy +ca:Suplements nutricionals da:Kosttilskud de:Nahrungsergänzungsmittel el:Συμπληρώματα Διατροφής @@ -16019,6 +16069,7 @@ en:Paints ar:ﺕﺎﻧﺎﻫﺪﻟﺍ be:Фарбы bg:Бои +ca:Pintures cs:Barvy da:Maling de:Farben @@ -16058,6 +16109,7 @@ en:Perfumery ar:العطور be:Парфум|Парфумерыя bg:Парфюмерия +ca:Perfumería cs:Parfumerie da:Parfumeri de:4Parfümerie @@ -16097,6 +16149,7 @@ en:3Sewing Supplies|4Haberdashery ar:معدات الخياطة be:Швейныя прыналежнасці bg:Шивашки консумативи +ca:Material de costura|Mercería cs:Šicí potřeby da:Syudstyr de:Nähzubehör @@ -16175,6 +16228,7 @@ en:Tobacco ar:تبغ be:Тытунь bg:Тютюн +ca:Tabac cs:Tabák da:Tobak de:5Tabakwarengeschäft|Tabak|4Trafik @@ -16253,6 +16307,7 @@ en:Watches ar:ساعات be:Гадзіннік bg:Часовници +ca:Rellotger|Rellotgeria cs:Hodinky da:Ure de:Uhrengeschäft|Uhren @@ -16292,6 +16347,7 @@ en:Wholesale ar:متجر مواد بالجملة be:Аптовая bg:Магазин на едро +ca:Magatzem de roba al per major cs:Velkoobchodní prodejna da:Engros butik de:5Großhandelsgeschäft @@ -16328,6 +16384,7 @@ zh-Hant:批髮店 leisure-track en:Track +ca:Pista esportiva de:Laufbahn es:Pista deportiva et:Jooksurada diff --git a/data/osm_test_data/addr_area_street.osm b/data/osm_test_data/addr_area_street.osm deleted file mode 100644 index 95cf5ae4ed..0000000000 --- a/data/osm_test_data/addr_area_street.osm +++ /dev/null @@ -1,551 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/data/strings/types_strings.txt b/data/strings/types_strings.txt index 45a8ca96d4..e7434ee292 100644 --- a/data/strings/types_strings.txt +++ b/data/strings/types_strings.txt @@ -397,7 +397,7 @@ eu = Ontziratzeko atea fi = Portti fr = Porte d'embarquement - he = שער עליה למטוס + he = שער it = Cancello aeroportuale ja = 搭乗口 mr = दार @@ -13763,7 +13763,6 @@ [type.highway.track.no.access] ref = type.highway.track - he = מסלול ללא גישה [type.highway.track.tunnel] ref = type.highway.road.tunnel @@ -15467,7 +15466,7 @@ fa = گردشگری fi = Alus fr = Navire - he = ספינה + he = אונייה hi = जलयान hu = Turizmus id = Pemandangan @@ -15834,7 +15833,7 @@ eu = Biribilgunea fi = Liikenneympyrä fr = Rond-point - he = כיכר + he = מעגל תנועה hi = गोल चक्कर it = Rotonda ja = ラウンドアバウト @@ -15863,7 +15862,6 @@ et = Maakasutus fi = Maankäyttö fr = Utilisation du sol - he = שימושי קרקע hi = भूमि उपयोग ja = 土地利用 mr = भूमी उपयोग @@ -15888,7 +15886,6 @@ et = Peenrad fi = Siirtolapuutarha fr = Jardins familiaux - he = חלקות חקלאיות it = Orti comunitari ja = 市民農園 mr = वाटप @@ -15953,7 +15950,6 @@ et = Ehitusmaa fi = Tuhoalue fr = Friche industrielle - he = קרקע מזוהמת ja = 再開発用地 pl = Teren do zabudowy pt = Terreno industrial devoluto @@ -15991,7 +15987,6 @@ fa = حیاط کلیسا fi = Kirkon piha fr = Cour d'église - he = חצר כנסיה hu = Templomkert id = Halaman gereja it = Sagrato della chiesa @@ -16075,7 +16070,6 @@ et = Haridusrajatised fi = Koulutuslaitos fr = Établissements éducatifs - he = קריית חינוך it = Strutture didattiche mr = शैक्षणिक सुविधा nl = Educatieve voorzieningen @@ -16103,7 +16097,6 @@ fa = زمین کشاورزی fi = Maatalousmaa fr = Terrains agricoles - he = אדמה חקלאית hu = Termőföld id = Lahan pertanian it = Terreno agricolo @@ -16136,7 +16129,6 @@ et = Taluõu fi = Maatila fr = Ferme - he = חצר חקלאית it = Fattoria ja = 農地 nl = Boerenerf diff --git a/generator/generator_tests/raw_generator_test.cpp b/generator/generator_tests/raw_generator_test.cpp index 8406528291..81ca9632e8 100644 --- a/generator/generator_tests/raw_generator_test.cpp +++ b/generator/generator_tests/raw_generator_test.cpp @@ -1126,7 +1126,6 @@ UNIT_CLASS_TEST(TestRawGenerator, CycleBarrier) TEST_EQUAL(carAcc, bicycleAcc, ()); } -// https://github.com/organicmaps/organicmaps/issues/9029 UNIT_CLASS_TEST(TestRawGenerator, Addr_Street_Place) { std::string const mwmName = "Address"; @@ -1141,7 +1140,6 @@ UNIT_CLASS_TEST(TestRawGenerator, Addr_Street_Place) { "./data/osm_test_data/addr_street_place.osm", 1, true, true }, { "./data/osm_test_data/addr_street_very_far.osm", 2, true, false }, { "./data/osm_test_data/zelenograd.osm", 1, false, true }, - { "./data/osm_test_data/addr_area_street.osm", 1, true, false }, }; for (auto const & data : arrFiles) diff --git a/iphone/Maps/Categories/MWMMapViewControlsManager+AddPlace.h b/iphone/Maps/Categories/MWMMapViewControlsManager+AddPlace.h index 88e8ed14c0..5061ffca1d 100644 --- a/iphone/Maps/Categories/MWMMapViewControlsManager+AddPlace.h +++ b/iphone/Maps/Categories/MWMMapViewControlsManager+AddPlace.h @@ -1,8 +1,12 @@ #import #include "geometry/point2d.hpp" +NS_ASSUME_NONNULL_BEGIN + @interface MWMMapViewControlsManager (AddPlace) -- (void)addPlace:(BOOL)isBusiness position:(nullable m2::PointD const *)optionalPosition; +- (void)addPlace:(BOOL)isBusiness position:(m2::PointD const *)optionalPosition; @end + +NS_ASSUME_NONNULL_END diff --git a/iphone/Maps/LocalizedStrings/he.lproj/Localizable.strings b/iphone/Maps/LocalizedStrings/he.lproj/Localizable.strings index 7588e0d73f..6458df16b6 100644 --- a/iphone/Maps/LocalizedStrings/he.lproj/Localizable.strings +++ b/iphone/Maps/LocalizedStrings/he.lproj/Localizable.strings @@ -1423,7 +1423,7 @@ "type.aeroway.apron" = "חניית מטוסים"; -"type.aeroway.gate" = "שער עליה למטוס"; +"type.aeroway.gate" = "שער"; "type.aeroway.helipad" = "מנחת מסוקים"; @@ -2332,7 +2332,7 @@ "type.highway.track.grade1" = "מסלול"; -"type.highway.track.no.access" = "מסלול ללא גישה"; +"type.highway.track.no.access" = "מסלול"; /* These translations are used for all type.highway.*.tunnel. */ "type.highway.track.tunnel" = "מִנהָרָה"; @@ -2472,7 +2472,7 @@ "type.historic.ruins" = "חורבות עתיקות"; -"type.historic.ship" = "ספינה"; +"type.historic.ship" = "אונייה"; "type.historic.tank" = "טנק היסטורי"; @@ -2516,17 +2516,17 @@ "type.junction" = "צומת"; -"type.junction.circular" = "כיכר"; +"type.junction.circular" = "מעגל תנועה"; -"type.junction.roundabout" = "כיכר"; +"type.junction.roundabout" = "מעגל תנועה"; -"type.landuse" = "שימושי קרקע"; +"type.landuse" = "Landuse"; -"type.landuse.allotments" = "חלקות חקלאיות"; +"type.landuse.allotments" = "Allotments"; "type.landuse.basin" = "אגן מים"; -"type.landuse.brownfield" = "קרקע מזוהמת"; +"type.landuse.brownfield" = "Brownfield"; /* In most (European) countries, сemeteries are usually independent of places of worship (e.g. military cemeteries), while grave yards are usually the yard of a place of worship. */ "type.landuse.cemetery" = "בית קברות"; @@ -2534,17 +2534,17 @@ /* In most (European) countries, сemeteries are usually independent of places of worship (e.g. military cemeteries), while grave yards are usually the yard of a place of worship. */ "type.landuse.cemetery.christian" = "בית קברות נוצרי"; -"type.landuse.churchyard" = "חצר כנסיה"; +"type.landuse.churchyard" = "Churchyard"; "type.landuse.commercial" = "אזור מסחרי"; "type.landuse.construction" = "אתר בניה"; -"type.landuse.education" = "קריית חינוך"; +"type.landuse.education" = "Educational Facility"; -"type.landuse.farmland" = "אדמה חקלאית"; +"type.landuse.farmland" = "Farmland"; -"type.landuse.farmyard" = "חצר חקלאית"; +"type.landuse.farmyard" = "Farmyard"; "type.landuse.field" = "שדה"; diff --git a/iphone/Maps/UI/PlacePage/PlacePageManager/MWMPlacePageManagerHelper.h b/iphone/Maps/UI/PlacePage/PlacePageManager/MWMPlacePageManagerHelper.h index 0b7efa3c19..b2e3964b0e 100644 --- a/iphone/Maps/UI/PlacePage/PlacePageManager/MWMPlacePageManagerHelper.h +++ b/iphone/Maps/UI/PlacePage/PlacePageManager/MWMPlacePageManagerHelper.h @@ -31,6 +31,7 @@ + (void)editBookmark:(PlacePageData *)data; + (void)searchBookingHotels:(PlacePageData *)data; + (void)book:(PlacePageData *)data; ++ (void)share:(PlacePageData *)data; + (void)routeFrom:(PlacePageData *)data; + (void)routeTo:(PlacePageData *)data; + (void)routeAddStop:(PlacePageData *)data; diff --git a/iphone/Maps/UI/PlacePage/PlacePageManager/MWMPlacePageManagerHelper.mm b/iphone/Maps/UI/PlacePage/PlacePageManager/MWMPlacePageManagerHelper.mm index f6b78cdd17..05d2617e83 100644 --- a/iphone/Maps/UI/PlacePage/PlacePageManager/MWMPlacePageManagerHelper.mm +++ b/iphone/Maps/UI/PlacePage/PlacePageManager/MWMPlacePageManagerHelper.mm @@ -38,6 +38,7 @@ - (void)editBookmark:(PlacePageData *)data; - (void)searchBookingHotels:(PlacePageData *)data; - (void)book:(PlacePageData *)data; +- (void)share:(PlacePageData *)data; - (void)routeFrom:(PlacePageData *)data; - (void)routeTo:(PlacePageData *)data; - (void)routeAddStop:(PlacePageData *)data; diff --git a/map/framework.cpp b/map/framework.cpp index c3e767a2da..50a91c9e63 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -569,56 +569,6 @@ void Framework::FillPointInfoForBookmark(Bookmark const & bmk, place_page::Info }); } -void Framework::FillUserMarkInfo(UserMark const * mark, place_page::Info & outInfo) -{ - outInfo.SetSelectedObject(df::SelectionShape::OBJECT_USER_MARK); - - switch (mark->GetMarkType()) - { - case UserMark::Type::API: - FillApiMarkInfo(*static_cast(mark), outInfo); - break; - case UserMark::Type::BOOKMARK: - FillBookmarkInfo(*static_cast(mark), outInfo); - break; - case UserMark::Type::SEARCH: - FillSearchResultInfo(*static_cast(mark), outInfo); - break; - case UserMark::Type::ROUTING: - FillRouteMarkInfo(*static_cast(mark), outInfo); - break; - case UserMark::Type::ROAD_WARNING: - FillRoadTypeMarkInfo(*static_cast(mark), outInfo); - break; - case UserMark::Type::TRACK_INFO: - { - auto const & infoMark = *static_cast(mark); - BuildTrackPlacePage(GetBookmarkManager().GetTrackSelectionInfo(infoMark.GetTrackId()), outInfo); - return; - } - case UserMark::Type::TRACK_SELECTION: - { - auto const & selMark = *static_cast(mark); - BuildTrackPlacePage(GetBookmarkManager().GetTrackSelectionInfo(selMark.GetTrackId()), outInfo); - return; - } - case UserMark::Type::TRANSIT: - { - FillTransitMarkInfo(*static_cast(mark), outInfo); - break; - } - case UserMark::Type::SPEED_CAM: - { - FillSpeedCameraMarkInfo(*static_cast(mark), outInfo); - break; - } - default: - CHECK(false, ("Unexpected user mark type", mark->GetMarkType())); - } - - SetPlacePageLocation(outInfo); -} - void Framework::FillBookmarkInfo(Bookmark const & bmk, place_page::Info & info) const { info.SetBookmarkCategoryName(GetBookmarkManager().GetCategoryName(bmk.GetGroupId())); @@ -844,14 +794,14 @@ void Framework::FillRoadTypeMarkInfo(RoadWarningMark const & roadTypeMark, place void Framework::ShowBookmark(kml::MarkId id) { auto const * mark = m_bmManager->GetBookmark(id); - if (mark) - ShowBookmark(mark); - else - ASSERT(false, ("ShowBookmark was called with invalid id", id)); + ShowBookmark(mark); } void Framework::ShowBookmark(Bookmark const * mark) { + if (mark == nullptr) + return; + StopLocationFollow(); place_page::BuildInfo info; @@ -866,8 +816,11 @@ void Framework::ShowBookmark(Bookmark const * mark) auto es = GetBookmarkManager().GetEditSession(); es.SetIsVisible(mark->GetGroupId(), true /* visible */); - if (m_drapeEngine) - m_drapeEngine->SetModelViewCenter(mark->GetPivot(), scale, true /* isAnim */, true /* trackVisibleViewport */); + if (m_drapeEngine != nullptr) + { + m_drapeEngine->SetModelViewCenter(mark->GetPivot(), scale, true /* isAnim */, + true /* trackVisibleViewport */); + } ActivateMapSelection(); } @@ -907,7 +860,7 @@ void Framework::ShowBookmarkCategory(kml::MarkGroupId categoryId, bool animation auto es = bm.GetEditSession(); es.SetIsVisible(categoryId, true /* visible */); - auto const & trackIds = bm.GetTrackIds(categoryId); + auto const trackIds = bm.GetTrackIds(categoryId); for (auto trackId : trackIds) { if (!bm.GetTrack(trackId)->IsInteractive()) @@ -928,7 +881,7 @@ void Framework::ShowFeature(FeatureID const & featureId) if (m_drapeEngine != nullptr) { - auto const & pt = m_currentPlacePageInfo->GetMercator(); + auto const pt = m_currentPlacePageInfo->GetMercator(); auto const scale = scales::GetUpperComfortScale(); m_drapeEngine->SetModelViewCenter(pt, scale, true /* isAnim */, true /* trackVisibleViewport */); } @@ -2172,20 +2125,56 @@ place_page::Info Framework::BuildPlacePageInfo(place_page::BuildInfo const & bui if (buildInfo.IsUserMarkMatchingEnabled()) { - UserMark const * mark = nullptr; - if (buildInfo.m_userMarkId != kml::kInvalidMarkId) + UserMark const * mark = FindUserMarkInTapPosition(buildInfo); + if (mark != nullptr) { - auto const & bm = GetBookmarkManager(); - mark = bm.IsBookmark(buildInfo.m_userMarkId) ? bm.GetBookmark(buildInfo.m_userMarkId) : bm.GetUserMark(buildInfo.m_userMarkId); - ASSERT(mark, ("There is no user mark with id", buildInfo.m_userMarkId)); - } + outInfo.SetSelectedObject(df::SelectionShape::OBJECT_USER_MARK); + switch (mark->GetMarkType()) + { + case UserMark::Type::API: + FillApiMarkInfo(*static_cast(mark), outInfo); + break; + case UserMark::Type::BOOKMARK: + FillBookmarkInfo(*static_cast(mark), outInfo); + break; + case UserMark::Type::SEARCH: + FillSearchResultInfo(*static_cast(mark), outInfo); + break; + case UserMark::Type::ROUTING: + FillRouteMarkInfo(*static_cast(mark), outInfo); + break; + case UserMark::Type::ROAD_WARNING: + FillRoadTypeMarkInfo(*static_cast(mark), outInfo); + break; + case UserMark::Type::TRACK_INFO: + { + auto const & infoMark = *static_cast(mark); + BuildTrackPlacePage(GetBookmarkManager().GetTrackSelectionInfo(infoMark.GetTrackId()), + outInfo); + return outInfo; + } + case UserMark::Type::TRACK_SELECTION: + { + auto const & selMark = *static_cast(mark); + BuildTrackPlacePage(GetBookmarkManager().GetTrackSelectionInfo(selMark.GetTrackId()), + outInfo); + return outInfo; + } + case UserMark::Type::TRANSIT: + { + FillTransitMarkInfo(*static_cast(mark), outInfo); + break; + } + case UserMark::Type::SPEED_CAM: + { + FillSpeedCameraMarkInfo(*static_cast(mark), outInfo); + break; + } + default: + ASSERT(false, ("FindNearestUserMark returned invalid mark.")); + } - if (!mark) - mark = FindUserMarkInTapPosition(buildInfo); - - if (mark) - { - FillUserMarkInfo(mark, outInfo); + SetPlacePageLocation(outInfo); return outInfo; } } @@ -2235,23 +2224,16 @@ place_page::Info Framework::BuildPlacePageInfo(place_page::BuildInfo const & bui // Selection circle should match feature FillFeatureInfo(selectedFeature, outInfo); - if (isBuildingSelected) - outInfo.SetMercator(buildInfo.m_mercator); // Move selection circle to the tap position inside a building. - else if (buildInfo.IsUserMarkMatchingEnabled() && !outInfo.IsBookmark()) + if (buildInfo.IsUserMarkMatchingEnabled() && !outInfo.IsBookmark() && !isBuildingSelected) { - // Search for a user mark at POI position instead of tap position (an icon or text label was tapped). - double constexpr kEps = 1e-7; - auto const rect = df::TapInfo::GetPreciseTapRect(outInfo.GetMercator(), kEps); - UserMark const * mark = GetBookmarkManager().FindNearestUserMark( - [&rect](UserMark::Type) { return rect; }, - [](UserMark::Type) { return true; }); + // Search for a bookmark at POI position instead of tap position + auto mark = FindBookMarkInPosition(outInfo.GetMercator()); if (mark) - { - FillUserMarkInfo(mark, outInfo); - SetPlacePageLocation(outInfo); - return outInfo; - } + FillBookmarkInfo(*static_cast(mark), outInfo); } + + if (isBuildingSelected) + outInfo.SetMercator(buildInfo.m_mercator); // Move selection circle to tap position inside a building. } else { @@ -2299,7 +2281,16 @@ Track::TrackSelectionInfo Framework::FindTrackInTapPosition(place_page::BuildInf UserMark const * Framework::FindUserMarkInTapPosition(place_page::BuildInfo const & buildInfo) const { - UserMark const * mark = GetBookmarkManager().FindNearestUserMark( + auto const & bm = GetBookmarkManager(); + if (buildInfo.m_userMarkId != kml::kInvalidMarkId) + { + auto mark = bm.IsBookmark(buildInfo.m_userMarkId) ? bm.GetBookmark(buildInfo.m_userMarkId) + : bm.GetUserMark(buildInfo.m_userMarkId); + if (mark != nullptr) + return mark; + } + + UserMark const * mark = bm.FindNearestUserMark( [this, &buildInfo](UserMark::Type type) { double constexpr kEps = 1e-7; @@ -2321,6 +2312,26 @@ UserMark const * Framework::FindUserMarkInTapPosition(place_page::BuildInfo cons return mark; } +UserMark const * Framework::FindBookMarkInPosition(m2::PointD const & mercator) const +{ + auto const & bm = GetBookmarkManager(); + + UserMark const * mark = bm.FindNearestUserMark( + [this, &mercator](UserMark::Type type) + { + if (type == UserMark::Type::BOOKMARK || type == UserMark::Type::TRACK_INFO) + return df::TapInfo::GetBookmarkTapRect(mercator, m_currentModelView); + + if (type == UserMark::Type::ROUTING || type == UserMark::Type::ROAD_WARNING) + return df::TapInfo::GetRoutingPointTapRect(mercator, m_currentModelView); + + return df::TapInfo::GetDefaultTapRect(mercator, m_currentModelView); + }, + [](UserMark::Type type) { return true; }); + + return mark; +} + void Framework::PredictLocation(double & lat, double & lon, double accuracy, double bearing, double speed, double elapsedSeconds) { diff --git a/map/framework.hpp b/map/framework.hpp index 53ef163860..42b15ee202 100644 --- a/map/framework.hpp +++ b/map/framework.hpp @@ -362,6 +362,7 @@ private: void BuildTrackPlacePage(Track::TrackSelectionInfo const & trackSelectionInfo, place_page::Info & info); Track::TrackSelectionInfo FindTrackInTapPosition(place_page::BuildInfo const & buildInfo) const; UserMark const * FindUserMarkInTapPosition(place_page::BuildInfo const & buildInfo) const; + UserMark const * FindBookMarkInPosition(m2::PointD const & mercator) const; FeatureID FindBuildingAtPoint(m2::PointD const & mercator) const; void UpdateMinBuildingsTapZoom(); @@ -609,8 +610,6 @@ private: void FillPostcodeInfo(std::string const & postcode, m2::PointD const & mercator, place_page::Info & info) const; - void FillUserMarkInfo(UserMark const * mark, place_page::Info & outInfo); - void FillInfoFromFeatureType(FeatureType & ft, place_page::Info & info) const; void FillApiMarkInfo(ApiMarkPoint const & api, place_page::Info & info) const; void FillSearchResultInfo(SearchMarkPoint const & smp, place_page::Info & info) const; diff --git a/qt/qt_common/helpers.hpp b/qt/qt_common/helpers.hpp index e56484227a..75cfb07f70 100644 --- a/qt/qt_common/helpers.hpp +++ b/qt/qt_common/helpers.hpp @@ -19,9 +19,9 @@ bool IsAltModifier(QMouseEvent const * const e); struct Hotkey { Hotkey() = default; - Hotkey(QKeySequence const & key, char const * slot) : m_key(key), m_slot(slot) {} + Hotkey(int key, char const * slot) : m_key(key), m_slot(slot) {} - QKeySequence m_key = 0; + int m_key = 0; char const * m_slot = nullptr; }; diff --git a/qt/qt_common/map_widget.cpp b/qt/qt_common/map_widget.cpp index 59102ca1ea..cb6d854ce9 100644 --- a/qt/qt_common/map_widget.cpp +++ b/qt/qt_common/map_widget.cpp @@ -25,12 +25,6 @@ #include #include -// Fraction of the viewport for a move event -static constexpr float kViewportFractionRoughMove = 0.2; - -// Fraction of the viewport for a small move event -static constexpr float kViewportFractionSmoothMove = 0.1; - namespace qt::common { //#define ENABLE_AA_SWITCH @@ -67,20 +61,12 @@ void MapWidget::BindHotkeys(QWidget & parent) {Qt::Key_Equal, SLOT(ScalePlus())}, {Qt::Key_Plus, SLOT(ScalePlus())}, {Qt::Key_Minus, SLOT(ScaleMinus())}, - {Qt::Key_Right, SLOT(MoveRight())}, - {Qt::Key_Left, SLOT(MoveLeft())}, - {Qt::Key_Up, SLOT(MoveUp())}, - {Qt::Key_Down, SLOT(MoveDown())}, - {Qt::ALT | Qt::Key_Equal, SLOT(ScalePlusLight())}, - {Qt::ALT | Qt::Key_Plus, SLOT(ScalePlusLight())}, - {Qt::ALT | Qt::Key_Minus, SLOT(ScaleMinusLight())}, - {Qt::ALT | Qt::Key_Right, SLOT(MoveRightSmooth())}, - {Qt::ALT | Qt::Key_Left, SLOT(MoveLeftSmooth())}, - {Qt::ALT | Qt::Key_Up, SLOT(MoveUpSmooth())}, - {Qt::ALT | Qt::Key_Down, SLOT(MoveDownSmooth())}, + {static_cast(Qt::ALT) + static_cast(Qt::Key_Equal), SLOT(ScalePlusLight())}, + {static_cast(Qt::ALT) + static_cast(Qt::Key_Plus), SLOT(ScalePlusLight())}, + {static_cast(Qt::ALT) + static_cast(Qt::Key_Minus), SLOT(ScaleMinusLight())}, #ifdef ENABLE_AA_SWITCH - {Qt::ALT | Qt::Key_A, SLOT(AntialiasingOn())}, - {Qt::ALT | Qt::Key_S, SLOT(AntialiasingOff())}, + {static_cast(Qt::ALT) + static_cast(Qt::Key_A), SLOT(AntialiasingOn())}, + {static_cast(Qt::ALT) + static_cast(Qt::Key_S), SLOT(AntialiasingOff())}, #endif }; @@ -132,22 +118,6 @@ void MapWidget::ScalePlusLight() { m_framework.Scale(Framework::SCALE_MAG_LIGHT, void MapWidget::ScaleMinusLight() { m_framework.Scale(Framework::SCALE_MIN_LIGHT, true); } -void MapWidget::MoveRight() { m_framework.Move(-kViewportFractionRoughMove, 0, true); } - -void MapWidget::MoveRightSmooth() { m_framework.Move(-kViewportFractionSmoothMove, 0, true); } - -void MapWidget::MoveLeft() { m_framework.Move(kViewportFractionRoughMove, 0, true); } - -void MapWidget::MoveLeftSmooth() { m_framework.Move(kViewportFractionSmoothMove, 0, true); } - -void MapWidget::MoveUp() { m_framework.Move(0, -kViewportFractionRoughMove, true); } - -void MapWidget::MoveUpSmooth() { m_framework.Move(0, -kViewportFractionSmoothMove, true); } - -void MapWidget::MoveDown() { m_framework.Move(0, kViewportFractionRoughMove, true); } - -void MapWidget::MoveDownSmooth() { m_framework.Move(0, kViewportFractionSmoothMove, true); } - void MapWidget::AntialiasingOn() { auto engine = m_framework.GetDrapeEngine(); diff --git a/qt/qt_common/map_widget.hpp b/qt/qt_common/map_widget.hpp index 01d4ee22ae..0de92a4709 100644 --- a/qt/qt_common/map_widget.hpp +++ b/qt/qt_common/map_widget.hpp @@ -47,15 +47,6 @@ public slots: void ScaleMinus(); void ScalePlusLight(); void ScaleMinusLight(); - void MoveRight(); - void MoveRightSmooth(); - void MoveLeft(); - void MoveLeftSmooth(); - void MoveUp(); - void MoveUpSmooth(); - void MoveDown(); - void MoveDownSmooth(); - void ScaleChanged(int action); void SliderPressed(); diff --git a/search/reverse_geocoder.cpp b/search/reverse_geocoder.cpp index 0c55ce277a..f26e886e93 100644 --- a/search/reverse_geocoder.cpp +++ b/search/reverse_geocoder.cpp @@ -4,7 +4,6 @@ #include "search/house_to_street_table.hpp" #include "search/mwm_context.hpp" #include "search/region_info_getter.hpp" -#include "search/street_vicinity_loader.hpp" #include "storage/country_info_getter.hpp" @@ -20,8 +19,9 @@ #include "base/stl_helpers.hpp" #include +#include #include - +#include namespace search { @@ -103,7 +103,8 @@ vector ReverseGeocoder::GetNearbyStreets( { return GetNearbyObjects(context, center, radiusM, [](FeatureType & ft) { - return StreetVicinityLoader::IsStreet(ft); + return ((ft.GetGeomType() == feature::GeomType::Line && ftypes::IsWayChecker::Instance()(ft)) || + ftypes::IsSquareChecker::Instance()(ft)); }); } diff --git a/search/street_vicinity_loader.cpp b/search/street_vicinity_loader.cpp index db3a0f0d24..4bac160db7 100644 --- a/search/street_vicinity_loader.cpp +++ b/search/street_vicinity_loader.cpp @@ -41,19 +41,17 @@ StreetVicinityLoader::Street const & StreetVicinityLoader::GetStreet(uint32_t fe return r.first; } -bool StreetVicinityLoader::IsStreet(FeatureType & ft) -{ - auto const geomType = ft.GetGeomType(); - // Highway should be line or area. - bool const isLineOrArea = (geomType == feature::GeomType::Line || geomType == feature::GeomType::Area); - // Square also maybe a point (besides line or area). - return ((isLineOrArea && ftypes::IsWayChecker::Instance()(ft)) || ftypes::IsSquareChecker::Instance()(ft)); -} - void StreetVicinityLoader::LoadStreet(uint32_t featureId, Street & street) { auto feature = m_context->GetFeature(featureId); - if (!feature || !IsStreet(*feature)) + if (!feature) + return; + + bool const isStreet = + (feature->GetGeomType() == feature::GeomType::Line && + ftypes::IsWayChecker::Instance()(*feature)) || + ftypes::IsSquareChecker::Instance()(*feature); + if (!isStreet) return; /// @todo Can be optimized here. Do not aggregate rect, but aggregate covering intervals for each segment, instead. diff --git a/search/street_vicinity_loader.hpp b/search/street_vicinity_loader.hpp index 5c0a4e17ac..d8ed41b00d 100644 --- a/search/street_vicinity_loader.hpp +++ b/search/street_vicinity_loader.hpp @@ -1,12 +1,18 @@ #pragma once #include "search/mwm_context.hpp" +//#include "search/projection_on_street.hpp" #include "search/stats_cache.hpp" +//#include "indexer/feature.hpp" +//#include "indexer/feature_algo.hpp" + #include "geometry/rect2d.hpp" #include "base/macros.hpp" +//#include +#include #include namespace search @@ -19,8 +25,6 @@ class MwmContext; class StreetVicinityLoader { public: - static bool IsStreet(FeatureType & ft); - struct Street { inline bool IsEmpty() const { return m_rect.IsEmptyInterior(); } diff --git a/xcode/base/base.xcodeproj/project.pbxproj b/xcode/base/base.xcodeproj/project.pbxproj index fc45f5fc66..d14beb48b9 100644 --- a/xcode/base/base.xcodeproj/project.pbxproj +++ b/xcode/base/base.xcodeproj/project.pbxproj @@ -631,7 +631,7 @@ attributes = { BuildIndependentTargetsInParallel = YES; DefaultBuildSystemTypeForWorkspace = Latest; - LastUpgradeCheck = 1600; + LastUpgradeCheck = 1510; TargetAttributes = { 39FD27061CC65A7100AFF551 = { CreatedOnToolsVersion = 7.2.1; diff --git a/xcode/drape/drape.xcodeproj/project.pbxproj b/xcode/drape/drape.xcodeproj/project.pbxproj index b690f10d78..4ada982dab 100644 --- a/xcode/drape/drape.xcodeproj/project.pbxproj +++ b/xcode/drape/drape.xcodeproj/project.pbxproj @@ -384,6 +384,7 @@ 6729A5041A69213A007D5872 /* batcher_helpers.hpp */, 6729A5051A69213A007D5872 /* batcher.cpp */, 6729A5061A69213A007D5872 /* batcher.hpp */, + 670947181BDF9A4F005014C0 /* bidi.hpp */, 6729A5071A69213A007D5872 /* binding_info.cpp */, 6729A5081A69213A007D5872 /* binding_info.hpp */, 6729A5091A69213A007D5872 /* buffer_base.cpp */, @@ -556,6 +557,7 @@ 34C624CA1DABDB2000510300 /* static_texture.hpp in Headers */, 4577B25521F2035D00864FAC /* vulkan_texture.hpp in Headers */, 6729A5901A69213A007D5872 /* object_pool.hpp in Headers */, + 670947261BDF9A4F005014C0 /* bidi.hpp in Headers */, 6729A5A11A69213A007D5872 /* shader.hpp in Headers */, 4513BF0C1EC2F0760066565C /* framebuffer.hpp in Headers */, 6729A5641A69213A007D5872 /* attribute_buffer_mutator.hpp in Headers */, @@ -607,7 +609,7 @@ attributes = { BuildIndependentTargetsInParallel = YES; DefaultBuildSystemTypeForWorkspace = Latest; - LastUpgradeCheck = 1600; + LastUpgradeCheck = 1540; TargetAttributes = { 6729A4F01A691F6A007D5872 = { CreatedOnToolsVersion = 6.1.1; diff --git a/xcode/icu/icu.xcodeproj/project.pbxproj b/xcode/icu/icu.xcodeproj/project.pbxproj index 9528f85d2c..e33866255d 100644 --- a/xcode/icu/icu.xcodeproj/project.pbxproj +++ b/xcode/icu/icu.xcodeproj/project.pbxproj @@ -1516,7 +1516,7 @@ attributes = { BuildIndependentTargetsInParallel = YES; DefaultBuildSystemTypeForWorkspace = Latest; - LastUpgradeCheck = 1600; + LastUpgradeCheck = 1510; TargetAttributes = { BBB165D61E8275120058BF1E = { CreatedOnToolsVersion = 8.2.1;