Compare commits
8 commits
master
...
beta/ios-h
Author | SHA1 | Date | |
---|---|---|---|
e1130bfb86 | |||
2ba662ff46 | |||
37c41f54e7 | |||
25d35c4b47 | |||
|
41ea6bf4df | ||
745f28ea12 | |||
bd19de4b9a | |||
ce72ef70da |
119 changed files with 4052 additions and 3712 deletions
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• Новыя дадзеныя OpenStreetMap ад 21 студзеня
|
||||
• Адлюстраванне абмежавання хуткасці ў рэжыме навігацыі
|
||||
• Android Auto: сартаванне метак, палепшаны запыты на дазвол месцазнаходжання
|
||||
• На карту дададзены вежы
|
||||
• Дададзена настройка для адключэння спасылак на гатэлі з Kayak.com і магчымасць адмовы пры першым выкарыстанні
|
||||
• Дададзены сербская (кірыліца) і латышская мовы
|
||||
• Новыя дадзеныя OpenStreetMap ад 27 лютага
|
||||
• Магчымасць уручную расстаўляць прамежкавыя кропкі маршруту
|
||||
• Экспарт аднаго абранага трэка са спісу
|
||||
• Палепшаная маршрутызацыя для веласіпедыстаў
|
||||
• Дададзена сістэмнае апавяшчэнне пры загрузцы карт, фонавыя загрузкі больш не перарываюцца
|
||||
• Дададзены мігатлівы віджэт запісу трэка
|
||||
|
||||
…і шматлікае іншае на omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• Neue OpenStreetMap-Daten vom 21. Januar
|
||||
• Anzeige eines Geschwindigkeitsbegrenzungsschildes im Navigationsmodus
|
||||
• Serbische (Kyrillisch) und Lettische Sprachen hinzugefügt
|
||||
• Android Auto: Lesezeichen sortieren, verbessertes Erlebnis bei der Anforderung von Standortberechtigungen
|
||||
• Turm-POIs hinzugefügt
|
||||
• Eine Einstellung für Kayak.com-Hotellinks und eine Opt-out-Option bei der ersten Nutzung hinzugefügt.
|
||||
• Neue OpenStreetMap-Daten vom 27. Februar
|
||||
• Möglichkeit, Zwischenroutenpunkte manuell zu arrangieren
|
||||
• Einen einzelnen ausgewählten Track aus der Liste teilen
|
||||
• Verbesserte Routenführung für Fahrräder
|
||||
• Beim Herunterladen von Karten eine Systembenachrichtigung anzeigen und Hintergrunddownloads nicht unterbrechen
|
||||
• Ein blinkendes Trackaufzeichnungs-Widget hinzugefügt
|
||||
|
||||
…weitere Details unter omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a Track Recording indicator on the main screen
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• Nuevos datos de OpenStreetMap del 21 de enero
|
||||
• Límite de velocidad en el modo de navegación
|
||||
• Añadidos idiomas serbio (cirílico) y letón
|
||||
• Android Auto: opción de ordenar marcadores, mejorada la experiencia al solicitar ubicación
|
||||
• Añadidos PDI de torres
|
||||
• Añadidas opciones para enlaces de hotel de Kayak.com y de exclusión al primer uso
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…más detalles en omaps.org/news
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• Urtarrilaren 21ko OpenStreetMap-eko datu berriak
|
||||
• Abiadura muga erakusten da nabigazio moduan
|
||||
• Serbiera (zirilikoa) eta letoniera hizkuntzak gehitu dira
|
||||
• Android Auto: gogokoak ordena daitezke, kokapen permisuaren eskaeraren esperientzia hobetu da
|
||||
• Dorreen interes puntuak gehitu dira
|
||||
• Kayak.com-eko hotelen estekak eta lehenengo erabileran ez erakusteko aukera gehitu dira
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…zehaztasun gehiago omaps.org/news webgunean
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• Nouvelles données OpenStreetMap du 21 janvier
|
||||
• Afficher un panneau de limitation de vitesse en mode navigation
|
||||
• Ajout des langues serbe (cyrillique) et lettone
|
||||
• Android Auto : trier les signets, expérience de demande d'autorisation de localisation améliorée
|
||||
• Ajout de POI de tour
|
||||
• Ajout d'un paramètre pour les liens d'hôtel Kayak.com et d'une option de désinscription lors de la première utilisation
|
||||
• Nouvelles données OpenStreetMap du 27 février
|
||||
• Possibilité d'organiser manuellement les points d'itinéraire intermédiaires
|
||||
• Partager une seule piste sélectionnée dans la liste
|
||||
• Amélioration du routage pour les vélos
|
||||
• Afficher une notification système lors du téléchargement de cartes et ne pas interrompre les téléchargements en arrière-plan
|
||||
• Ajout d'un widget d'enregistrement de piste clignotant
|
||||
|
||||
…plus de détails sur omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• Nowe dane OpenStreetMap z 21 stycznia
|
||||
• Wyświetlanie znaku ograniczenia prędkości w trybie nawigacji
|
||||
• Dodano języki serbski (cyrylica) i łotewski
|
||||
• Android Auto: sortowanie zakładek, ulepszono prośbę o pozwolenie na lokalizację
|
||||
• Dodano POI dla wieży
|
||||
• Dodano ustawienie dla linków do hoteli na Kayak.com oraz możliwość wyłączenia ich przy pierwszym uruchomieniu
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…więcej szczegółów na omaps.org/news
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• Novos dados do OpenStreetMap de 21 de janeiro
|
||||
• Exibe um sinal de limite de velocidade no modo de navegação
|
||||
• Adicionados os idiomas sérvio (cirílico) e letão
|
||||
• Android Auto: classificar favoritos, experiência aprimorada de solicitação de permissão de localização
|
||||
• Adicionados POIs de torre
|
||||
• Adicionada uma configuração para links de hotéis Kayak.com e uma opção de cancelamento de primeiro uso
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…mais detalhes em omaps.org/news
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• Novos dados do OpenStreetMap a 21 de janeiro
|
||||
• Exibir um sinal de limite de velocidade no modo de navegação
|
||||
• Adicionados os idiomas sérvio (cirílico) e letão
|
||||
• Android Auto: classificar favoritos, experiência melhorada de pedido de permissão de localização
|
||||
• Adicionados POIs de torre
|
||||
• Foi adicionada uma configuração para o Kayak.com Hotel Links e uma opção de cancelamento de primeira utilização
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…mais detalhes em omaps.org/news
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• Новые данные OpenStreetMap от 21 января
|
||||
• Отображение ограничения скорости в режиме навигации
|
||||
• Android Auto: сортировка меток, улучшены запросы на разрешение местоположения
|
||||
• На карту добавлены башни
|
||||
• Добавлена настройка для отключения ссылок на отели с Kayak.com и возможность отказа при первом использовании
|
||||
• Добавлены сербский (кириллица) и латышский языки
|
||||
• Новые данные OpenStreetMap от 27 февраля
|
||||
• Возможность вручную расставлять промежуточные точки маршрута
|
||||
• Экспорт одного выбранного трека из списка
|
||||
• Улучшенная маршрутизация для велосипедистов
|
||||
• Добавлено системное уведомление при загрузке карт, фоновые загрузки больше не прерываются
|
||||
• Добавлен мигающий виджет записи трека
|
||||
|
||||
…и многое другое на omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• Нові дані OpenStreetMap від 21 січня
|
||||
• Знак перевищення швидкості підчас навігації
|
||||
• Додано перклади сербською (кирилиця) та латиською мовами
|
||||
• Android Auto: сортування міток, покращено процес запиту на отримання дозволу на розміщення
|
||||
• Вежі відображаються на мапі
|
||||
• Додано налаштування для посилань до Kayak.com для готелів та демонструється запит при першому використанні
|
||||
• Нові дані OpenStreetMap від 27 лютого
|
||||
• Можливість вручну розставляти проміжні точки маршруту
|
||||
• Експорт одного вибраного треку зі списку
|
||||
• Покращена маршрутизація для велосипедистів
|
||||
• Додано системне повідомлення під час завантаження карт, фонові завантаження більше не перериваються
|
||||
• Додано миготливий віджет запису треку
|
||||
|
||||
…більше подробиць на omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Dispay a speed limit sign in the navigation mode
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Android Auto: sort bookmarks, improved location permission request experience
|
||||
• Added tower POIs
|
||||
• Added a setting for Kayak.com Hotel Links and a first-use opt-out option
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Ability to manually arrange intermediate route points
|
||||
• Share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Display a system notification when downloading maps and don't interrupt background downloads
|
||||
• Added a flashing Track Recording widget
|
||||
|
||||
…more details at omaps.org/news
|
||||
|
|
|
@ -1 +1 @@
|
|||
version: 2025.01.26-9-FDroid+25012609
|
||||
version: 2025.03.02-7-FDroid+25030207
|
||||
|
|
BIN
data/World.mwm
BIN
data/World.mwm
Binary file not shown.
Binary file not shown.
4622
data/countries.txt
4622
data/countries.txt
File diff suppressed because it is too large
Load diff
|
@ -52,5 +52,6 @@
|
|||
@property(nonatomic) MWMMyPositionMode currentPositionMode;
|
||||
@property(strong, nonatomic) IBOutlet EAGLView * _Nonnull mapView;
|
||||
@property(strong, nonatomic) IBOutlet UIView * _Nonnull controlsView;
|
||||
@property(nonatomic) UIView * _Nonnull searchContainer;
|
||||
|
||||
@end
|
||||
|
|
|
@ -148,34 +148,45 @@ NSString *const kSettingsSegue = @"Map2Settings";
|
|||
|
||||
- (void)setupPlacePageContainer {
|
||||
self.placePageContainer = [[TouchTransparentView alloc] initWithFrame:self.view.bounds];
|
||||
self.placePageContainer.translatesAutoresizingMaskIntoConstraints = NO;
|
||||
[self.view addSubview:self.placePageContainer];
|
||||
[self.view bringSubviewToFront:self.placePageContainer];
|
||||
|
||||
self.placePageContainer.translatesAutoresizingMaskIntoConstraints = NO;
|
||||
self.placePageLeadingConstraint = [self.placePageContainer.leadingAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.leadingAnchor constant:kPlacePageLeadingOffset];
|
||||
self.placePageLeadingConstraint.active = YES;
|
||||
if (IPAD)
|
||||
self.placePageLeadingConstraint.priority = UILayoutPriorityDefaultLow;
|
||||
|
||||
self.placePageWidthConstraint = [self.placePageContainer.widthAnchor constraintEqualToConstant:0];
|
||||
self.placePageWidthConstraint = [self.placePageContainer.widthAnchor constraintEqualToConstant:kPlacePageCompactWidth];
|
||||
self.placePageTrailingConstraint = [self.placePageContainer.trailingAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.trailingAnchor];
|
||||
|
||||
[self.placePageContainer.topAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.topAnchor].active = YES;
|
||||
if (IPAD) {
|
||||
self.placePageLeadingConstraint.priority = UILayoutPriorityDefaultLow;
|
||||
[self.placePageContainer.bottomAnchor constraintLessThanOrEqualToAnchor:self.view.bottomAnchor].active = YES;
|
||||
}
|
||||
else {
|
||||
[self.placePageContainer.bottomAnchor constraintEqualToAnchor:self.view.bottomAnchor].active = YES;
|
||||
}
|
||||
NSLayoutConstraint * topConstraint = [self.placePageContainer.topAnchor constraintEqualToAnchor:self.view.safeAreaLayoutGuide.topAnchor];
|
||||
|
||||
NSLayoutConstraint * bottomConstraint;
|
||||
if (IPAD)
|
||||
bottomConstraint = [self.placePageContainer.bottomAnchor constraintLessThanOrEqualToAnchor:self.view.bottomAnchor];
|
||||
else
|
||||
bottomConstraint = [self.placePageContainer.bottomAnchor constraintEqualToAnchor:self.view.bottomAnchor];
|
||||
|
||||
[NSLayoutConstraint activateConstraints:@[
|
||||
self.placePageLeadingConstraint,
|
||||
topConstraint,
|
||||
bottomConstraint,
|
||||
]];
|
||||
|
||||
[self updatePlacePageContainerConstraints];
|
||||
}
|
||||
|
||||
- (void)setupSearchContainer {
|
||||
self.searchContainer = [[TouchTransparentView alloc] initWithFrame:self.view.bounds];
|
||||
[self.view addSubview:self.searchContainer];
|
||||
[self.view bringSubviewToFront:self.searchContainer];
|
||||
}
|
||||
|
||||
- (void)updatePlacePageContainerConstraints {
|
||||
const BOOL isLimitedWidth = IPAD || self.traitCollection.verticalSizeClass == UIUserInterfaceSizeClassCompact;
|
||||
[self.placePageWidthConstraint setConstant:kPlacePageCompactWidth];
|
||||
|
||||
if (IPAD && self.searchViewContainer != nil) {
|
||||
NSLayoutConstraint * leadingToSearchConstraint = [self.placePageContainer.leadingAnchor constraintEqualToAnchor:self.searchViewContainer.trailingAnchor constant:kPlacePageLeadingOffset];
|
||||
if (IPAD && self.searchView != nil) {
|
||||
NSLayoutConstraint * leadingToSearchConstraint = [self.placePageContainer.leadingAnchor constraintEqualToAnchor:self.searchView.trailingAnchor constant:kPlacePageLeadingOffset];
|
||||
leadingToSearchConstraint.priority = UILayoutPriorityDefaultHigh;
|
||||
leadingToSearchConstraint.active = isLimitedWidth;
|
||||
}
|
||||
|
@ -259,9 +270,6 @@ NSString *const kSettingsSegue = @"Map2Settings";
|
|||
return;
|
||||
}
|
||||
|
||||
if (self.searchManager.isSearching && type == df::TouchEvent::TOUCH_MOVE)
|
||||
[self.searchManager setMapIsDragging];
|
||||
|
||||
NSArray *allTouches = [[event allTouches] allObjects];
|
||||
if ([allTouches count] < 1)
|
||||
return;
|
||||
|
@ -273,6 +281,10 @@ NSString *const kSettingsSegue = @"Map2Settings";
|
|||
UITouch *touch = [allTouches objectAtIndex:0];
|
||||
CGPoint const pt = [touch locationInView:v];
|
||||
|
||||
// **Check if the tap is inside searchView**
|
||||
if (self.searchManager.isSearching && type == df::TouchEvent::TOUCH_MOVE && !CGRectContainsPoint(self.searchView.frame, pt))
|
||||
[self.searchManager setMapIsDragging];
|
||||
|
||||
e.SetTouchType(type);
|
||||
|
||||
df::Touch t0;
|
||||
|
@ -372,6 +384,7 @@ NSString *const kSettingsSegue = @"Map2Settings";
|
|||
- (void)viewDidLoad {
|
||||
[super viewDidLoad];
|
||||
[self setupPlacePageContainer];
|
||||
[self setupSearchContainer];
|
||||
|
||||
if (@available(iOS 14.0, *))
|
||||
[self setupTrackPadGestureRecognizers];
|
||||
|
@ -726,11 +739,11 @@ NSString *const kSettingsSegue = @"Map2Settings";
|
|||
|
||||
- (SearchOnMapManager *)searchManager {
|
||||
if (!_searchManager)
|
||||
_searchManager = [[SearchOnMapManager alloc] initWithNavigationController:self.navigationController];
|
||||
_searchManager = [[SearchOnMapManager alloc] init];
|
||||
return _searchManager;
|
||||
}
|
||||
|
||||
- (UIView * _Nullable)searchViewContainer {
|
||||
- (UIView * _Nullable)searchView {
|
||||
return self.searchManager.viewController.view;
|
||||
}
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ using Observers = NSHashTable<Observer>;
|
|||
- (void)searchEverywhere {
|
||||
self.lastSearchTimestamp += 1;
|
||||
NSUInteger const timestamp = self.lastSearchTimestamp;
|
||||
|
||||
|
||||
search::EverywhereSearchParams params{
|
||||
m_query, m_locale, {} /* default timeout */, m_isCategory,
|
||||
// m_onResults
|
||||
|
@ -156,6 +156,7 @@ using Observers = NSHashTable<Observer>;
|
|||
|
||||
+ (void)showResultAtIndex:(NSUInteger)index {
|
||||
auto const & result = [MWMSearch manager]->m_everywhereResults[index];
|
||||
GetFramework().StopLocationFollow();
|
||||
GetFramework().SelectSearchResult(result, true);
|
||||
}
|
||||
|
||||
|
@ -168,8 +169,13 @@ using Observers = NSHashTable<Observer>;
|
|||
|
||||
+ (void)showEverywhereSearchResultsOnMap {
|
||||
MWMSearch * manager = [MWMSearch manager];
|
||||
if (![MWMRouter isRoutingActive])
|
||||
GetFramework().ShowSearchResults(manager->m_everywhereResults);
|
||||
if (![MWMRouter isRoutingActive]) {
|
||||
auto const & results = manager->m_everywhereResults;
|
||||
if (results.GetCount() == 1)
|
||||
[self showResultAtIndex:0];
|
||||
else
|
||||
GetFramework().ShowSearchResults(manager->m_everywhereResults);
|
||||
}
|
||||
}
|
||||
|
||||
+ (void)showViewportSearchResultsOnMap {
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
enum SearchStyleSheet: String, CaseIterable {
|
||||
case searchHeader
|
||||
case searchCancelButton
|
||||
case searchInstallButton = "SearchInstallButton"
|
||||
case searchBanner = "SearchBanner"
|
||||
case searchClosedBackground = "SearchClosedBackground"
|
||||
|
@ -103,6 +104,13 @@ extension SearchStyleSheet: IStyleSheet {
|
|||
return .addFrom(GlobalStyleSheet.tableCell) { s in
|
||||
s.backgroundColor = colors.transparentGreen
|
||||
}
|
||||
case .searchCancelButton:
|
||||
return .add { s in
|
||||
s.fontColor = colors.whitePrimaryText
|
||||
s.fontColorHighlighted = colors.whitePrimaryTextHighlighted
|
||||
s.font = fonts.regular17
|
||||
s.backgroundColor = .clear
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -495,16 +495,11 @@
|
|||
ED70D55C2D5396F300738C1E /* SearchResult.mm in Sources */ = {isa = PBXBuildFile; fileRef = ED70D55A2D5396F300738C1E /* SearchResult.mm */; };
|
||||
ED70D5892D539A2500738C1E /* SearchOnMapViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D5872D539A2500738C1E /* SearchOnMapViewController.swift */; };
|
||||
ED70D58A2D539A2500738C1E /* SearchOnMapModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D5852D539A2500738C1E /* SearchOnMapModels.swift */; };
|
||||
ED70D58B2D539A2500738C1E /* SearchOnMapModalTransitionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D57E2D539A2500738C1E /* SearchOnMapModalTransitionManager.swift */; };
|
||||
ED70D58C2D539A2500738C1E /* SearchOnMapPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D5862D539A2500738C1E /* SearchOnMapPresenter.swift */; };
|
||||
ED70D58D2D539A2500738C1E /* ModalScreenPresentationStep.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D57C2D539A2500738C1E /* ModalScreenPresentationStep.swift */; };
|
||||
ED70D58E2D539A2500738C1E /* SideMenuPresentationAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D5802D539A2500738C1E /* SideMenuPresentationAnimator.swift */; };
|
||||
ED70D58F2D539A2500738C1E /* SearchOnMapInteractor.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D5832D539A2500738C1E /* SearchOnMapInteractor.swift */; };
|
||||
ED70D5902D539A2500738C1E /* SearchOnMapModalPresentationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D57D2D539A2500738C1E /* SearchOnMapModalPresentationController.swift */; };
|
||||
ED70D5912D539A2500738C1E /* MapPassthroughView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D57B2D539A2500738C1E /* MapPassthroughView.swift */; };
|
||||
ED70D5922D539A2500738C1E /* PlaceholderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D5822D539A2500738C1E /* PlaceholderView.swift */; };
|
||||
ED70D5932D539A2500738C1E /* SearchOnMapManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D5842D539A2500738C1E /* SearchOnMapManager.swift */; };
|
||||
ED70D5942D539A2500738C1E /* SideMenuDismissalAnimator.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED70D57F2D539A2500738C1E /* SideMenuDismissalAnimator.swift */; };
|
||||
ED77556E2C2C490B0051E656 /* UIAlertController+openInAppActionSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED77556D2C2C490B0051E656 /* UIAlertController+openInAppActionSheet.swift */; };
|
||||
ED79A5AB2BD7AA9C00952D1F /* LoadingOverlayViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED79A5AA2BD7AA9C00952D1F /* LoadingOverlayViewController.swift */; };
|
||||
ED79A5AD2BD7BA0F00952D1F /* UIApplication+LoadingOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED79A5AC2BD7BA0F00952D1F /* UIApplication+LoadingOverlay.swift */; };
|
||||
|
@ -525,6 +520,7 @@
|
|||
ED9857082C4ED02D00694F6C /* MailComposer.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED9857072C4ED02D00694F6C /* MailComposer.swift */; };
|
||||
ED9966802B94FBC20083CE55 /* ColorPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED99667D2B94FBC20083CE55 /* ColorPicker.swift */; };
|
||||
EDA1EAA42CC7ECAD00DBDCAA /* ElevationProfileFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDA1EAA32CC7ECAD00DBDCAA /* ElevationProfileFormatter.swift */; };
|
||||
EDB71D5C2D82B4F8004A6A7F /* SearchOnMapPresentationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDB71D5B2D82B4F8004A6A7F /* SearchOnMapPresentationController.swift */; };
|
||||
EDBD68072B625724005DD151 /* LocationServicesDisabledAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = EDBD68062B625724005DD151 /* LocationServicesDisabledAlert.xib */; };
|
||||
EDBD680B2B62572E005DD151 /* LocationServicesDisabledAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDBD680A2B62572E005DD151 /* LocationServicesDisabledAlert.swift */; };
|
||||
EDC3573B2B7B5029001AE9CA /* CALayer+SetCorner.swift in Sources */ = {isa = PBXBuildFile; fileRef = EDC3573A2B7B5029001AE9CA /* CALayer+SetCorner.swift */; };
|
||||
|
@ -1459,12 +1455,7 @@
|
|||
ED70D5592D5396F300738C1E /* SearchResult.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SearchResult.h; sourceTree = "<group>"; };
|
||||
ED70D55A2D5396F300738C1E /* SearchResult.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = SearchResult.mm; sourceTree = "<group>"; };
|
||||
ED70D55B2D5396F300738C1E /* SearchResult+Core.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "SearchResult+Core.h"; sourceTree = "<group>"; };
|
||||
ED70D57B2D539A2500738C1E /* MapPassthroughView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapPassthroughView.swift; sourceTree = "<group>"; };
|
||||
ED70D57C2D539A2500738C1E /* ModalScreenPresentationStep.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModalScreenPresentationStep.swift; sourceTree = "<group>"; };
|
||||
ED70D57D2D539A2500738C1E /* SearchOnMapModalPresentationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchOnMapModalPresentationController.swift; sourceTree = "<group>"; };
|
||||
ED70D57E2D539A2500738C1E /* SearchOnMapModalTransitionManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchOnMapModalTransitionManager.swift; sourceTree = "<group>"; };
|
||||
ED70D57F2D539A2500738C1E /* SideMenuDismissalAnimator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SideMenuDismissalAnimator.swift; sourceTree = "<group>"; };
|
||||
ED70D5802D539A2500738C1E /* SideMenuPresentationAnimator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SideMenuPresentationAnimator.swift; sourceTree = "<group>"; };
|
||||
ED70D5822D539A2500738C1E /* PlaceholderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaceholderView.swift; sourceTree = "<group>"; };
|
||||
ED70D5832D539A2500738C1E /* SearchOnMapInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchOnMapInteractor.swift; sourceTree = "<group>"; };
|
||||
ED70D5842D539A2500738C1E /* SearchOnMapManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchOnMapManager.swift; sourceTree = "<group>"; };
|
||||
|
@ -1491,6 +1482,7 @@
|
|||
ED9857072C4ED02D00694F6C /* MailComposer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MailComposer.swift; sourceTree = "<group>"; };
|
||||
ED99667D2B94FBC20083CE55 /* ColorPicker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorPicker.swift; sourceTree = "<group>"; };
|
||||
EDA1EAA32CC7ECAD00DBDCAA /* ElevationProfileFormatter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ElevationProfileFormatter.swift; sourceTree = "<group>"; };
|
||||
EDB71D5B2D82B4F8004A6A7F /* SearchOnMapPresentationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchOnMapPresentationController.swift; sourceTree = "<group>"; };
|
||||
EDBD68062B625724005DD151 /* LocationServicesDisabledAlert.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LocationServicesDisabledAlert.xib; sourceTree = "<group>"; };
|
||||
EDBD680A2B62572E005DD151 /* LocationServicesDisabledAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationServicesDisabledAlert.swift; sourceTree = "<group>"; };
|
||||
EDC3573A2B7B5029001AE9CA /* CALayer+SetCorner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CALayer+SetCorner.swift"; sourceTree = "<group>"; };
|
||||
|
@ -3233,12 +3225,8 @@
|
|||
ED70D5812D539A2500738C1E /* Presentation */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
ED70D57B2D539A2500738C1E /* MapPassthroughView.swift */,
|
||||
ED70D57C2D539A2500738C1E /* ModalScreenPresentationStep.swift */,
|
||||
ED70D57D2D539A2500738C1E /* SearchOnMapModalPresentationController.swift */,
|
||||
ED70D57E2D539A2500738C1E /* SearchOnMapModalTransitionManager.swift */,
|
||||
ED70D57F2D539A2500738C1E /* SideMenuDismissalAnimator.swift */,
|
||||
ED70D5802D539A2500738C1E /* SideMenuPresentationAnimator.swift */,
|
||||
EDB71D5B2D82B4F8004A6A7F /* SearchOnMapPresentationController.swift */,
|
||||
);
|
||||
path = Presentation;
|
||||
sourceTree = "<group>";
|
||||
|
@ -4431,6 +4419,7 @@
|
|||
99012853244732DB00C72B10 /* BottomTabBarInteractor.swift in Sources */,
|
||||
6741A9A31BF340DE002C974C /* main.mm in Sources */,
|
||||
34D3B04F1E38A20C004100F9 /* Bundle+Init.swift in Sources */,
|
||||
EDB71D5C2D82B4F8004A6A7F /* SearchOnMapPresentationController.swift in Sources */,
|
||||
34AB666E1FC5AA330078E451 /* TransportTransitStepsCollectionView.swift in Sources */,
|
||||
993DF11E23F6BDB100AC231A /* UITextViewRenderer.swift in Sources */,
|
||||
F6E2FF5A1E097BA00083EBEC /* MWMNightModeController.m in Sources */,
|
||||
|
@ -4755,16 +4744,11 @@
|
|||
3404755C1E081A4600C92850 /* MWMLocationManager.mm in Sources */,
|
||||
ED70D5892D539A2500738C1E /* SearchOnMapViewController.swift in Sources */,
|
||||
ED70D58A2D539A2500738C1E /* SearchOnMapModels.swift in Sources */,
|
||||
ED70D58B2D539A2500738C1E /* SearchOnMapModalTransitionManager.swift in Sources */,
|
||||
ED70D58C2D539A2500738C1E /* SearchOnMapPresenter.swift in Sources */,
|
||||
ED70D58D2D539A2500738C1E /* ModalScreenPresentationStep.swift in Sources */,
|
||||
ED70D58E2D539A2500738C1E /* SideMenuPresentationAnimator.swift in Sources */,
|
||||
ED70D58F2D539A2500738C1E /* SearchOnMapInteractor.swift in Sources */,
|
||||
ED70D5902D539A2500738C1E /* SearchOnMapModalPresentationController.swift in Sources */,
|
||||
ED70D5912D539A2500738C1E /* MapPassthroughView.swift in Sources */,
|
||||
ED70D5922D539A2500738C1E /* PlaceholderView.swift in Sources */,
|
||||
ED70D5932D539A2500738C1E /* SearchOnMapManager.swift in Sources */,
|
||||
ED70D5942D539A2500738C1E /* SideMenuDismissalAnimator.swift in Sources */,
|
||||
3454D7BC1E07F045004AF2AD /* CLLocation+Mercator.mm in Sources */,
|
||||
47E3C7272111E5A8008B3B27 /* AlertPresentationController.swift in Sources */,
|
||||
CDCA27812243F59800167D87 /* CarPlayRouter.swift in Sources */,
|
||||
|
|
|
@ -12,8 +12,7 @@ final class SearchOnMapTests: XCTestCase {
|
|||
override func setUp() {
|
||||
super.setUp()
|
||||
searchManager = SearchManagerMock.self
|
||||
presenter = SearchOnMapPresenter(transitionManager: SearchOnMapModalTransitionManager(),
|
||||
isRouting: false,
|
||||
presenter = SearchOnMapPresenter(isRouting: false,
|
||||
didChangeState: { [weak self] in self?.currentState = $0 })
|
||||
interactor = SearchOnMapInteractor(presenter: presenter, searchManager: searchManager)
|
||||
view = SearchOnMapViewMock()
|
||||
|
@ -217,11 +216,14 @@ final class SearchOnMapTests: XCTestCase {
|
|||
// MARK: - Mocks
|
||||
|
||||
private class SearchOnMapViewMock: SearchOnMapView {
|
||||
|
||||
var viewModel: SearchOnMap.ViewModel = .initial
|
||||
var scrollViewDelegate: (any SearchOnMapScrollViewDelegate)?
|
||||
func render(_ viewModel: SearchOnMap.ViewModel) {
|
||||
self.viewModel = viewModel
|
||||
}
|
||||
func close() {
|
||||
}
|
||||
}
|
||||
|
||||
private class SearchManagerMock: SearchManager {
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
/// A transparent view that allows touch events to pass through to the MapViewController's view.
|
||||
///
|
||||
/// This view is used to enable interaction with the underlying map while still maintaining a
|
||||
/// transparent overlay. It does not block touch events but forwards them to the specified `passingView`.
|
||||
|
||||
final class MapPassthroughView: UIView {
|
||||
private weak var passingView: UIView?
|
||||
|
||||
init(passingView: UIView) {
|
||||
self.passingView = passingView
|
||||
super.init(frame: passingView.bounds)
|
||||
self.autoresizingMask = [.flexibleWidth, .flexibleHeight]
|
||||
self.alpha = 0
|
||||
}
|
||||
|
||||
@available(*, unavailable)
|
||||
required init?(coder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
|
||||
guard let passingView else { return nil }
|
||||
let pointInPassthroughView = passingView.convert(point, from: self)
|
||||
super.hitTest(point, with: event)
|
||||
if passingView.bounds.contains(pointInPassthroughView) {
|
||||
return MapViewController.shared()?.view.hitTest(point, with: event)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
}
|
|
@ -48,10 +48,11 @@ extension ModalScreenPresentationStep {
|
|||
.compact
|
||||
}
|
||||
|
||||
func frame(for viewController: UIViewController, in containerView: UIView) -> CGRect {
|
||||
func frame() -> CGRect {
|
||||
let isIPad = UIDevice.current.userInterfaceIdiom == .pad
|
||||
let containerSize = containerView.bounds.size
|
||||
let safeAreaInsets = containerView.safeAreaInsets
|
||||
let containerSize = UIScreen.main.bounds.size
|
||||
let safeAreaInsets = UIApplication.shared.keyWindow?.safeAreaInsets ?? .zero
|
||||
let traitCollection = UIScreen.main.traitCollection
|
||||
var frame = CGRect(origin: .zero, size: containerSize)
|
||||
|
||||
if isIPad {
|
||||
|
@ -65,7 +66,7 @@ extension ModalScreenPresentationStep {
|
|||
return frame
|
||||
}
|
||||
|
||||
let isPortraitOrientation = viewController.traitCollection.verticalSizeClass == .regular
|
||||
let isPortraitOrientation = traitCollection.verticalSizeClass == .regular
|
||||
if isPortraitOrientation {
|
||||
switch self {
|
||||
case .fullScreen:
|
||||
|
|
|
@ -1,21 +0,0 @@
|
|||
@objc
|
||||
final class SearchOnMapModalTransitionManager: NSObject, UIViewControllerTransitioningDelegate {
|
||||
|
||||
weak var presentationController: SearchOnMapModalPresentationView?
|
||||
|
||||
func animationController(forPresented presented: UIViewController, presenting: UIViewController, source: UIViewController) -> (any UIViewControllerAnimatedTransitioning)? {
|
||||
isIPad ? SideMenuPresentationAnimator() : nil
|
||||
}
|
||||
|
||||
func animationController(forDismissed dismissed: UIViewController) -> (any UIViewControllerAnimatedTransitioning)? {
|
||||
isIPad ? SideMenuDismissalAnimator() : nil
|
||||
}
|
||||
|
||||
func presentationController(forPresented presented: UIViewController,
|
||||
presenting: UIViewController?,
|
||||
source: UIViewController) -> UIPresentationController? {
|
||||
let presentationController = SearchOnMapModalPresentationController(presentedViewController: presented, presenting: presenting)
|
||||
self.presentationController = presentationController
|
||||
return presentationController
|
||||
}
|
||||
}
|
|
@ -2,14 +2,10 @@ protocol ModallyPresentedViewController {
|
|||
func translationYDidUpdate(_ translationY: CGFloat)
|
||||
}
|
||||
|
||||
protocol SearchOnMapModalPresentationView: AnyObject {
|
||||
func setPresentationStep(_ step: ModalScreenPresentationStep)
|
||||
func close()
|
||||
}
|
||||
|
||||
final class SearchOnMapModalPresentationController: UIPresentationController {
|
||||
final class SearchOnMapPresentationController: NSObject {
|
||||
|
||||
private enum StepChangeAnimation {
|
||||
case none
|
||||
case slide
|
||||
case slideAndBounce
|
||||
}
|
||||
|
@ -26,83 +22,84 @@ final class SearchOnMapModalPresentationController: UIPresentationController {
|
|||
static let panGestureThreshold: CGFloat = 5
|
||||
}
|
||||
|
||||
private var initialTranslationY: CGFloat = 0
|
||||
private weak var interactor: SearchOnMapInteractor? {
|
||||
(presentedViewController as? SearchOnMapViewController)?.interactor
|
||||
}
|
||||
// TODO: replace with set of steps passed from the outside
|
||||
private var initialTranslationY: CGFloat = .zero
|
||||
private weak var interactor: SearchOnMapInteractor? { presentedViewController?.interactor }
|
||||
// TODO: (KK) replace with set of steps passed from the outside
|
||||
private var presentationStep: ModalScreenPresentationStep = .fullScreen
|
||||
private var internalScrollViewContentOffset: CGFloat = 0
|
||||
private var internalScrollViewContentOffset: CGFloat = .zero
|
||||
private var maxAvailableFrameOfPresentedView: CGRect = .zero
|
||||
|
||||
// MARK: - Init
|
||||
override init(presentedViewController: UIViewController, presenting presentingViewController: UIViewController?) {
|
||||
super.init(presentedViewController: presentedViewController, presenting: presentingViewController)
|
||||
private weak var presentedViewController: SearchOnMapViewController?
|
||||
private weak var parentViewController: UIViewController?
|
||||
private weak var containerView: UIView?
|
||||
|
||||
init(parentViewController: UIViewController,
|
||||
containerView: UIView) {
|
||||
self.parentViewController = parentViewController
|
||||
self.containerView = containerView
|
||||
}
|
||||
|
||||
func setViewController(_ viewController: SearchOnMapViewController) {
|
||||
self.presentedViewController = viewController
|
||||
guard let containerView, let parentViewController else { return }
|
||||
containerView.addSubview(viewController.view)
|
||||
parentViewController.addChild(viewController)
|
||||
viewController.view.frame = frameOfPresentedViewInContainerView
|
||||
viewController.didMove(toParent: parentViewController)
|
||||
|
||||
iPhoneSpecific {
|
||||
let panGestureRecognizer = UIPanGestureRecognizer(target: self, action: #selector(handlePan(_:)))
|
||||
panGestureRecognizer.delegate = self
|
||||
presentedViewController.view.addGestureRecognizer(panGestureRecognizer)
|
||||
if let presentedViewController = presentedViewController as? SearchOnMapView {
|
||||
presentedViewController.scrollViewDelegate = self
|
||||
}
|
||||
viewController.view.addGestureRecognizer(panGestureRecognizer)
|
||||
viewController.scrollViewDelegate = self
|
||||
}
|
||||
animateTo(.hidden, animation: .none)
|
||||
}
|
||||
|
||||
func show() {
|
||||
interactor?.handle(.openSearch)
|
||||
}
|
||||
|
||||
func close() {
|
||||
guard let presentedViewController else { return }
|
||||
presentedViewController.willMove(toParent: nil)
|
||||
animateTo(.hidden) {
|
||||
presentedViewController.view.removeFromSuperview()
|
||||
presentedViewController.removeFromParent()
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - Lifecycle
|
||||
override func containerViewWillLayoutSubviews() {
|
||||
super.containerViewWillLayoutSubviews()
|
||||
presentedView?.frame = frameOfPresentedViewInContainerView
|
||||
}
|
||||
|
||||
override func presentationTransitionWillBegin() {
|
||||
guard let containerView else { return }
|
||||
containerView.backgroundColor = .clear
|
||||
let passThroughView = MapPassthroughView(passingView: containerView)
|
||||
containerView.addSubview(passThroughView)
|
||||
}
|
||||
|
||||
override func presentationTransitionDidEnd(_ completed: Bool) {
|
||||
translationYDidUpdate(presentedView?.frame.origin.y ?? 0)
|
||||
}
|
||||
|
||||
override func dismissalTransitionDidEnd(_ completed: Bool) {
|
||||
super.dismissalTransitionDidEnd(completed)
|
||||
if completed {
|
||||
presentedView?.removeFromSuperview()
|
||||
}
|
||||
}
|
||||
|
||||
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
|
||||
super.traitCollectionDidChange(previousTraitCollection)
|
||||
updateMaxAvailableFrameOfPresentedView()
|
||||
func setPresentationStep(_ step: ModalScreenPresentationStep) {
|
||||
guard presentationStep != step else { return }
|
||||
animateTo(step)
|
||||
}
|
||||
|
||||
// MARK: - Layout
|
||||
override var frameOfPresentedViewInContainerView: CGRect {
|
||||
guard let containerView else { return .zero }
|
||||
let frame = presentationStep.frame(for: presentedViewController, in: containerView)
|
||||
func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
|
||||
presentedViewController?.view.frame = frameOfPresentedViewInContainerView
|
||||
presentedViewController?.view.layoutIfNeeded()
|
||||
}
|
||||
|
||||
private var frameOfPresentedViewInContainerView: CGRect {
|
||||
updateMaxAvailableFrameOfPresentedView()
|
||||
let frame = presentationStep.frame()
|
||||
return frame
|
||||
}
|
||||
|
||||
private func updateMaxAvailableFrameOfPresentedView() {
|
||||
guard let containerView else { return }
|
||||
maxAvailableFrameOfPresentedView = ModalScreenPresentationStep.fullScreen.frame(for: presentedViewController, in: containerView)
|
||||
maxAvailableFrameOfPresentedView = ModalScreenPresentationStep.fullScreen.frame()
|
||||
}
|
||||
|
||||
private func updateSideButtonsAvailableArea(_ newY: CGFloat) {
|
||||
iPhoneSpecific {
|
||||
guard presentedViewController.traitCollection.verticalSizeClass != .compact else { return }
|
||||
var sideButtonsAvailableArea = MWMSideButtons.getAvailableArea()
|
||||
sideButtonsAvailableArea.size.height = newY - sideButtonsAvailableArea.origin.y
|
||||
MWMSideButtons.updateAvailableArea(sideButtonsAvailableArea)
|
||||
}
|
||||
guard presentedViewController?.traitCollection.verticalSizeClass != .compact else { return }
|
||||
var sideButtonsAvailableArea = MWMSideButtons.getAvailableArea()
|
||||
sideButtonsAvailableArea.size.height = newY - sideButtonsAvailableArea.origin.y
|
||||
MWMSideButtons.updateAvailableArea(sideButtonsAvailableArea)
|
||||
}
|
||||
|
||||
// MARK: - Pan gesture handling
|
||||
@objc private func handlePan(_ gesture: UIPanGestureRecognizer) {
|
||||
guard let presentedView, maxAvailableFrameOfPresentedView != .zero else { return }
|
||||
guard let presentedViewController, let presentedView = presentedViewController.view else { return }
|
||||
interactor?.handle(.didStartDraggingSearch)
|
||||
|
||||
let translation = gesture.translation(in: presentedView)
|
||||
|
@ -114,7 +111,6 @@ final class SearchOnMapModalPresentationController: UIPresentationController {
|
|||
case .changed:
|
||||
let newY = max(max(initialTranslationY + translation.y, 0), maxAvailableFrameOfPresentedView.origin.y)
|
||||
presentedView.frame.origin.y = newY
|
||||
updateSideButtonsAvailableArea(newY)
|
||||
translationYDidUpdate(newY)
|
||||
case .ended:
|
||||
let nextStep: ModalScreenPresentationStep
|
||||
|
@ -142,15 +138,19 @@ final class SearchOnMapModalPresentationController: UIPresentationController {
|
|||
}
|
||||
}
|
||||
|
||||
private func animateTo(_ presentationStep: ModalScreenPresentationStep, animation: StepChangeAnimation = .slide) {
|
||||
guard let presentedView, let containerView else { return }
|
||||
private func animateTo(_ presentationStep: ModalScreenPresentationStep, animation: StepChangeAnimation = .slide, completion: (() -> Void)? = nil) {
|
||||
guard let presentedViewController, let presentedView = presentedViewController.view else { return }
|
||||
self.presentationStep = presentationStep
|
||||
interactor?.handle(.didUpdatePresentationStep(presentationStep))
|
||||
|
||||
let updatedFrame = presentationStep.frame(for: presentedViewController, in: containerView)
|
||||
let updatedFrame = presentationStep.frame()
|
||||
let targetYTranslation = updatedFrame.origin.y
|
||||
|
||||
switch animation {
|
||||
case .none:
|
||||
presentedView.frame = updatedFrame
|
||||
translationYDidUpdate(targetYTranslation)
|
||||
completion?()
|
||||
case .slide:
|
||||
UIView.animate(withDuration: Constants.animationDuration,
|
||||
delay: 0,
|
||||
|
@ -158,8 +158,9 @@ final class SearchOnMapModalPresentationController: UIPresentationController {
|
|||
animations: { [weak self] in
|
||||
presentedView.frame = updatedFrame
|
||||
self?.translationYDidUpdate(targetYTranslation)
|
||||
self?.updateSideButtonsAvailableArea(targetYTranslation)
|
||||
})
|
||||
}) { _ in
|
||||
completion?()
|
||||
}
|
||||
case .slideAndBounce:
|
||||
UIView.animate(withDuration: Constants.animationDuration,
|
||||
delay: 0,
|
||||
|
@ -169,37 +170,25 @@ final class SearchOnMapModalPresentationController: UIPresentationController {
|
|||
animations: { [weak self] in
|
||||
presentedView.frame = updatedFrame
|
||||
self?.translationYDidUpdate(targetYTranslation)
|
||||
self?.updateSideButtonsAvailableArea(targetYTranslation)
|
||||
})
|
||||
}) { _ in
|
||||
completion?()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - SearchOnMapModalPresentationView
|
||||
extension SearchOnMapModalPresentationController: SearchOnMapModalPresentationView {
|
||||
func setPresentationStep(_ step: ModalScreenPresentationStep) {
|
||||
guard presentationStep != step else { return }
|
||||
animateTo(step)
|
||||
}
|
||||
|
||||
func close() {
|
||||
guard let containerView else { return }
|
||||
updateSideButtonsAvailableArea(containerView.frame.height)
|
||||
presentedViewController.dismiss(animated: true)
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - ModallyPresentedViewController
|
||||
extension SearchOnMapModalPresentationController: ModallyPresentedViewController {
|
||||
extension SearchOnMapPresentationController: ModallyPresentedViewController {
|
||||
func translationYDidUpdate(_ translationY: CGFloat) {
|
||||
iPhoneSpecific {
|
||||
(presentedViewController as? SearchOnMapViewController)?.translationYDidUpdate(translationY)
|
||||
presentedViewController?.translationYDidUpdate(translationY)
|
||||
updateSideButtonsAvailableArea(translationY)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - UIGestureRecognizerDelegate
|
||||
extension SearchOnMapModalPresentationController: UIGestureRecognizerDelegate {
|
||||
extension SearchOnMapPresentationController: UIGestureRecognizerDelegate {
|
||||
func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
|
||||
true
|
||||
}
|
||||
|
@ -211,9 +200,9 @@ extension SearchOnMapModalPresentationController: UIGestureRecognizerDelegate {
|
|||
}
|
||||
|
||||
// MARK: - SearchOnMapScrollViewDelegate
|
||||
extension SearchOnMapModalPresentationController: SearchOnMapScrollViewDelegate {
|
||||
extension SearchOnMapPresentationController: SearchOnMapScrollViewDelegate {
|
||||
func scrollViewDidScroll(_ scrollView: UIScrollView) {
|
||||
guard let presentedView else { return }
|
||||
guard let presentedViewController, let presentedView = presentedViewController.view else { return }
|
||||
let hasReachedTheTop = Int(presentedView.frame.origin.y) > Int(maxAvailableFrameOfPresentedView.origin.y)
|
||||
let hasZeroContentOffset = internalScrollViewContentOffset == 0
|
||||
if hasReachedTheTop && hasZeroContentOffset {
|
|
@ -1,22 +0,0 @@
|
|||
final class SideMenuDismissalAnimator: NSObject, UIViewControllerAnimatedTransitioning {
|
||||
func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
|
||||
return kDefaultAnimationDuration / 2
|
||||
}
|
||||
|
||||
func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
|
||||
guard let fromVC = transitionContext.viewController(forKey: .from) else { return }
|
||||
let initialFrame = transitionContext.initialFrame(for: fromVC)
|
||||
let targetFrame = initialFrame.offsetBy(dx: -initialFrame.width, dy: 0)
|
||||
|
||||
UIView.animate(withDuration: transitionDuration(using: transitionContext),
|
||||
delay: .zero,
|
||||
options: .curveEaseIn,
|
||||
animations: {
|
||||
fromVC.view.frame = targetFrame
|
||||
},
|
||||
completion: {
|
||||
fromVC.view.removeFromSuperview()
|
||||
transitionContext.completeTransition($0)
|
||||
})
|
||||
}
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
final class SideMenuPresentationAnimator: NSObject, UIViewControllerAnimatedTransitioning {
|
||||
func transitionDuration(using transitionContext: UIViewControllerContextTransitioning?) -> TimeInterval {
|
||||
return kDefaultAnimationDuration / 2
|
||||
}
|
||||
|
||||
func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {
|
||||
guard let toVC = transitionContext.viewController(forKey: .to) else { return }
|
||||
let containerView = transitionContext.containerView
|
||||
let finalFrame = transitionContext.finalFrame(for: toVC)
|
||||
let originFrame = finalFrame.offsetBy(dx: -finalFrame.width, dy: 0)
|
||||
containerView.addSubview(toVC.view)
|
||||
toVC.view.frame = originFrame
|
||||
toVC.view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
|
||||
|
||||
UIView.animate(withDuration: transitionDuration(using: transitionContext),
|
||||
delay: .zero,
|
||||
options: .curveEaseOut,
|
||||
animations: {
|
||||
toVC.view.frame = finalFrame
|
||||
},
|
||||
completion: {
|
||||
transitionContext.completeTransition($0)
|
||||
})
|
||||
}
|
||||
}
|
|
@ -19,6 +19,7 @@ final class SearchOnMapHeaderView: UIView {
|
|||
private let grabberView = UIView()
|
||||
private let searchBar = UISearchBar()
|
||||
private let cancelButton = UIButton()
|
||||
private let cancelContainer = UIView()
|
||||
|
||||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
|
@ -59,8 +60,8 @@ final class SearchOnMapHeaderView: UIView {
|
|||
}
|
||||
|
||||
private func setupCancelButton() {
|
||||
cancelButton.tintColor = .whitePrimaryText()
|
||||
cancelButton.setStyle(.clearBackground)
|
||||
cancelContainer.setStyle(.primaryBackground)
|
||||
cancelButton.setStyle(.searchCancelButton)
|
||||
cancelButton.setTitle(L("cancel"), for: .normal)
|
||||
cancelButton.addTarget(self, action: #selector(cancelButtonTapped), for: .touchUpInside)
|
||||
}
|
||||
|
@ -68,10 +69,12 @@ final class SearchOnMapHeaderView: UIView {
|
|||
private func layoutView() {
|
||||
addSubview(grabberView)
|
||||
addSubview(searchBar)
|
||||
addSubview(cancelButton)
|
||||
addSubview(cancelContainer)
|
||||
cancelContainer.addSubview(cancelButton)
|
||||
|
||||
grabberView.translatesAutoresizingMaskIntoConstraints = false
|
||||
searchBar.translatesAutoresizingMaskIntoConstraints = false
|
||||
cancelContainer.translatesAutoresizingMaskIntoConstraints = false
|
||||
cancelButton.translatesAutoresizingMaskIntoConstraints = false
|
||||
|
||||
NSLayoutConstraint.activate([
|
||||
|
@ -82,10 +85,16 @@ final class SearchOnMapHeaderView: UIView {
|
|||
|
||||
searchBar.topAnchor.constraint(equalTo: grabberView.bottomAnchor),
|
||||
searchBar.leadingAnchor.constraint(equalTo: leadingAnchor),
|
||||
searchBar.trailingAnchor.constraint(equalTo: cancelButton.leadingAnchor, constant: -Constants.cancelButtonInsets.left),
|
||||
searchBar.trailingAnchor.constraint(equalTo: cancelContainer.leadingAnchor),
|
||||
|
||||
cancelButton.centerYAnchor.constraint(equalTo: searchBar.centerYAnchor),
|
||||
cancelButton.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -Constants.cancelButtonInsets.right),
|
||||
cancelContainer.trailingAnchor.constraint(equalTo: trailingAnchor),
|
||||
cancelContainer.topAnchor.constraint(equalTo: searchBar.topAnchor),
|
||||
cancelContainer.bottomAnchor.constraint(equalTo: searchBar.bottomAnchor),
|
||||
|
||||
cancelButton.topAnchor.constraint(equalTo: cancelContainer.topAnchor),
|
||||
cancelButton.leadingAnchor.constraint(equalTo: cancelContainer.leadingAnchor, constant: Constants.cancelButtonInsets.left),
|
||||
cancelButton.trailingAnchor.constraint(equalTo: cancelContainer.trailingAnchor, constant: -Constants.cancelButtonInsets.right),
|
||||
cancelButton.bottomAnchor.constraint(equalTo: cancelContainer.bottomAnchor),
|
||||
|
||||
bottomAnchor.constraint(equalTo: searchBar.bottomAnchor)
|
||||
])
|
||||
|
|
|
@ -70,12 +70,12 @@ final class SearchOnMapInteractor: NSObject {
|
|||
searchManager.saveQuery(searchText.text,
|
||||
forInputLocale: searchText.locale)
|
||||
showResultsOnMap = true
|
||||
searchManager.showEverywhereSearchResultsOnMap()
|
||||
return .showOnTheMap
|
||||
}
|
||||
|
||||
private func processTypedText(_ searchText: SearchOnMap.SearchText) -> SearchOnMap.Response {
|
||||
isUpdatesDisabled = false
|
||||
showResultsOnMap = true
|
||||
searchManager.searchQuery(searchText.text,
|
||||
forInputLocale: searchText.locale,
|
||||
withCategory: false)
|
||||
|
|
|
@ -19,16 +19,14 @@ protocol SearchOnMapManagerObserver: AnyObject {
|
|||
|
||||
@objcMembers
|
||||
final class SearchOnMapManager: NSObject {
|
||||
private let navigationController: UINavigationController
|
||||
private weak var interactor: SearchOnMapInteractor?
|
||||
private var interactor: SearchOnMapInteractor? { viewController?.interactor }
|
||||
private let observers = ListenerContainer<SearchOnMapManagerObserver>()
|
||||
|
||||
// MARK: - Public properties
|
||||
weak var viewController: UIViewController?
|
||||
weak var viewController: SearchOnMapViewController?
|
||||
var isSearching: Bool { viewController != nil }
|
||||
|
||||
init(navigationController: UINavigationController = MapViewController.shared()!.navigationController!) {
|
||||
self.navigationController = navigationController
|
||||
override init() {
|
||||
super.init()
|
||||
}
|
||||
|
||||
// MARK: - Public methods
|
||||
|
@ -38,10 +36,9 @@ final class SearchOnMapManager: NSObject {
|
|||
return
|
||||
}
|
||||
FrameworkHelper.deactivateMapSelection()
|
||||
let viewController = buildViewController(isRouting: isRouting)
|
||||
let viewController = SearchOnMapViewControllerBuilder.build(isRouting: isRouting,
|
||||
didChangeState: notifyObservers)
|
||||
self.viewController = viewController
|
||||
self.interactor = viewController.interactor
|
||||
navigationController.present(viewController, animated: true)
|
||||
}
|
||||
|
||||
func hide() {
|
||||
|
@ -77,20 +74,23 @@ final class SearchOnMapManager: NSObject {
|
|||
observers.removeListener(observer)
|
||||
}
|
||||
|
||||
// MARK: - Private methods
|
||||
private func buildViewController(isRouting: Bool) -> SearchOnMapViewController {
|
||||
let transitioningManager = SearchOnMapModalTransitionManager()
|
||||
let presenter = SearchOnMapPresenter(transitionManager: transitioningManager,
|
||||
isRouting: isRouting,
|
||||
didChangeState: { [weak self] state in
|
||||
guard let self else { return }
|
||||
self.observers.forEach { observer in observer.searchManager(didChangeState: state) }
|
||||
})
|
||||
private func notifyObservers(_ state: SearchOnMapState) {
|
||||
observers.forEach { observer in observer.searchManager(didChangeState: state) }
|
||||
}
|
||||
}
|
||||
|
||||
private struct SearchOnMapViewControllerBuilder {
|
||||
static func build(isRouting: Bool, didChangeState: @escaping ((SearchOnMapState) -> Void)) -> SearchOnMapViewController {
|
||||
let mapViewController = MapViewController.shared()!
|
||||
let presentationController = SearchOnMapPresentationController(parentViewController: mapViewController,
|
||||
containerView: mapViewController.searchContainer)
|
||||
let viewController = SearchOnMapViewController(presentationController: presentationController)
|
||||
let presenter = SearchOnMapPresenter(isRouting: isRouting,
|
||||
didChangeState: didChangeState)
|
||||
let interactor = SearchOnMapInteractor(presenter: presenter)
|
||||
let viewController = SearchOnMapViewController(interactor: interactor)
|
||||
presenter.view = viewController
|
||||
viewController.modalPresentationStyle = .custom
|
||||
viewController.transitioningDelegate = transitioningManager
|
||||
viewController.interactor = interactor
|
||||
presentationController.show()
|
||||
return viewController
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,7 +3,6 @@ final class SearchOnMapPresenter {
|
|||
typealias ViewModel = SearchOnMap.ViewModel
|
||||
|
||||
weak var view: SearchOnMapView?
|
||||
weak var presentationView: SearchOnMapModalPresentationView? { transitionManager.presentationController }
|
||||
|
||||
private var searchState: SearchOnMapState = .searching {
|
||||
didSet {
|
||||
|
@ -12,13 +11,11 @@ final class SearchOnMapPresenter {
|
|||
}
|
||||
}
|
||||
|
||||
private let transitionManager: SearchOnMapModalTransitionManager
|
||||
private var viewModel: ViewModel = .initial
|
||||
private var isRouting: Bool
|
||||
private var didChangeState: ((SearchOnMapState) -> Void)?
|
||||
|
||||
init(transitionManager: SearchOnMapModalTransitionManager, isRouting: Bool, didChangeState: ((SearchOnMapState) -> Void)?) {
|
||||
self.transitionManager = transitionManager
|
||||
init(isRouting: Bool, didChangeState: ((SearchOnMapState) -> Void)?) {
|
||||
self.isRouting = isRouting
|
||||
self.didChangeState = didChangeState
|
||||
didChangeState?(searchState)
|
||||
|
@ -28,8 +25,8 @@ final class SearchOnMapPresenter {
|
|||
guard response != .none else { return }
|
||||
|
||||
if response == .close {
|
||||
view?.close()
|
||||
searchState = .closed
|
||||
presentationView?.close()
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -43,7 +40,6 @@ final class SearchOnMapPresenter {
|
|||
viewModel = newViewModel
|
||||
view?.render(newViewModel)
|
||||
searchState = newViewModel.presentationStep.searchState
|
||||
presentationView?.setPresentationStep(newViewModel.presentationStep)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -97,6 +93,9 @@ final class SearchOnMapPresenter {
|
|||
viewModel.isTyping = false
|
||||
viewModel.presentationStep = .compact
|
||||
case .updatePresentationStep(let step):
|
||||
if step == .hidden {
|
||||
viewModel.isTyping = false
|
||||
}
|
||||
viewModel.presentationStep = step
|
||||
case .close, .none:
|
||||
break
|
||||
|
|
|
@ -2,6 +2,7 @@ protocol SearchOnMapView: AnyObject {
|
|||
var scrollViewDelegate: SearchOnMapScrollViewDelegate? { get set }
|
||||
|
||||
func render(_ viewModel: SearchOnMap.ViewModel)
|
||||
func close()
|
||||
}
|
||||
|
||||
@objc
|
||||
|
@ -15,16 +16,13 @@ final class SearchOnMapViewController: UIViewController {
|
|||
typealias SearchText = SearchOnMap.SearchText
|
||||
|
||||
fileprivate enum Constants {
|
||||
static let categoriesHeight: CGFloat = 100
|
||||
static let filtersHeight: CGFloat = 50
|
||||
static let keyboardAnimationDuration: CGFloat = 0.3
|
||||
static let cancelButtonInsets: UIEdgeInsets = UIEdgeInsets(top: 0, left: 6, bottom: 0, right: 8)
|
||||
static let estimatedRowHeight: CGFloat = 80
|
||||
}
|
||||
|
||||
let interactor: SearchOnMapInteractor
|
||||
var interactor: SearchOnMapInteractor?
|
||||
var modalPresentationController: SearchOnMapPresentationController?
|
||||
weak var scrollViewDelegate: SearchOnMapScrollViewDelegate?
|
||||
|
||||
|
||||
private var searchResults = SearchOnMap.SearchResults([])
|
||||
|
||||
// MARK: - UI Elements
|
||||
|
@ -32,21 +30,16 @@ final class SearchOnMapViewController: UIViewController {
|
|||
private let containerView = UIView()
|
||||
private let resultsTableView = UITableView()
|
||||
private let historyAndCategoryTabViewController = SearchTabViewController()
|
||||
// TODO: implement filters
|
||||
private let filtersCollectionView: UICollectionView = {
|
||||
let layout = UICollectionViewFlowLayout()
|
||||
layout.scrollDirection = .horizontal
|
||||
return UICollectionView(frame: .zero, collectionViewLayout: layout)
|
||||
}()
|
||||
private var searchingActivityView = PlaceholderView(hasActivityIndicator: true)
|
||||
private var containerModalYTranslation: CGFloat = 0
|
||||
private var searchNoResultsView = PlaceholderView(title: L("search_not_found"),
|
||||
subtitle: L("search_not_found_query"))
|
||||
|
||||
// MARK: - Init
|
||||
init(interactor: SearchOnMapInteractor) {
|
||||
self.interactor = interactor
|
||||
init(presentationController: SearchOnMapPresentationController?) {
|
||||
self.modalPresentationController = presentationController
|
||||
super.init(nibName: nil, bundle: nil)
|
||||
modalPresentationController?.setViewController(self)
|
||||
}
|
||||
|
||||
@available(*, unavailable)
|
||||
|
@ -54,16 +47,12 @@ final class SearchOnMapViewController: UIViewController {
|
|||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
deinit {
|
||||
NotificationCenter.default.removeObserver(self)
|
||||
}
|
||||
|
||||
// MARK: - Lifecycle
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
setupViews()
|
||||
layoutViews()
|
||||
interactor.handle(.openSearch)
|
||||
modalPresentationController?.show()
|
||||
}
|
||||
|
||||
override func viewWillDisappear(_ animated: Bool) {
|
||||
|
@ -71,16 +60,20 @@ final class SearchOnMapViewController: UIViewController {
|
|||
headerView.setIsSearching(false)
|
||||
}
|
||||
|
||||
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
|
||||
super.traitCollectionDidChange(previousTraitCollection)
|
||||
modalPresentationController?.traitCollectionDidChange(traitCollection)
|
||||
}
|
||||
|
||||
// MARK: - Private methods
|
||||
private func setupViews() {
|
||||
view.setStyle(.background)
|
||||
view.setStyle(.clearBackground)
|
||||
setupTapGestureRecognizer()
|
||||
setupHeaderView()
|
||||
setupContainerView()
|
||||
setupResultsTableView()
|
||||
setupHistoryAndCategoryTabView()
|
||||
setupResultsTableView()
|
||||
setupFiltersCollectionView()
|
||||
}
|
||||
|
||||
private func setupTapGestureRecognizer() {
|
||||
|
@ -112,12 +105,6 @@ final class SearchOnMapViewController: UIViewController {
|
|||
historyAndCategoryTabViewController.delegate = self
|
||||
}
|
||||
|
||||
// TODO: (KK) Implement filters collection viewe
|
||||
private func setupFiltersCollectionView() {
|
||||
filtersCollectionView.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "FilterCell")
|
||||
filtersCollectionView.dataSource = self
|
||||
}
|
||||
|
||||
private func layoutViews() {
|
||||
view.addSubview(headerView)
|
||||
view.addSubview(containerView)
|
||||
|
@ -261,6 +248,16 @@ extension SearchOnMapViewController: SearchOnMapView {
|
|||
if let searchingText = viewModel.searchingText {
|
||||
replaceSearchText(with: searchingText)
|
||||
}
|
||||
modalPresentationController?.setPresentationStep(viewModel.presentationStep)
|
||||
}
|
||||
|
||||
func close() {
|
||||
headerView.setIsSearching(false)
|
||||
guard let modalPresentationController else {
|
||||
dismiss(animated: true)
|
||||
return
|
||||
}
|
||||
modalPresentationController.close()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -303,12 +300,12 @@ extension SearchOnMapViewController: UITableViewDataSource {
|
|||
extension SearchOnMapViewController: UITableViewDelegate {
|
||||
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
|
||||
let result = searchResults[indexPath.row]
|
||||
interactor.handle(.didSelectResult(result, withSearchText: headerView.searchText))
|
||||
interactor?.handle(.didSelectResult(result, withSearchText: headerView.searchText))
|
||||
tableView.deselectRow(at: indexPath, animated: true)
|
||||
}
|
||||
|
||||
func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
|
||||
interactor.handle(.didStartDraggingSearch)
|
||||
interactor?.handle(.didStartDraggingSearch)
|
||||
}
|
||||
|
||||
func scrollViewDidScroll(_ scrollView: UIScrollView) {
|
||||
|
@ -332,31 +329,31 @@ extension SearchOnMapViewController: UICollectionViewDataSource {
|
|||
// MARK: - SearchOnMapHeaderViewDelegate
|
||||
extension SearchOnMapViewController: SearchOnMapHeaderViewDelegate {
|
||||
func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) {
|
||||
interactor.handle(.didStartTyping)
|
||||
interactor?.handle(.didStartTyping)
|
||||
}
|
||||
|
||||
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
|
||||
guard !searchText.isEmpty else {
|
||||
interactor.handle(.clearButtonDidTap)
|
||||
interactor?.handle(.clearButtonDidTap)
|
||||
return
|
||||
}
|
||||
interactor.handle(.didType(SearchText(searchText, locale: searchBar.textInputMode?.primaryLanguage)))
|
||||
interactor?.handle(.didType(SearchText(searchText, locale: searchBar.textInputMode?.primaryLanguage)))
|
||||
}
|
||||
|
||||
func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {
|
||||
guard let searchText = searchBar.text, !searchText.isEmpty else { return }
|
||||
interactor.handle(.searchButtonDidTap(SearchText(searchText, locale: searchBar.textInputMode?.primaryLanguage)))
|
||||
interactor?.handle(.searchButtonDidTap(SearchText(searchText, locale: searchBar.textInputMode?.primaryLanguage)))
|
||||
}
|
||||
|
||||
func cancelButtonDidTap() {
|
||||
interactor.handle(.closeSearch)
|
||||
interactor?.handle(.closeSearch)
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - SearchTabViewControllerDelegate
|
||||
extension SearchOnMapViewController: SearchTabViewControllerDelegate {
|
||||
func searchTabController(_ viewController: SearchTabViewController, didSearch text: String, withCategory: Bool) {
|
||||
interactor.handle(.didSelectText(SearchText(text, locale: nil), isCategory: withCategory))
|
||||
interactor?.handle(.didSelectText(SearchText(text, locale: nil), isCategory: withCategory))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Tap tracks to display statistics and an interactive elevation profile
|
||||
• A standalone Track Recording button
|
||||
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Added tower POIs
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Search: split screen to show both the map and the list at the same time
|
||||
• Ability to share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Added tracks and bookmarks colors into exported GPX files
|
||||
|
||||
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
|
||||
• Added a context menu to the coordinates button in POI details
|
||||
• Show a reminder popup every time a full screen mode is entered
|
||||
• Display an explanation when the OSM Editor category search returns nothing
|
||||
• Differentiate between grass and grassland/meadow colors
|
||||
• Less saturated/prominent residential gardens color
|
||||
• Fixed yellow road shields displayed as green in the night mode
|
||||
• Display vegetation fills earlier in the car navigation style
|
||||
• Display complex non-number levels for building POIs
|
||||
• Improve search for peaks and saddles/passes
|
||||
• EN as additional search language in the OSM Editor
|
||||
• Update Estonian, Finnish, German, Italian, Turkish translations
|
||||
• ...many more bug fixes and UI improvements
|
||||
Map:
|
||||
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
|
||||
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
|
||||
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
|
||||
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
|
||||
• Tuned visibility and priority of some niche shops
|
||||
|
||||
OSM editor:
|
||||
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
|
||||
• Don't hide OSM login page when offline
|
||||
• Added icons to address and number of floors input fields
|
||||
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
|
||||
|
||||
Other:
|
||||
• Open track's info page automatically upon record finish / track save
|
||||
• Show "Add Stop" button for the selected track point when in the navigation mode
|
||||
• Voice directions: announce route recalculation
|
||||
• Better looking track elevation profiles
|
||||
• Made Track Recording live activity widget properly dismissable
|
||||
• Don't always default to the subway routing mode when the subway layer is active
|
||||
• Fixed bookmarks storing POI name in a wrong language
|
||||
• Fixed on-building POIs disappearing when in perspective view
|
||||
• Fixed empty speed limit sign displayed in foot navigation
|
||||
• Fixed stuck map rotation gesture when zoomed in max
|
||||
• iCloud sync bug fixes and some minor UI fixes
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Tap tracks to display statistics and an interactive elevation profile
|
||||
• A standalone Track Recording button
|
||||
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Added tower POIs
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Search: split screen to show both the map and the list at the same time
|
||||
• Ability to share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Added tracks and bookmarks colors into exported GPX files
|
||||
|
||||
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
|
||||
• Added a context menu to the coordinates button in POI details
|
||||
• Show a reminder popup every time a full screen mode is entered
|
||||
• Display an explanation when the OSM Editor category search returns nothing
|
||||
• Differentiate between grass and grassland/meadow colors
|
||||
• Less saturated/prominent residential gardens color
|
||||
• Fixed yellow road shields displayed as green in the night mode
|
||||
• Display vegetation fills earlier in the car navigation style
|
||||
• Display complex non-number levels for building POIs
|
||||
• Improve search for peaks and saddles/passes
|
||||
• EN as additional search language in the OSM Editor
|
||||
• Update Estonian, Finnish, German, Italian, Turkish translations
|
||||
• ...many more bug fixes and UI improvements
|
||||
Map:
|
||||
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
|
||||
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
|
||||
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
|
||||
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
|
||||
• Tuned visibility and priority of some niche shops
|
||||
|
||||
OSM editor:
|
||||
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
|
||||
• Don't hide OSM login page when offline
|
||||
• Added icons to address and number of floors input fields
|
||||
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
|
||||
|
||||
Other:
|
||||
• Open track's info page automatically upon record finish / track save
|
||||
• Show "Add Stop" button for the selected track point when in the navigation mode
|
||||
• Voice directions: announce route recalculation
|
||||
• Better looking track elevation profiles
|
||||
• Made Track Recording live activity widget properly dismissable
|
||||
• Don't always default to the subway routing mode when the subway layer is active
|
||||
• Fixed bookmarks storing POI name in a wrong language
|
||||
• Fixed on-building POIs disappearing when in perspective view
|
||||
• Fixed empty speed limit sign displayed in foot navigation
|
||||
• Fixed stuck map rotation gesture when zoomed in max
|
||||
• iCloud sync bug fixes and some minor UI fixes
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Tap tracks to display statistics and an interactive elevation profile
|
||||
• A standalone Track Recording button
|
||||
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Added tower POIs
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Search: split screen to show both the map and the list at the same time
|
||||
• Ability to share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Added tracks and bookmarks colors into exported GPX files
|
||||
|
||||
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
|
||||
• Added a context menu to the coordinates button in POI details
|
||||
• Show a reminder popup every time a full screen mode is entered
|
||||
• Display an explanation when the OSM Editor category search returns nothing
|
||||
• Differentiate between grass and grassland/meadow colors
|
||||
• Less saturated/prominent residential gardens color
|
||||
• Fixed yellow road shields displayed as green in the night mode
|
||||
• Display vegetation fills earlier in the car navigation style
|
||||
• Display complex non-number levels for building POIs
|
||||
• Improve search for peaks and saddles/passes
|
||||
• EN as additional search language in the OSM Editor
|
||||
• Update Estonian, Finnish, German, Italian, Turkish translations
|
||||
• ...many more bug fixes and UI improvements
|
||||
Map:
|
||||
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
|
||||
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
|
||||
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
|
||||
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
|
||||
• Tuned visibility and priority of some niche shops
|
||||
|
||||
OSM editor:
|
||||
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
|
||||
• Don't hide OSM login page when offline
|
||||
• Added icons to address and number of floors input fields
|
||||
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
|
||||
|
||||
Other:
|
||||
• Open track's info page automatically upon record finish / track save
|
||||
• Show "Add Stop" button for the selected track point when in the navigation mode
|
||||
• Voice directions: announce route recalculation
|
||||
• Better looking track elevation profiles
|
||||
• Made Track Recording live activity widget properly dismissable
|
||||
• Don't always default to the subway routing mode when the subway layer is active
|
||||
• Fixed bookmarks storing POI name in a wrong language
|
||||
• Fixed on-building POIs disappearing when in perspective view
|
||||
• Fixed empty speed limit sign displayed in foot navigation
|
||||
• Fixed stuck map rotation gesture when zoomed in max
|
||||
• iCloud sync bug fixes and some minor UI fixes
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Tap tracks to display statistics and an interactive elevation profile
|
||||
• A standalone Track Recording button
|
||||
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Added tower POIs
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Search: split screen to show both the map and the list at the same time
|
||||
• Ability to share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Added tracks and bookmarks colors into exported GPX files
|
||||
|
||||
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
|
||||
• Added a context menu to the coordinates button in POI details
|
||||
• Show a reminder popup every time a full screen mode is entered
|
||||
• Display an explanation when the OSM Editor category search returns nothing
|
||||
• Differentiate between grass and grassland/meadow colors
|
||||
• Less saturated/prominent residential gardens color
|
||||
• Fixed yellow road shields displayed as green in the night mode
|
||||
• Display vegetation fills earlier in the car navigation style
|
||||
• Display complex non-number levels for building POIs
|
||||
• Improve search for peaks and saddles/passes
|
||||
• EN as additional search language in the OSM Editor
|
||||
• Update Estonian, Finnish, German, Italian, Turkish translations
|
||||
• ...many more bug fixes and UI improvements
|
||||
Map:
|
||||
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
|
||||
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
|
||||
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
|
||||
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
|
||||
• Tuned visibility and priority of some niche shops
|
||||
|
||||
OSM editor:
|
||||
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
|
||||
• Don't hide OSM login page when offline
|
||||
• Added icons to address and number of floors input fields
|
||||
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
|
||||
|
||||
Other:
|
||||
• Open track's info page automatically upon record finish / track save
|
||||
• Show "Add Stop" button for the selected track point when in the navigation mode
|
||||
• Voice directions: announce route recalculation
|
||||
• Better looking track elevation profiles
|
||||
• Made Track Recording live activity widget properly dismissable
|
||||
• Don't always default to the subway routing mode when the subway layer is active
|
||||
• Fixed bookmarks storing POI name in a wrong language
|
||||
• Fixed on-building POIs disappearing when in perspective view
|
||||
• Fixed empty speed limit sign displayed in foot navigation
|
||||
• Fixed stuck map rotation gesture when zoomed in max
|
||||
• iCloud sync bug fixes and some minor UI fixes
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
• Neue OpenStreetMap-Daten vom 8. Januar
|
||||
• Tippen Sie auf Tracks, um Statistiken und ein interaktives Höhenprofil anzuzeigen
|
||||
• Eine eigenständige Schaltfläche zur Trackaufzeichnung
|
||||
• Track-Aufzeichnung – Live-Aktivitäts-Widget mit Track-Statistiken (iOS 16.2 und höher)
|
||||
• Serbische (Kyrillisch) und Lettische Sprachen hinzugefügt
|
||||
• Turm-POIs hinzugefügt
|
||||
• Neue OpenStreetMap-Daten vom 27. Februar
|
||||
• Suche: geteilter Bildschirm, um sowohl die Karte als auch die Liste gleichzeitig anzuzeigen
|
||||
• Möglichkeit, einen einzelnen ausgewählten Track aus der Liste zu teilen
|
||||
• Verbesserte Routenführung für Fahrräder
|
||||
• Track- und Lesezeichenfarben zu exportierten GPX-Dateien hinzugefügt
|
||||
|
||||
• Spezielle Symbole für die U-Bahnen Hongkong und Shenzhen sowie die Stadtbahn Berlin hinzugefügt, ein separates Monorail-Symbol
|
||||
• Dem Koordinaten-Button in den POI-Details wurde ein Kontextmenü hinzugefügt
|
||||
• Bei jedem Wechsel in den Vollbildmodus ein Erinnerungs-Popup anzeigen
|
||||
• Eine Erklärung anzeigen, wenn die Kategoriesuche im OSM-Editor nichts ergibt
|
||||
• Unterscheiden Sie zwischen Gras- und Grünland-/Wiesenfarben
|
||||
• Weniger gesättigte/auffällige Farbe in Wohngärten
|
||||
• Gelbe Straßenschilder wurden korrigiert, sodass sie im Nachtmodus grün angezeigt wurden
|
||||
• Vegetationsfüllungen im Autonavigationsstil früher anzeigen
|
||||
• Anzeige komplexer Nicht-Zahlenebenen zum Erstellen von POIs
|
||||
• Verbesserte Suche nach Gipfeln und Sätteln/Pässen
|
||||
• EN als zusätzliche Suchsprache im OSM-Editor
|
||||
• Aktualisieren Sie die estnischen, finnischen, deutschen, italienischen und türkischen Übersetzungen
|
||||
• ...viele weitere Fehlerbehebungen und UI-Verbesserungen
|
||||
Karte:
|
||||
• Hörgerätegeschäfte, Kommunikationstürme, Kreuze, Öl-/Gasquellen, Gasfackeln, Rettungsschwimmer, Motorradverleihe, Bergrettungsstationen, Obelisken (als Denkmäler), separate Viertel (wurden zuvor mit Nachbarschaften zusammengelegt) hinzugefügt
|
||||
• Außenbereich: verbesserte Sichtbarkeit von Hütten, Unterständen, Jagdständen, Türmen, Steinhaufen, Lagertanks, Silos
|
||||
• Außenbereich: kleinere Stromleitungen, Versorgungs- und Strommasten hinzugefügt; verbesserte Sichtbarkeit wichtiger Stromleitungen und Masten
|
||||
• Beschriftungen für benannte Klippen, Stadtmauern, Böschungen und Stromleitungen hinzugefügt
|
||||
• Sichtbarkeit und Priorität einiger Nischengeschäfte angepasst
|
||||
|
||||
OSM-Editor:
|
||||
• Möglichkeit zum Bearbeiten der POI-Attribute „Selbstbedienung“ und „Sitzplätze im Freien“ hinzugefügt
|
||||
• OSM-Anmeldeseite offline nicht ausblenden
|
||||
• Symbole für Eingabefelder für Adressen und Stockwerkanzahl hinzugefügt
|
||||
• Viele weitere Fehler behoben, danke an den Mitwirkenden @map-per, der viel Arbeit hinter den Kulissen geleistet hat!
|
||||
|
||||
Sonstiges:
|
||||
• Infoseite der Strecke automatisch öffnen, wenn Aufzeichnung beendet/Strecke gespeichert ist
|
||||
• Schaltfläche „Stopp hinzufügen“ für den ausgewählten Streckenpunkt im Navigationsmodus anzeigen
|
||||
• Sprachanweisungen: Routenneuberechnung ankündigen
|
||||
• Besser aussehende Streckenhöhenprofile
|
||||
• Live-Aktivitäts-Widget für Streckenaufzeichnung jetzt richtig abschaltbar
|
||||
• Standardmäßig wird nicht immer der U-Bahn-Routingmodus verwendet, wenn die U-Bahn-Ebene aktiv ist
|
||||
• Behoben: Lesezeichen speichern POI-Namen in der falschen Sprache
|
||||
• Behoben: Verschwinden von POIs auf Gebäuden in der perspektivischen Ansicht
|
||||
• Behoben: Leeres Tempolimit-Schild bei Fußnavigation angezeigt
|
||||
• Behoben: Feststeckende Kartenrotationsgeste bei maximalem Zoom
|
||||
• Fehlerbehebungen bei iCloud-Synchronisierung und einige kleinere UI-Korrekturen
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Tap tracks to display statistics and an interactive elevation profile
|
||||
• A standalone Track Recording button
|
||||
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Added tower POIs
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Search: split screen to show both the map and the list at the same time
|
||||
• Ability to share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Added tracks and bookmarks colors into exported GPX files
|
||||
|
||||
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
|
||||
• Added a context menu to the coordinates button in POI details
|
||||
• Show a reminder popup every time a full screen mode is entered
|
||||
• Display an explanation when the OSM Editor category search returns nothing
|
||||
• Differentiate between grass and grassland/meadow colors
|
||||
• Less saturated/prominent residential gardens color
|
||||
• Fixed yellow road shields displayed as green in the night mode
|
||||
• Display vegetation fills earlier in the car navigation style
|
||||
• Display complex non-number levels for building POIs
|
||||
• Improve search for peaks and saddles/passes
|
||||
• EN as additional search language in the OSM Editor
|
||||
• Update Estonian, Finnish, German, Italian, Turkish translations
|
||||
• ...many more bug fixes and UI improvements
|
||||
Map:
|
||||
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
|
||||
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
|
||||
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
|
||||
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
|
||||
• Tuned visibility and priority of some niche shops
|
||||
|
||||
OSM editor:
|
||||
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
|
||||
• Don't hide OSM login page when offline
|
||||
• Added icons to address and number of floors input fields
|
||||
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
|
||||
|
||||
Other:
|
||||
• Open track's info page automatically upon record finish / track save
|
||||
• Show "Add Stop" button for the selected track point when in the navigation mode
|
||||
• Voice directions: announce route recalculation
|
||||
• Better looking track elevation profiles
|
||||
• Made Track Recording live activity widget properly dismissable
|
||||
• Don't always default to the subway routing mode when the subway layer is active
|
||||
• Fixed bookmarks storing POI name in a wrong language
|
||||
• Fixed on-building POIs disappearing when in perspective view
|
||||
• Fixed empty speed limit sign displayed in foot navigation
|
||||
• Fixed stuck map rotation gesture when zoomed in max
|
||||
• iCloud sync bug fixes and some minor UI fixes
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Tap tracks to display statistics and an interactive elevation profile
|
||||
• A standalone Track Recording button
|
||||
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Added tower POIs
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Search: split screen to show both the map and the list at the same time
|
||||
• Ability to share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Added tracks and bookmarks colors into exported GPX files
|
||||
|
||||
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
|
||||
• Added a context menu to the coordinates button in POI details
|
||||
• Show a reminder popup every time a full screen mode is entered
|
||||
• Display an explanation when the OSM Editor category search returns nothing
|
||||
• Differentiate between grass and grassland/meadow colors
|
||||
• Less saturated/prominent residential gardens color
|
||||
• Fixed yellow road shields displayed as green in the night mode
|
||||
• Display vegetation fills earlier in the car navigation style
|
||||
• Display complex non-number levels for building POIs
|
||||
• Improve search for peaks and saddles/passes
|
||||
• EN as additional search language in the OSM Editor
|
||||
• Update Estonian, Finnish, German, Italian, Turkish translations
|
||||
• ...many more bug fixes and UI improvements
|
||||
Map:
|
||||
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
|
||||
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
|
||||
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
|
||||
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
|
||||
• Tuned visibility and priority of some niche shops
|
||||
|
||||
OSM editor:
|
||||
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
|
||||
• Don't hide OSM login page when offline
|
||||
• Added icons to address and number of floors input fields
|
||||
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
|
||||
|
||||
Other:
|
||||
• Open track's info page automatically upon record finish / track save
|
||||
• Show "Add Stop" button for the selected track point when in the navigation mode
|
||||
• Voice directions: announce route recalculation
|
||||
• Better looking track elevation profiles
|
||||
• Made Track Recording live activity widget properly dismissable
|
||||
• Don't always default to the subway routing mode when the subway layer is active
|
||||
• Fixed bookmarks storing POI name in a wrong language
|
||||
• Fixed on-building POIs disappearing when in perspective view
|
||||
• Fixed empty speed limit sign displayed in foot navigation
|
||||
• Fixed stuck map rotation gesture when zoomed in max
|
||||
• iCloud sync bug fixes and some minor UI fixes
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Tap tracks to display statistics and an interactive elevation profile
|
||||
• A standalone Track Recording button
|
||||
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Added tower POIs
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Search: split screen to show both the map and the list at the same time
|
||||
• Ability to share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Added tracks and bookmarks colors into exported GPX files
|
||||
|
||||
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
|
||||
• Added a context menu to the coordinates button in POI details
|
||||
• Show a reminder popup every time a full screen mode is entered
|
||||
• Display an explanation when the OSM Editor category search returns nothing
|
||||
• Differentiate between grass and grassland/meadow colors
|
||||
• Less saturated/prominent residential gardens color
|
||||
• Fixed yellow road shields displayed as green in the night mode
|
||||
• Display vegetation fills earlier in the car navigation style
|
||||
• Display complex non-number levels for building POIs
|
||||
• Improve search for peaks and saddles/passes
|
||||
• EN as additional search language in the OSM Editor
|
||||
• Update Estonian, Finnish, German, Italian, Turkish translations
|
||||
• ...many more bug fixes and UI improvements
|
||||
Map:
|
||||
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
|
||||
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
|
||||
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
|
||||
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
|
||||
• Tuned visibility and priority of some niche shops
|
||||
|
||||
OSM editor:
|
||||
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
|
||||
• Don't hide OSM login page when offline
|
||||
• Added icons to address and number of floors input fields
|
||||
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
|
||||
|
||||
Other:
|
||||
• Open track's info page automatically upon record finish / track save
|
||||
• Show "Add Stop" button for the selected track point when in the navigation mode
|
||||
• Voice directions: announce route recalculation
|
||||
• Better looking track elevation profiles
|
||||
• Made Track Recording live activity widget properly dismissable
|
||||
• Don't always default to the subway routing mode when the subway layer is active
|
||||
• Fixed bookmarks storing POI name in a wrong language
|
||||
• Fixed on-building POIs disappearing when in perspective view
|
||||
• Fixed empty speed limit sign displayed in foot navigation
|
||||
• Fixed stuck map rotation gesture when zoomed in max
|
||||
• iCloud sync bug fixes and some minor UI fixes
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Tap tracks to display statistics and an interactive elevation profile
|
||||
• A standalone Track Recording button
|
||||
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Added tower POIs
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Search: split screen to show both the map and the list at the same time
|
||||
• Ability to share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Added tracks and bookmarks colors into exported GPX files
|
||||
|
||||
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
|
||||
• Added a context menu to the coordinates button in POI details
|
||||
• Show a reminder popup every time a full screen mode is entered
|
||||
• Display an explanation when the OSM Editor category search returns nothing
|
||||
• Differentiate between grass and grassland/meadow colors
|
||||
• Less saturated/prominent residential gardens color
|
||||
• Fixed yellow road shields displayed as green in the night mode
|
||||
• Display vegetation fills earlier in the car navigation style
|
||||
• Display complex non-number levels for building POIs
|
||||
• Improve search for peaks and saddles/passes
|
||||
• EN as additional search language in the OSM Editor
|
||||
• Update Estonian, Finnish, German, Italian, Turkish translations
|
||||
• ...many more bug fixes and UI improvements
|
||||
Map:
|
||||
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
|
||||
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
|
||||
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
|
||||
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
|
||||
• Tuned visibility and priority of some niche shops
|
||||
|
||||
OSM editor:
|
||||
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
|
||||
• Don't hide OSM login page when offline
|
||||
• Added icons to address and number of floors input fields
|
||||
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
|
||||
|
||||
Other:
|
||||
• Open track's info page automatically upon record finish / track save
|
||||
• Show "Add Stop" button for the selected track point when in the navigation mode
|
||||
• Voice directions: announce route recalculation
|
||||
• Better looking track elevation profiles
|
||||
• Made Track Recording live activity widget properly dismissable
|
||||
• Don't always default to the subway routing mode when the subway layer is active
|
||||
• Fixed bookmarks storing POI name in a wrong language
|
||||
• Fixed on-building POIs disappearing when in perspective view
|
||||
• Fixed empty speed limit sign displayed in foot navigation
|
||||
• Fixed stuck map rotation gesture when zoomed in max
|
||||
• iCloud sync bug fixes and some minor UI fixes
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Tap tracks to display statistics and an interactive elevation profile
|
||||
• A standalone Track Recording button
|
||||
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Added tower POIs
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Search: split screen to show both the map and the list at the same time
|
||||
• Ability to share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Added tracks and bookmarks colors into exported GPX files
|
||||
|
||||
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
|
||||
• Added a context menu to the coordinates button in POI details
|
||||
• Show a reminder popup every time a full screen mode is entered
|
||||
• Display an explanation when the OSM Editor category search returns nothing
|
||||
• Differentiate between grass and grassland/meadow colors
|
||||
• Less saturated/prominent residential gardens color
|
||||
• Fixed yellow road shields displayed as green in the night mode
|
||||
• Display vegetation fills earlier in the car navigation style
|
||||
• Display complex non-number levels for building POIs
|
||||
• Improve search for peaks and saddles/passes
|
||||
• EN as additional search language in the OSM Editor
|
||||
• Update Estonian, Finnish, German, Italian, Turkish translations
|
||||
• ...many more bug fixes and UI improvements
|
||||
Map:
|
||||
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
|
||||
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
|
||||
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
|
||||
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
|
||||
• Tuned visibility and priority of some niche shops
|
||||
|
||||
OSM editor:
|
||||
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
|
||||
• Don't hide OSM login page when offline
|
||||
• Added icons to address and number of floors input fields
|
||||
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
|
||||
|
||||
Other:
|
||||
• Open track's info page automatically upon record finish / track save
|
||||
• Show "Add Stop" button for the selected track point when in the navigation mode
|
||||
• Voice directions: announce route recalculation
|
||||
• Better looking track elevation profiles
|
||||
• Made Track Recording live activity widget properly dismissable
|
||||
• Don't always default to the subway routing mode when the subway layer is active
|
||||
• Fixed bookmarks storing POI name in a wrong language
|
||||
• Fixed on-building POIs disappearing when in perspective view
|
||||
• Fixed empty speed limit sign displayed in foot navigation
|
||||
• Fixed stuck map rotation gesture when zoomed in max
|
||||
• iCloud sync bug fixes and some minor UI fixes
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Tap tracks to display statistics and an interactive elevation profile
|
||||
• A standalone Track Recording button
|
||||
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Added tower POIs
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Search: split screen to show both the map and the list at the same time
|
||||
• Ability to share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Added tracks and bookmarks colors into exported GPX files
|
||||
|
||||
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
|
||||
• Added a context menu to the coordinates button in POI details
|
||||
• Show a reminder popup every time a full screen mode is entered
|
||||
• Display an explanation when the OSM Editor category search returns nothing
|
||||
• Differentiate between grass and grassland/meadow colors
|
||||
• Less saturated/prominent residential gardens color
|
||||
• Fixed yellow road shields displayed as green in the night mode
|
||||
• Display vegetation fills earlier in the car navigation style
|
||||
• Display complex non-number levels for building POIs
|
||||
• Improve search for peaks and saddles/passes
|
||||
• EN as additional search language in the OSM Editor
|
||||
• Update Estonian, Finnish, German, Italian, Turkish translations
|
||||
• ...many more bug fixes and UI improvements
|
||||
Map:
|
||||
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
|
||||
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
|
||||
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
|
||||
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
|
||||
• Tuned visibility and priority of some niche shops
|
||||
|
||||
OSM editor:
|
||||
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
|
||||
• Don't hide OSM login page when offline
|
||||
• Added icons to address and number of floors input fields
|
||||
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
|
||||
|
||||
Other:
|
||||
• Open track's info page automatically upon record finish / track save
|
||||
• Show "Add Stop" button for the selected track point when in the navigation mode
|
||||
• Voice directions: announce route recalculation
|
||||
• Better looking track elevation profiles
|
||||
• Made Track Recording live activity widget properly dismissable
|
||||
• Don't always default to the subway routing mode when the subway layer is active
|
||||
• Fixed bookmarks storing POI name in a wrong language
|
||||
• Fixed on-building POIs disappearing when in perspective view
|
||||
• Fixed empty speed limit sign displayed in foot navigation
|
||||
• Fixed stuck map rotation gesture when zoomed in max
|
||||
• iCloud sync bug fixes and some minor UI fixes
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Tap tracks to display statistics and an interactive elevation profile
|
||||
• A standalone Track Recording button
|
||||
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Added tower POIs
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Search: split screen to show both the map and the list at the same time
|
||||
• Ability to share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Added tracks and bookmarks colors into exported GPX files
|
||||
|
||||
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
|
||||
• Added a context menu to the coordinates button in POI details
|
||||
• Show a reminder popup every time a full screen mode is entered
|
||||
• Display an explanation when the OSM Editor category search returns nothing
|
||||
• Differentiate between grass and grassland/meadow colors
|
||||
• Less saturated/prominent residential gardens color
|
||||
• Fixed yellow road shields displayed as green in the night mode
|
||||
• Display vegetation fills earlier in the car navigation style
|
||||
• Display complex non-number levels for building POIs
|
||||
• Improve search for peaks and saddles/passes
|
||||
• EN as additional search language in the OSM Editor
|
||||
• Update Estonian, Finnish, German, Italian, Turkish translations
|
||||
• ...many more bug fixes and UI improvements
|
||||
Map:
|
||||
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
|
||||
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
|
||||
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
|
||||
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
|
||||
• Tuned visibility and priority of some niche shops
|
||||
|
||||
OSM editor:
|
||||
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
|
||||
• Don't hide OSM login page when offline
|
||||
• Added icons to address and number of floors input fields
|
||||
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
|
||||
|
||||
Other:
|
||||
• Open track's info page automatically upon record finish / track save
|
||||
• Show "Add Stop" button for the selected track point when in the navigation mode
|
||||
• Voice directions: announce route recalculation
|
||||
• Better looking track elevation profiles
|
||||
• Made Track Recording live activity widget properly dismissable
|
||||
• Don't always default to the subway routing mode when the subway layer is active
|
||||
• Fixed bookmarks storing POI name in a wrong language
|
||||
• Fixed on-building POIs disappearing when in perspective view
|
||||
• Fixed empty speed limit sign displayed in foot navigation
|
||||
• Fixed stuck map rotation gesture when zoomed in max
|
||||
• iCloud sync bug fixes and some minor UI fixes
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Tap tracks to display statistics and an interactive elevation profile
|
||||
• A standalone Track Recording button
|
||||
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Added tower POIs
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Search: split screen to show both the map and the list at the same time
|
||||
• Ability to share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Added tracks and bookmarks colors into exported GPX files
|
||||
|
||||
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
|
||||
• Added a context menu to the coordinates button in POI details
|
||||
• Show a reminder popup every time a full screen mode is entered
|
||||
• Display an explanation when the OSM Editor category search returns nothing
|
||||
• Differentiate between grass and grassland/meadow colors
|
||||
• Less saturated/prominent residential gardens color
|
||||
• Fixed yellow road shields displayed as green in the night mode
|
||||
• Display vegetation fills earlier in the car navigation style
|
||||
• Display complex non-number levels for building POIs
|
||||
• Improve search for peaks and saddles/passes
|
||||
• EN as additional search language in the OSM Editor
|
||||
• Update Estonian, Finnish, German, Italian, Turkish translations
|
||||
• ...many more bug fixes and UI improvements
|
||||
Map:
|
||||
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
|
||||
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
|
||||
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
|
||||
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
|
||||
• Tuned visibility and priority of some niche shops
|
||||
|
||||
OSM editor:
|
||||
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
|
||||
• Don't hide OSM login page when offline
|
||||
• Added icons to address and number of floors input fields
|
||||
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
|
||||
|
||||
Other:
|
||||
• Open track's info page automatically upon record finish / track save
|
||||
• Show "Add Stop" button for the selected track point when in the navigation mode
|
||||
• Voice directions: announce route recalculation
|
||||
• Better looking track elevation profiles
|
||||
• Made Track Recording live activity widget properly dismissable
|
||||
• Don't always default to the subway routing mode when the subway layer is active
|
||||
• Fixed bookmarks storing POI name in a wrong language
|
||||
• Fixed on-building POIs disappearing when in perspective view
|
||||
• Fixed empty speed limit sign displayed in foot navigation
|
||||
• Fixed stuck map rotation gesture when zoomed in max
|
||||
• iCloud sync bug fixes and some minor UI fixes
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Tap tracks to display statistics and an interactive elevation profile
|
||||
• A standalone Track Recording button
|
||||
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Added tower POIs
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Search: split screen to show both the map and the list at the same time
|
||||
• Ability to share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Added tracks and bookmarks colors into exported GPX files
|
||||
|
||||
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
|
||||
• Added a context menu to the coordinates button in POI details
|
||||
• Show a reminder popup every time a full screen mode is entered
|
||||
• Display an explanation when the OSM Editor category search returns nothing
|
||||
• Differentiate between grass and grassland/meadow colors
|
||||
• Less saturated/prominent residential gardens color
|
||||
• Fixed yellow road shields displayed as green in the night mode
|
||||
• Display vegetation fills earlier in the car navigation style
|
||||
• Display complex non-number levels for building POIs
|
||||
• Improve search for peaks and saddles/passes
|
||||
• EN as additional search language in the OSM Editor
|
||||
• Update Estonian, Finnish, German, Italian, Turkish translations
|
||||
• ...many more bug fixes and UI improvements
|
||||
Map:
|
||||
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
|
||||
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
|
||||
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
|
||||
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
|
||||
• Tuned visibility and priority of some niche shops
|
||||
|
||||
OSM editor:
|
||||
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
|
||||
• Don't hide OSM login page when offline
|
||||
• Added icons to address and number of floors input fields
|
||||
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
|
||||
|
||||
Other:
|
||||
• Open track's info page automatically upon record finish / track save
|
||||
• Show "Add Stop" button for the selected track point when in the navigation mode
|
||||
• Voice directions: announce route recalculation
|
||||
• Better looking track elevation profiles
|
||||
• Made Track Recording live activity widget properly dismissable
|
||||
• Don't always default to the subway routing mode when the subway layer is active
|
||||
• Fixed bookmarks storing POI name in a wrong language
|
||||
• Fixed on-building POIs disappearing when in perspective view
|
||||
• Fixed empty speed limit sign displayed in foot navigation
|
||||
• Fixed stuck map rotation gesture when zoomed in max
|
||||
• iCloud sync bug fixes and some minor UI fixes
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
• Nouvelles données OpenStreetMap du 21 janvier
|
||||
• Appuyez sur les pistes pour afficher des statistiques et un profil d'altitude interactif
|
||||
• Un bouton d'enregistrement de piste autonome
|
||||
• Widget d'activité en direct d'enregistrement de piste avec statistiques de piste (iOS 16.2 et versions ultérieures)
|
||||
• Ajout des langues serbe (cyrillique) et lettone
|
||||
• Ajout de POI de tour
|
||||
• Nouvelles données OpenStreetMap du 27 février
|
||||
• Recherche : écran partagé pour afficher simultanément la carte et la liste
|
||||
• Possibilité de partager une seule piste sélectionnée dans la liste
|
||||
• Amélioration du routage pour les vélos
|
||||
• Ajout de pistes et de couleurs de signets dans les fichiers GPX exportés
|
||||
|
||||
• Ajout d'icônes spécifiques pour le métro de Hong Kong, de Shenzhen et le métro léger de Berlin, ainsi qu'une icône de monorail distincte
|
||||
• Ajout d'un menu contextuel au bouton de coordonnées dans les détails du POI
|
||||
• Afficher une fenêtre contextuelle de rappel à chaque fois que le mode plein écran est activé
|
||||
• Afficher une explication lorsque la recherche de catégorie de l'éditeur OSM ne renvoie rien
|
||||
• Faire la différence entre les couleurs de l’herbe et celles des prairies
|
||||
• Couleur des jardins résidentiels moins saturée/proéminente
|
||||
• Correction des panneaux routiers jaunes affichés en vert en mode nuit
|
||||
• Afficher les remplissages de végétation plus tôt dans le style de navigation automobile
|
||||
• Afficher des niveaux complexes non numériques pour la création de POI
|
||||
• Améliorer la recherche de sommets et de cols
|
||||
• EN comme langue de recherche supplémentaire dans l'éditeur OSM
|
||||
• Mettre à jour les traductions en estonien, finnois, allemand, italien et turc
|
||||
• ... de nombreuses autres corrections de bugs et améliorations de l'interface utilisateur
|
||||
Carte :
|
||||
• Ajout de magasins d'appareils auditifs, de tours de communication, de croix, de puits de pétrole/gaz, de torchères à gaz, de sauveteurs, de locations de motos, de postes de secours en montagne, d'obélisques (en tant que monuments), de quartiers séparés (qui étaient auparavant fusionnés avec les quartiers)
|
||||
• Extérieur : visibilité accrue des cabanes, abris, postes de chasse, tours, cairns, réservoirs de stockage, silos
|
||||
• Extérieur : ajout de lignes électriques secondaires, de poteaux électriques et de services publics ; visibilité accrue des principales lignes électriques et pylônes
|
||||
• Ajout de légendes aux falaises nommées, aux murs de la ville, aux remblais et aux lignes électriques
|
||||
• Visibilité et priorité optimisées de certains magasins de niche
|
||||
|
||||
Éditeur OSM :
|
||||
• Ajout de la possibilité de modifier les attributs POI « Libre-service » et « Terrasse en extérieur »
|
||||
• Ne pas masquer la page de connexion OSM en mode hors ligne
|
||||
• Ajout d'icônes aux champs de saisie d'adresse et de nombre d'étages
|
||||
• Correction de nombreux autres bugs, grâce au contributeur @map-per qui a fait beaucoup de travail en coulisses !
|
||||
|
||||
Autre :
|
||||
• Ouvrir automatiquement la page d'informations de la piste à la fin de l'enregistrement/enregistrement de la piste
|
||||
• Afficher le bouton « Ajouter un arrêt » pour le point de piste sélectionné en mode navigation
|
||||
• Directions vocales : annoncer le recalcul de l'itinéraire
|
||||
• Profils d'élévation de piste plus esthétiques
|
||||
• Le widget d'activité en direct d'enregistrement de piste peut désormais être correctement supprimé
|
||||
• Ne pas toujours passer par défaut au mode de routage du métro lorsque la couche de métro est active
|
||||
• Correction des signets stockant le nom du POI dans une mauvaise langue
|
||||
• Correction des POI sur bâtiment qui disparaissaient en vue perspective
|
||||
• Correction du panneau de limitation de vitesse vide affiché dans la navigation à pied
|
||||
• Correction du geste de rotation de carte bloqué lors d'un zoom avant maximal
|
||||
• Correction des bugs de synchronisation iCloud et quelques corrections mineures de l'interface utilisateur
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Tap tracks to display statistics and an interactive elevation profile
|
||||
• A standalone Track Recording button
|
||||
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Added tower POIs
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Search: split screen to show both the map and the list at the same time
|
||||
• Ability to share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Added tracks and bookmarks colors into exported GPX files
|
||||
|
||||
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
|
||||
• Added a context menu to the coordinates button in POI details
|
||||
• Show a reminder popup every time a full screen mode is entered
|
||||
• Display an explanation when the OSM Editor category search returns nothing
|
||||
• Differentiate between grass and grassland/meadow colors
|
||||
• Less saturated/prominent residential gardens color
|
||||
• Fixed yellow road shields displayed as green in the night mode
|
||||
• Display vegetation fills earlier in the car navigation style
|
||||
• Display complex non-number levels for building POIs
|
||||
• Improve search for peaks and saddles/passes
|
||||
• EN as additional search language in the OSM Editor
|
||||
• Update Estonian, Finnish, German, Italian, Turkish translations
|
||||
• ...many more bug fixes and UI improvements
|
||||
Map:
|
||||
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
|
||||
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
|
||||
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
|
||||
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
|
||||
• Tuned visibility and priority of some niche shops
|
||||
|
||||
OSM editor:
|
||||
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
|
||||
• Don't hide OSM login page when offline
|
||||
• Added icons to address and number of floors input fields
|
||||
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
|
||||
|
||||
Other:
|
||||
• Open track's info page automatically upon record finish / track save
|
||||
• Show "Add Stop" button for the selected track point when in the navigation mode
|
||||
• Voice directions: announce route recalculation
|
||||
• Better looking track elevation profiles
|
||||
• Made Track Recording live activity widget properly dismissable
|
||||
• Don't always default to the subway routing mode when the subway layer is active
|
||||
• Fixed bookmarks storing POI name in a wrong language
|
||||
• Fixed on-building POIs disappearing when in perspective view
|
||||
• Fixed empty speed limit sign displayed in foot navigation
|
||||
• Fixed stuck map rotation gesture when zoomed in max
|
||||
• iCloud sync bug fixes and some minor UI fixes
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Tap tracks to display statistics and an interactive elevation profile
|
||||
• A standalone Track Recording button
|
||||
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Added tower POIs
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Search: split screen to show both the map and the list at the same time
|
||||
• Ability to share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Added tracks and bookmarks colors into exported GPX files
|
||||
|
||||
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
|
||||
• Added a context menu to the coordinates button in POI details
|
||||
• Show a reminder popup every time a full screen mode is entered
|
||||
• Display an explanation when the OSM Editor category search returns nothing
|
||||
• Differentiate between grass and grassland/meadow colors
|
||||
• Less saturated/prominent residential gardens color
|
||||
• Fixed yellow road shields displayed as green in the night mode
|
||||
• Display vegetation fills earlier in the car navigation style
|
||||
• Display complex non-number levels for building POIs
|
||||
• Improve search for peaks and saddles/passes
|
||||
• EN as additional search language in the OSM Editor
|
||||
• Update Estonian, Finnish, German, Italian, Turkish translations
|
||||
• ...many more bug fixes and UI improvements
|
||||
Map:
|
||||
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
|
||||
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
|
||||
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
|
||||
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
|
||||
• Tuned visibility and priority of some niche shops
|
||||
|
||||
OSM editor:
|
||||
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
|
||||
• Don't hide OSM login page when offline
|
||||
• Added icons to address and number of floors input fields
|
||||
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
|
||||
|
||||
Other:
|
||||
• Open track's info page automatically upon record finish / track save
|
||||
• Show "Add Stop" button for the selected track point when in the navigation mode
|
||||
• Voice directions: announce route recalculation
|
||||
• Better looking track elevation profiles
|
||||
• Made Track Recording live activity widget properly dismissable
|
||||
• Don't always default to the subway routing mode when the subway layer is active
|
||||
• Fixed bookmarks storing POI name in a wrong language
|
||||
• Fixed on-building POIs disappearing when in perspective view
|
||||
• Fixed empty speed limit sign displayed in foot navigation
|
||||
• Fixed stuck map rotation gesture when zoomed in max
|
||||
• iCloud sync bug fixes and some minor UI fixes
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Tap tracks to display statistics and an interactive elevation profile
|
||||
• A standalone Track Recording button
|
||||
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Added tower POIs
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Search: split screen to show both the map and the list at the same time
|
||||
• Ability to share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Added tracks and bookmarks colors into exported GPX files
|
||||
|
||||
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
|
||||
• Added a context menu to the coordinates button in POI details
|
||||
• Show a reminder popup every time a full screen mode is entered
|
||||
• Display an explanation when the OSM Editor category search returns nothing
|
||||
• Differentiate between grass and grassland/meadow colors
|
||||
• Less saturated/prominent residential gardens color
|
||||
• Fixed yellow road shields displayed as green in the night mode
|
||||
• Display vegetation fills earlier in the car navigation style
|
||||
• Display complex non-number levels for building POIs
|
||||
• Improve search for peaks and saddles/passes
|
||||
• EN as additional search language in the OSM Editor
|
||||
• Update Estonian, Finnish, German, Italian, Turkish translations
|
||||
• ...many more bug fixes and UI improvements
|
||||
Map:
|
||||
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
|
||||
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
|
||||
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
|
||||
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
|
||||
• Tuned visibility and priority of some niche shops
|
||||
|
||||
OSM editor:
|
||||
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
|
||||
• Don't hide OSM login page when offline
|
||||
• Added icons to address and number of floors input fields
|
||||
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
|
||||
|
||||
Other:
|
||||
• Open track's info page automatically upon record finish / track save
|
||||
• Show "Add Stop" button for the selected track point when in the navigation mode
|
||||
• Voice directions: announce route recalculation
|
||||
• Better looking track elevation profiles
|
||||
• Made Track Recording live activity widget properly dismissable
|
||||
• Don't always default to the subway routing mode when the subway layer is active
|
||||
• Fixed bookmarks storing POI name in a wrong language
|
||||
• Fixed on-building POIs disappearing when in perspective view
|
||||
• Fixed empty speed limit sign displayed in foot navigation
|
||||
• Fixed stuck map rotation gesture when zoomed in max
|
||||
• iCloud sync bug fixes and some minor UI fixes
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Tap tracks to display statistics and an interactive elevation profile
|
||||
• A standalone Track Recording button
|
||||
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Added tower POIs
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Search: split screen to show both the map and the list at the same time
|
||||
• Ability to share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Added tracks and bookmarks colors into exported GPX files
|
||||
|
||||
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
|
||||
• Added a context menu to the coordinates button in POI details
|
||||
• Show a reminder popup every time a full screen mode is entered
|
||||
• Display an explanation when the OSM Editor category search returns nothing
|
||||
• Differentiate between grass and grassland/meadow colors
|
||||
• Less saturated/prominent residential gardens color
|
||||
• Fixed yellow road shields displayed as green in the night mode
|
||||
• Display vegetation fills earlier in the car navigation style
|
||||
• Display complex non-number levels for building POIs
|
||||
• Improve search for peaks and saddles/passes
|
||||
• EN as additional search language in the OSM Editor
|
||||
• Update Estonian, Finnish, German, Italian, Turkish translations
|
||||
• ...many more bug fixes and UI improvements
|
||||
Map:
|
||||
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
|
||||
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
|
||||
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
|
||||
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
|
||||
• Tuned visibility and priority of some niche shops
|
||||
|
||||
OSM editor:
|
||||
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
|
||||
• Don't hide OSM login page when offline
|
||||
• Added icons to address and number of floors input fields
|
||||
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
|
||||
|
||||
Other:
|
||||
• Open track's info page automatically upon record finish / track save
|
||||
• Show "Add Stop" button for the selected track point when in the navigation mode
|
||||
• Voice directions: announce route recalculation
|
||||
• Better looking track elevation profiles
|
||||
• Made Track Recording live activity widget properly dismissable
|
||||
• Don't always default to the subway routing mode when the subway layer is active
|
||||
• Fixed bookmarks storing POI name in a wrong language
|
||||
• Fixed on-building POIs disappearing when in perspective view
|
||||
• Fixed empty speed limit sign displayed in foot navigation
|
||||
• Fixed stuck map rotation gesture when zoomed in max
|
||||
• iCloud sync bug fixes and some minor UI fixes
|
||||
|
|
|
@ -1,20 +1,31 @@
|
|||
• New OpenStreetMap data as of January 21
|
||||
• Tap tracks to display statistics and an interactive elevation profile
|
||||
• A standalone Track Recording button
|
||||
• Track Recording Live Activity Widget with track statistics (iOS16.2 and later)
|
||||
• Added Serbian (Cyrillic) and Latvian languages
|
||||
• Added tower POIs
|
||||
• New OpenStreetMap data as of February 27
|
||||
• Search: split screen to show both the map and the list at the same time
|
||||
• Ability to share a single selected track from the list
|
||||
• Improved routing for bicycles
|
||||
• Added tracks and bookmarks colors into exported GPX files
|
||||
|
||||
• Added specific icons for Hong Kong, Shenzhen metro and Berlin light rail, a separate monorail icon
|
||||
• Added a context menu to the coordinates button in POI details
|
||||
• Show a reminder popup every time a full screen mode is entered
|
||||
• Display an explanation when the OSM Editor category search returns nothing
|
||||
• Differentiate between grass and grassland/meadow colors
|
||||
• Less saturated/prominent residential gardens color
|
||||
• Fixed yellow road shields displayed as green in the night mode
|
||||
• Display vegetation fills earlier in the car navigation style
|
||||
• Display complex non-number levels for building POIs
|
||||
• Improve search for peaks and saddles/passes
|
||||
• EN as additional search language in the OSM Editor
|
||||
• Update Estonian, Finnish, German, Italian, Turkish translations
|
||||
• ...many more bug fixes and UI improvements
|
||||
Map:
|
||||
• Added Hearing Aids shops, Communication Towers, Crosses, Oil/Gas Wells, Gas Flares, Lifeguards, Motorcycle Rentals, Mountain Rescue Stations, Obelisks (as monuments), separate Quarters (were merged with Neighbourhoods before)
|
||||
• Outdoors: raised visibility of Huts, Shelters, Hunting Stands, Towers, Cairns, Storage Tanks, Silos
|
||||
• Outdoors: added Minor Power Lines, Utility and Power Poles; increased visibility of major Power Lines and Pylons
|
||||
• Added captions to named Cliffs, City Walls, Embankments, Power Lines
|
||||
• Tuned visibility and priority of some niche shops
|
||||
|
||||
OSM editor:
|
||||
• Added ability to edit "Self-service" and "Outdoor seating" POI attributes
|
||||
• Don't hide OSM login page when offline
|
||||
• Added icons to address and number of floors input fields
|
||||
• Fixed many other bugs, thanks to contributor @map-per who did a lot of under-the-hood work!
|
||||
|
||||
Other:
|
||||
• Open track's info page automatically upon record finish / track save
|
||||
• Show "Add Stop" button for the selected track point when in the navigation mode
|
||||
• Voice directions: announce route recalculation
|
||||
• Better looking track elevation profiles
|
||||
• Made Track Recording live activity widget properly dismissable
|
||||
• Don't always default to the subway routing mode when the subway layer is active
|
||||
• Fixed bookmarks storing POI name in a wrong language
|
||||
• Fixed on-building POIs disappearing when in perspective view
|
||||
• Fixed empty speed limit sign displayed in foot navigation
|
||||
• Fixed stuck map rotation gesture when zoomed in max
|
||||
• iCloud sync bug fixes and some minor UI fixes
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Reference in a new issue