diff --git a/OsmAnd-java/src/net/osmand/router/GeneralRouter.java b/OsmAnd-java/src/net/osmand/router/GeneralRouter.java
index d9204779a3..694493c8d8 100644
--- a/OsmAnd-java/src/net/osmand/router/GeneralRouter.java
+++ b/OsmAnd-java/src/net/osmand/router/GeneralRouter.java
@@ -87,7 +87,8 @@ public class GeneralRouter implements VehicleRouter {
public enum GeneralRouterProfile {
CAR,
PEDESTRIAN,
- BICYCLE
+ BICYCLE,
+ BOAT
}
diff --git a/OsmAnd/res/drawable-hdpi/ic_action_route_distance.png b/OsmAnd/res/drawable-hdpi/ic_action_route_distance.png
new file mode 100644
index 0000000000..fd22d832b7
Binary files /dev/null and b/OsmAnd/res/drawable-hdpi/ic_action_route_distance.png differ
diff --git a/OsmAnd/res/drawable-mdpi/ic_action_route_distance.png b/OsmAnd/res/drawable-mdpi/ic_action_route_distance.png
new file mode 100644
index 0000000000..5ed3fe5e9d
Binary files /dev/null and b/OsmAnd/res/drawable-mdpi/ic_action_route_distance.png differ
diff --git a/OsmAnd/res/drawable-xhdpi/ic_action_route_distance.png b/OsmAnd/res/drawable-xhdpi/ic_action_route_distance.png
new file mode 100644
index 0000000000..46c011ed8b
Binary files /dev/null and b/OsmAnd/res/drawable-xhdpi/ic_action_route_distance.png differ
diff --git a/OsmAnd/res/drawable-xxhdpi/ic_action_route_distance.png b/OsmAnd/res/drawable-xxhdpi/ic_action_route_distance.png
new file mode 100644
index 0000000000..a2b06e899f
Binary files /dev/null and b/OsmAnd/res/drawable-xxhdpi/ic_action_route_distance.png differ
diff --git a/OsmAnd/res/values-ar/phrases.xml b/OsmAnd/res/values-ar/phrases.xml
index 7caa517a9c..aa6f8c577c 100644
--- a/OsmAnd/res/values-ar/phrases.xml
+++ b/OsmAnd/res/values-ar/phrases.xml
@@ -529,7 +529,7 @@
صحن
نوع الدفع (نقل)
نوع
- نوع
+ نوع الوقود
سق في
سق عبر
الفئة المستهدفة
@@ -1607,4 +1607,19 @@
ركوب الأمواج
عمل فني
ميدان معركة
-
+ نوع إمدادات المياه
+ تنقية المياه
+ نقطة دراسة استقصائية
+ رسوم الموقف
+
+ نوع الخريطة: شارع
+ محطة شحن
+
+ شارع
+ رقم المنزل
+ شقة
+
+ مركز الدفع
+ تحويل أموال
+
+
diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml
index 541c0a2b63..920fef76b9 100644
--- a/OsmAnd/res/values-ar/strings.xml
+++ b/OsmAnd/res/values-ar/strings.xml
@@ -2845,7 +2845,7 @@
تعيين كمتجاوز
إنشاء أو تعديل أشياء OSM
إنشاء أو تعديل OSM POI، فتح أو التعليق على ملاحظات OSM والمساهمة بملفات GPX مسجلة.
- تم حذفه
+ حُذف
تم تعديله
تمت إضافة
تغيير طلب البحث.
diff --git a/OsmAnd/res/values-be-rBY/strings.xml b/OsmAnd/res/values-be-rBY/strings.xml
index 1165f5d23b..90fd35c999 100644
--- a/OsmAnd/res/values-be-rBY/strings.xml
+++ b/OsmAnd/res/values-be-rBY/strings.xml
@@ -2888,7 +2888,7 @@ U vypadku, kali vy lubіcie OsmAnd і OSM і chočacie padtrymać jaho, heta іd
Impartavać jak GPX-fajł
Impartavać jak Ulubionyja
Impartavać fajł
- Dotyk na mapie chavaje knopki kiravannia i vidžety.
+ Dotyk na mapie chavaje knopki kiravańnia i vidžety.
Poŭnyekranny režym
Pakazać na vierchniaj paneli
Adznačyć prajdzienyja
diff --git a/OsmAnd/res/values-be/strings.xml b/OsmAnd/res/values-be/strings.xml
index 3b6da2457c..96b3dd8b7e 100644
--- a/OsmAnd/res/values-be/strings.xml
+++ b/OsmAnd/res/values-be/strings.xml
@@ -2937,7 +2937,7 @@
Імпартаваць як GPX-файл
Імпартаваць як Улюбёныя
Імпартаваць файл
- Дотык на мапе хавае кнопкі кіравання і віджэты.
+ Дотык на мапе хавае кнопкі кіраваньня і віджэты.
Поўныэкранны рэжым
Паказаць на верхняй панэлі
Адзначыць прайдзеныя
diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml
index 29b222138d..717bd6e8e7 100644
--- a/OsmAnd/res/values-da/strings.xml
+++ b/OsmAnd/res/values-da/strings.xml
@@ -1596,7 +1596,7 @@ OSM er et i fællesskab drevet, globalt offentligt domæne kortlægningsprojekt.
Skjul
Tænd for skærmen
Tænd for skærmen (hvis slukket) ved navigationsinstruktioner.
- %1$s behøver denne tilladelse til at slukke for skærmen for strømbesparende funktion.
+ %1$s behøver denne tilladelse til at slukke for skærmen for strømbesparefunktion.
diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml
index 3ba63ce29a..34167037ce 100644
--- a/OsmAnd/res/values-de/phrases.xml
+++ b/OsmAnd/res/values-de/phrases.xml
@@ -3013,7 +3013,7 @@
Gewürzgeschäft
-Typ
+Kraftstoffart
Zahlungsart
Zusätzlich
Ladestation: ja
@@ -3021,7 +3021,7 @@
Geschäft für Kunsthandwerksbedarf
- Typ
+ Kraftstoffart (avia)
Tankkarten
Internet-Zugangsart
Typ
@@ -3647,4 +3647,16 @@
Lager
+Kartengröße: Platz
+ Kartengröße: Stadt
+ Kartengröße: Region
+
+ Briefkasten
+ Straße
+ Hausnummer
+ Flach
+
+ Zahlungs-Zentrum
+ Überweisung
+
diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml
index b6632cf444..b95284eae0 100644
--- a/OsmAnd/res/values-de/strings.xml
+++ b/OsmAnd/res/values-de/strings.xml
@@ -177,7 +177,7 @@
Diese Erweiterung aktiviert Entwicklereinstellungen und Funktionen zur Fehlersuche, wie Testung oder Simulation der Routenberechnung, der Bildschirm-Render-Leistung oder der Sprachsteuerung. Diese Einstellungen sind für Entwickler gedacht und werden für die Verwendung von OsmAnd sonst nicht benötigt.
Erweiterungen
- Erweiterungen aktivieren weiterte Einstellungen und zusätzliche Funktionen
+ Erweiterungen aktivieren weitere Einstellungen und zusätzliche Funktionen.
Erweiterungen
Diese Erweiterung ermöglicht das Erstellen und Bearbeiten von OSM-POI-Objekten, das Eintragen oder Kommentieren von OSM-Notizen, sowie das Hochladen von GPX-Dateien als Beiträge zu OSM (benötigt ein OSM-Benutzerkonto).
\n
@@ -275,7 +275,7 @@
Online-Aufzeichnung starten
Online-Aufzeichnung beenden
Aktuellen Track anzeigen
- Diese kostenlose Version von OsmAnd ist limitiert auf %1$s Downloads und unterstützt keine offline Wikipedia-Artikel.
+ Diese kostenlose Version von OsmAnd ist limitiert auf %1$s Downloads(Zum Hinzufügen und Aktualisieren der Karten) und unterstützt keine offline Wikipedia-Artikel.
Kostenlose Version
Zeige POI-Beschreibung.
Nordamerika
@@ -383,7 +383,7 @@
Datei mit gleichem Namen besteht bereits.
Speichern
- GPX-Dateien an OSM-Gemeinschaft übermitteln. Die Dateien können dort zur Kartenverbesserung verwendet werden.
+ GPX-Dateien an die OSM-Gemeinschaft übermitteln. Die Dateien können dort zur Kartenverbesserung verwendet werden.
%1$d von %2$d Datei(en) erfolgreich hochgeladen.
An OSM senden
Mehr Kartendetails
@@ -462,15 +462,15 @@
Keine(r/s)
Overlay-Karte
Karte als Überlagerung auswählen.
- Karte schon installiert, Einstellungen werden aktualisiert
- Wähle Karten(Kacheln) zu installieren oder aktualisieren
- Internet Verbindung erforderlich, aber nicht verfügbar!
+ Karte schon installiert, Einstellungen werden aktualisiert.
+ Wähle Karten(Kacheln) zu installieren oder aktualisieren.
+ Internet Verbindung erforderlich, aber nicht verfügbar.
Weitere installieren…
Niedrigste Zoomstufe mit der Vektorkarten (statt Kacheln) verwendet werden sollen.
Min. Vektor-Zoomstufe
- Online OSM Klassifizierung mit Bildern"
+ Online OSM Klassifizierung mit Bildern.
Fehler in der Offline-Suche aufgetreten
Konnte geointent nicht verarbeiten: \'%s\'
Adresssuche mit Offline-Daten
@@ -587,8 +587,8 @@
Telefon
Nach Typ filtern
Hochauflösende Anzeige
- Unterdrückt Streckung (Unschärfe) von Kartenkacheln auf manchen Anzeigen
- Standort noch nicht ermittelt
+ Unterdrückt Streckung (Unschärfe) von Kartenkacheln auf manchen Anzeigen.
+ Position noch nicht bekannt
Suche ÖPNV
ÖPNV-Ergebnisse (kein Ziel):
@@ -1263,7 +1263,7 @@ Proportionaler Speicher %4$s MB (Android Limit %5$s MB, Dalvik %6$s MB).LKW
Navigationseinstellungen
Einstellungen für Routenberechnung
- Sprachgeschwindigkeit der TTS-Ausgabe
+ Sprachgeschwindigkeit der TTS-Ausgabe bestimmen.
Sprachgeschwindigkeit
Schnelle Routenberechnung fehlgeschlagen (%s), Rückfall auf langsame Berechnung.
Zwei-Phasen-Routing für Autonavigation deaktivieren.
@@ -2109,9 +2109,9 @@ Lon %2$s
neu erstellen
Weiter
%.1f MB
- Bitte einen gültigen POI-Typ angeben oder überspringen
+ Bitte einen gültigen POI-Typ angeben oder überspringen.
OSM-Bearbeitung mit OsmAnd geteilt
- GPX-Datei mit Notizen
+ GPX-Datei mit Notizen.
Anzeige der genutzten freien Downloads.
Standort
@@ -2225,7 +2225,7 @@ Derzeit sind nur {2} MB verfügbar.
Öffentlicher Name
Meinen Namen nicht in Berichten anzeigen
Monatliche Kosten
- Monatliche Zahlung
+ Monatliche Zahlung.
Aktiv
Inaktiv
Bitte gültige E-Mail-Adresse eingeben
@@ -2234,7 +2234,7 @@ Derzeit sind nur {2} MB verfügbar.
Abonnementeinstellungen
Bitte kaufen Sie zuerst ein OsmAnd-Live-Abonnement
- Teile Ihrer Spende werden an OSM-Mitwirkende weitergegeben, die diese Region bearbeiten
+ Teile Ihrer Spende werden an OSM-Mitwirkende weitergegeben, die diese Region bearbeiten.
Dieses Abonnement schaltet stündliche Updates für die gesamten weltweiten Karten frei.
Ein Teil dieser Einnahmen geht zurück an die OSM-Gemeinschaft, eine Auszahlung erfolgt je nach Anzahl der Beiträge zu den OSM-Daten.
Wenn Sie OsmAnd und OSM lieben und unterstützen wollen, so ist dies die perfekte Möglichkeit.
@@ -2317,7 +2317,7 @@ Wenn Sie OsmAnd und OSM lieben und unterstützen wollen, so ist dies die perfekt
Bus
Zug
Koordinatenformat
- Format geographischer Koordinaten
+ Format geographischer Koordinaten.
24/7 geöffnet
Speicherkarte
@@ -2660,7 +2660,7 @@ Abgedeckte Fläche: %1$s x %2$s
Drücken der Aktionstaste fügt die zum Bildschirmmittelpunkt gehörende Position als ersten Zwischenstopp ein.
Fehler
Tragen Sie sich in unsere Mail-Liste zu App-Angeboten ein, und erhalten Sie dafür 3 zusätzliche Karten-Downloads!
- Kartensatz, der die Meeresbodenkonturlinien und Meerestiefen enthält.
+ Kartensatz, der die Meeresbodenkonturlinien und nautischen Punkte enthält.
Vielen Dank, dass Sie die Meerestiefenkonturen erworben haben!
Nautische Tiefenkonturen
Nautische Meerestiefen der Südhalbkugel
@@ -2730,7 +2730,7 @@ Abgedeckte Fläche: %1$s x %2$s
Berechtigungen
OsmAnd kann die Datei nicht importieren. Überprüfen Sie, ob OsmAnd Leserechte für den Dateispeicherort besitzt.
Benutzernamen eingeben
- Bilder betrachten, die von einem bestimmten Benutzer eingestellt wurden.
+ Nur Bilder betrachten von
Benutzername
Erneut laden
Kacheln neu laden, um nach Datumswerten zu suchen.
@@ -2738,8 +2738,8 @@ Abgedeckte Fläche: %1$s x %2$s
Falscher Benutzername!
Bis
Von
- Bilder betrachten, die in einem bestimmten Zeitabschnitt eingestellt wurden.
- Datumswerte
+ Nur hinzugefügte Bilder betrachten
+ Datum
Durchschnitt
max/min
Zurücksetzen
@@ -2831,7 +2831,7 @@ Abgedeckte Fläche: %1$s x %2$s
Gestern
Letzte 7 Tage
Dieses Jahr
- Passiert: %1$s
+ Zuletzt verwendet: %1$s
Markierungen
Koordinatenformat
Format zur Koordinateneingabe auswählen. Kann durch Anklicken von »Einstellungen« jederzeit geändert werden.
@@ -2847,7 +2847,7 @@ Abgedeckte Fläche: %1$s x %2$s
Markierungen in die hier festgelegte Datei exportieren:
Als Track speichern
In den Verlauf verschieben
- Gruppe wird bei einem Neustart entfernt
+ Gruppe wird beim nächsten Neustart entfernt.
Passierte anzeigen
Passierte ausblenden
Auswahl der Anzeige für Entfernungen und Richtungen zu Kartenmarkierungen in der Kartenansicht:
@@ -2864,10 +2864,10 @@ Abgedeckte Fläche: %1$s x %2$s
Beenden
Gerätetastatur verwenden
Kartenmarkierung auf Karte verschoben
- • Komplett überarbeitete Kartenmarkierungen mit Linien und Routenplanung
-\n
-\n• Entfernungsmesser bietet ausrichten auf Straße Funktion und speichern als Track
-\n
+ • Komplett überarbeitete Kartenmarkierungen mit Linien und Routenplanung
+\n
+\n• Entfernungsmesser bietet ausrichten auf Straße Funktion und speichern als Track
+\n
\n• Bug-Fixes, neue Daten auf dem Server alle 30 Minuten, Updates implementiert in der Navigation
\n
\n
@@ -2924,5 +2924,13 @@ Abgedeckte Fläche: %1$s x %2$s
kann als Favoriten-Punkte oder als Track-Datei importiert werden.
Audio-, Video- oder Fotonotizen zu jedem Punkt auf der Karte über Widget oder Kontextmenü hinzufügen.
Notizen nach Datum
- Berührung der Karte wechselt zwischen Steuerungselementen und Widgets.
+ Berührung der Karte verbirgt Steuerungselementen und Widgets.
+ • Erkennung von Stoppschildern jetzt nach Fahrtrichtung
+\n
+\n• Neuer Algorithmus für die Bereitstellung von sinnvollen Auf-/Abstieg-Werten für GPX-tracks
+\n
+\n• Dauer des Aufstiegs entsprechend dem Gelände (Naismiths Regel)
+\n
+\n
+ Aktiviren mit einem Tap
diff --git a/OsmAnd/res/values-es-rAR/phrases.xml b/OsmAnd/res/values-es-rAR/phrases.xml
index faf2a9d924..999d609788 100644
--- a/OsmAnd/res/values-es-rAR/phrases.xml
+++ b/OsmAnd/res/values-es-rAR/phrases.xml
@@ -1600,7 +1600,7 @@
Sí
Servicio en el automóvil: No
- Nombre de cervecería
+ Nombre de la cervecería
Sí
Cerveza artesanal: No
@@ -3704,7 +3704,7 @@
Buzón postal
Calle
Número de portal
- Plano
+ Pisos de oficina
Centro de pagos
Transferencia de dinero
diff --git a/OsmAnd/res/values-es-rUS/phrases.xml b/OsmAnd/res/values-es-rUS/phrases.xml
index 3e2cefa71e..9298438932 100644
--- a/OsmAnd/res/values-es-rUS/phrases.xml
+++ b/OsmAnd/res/values-es-rUS/phrases.xml
@@ -1487,7 +1487,7 @@
Conducir dentro: No
Sí
Servicio en el automóvil: No
- Nombre de cervecería
+ Nombre de la cervecería
Sí
Cerveza artesanal: No
Comida para llevar: Sí
diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml
index 4a626b1d34..a64f1e2d11 100644
--- a/OsmAnd/res/values-fa/strings.xml
+++ b/OsmAnd/res/values-fa/strings.xml
@@ -2977,7 +2977,7 @@
بر اساس تاریخ
بر اساس نوع
\@string/shared_string_history
- کلمات جستوجوشده را اصلاح کنید.
+ عبارت جستوجوشده را اصلاح کنید.
• تشخیص علائم ایست با توجه به مسیر رانندگی
\n
\n• الگوریتم جدید برای دادن مقادیر صعود و نزولِ مناسب به مسیرهای GPX
diff --git a/OsmAnd/res/values-he/strings.xml b/OsmAnd/res/values-he/strings.xml
index c46641e69f..104746d74d 100644
--- a/OsmAnd/res/values-he/strings.xml
+++ b/OsmAnd/res/values-he/strings.xml
@@ -2483,4 +2483,5 @@
יש להגדיר כדי לצורך הקראה של שמות רחובות, אזהרות תנועה (עצירות מאולצות, פסי האטה), אזהרות על מצלמות מהירות, מגבלת מהירות.
הפעלת הנפשת גלישת מפה של המיקום שלי במהלך ניווט.
ב־%1$s
+ ניתן לגעת בסמן על המפה כדי להעביר אותו לראש הסמנים הפעילים מבלי לפתוח את תפריט ההקשר.
diff --git a/OsmAnd/res/values-hu/phrases.xml b/OsmAnd/res/values-hu/phrases.xml
index 6eadfacf79..ec396ceb05 100644
--- a/OsmAnd/res/values-hu/phrases.xml
+++ b/OsmAnd/res/values-hu/phrases.xml
@@ -3660,4 +3660,12 @@
Járműtároló
+Levélszekrény
+ Utca
+ Házszám
+ Lakás száma
+
+ Befizetőpont
+ Pénzküldő
+
diff --git a/OsmAnd/res/values-it/strings.xml b/OsmAnd/res/values-it/strings.xml
index c6318f8dda..5b1ffe99a8 100644
--- a/OsmAnd/res/values-it/strings.xml
+++ b/OsmAnd/res/values-it/strings.xml
@@ -2711,7 +2711,7 @@ Rappresenta l\'area: %1$s x %2$s
In pausa
Scrivi la città o il paese
Scrivi il codice postale
- Città nei dintorni
+ Città vicine
Seleziona la città
Seleziona il codice postale
Seleziona la strada
@@ -2740,7 +2740,7 @@ Rappresenta l\'area: %1$s x %2$s
Nascondi dal livello di zoom
Per visualizzare le linee isoipse nella mappa, devi scaricare la mappa delle linee isoipse per questa regione.
Componente aggiuntivo
- Per visualizzare le linee isoipse nella mappa, devi acquistare e installare il componente aggiuntivo Contour Lines
+ Per visualizzare le linee isoipse nella mappa, devi acquistare e installare il componente aggiuntivo delle curve di livello
Schema colori
Permetti l\'accesso alle proprietà private
Permetti l\'accesso alle aree private.
@@ -2837,7 +2837,7 @@ Rappresenta l\'area: %1$s x %2$s
Distanziometro
Aggiungi almeno un punto.
Nome del file GPX:
- Mostra sulla mappa dopo averlo salvato
+ Dopo averlo salvato mostralo sulla mappa
Hai bisogno di internet per vedere le foto di Mapillary
Aggiungi Waypoint
Salva Waypoint GPX
@@ -2852,7 +2852,7 @@ Rappresenta l\'area: %1$s x %2$s
Aggiungi un punto prima
Aggiungi un punto dopo
Opzioni
- OsmAnd aggiungerà i punti al percorso, in base al tipo di navigazione.
+ OsmAnd collegherà i punti ai percorso in base al profilo di navigazione.
Puoi salvare i punti sia come punti di un percorso che come linea.
Scegli il profilo di navigazione
Uscire senza salvare?
@@ -2898,7 +2898,7 @@ Rappresenta l\'area: %1$s x %2$s
Evita strade di ghiaccio e guadi
Evita strade di ghiaccio e guadi.
Utilizza la posizione
- Aggiungo la tua posizione come primo punto per pianificare un percorso perfetto.
+ Aggiungi la tua posizione come primo punto per pianificare un percorso perfetto.
Mia posizione
Fine
Pianifica percorso
@@ -2911,8 +2911,8 @@ Rappresenta l\'area: %1$s x %2$s
Il gruppo verrà rimosso al prossimo riavvio dell\'app.
Mostra le linee guida
Mostra le frecce nella mappa
- Mostra i precedenti
- Nascondi i precedenti
+ Mostra superati
+ Nascondi i superati
Navigazione GPS • Puoi scegliere fra la modalità offline (nessun costo di roaming quando sei all\'estero) oppure online (più veloce) • La guida vocale svolta per svolta ti guida lungo il percorso (voci registrate e sintetizzate) • Il percorso viene ricalcolato quando devii • Indicazioni di corsia, nomi delle strade e tempo di arrivo stimato saranno d\'aiuto lungo il percorso • Per rendere il percorso più veloce il passaggio dalla modalità diurna/notturna automatico •Puoi scegliere di visualizzare i limiti di velocità, ed essere avvisato quando li superi • Lo zoom della mappa si adegua alla velocità • Puoi cercare le destinazioni per indirizzo, per categoria (es.: parcheggio, ristorante, hotel, stazione di rifornimento, museo), oppure tramite le coordinate geografiche • Supporta i punti intermedi nel tuo itinerario • Puoi registrare la tua traccia GPX oppure caricarne una e seguirla
Mappa • Mostra i PDI (punti di interesse) vicino a te • Disponi la mappa nella direzione del movimento (o della bussola) • Mostra dove sei e dove stai andando • Condividi la tua posizione perché i tuoi amici possano trovarti • Raccogli i luoghi più importanti nei Favoriti • Ti permette di scegliere come visualizzare i nomi nella mappa: in inglese, locale, oppure la pronuncia • Visualizza mattonelle online speciali, vista satellitare (di Bing), diverse sovrapposizioni come turistico/navigazione tracce GPX e strati aggiuntivi con trasparenze personalizzabili
OsmAnd+ (OSM Automatizzata Navigazione Direzioni) è un\'applicazione di navigazione con l\'accesso ai dati delle mappe mondiali, gratuite e di grande qualità OpenStreetMap (OSM). Goditi la navigazione con indicazioni visive e vocali, la visualizzazione dei PDI (punti di interesse), creando e gestendo le tracce GPX, usando visualizzazione delle linee isoipse e dell\'altitudine, scegliendo fra le modalità auto, bici, pedone, modifiche OSM e molto altro. OsmAnd+ è la versione dell\'app a pagamento. Acquistandola supporti il progetto, finanzi lo sviluppo di nuove funzionalità e ricevi gli ultimi aggiornamenti. Alcune delle maggiori caratteristiche:
@@ -2931,10 +2931,10 @@ Rappresenta l\'area: %1$s x %2$s
Il file %1$s non contiene punti intermedi, importarlo come traccia?
Sposta il punto
Aggiungi a una traccia GPX
-Si é verificato un errore: la nota non è stata modificata
+Si è verificato un errore: la nota non è stata modificata
Strada
Mostra la mappa
- Percorso ricalcolato
+ Il percorso è calcolato
Percorso circolare
Devi aggiungere almeno un marcatore per utilizzare questa funzionalità.
Dati immessi errati
@@ -2998,7 +2998,7 @@ Rappresenta l\'area: %1$s x %2$s
Tappa un marcatore sulla mappa per muoverlo al primo posto nei marcatori attivi senza aprire il menù contestuale.
Un solo tap attivo
Prendi delle note!
- Aggiungi note audio, video o foto ad ogni punto sulla mappa, utilizzando il widget o il menù contestuale.
+ Aggiungi note audio, video o foto in qualsiasi punto sulla mappa, utilizzando il widget o il menù contestuale.
Note ordinate per data
Per data
Per ordine alfabetico
diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml
index 239acb579e..b441d7b5b3 100644
--- a/OsmAnd/res/values-pt-rBR/strings.xml
+++ b/OsmAnd/res/values-pt-rBR/strings.xml
@@ -2264,4 +2264,9 @@ Pôr do Sol: %2$s
Velocidade mínima para registro
Acuidade mínima para registro
Formato para as coordenadas geográficas
+ Voltar
+ Ver
+ Pontos de passagem adicionados nos marcadores de mapa
+ Mostrar o que passou
+ Ocultar o que passou
diff --git a/OsmAnd/res/values-sc/phrases.xml b/OsmAnd/res/values-sc/phrases.xml
index 18b1e76aea..6d25eddf8a 100644
--- a/OsmAnd/res/values-sc/phrases.xml
+++ b/OsmAnd/res/values-sc/phrases.xml
@@ -2679,4 +2679,9 @@
Visibilidade: àrea
Istadu operativu
-
+ Istrada
+ Nùmeru tzìvicu
+ Tzentru de pagamentu
+ Tramudòngiu de dinare
+
+
diff --git a/OsmAnd/res/values-sv/strings.xml b/OsmAnd/res/values-sv/strings.xml
index ef04360041..d435b11f2f 100644
--- a/OsmAnd/res/values-sv/strings.xml
+++ b/OsmAnd/res/values-sv/strings.xml
@@ -17,13 +17,13 @@
Nästa sväng
Visa varningar …
Konfigurera trafikvarningar (hastighetsbegränsningar, stopp, vägbulor), varning för fartkameror samt körfältsinformation.
- Använd kompassen när ingen riktning upptäcks på annat sätt
+ Använd kompassen när ingen riktning upptäcks på annat sätt.
Använd kompass
Undvik motorvägar
- Zooma in/ut automatiskt på kartan beroende på din hastighet (när kartan är synkroniserad med aktuell position)
+ Zooma in/ut automatiskt på kartan beroende på din hastighet (när kartan är synkroniserad med aktuell position).
Automatisk kartzoomning
- Fäst positionen på vägen under navigering
+ Fäst positionen på vägen under navigering.
Fäst på vägen
Skapa POI-filter
@@ -42,7 +42,7 @@
Undvik oasfalterade vägar
Undvik färjor
Undvik …
- Undvik motorvägar, betalvägar, oasfalterade vägar, färjor
+ Undvik motorvägar, betalvägar, oasfalterade vägar, färjor.
Linjal
Färdriktning
@@ -133,7 +133,7 @@ Proportionellt minne %4$s MB (Android-gräns %5$s MB, Dalvik %6$s MB).
Kollektivtrafiksökning
OsmAnd offlinenavigering är inte tillgänglig för tillfället.
Vänstertrafik
- Välj för länder med vänstertrafik
+ Välj för länder med vänstertrafik.
Startpunkten är ännu inte bestämd
Positionen är ännu inte känd
@@ -141,7 +141,7 @@ Proportionellt minne %4$s MB (Android-gräns %5$s MB, Dalvik %6$s MB).
Online-kartor och mellanlagrade kartbitar (tiles)
Standardkartor (vektor)
- Ladda ner och hantera offline-kartor lagrade på din enhet
+ Ladda ner och hantera offline-kartor lagrade på din enhet.
Online-kartor
Denna modul gör så att inställningarna för att aktivera speciella tillgänglighetsfunktioner blir direkt åtkomliga i OsmAnd och underlättar t.ex. justering av talhastigheten för TTS-röster, konfigurering av skärmnavigering med hjälp av en styrkula för zoomkontroll eller användande av återkoppling med text-till-tal, t.ex. för att meddela din position automatiskt.
@@ -154,7 +154,7 @@ Proportionellt minne %4$s MB (Android-gräns %5$s MB, Dalvik %6$s MB).
Vänligen ange OSM användarnamn och lösenord för att ladda upp GPX-filer.
Tillgänglighetsläge
- Sätter på tillgänglighetsfunktioner
+ Sätter på tillgänglighetsfunktioner.
På
Av
Enligt de globala systeminställningarna
@@ -202,12 +202,12 @@ Du hittar din parkeringsplats och -tid på instrumentbrädan och i widgeten på
Ta bort P-markering
Snarast
Rondell: ta %1$d avfarten och kör
- Gör alla ytor på kartan transparenta
+ Gör alla ytor på kartan transparenta.
Polygoner
Renderingsläge
Visning från zoomnivå (kräver höjdkurvsdata):
Visa höjdkurvor
- Öka antalet kartdetaljer som visas
+ Öka antalet kartdetaljer som visas.
Visa mer kartdetaljer
Ruttdata
Format
@@ -220,8 +220,8 @@ Du hittar din parkeringsplats och -tid på instrumentbrädan och i widgeten på
Hittade ingenting. Om du inte kan hitta din region, kan du skapa den själv (se http://osmand.net).
Aktivera modulen online-kartor för att välja olika kartkällor
Online-kartor och kartbitar (tiles)
- Använd online-kartor (ladda ner och cacha kartbitar på SD-kortet)
- Konfigurera online- eller cachade källor för kartbitar
+ Använd online-kartor (ladda ner och cacha kartbitar på SD-kortet).
+ Konfigurera online- eller cachade källor för kartbitar.
"Med denna modul får man tillgång till många typer av online-kartor, från fördefinierade Openstreetmap-rutor (som Mapnik) till satellitbilder och speciella lager såsom väderkartor, klimatkartor, geologiska kartor, reliefkartor etc.
@@ -240,7 +240,7 @@ Du hittar din parkeringsplats och -tid på instrumentbrädan och i widgeten på
Ej tidsbegränsad parkering
Din parkerade bils plats. %1$s
- Insticksmoduler aktiverar avancerade inställningar samt ger ytterligare funktionalitet
+ Insticksmoduler aktiverar avancerade inställningar samt ger ytterligare funktionalitet.
Insticksmoduler
"Med denna modul kan OsmAnd användas för att göra bidrag till OSM såsom samlande/modifierande av OSM POI-objekt, öppnande/kommenterande av OSM-anteckningar, och bidragande med inspelade GPX-filer. OSM är ett globalt kartprojekt inom public domain, För mer info, se https://openstreetmap.org. Aktivt deltagande uppskattas och bidrag kan ges direkt i OsmAnd om du anger dina personiga OSM-referenser i appen."
@@ -284,19 +284,19 @@ OsmAnd utvecklas aktivt och vårt projekt och dess fortsatta framsteg bygger på
Sidled (8 sektorer)
Medurs (12 sektorer)
Riktningsstil
- Välj sätt att uttrycka relativa riktningar under rörelse
+ Välj sätt att uttrycka relativa riktningar under rörelse.
Börja meddela automatiskt
Sluta meddela automatiskt
Jag är här
- Ändra kartzoom med horisontell flyttning av styrkulan
+ Ändra kartzoom med horisontell flyttning av styrkulan.
Använd styrkula för zoom-kontroll
- Tillgänglighetsrelaterade inställningar
+ Tillgänglighetsrelaterade inställningar.
Tillgänglighet
Inte tillräckligt med processminne för att visa valt område
Fluorescerande överlägg
- Använd fluorescerande färger för att visa spår och rutter
+ Använd fluorescerande färger för att visa spår och rutter.
Offline-redigering
- Använd alltid offline-redigering
+ Använd alltid offline-redigering.
POI-förändringar inom programmet påverkar inte nedladdade kartfiler; förändringar sparas till en lokal fil istället.
Laddar upp …
@@ -307,19 +307,19 @@ OsmAnd utvecklas aktivt och vårt projekt och dess fortsatta framsteg bygger på
Ta bort ändringen
Asynkron OSM-redigering:
Lokalt sparade OSM-POIs/-Anteckningar
- Visa och hantera OSM-POIs/-anteckningar noterade i lokal databas
+ Visa och hantera OSM-POIs/-anteckningar noterade i lokal databas.
- Ange intervall för direktspårning
+ Ange intervall för direktspårning.
Intervall för direktspårning
- Ange webbadressen med parametersyntax: lat={0}, lon={1}, tidsstämpel={2}, hdop={3}, höjd={4}, hastighet={5}, bearing={6}
+ Ange webbadressen med parametersyntax: lat={0}, lon={1}, tidsstämpel={2}, hdop={3}, höjd={4}, hastighet={5}, bäring={6}.
Webbadress för direktspårning
Logga spår med GPX-widget eller via inställningen \'Trippinspelning\'.
Visa aktuellt spår
- Denna gratisversion av OsmAnd är begränsad till %1$s nedladdningar och stöder inte Wikipedia-artiklar offline.
+ Denna gratisversion av OsmAnd är begränsad till %1$s nedladdningar (för att lägga till eller uppdatera kartor) och stöder inte Wikipedia-artiklar offline.
Gratisversion
- Visa POI-beskrivning
+ Visa POI-beskrivning.
Nordamerika
Nordamerika - USA
Centralamerika
@@ -342,17 +342,17 @@ OsmAnd utvecklas aktivt och vårt projekt och dess fortsatta framsteg bygger på
Standardprofil
Kartvy och navigeringsinställningar är kopplade till din profil. Ange din standardprofil här.
Navigering
- Ange navigeringsalternativ
+ Ange navigeringsalternativ.
Globala inställningar
Allmänna inställningar
- Konfigurera globala inställningar
+ Konfigurera globala inställningar.
Globala inställningar
Ditt OSM-användarnamn
- Behövs för ändringar i openstreetmap.org
+ Behövs för ändringar i openstreetmap.org.
Ditt OSM-lösenord
Bakgrundsläge
- OsmAnd körs i bakgrunden medan skärmen är avstängd
+ OsmAnd körs i bakgrunden medan skärmen är avstängd.
Det finns inte tillräckligt med ledigt utrymme för att ladda ner %1$s MB (ledigt: %2$s).
@@ -365,7 +365,7 @@ Nyttjat utrymme är {1} MB.
Inbyggt bibliotek stöds inte på den här enheten.
Initierar inbyggt bibliotek …
Auto-centrerad kartvy
- Tid tills kartvyn synkroniseras med aktuell position
+ Tid tills kartvyn synkroniseras med aktuell position.
Auto-centrera endast nav
Auto-centrera kartan endast vid navigering.
@@ -410,7 +410,7 @@ Nyttjat utrymme är {1} MB.
%1$d av %2$d post(er) har överförts utan problem.
Skicka till OSM
Visa mer kartdetaljer
- Visa några vektor-kartdetaljer (vägar, etc.) vid lägre zoom
+ Visa några vektor-kartdetaljer (vägar, etc.) vid lägre zoom.
Favoritpunkt(er) har tagits bort utan problem.
Du håller på att ta bort %1$d favorit(er) och %2$d favoritgrupp(er). Är du säker?
Hem
@@ -445,10 +445,10 @@ Nyttjat utrymme är {1} MB.
Intressepunktsdata
TTS-röst
Ny sökning
- Välj textstorlek för namn på kartan
+ Välj textstorlek för namn på kartan.
Teckenstorlek på karta
Renderingsfelsökningsinformation
- Visa renderingsprestanda
+ Visa renderingsprestanda.
Packar upp nya data …
@@ -463,40 +463,40 @@ Nyttjat utrymme är {1} MB.
\'Konfigurera karta\' -> \'Kartkälla…\' -> \'Offline vektor-kartor\'.]]>
Röstväglednings-output
- Välj högtalare för uppspelning av röstvägledning
+ Välj högtalare för uppspelning av röstvägledning.
Telefonsamtalsljud (även för att avbryta bluetooth-bilstereo)
Ljudnotifiering
Media-/musikljud
Appen kan inte hämta kartlager %1$s. Försök installera om det.
- Ändra överläggstransparens
+ Ändra överläggstransparens.
Överläggstransparens
- Ändra transparens för baskartan
+ Ändra transparens för baskartan.
Transparens för baskartan
Underläggskarta …
Underläggskarta
- Välj underläggskarta
+ Välj underläggskarta.
Överläggskarta …
Överläggskarta
- Välj överläggskarta
- Kartan är redan installerad; inställningarna kommer att uppdateras
- Välj kartor/kartrutor att installera eller uppdatera
- En anslutning till Internet krävs för denna åtgärd men någon sådan är inte tillgänglig
+ Välj överläggskarta.
+ Kartan är redan installerad; inställningarna kommer att uppdateras.
+ Välj kartor/kartrutor att installera eller uppdatera.
+ En anslutning till Internet krävs för denna åtgärd men någon sådan är inte tillgänglig.
Installera fler …
- Minsta zoomnivå för att använda vektorkartor
+ Minsta zoomnivå för att använda vektorkartor.
Minsta vektor-zoomnivå
- Ett fel uppstod vid offline-sökning
- Det gick inte att tolka geo uppsåt \'%s\'
+ Ett fel uppstod vid offline-sökning.
+ Det gick inte att tolka geo-uppsåt \'%s\'.
Sök adress med hjälp av offline-kartor
System
- Välj visningsspråk (starta om OsmAnd efter språkbyte)
+ Välj visningsspråk (starta om OsmAnd efter språkbyte).
Visningsspråk
Nästa
Föregående
- Ändra enheter för avstånd
+ Ändra enheter för avstånd.
Enheter för avstånd
Eng. mil/fot
Eng. mil/yard
@@ -594,14 +594,14 @@ Nyttjat utrymme är {1} MB.
Natt
Soluppgång/solnedgång
Ljussensor
- Välj regel för byte mellan dag- och nattläge
+ Välj regel för byte mellan dag- och nattläge.
Dag-/nattläge
Ladda ner {0} fil(er) ({1} MB)?
{0} post(er) markerad(e)
Visa nerladdat
Snabbaste vägen
- Aktivera för att beräkna den snabbaste vägen eller inaktivera för den bränslesnålaste vägen
+ Aktivera för att beräkna den snabbaste vägen eller inaktivera för den bränslesnålaste vägen.
Vid zoom {0} hämta {1} kartbitar ({2} MB)
Ladda ner karta
Sevärdheter
@@ -610,13 +610,13 @@ Nyttjat utrymme är {1} MB.
Välj maximal zoom att förladda
Denna karta kunde inte laddas ner
Kontinuerlig rendering
- Visa kontinuerlig rendering istället för bild-direkt
+ Visa kontinuerlig rendering istället för direkt-bild.
Ett fel uppstod vid renderingen av valt område
Använd platsen …
Renderaren laddades utan problem
Ett undantagsfel inträffade: renderaren laddades inte
Vektorrenderare
- Välj renderingsutseende
+ Välj renderingsutseende.
Visa POI-webbplats
Visa POI-telefon
@@ -626,7 +626,7 @@ Nyttjat utrymme är {1} MB.
Telefon
Skriv för att filtrera
Skärm med hög upplösning
- Sträck inte ut (och gör oskarpa) kartbitar på högupplösta skärmar
+ Sträck inte ut (och gör oskarpa) kartbitar på högupplösta skärmar.
Sök kollektivtrafik
Transportresultat (ingen destination):
@@ -648,7 +648,7 @@ Nyttjat utrymme är {1} MB.
Till kompass
I färdriktningen
Vrid inte (norr är uppåt)
- Välj justering av kartskärmen
+ Välj justering av kartskärmen.
Kartorientering
Ruttdetaljer
Favoriterna importerades utan problem
@@ -666,14 +666,14 @@ Nyttjat utrymme är {1} MB.
Rutt
OSM-anteckningar (online)
- Intressepunkter (POI) …
+ Överlägg (POI) …
Kartkälla …
Kartlager
Sök intressepunkt
- Använd styrkulan för att flytta kartan
+ Använd styrkulan för att flytta kartan.
Använd styrkula
- Ange maximal väntetid för varje positionsbestämning i bakgrunden
+ Ange maximal väntetid för varje positionsbestämning i bakgrunden.
Maximal väntetid för fix
Var är jag?
@@ -681,11 +681,11 @@ Nyttjat utrymme är {1} MB.
Nätverk
GPS
sekunder
- Ange väckningsintervall som används av bakgrundstjänsten
+ Ange väckningsintervall som används av bakgrundstjänsten.
GPS-väckningsintervall
- Välj platsleverantör för bakgrundstjänsten
+ Välj platsleverantör för bakgrundstjänsten.
Platsleverantör
- Kör OsmAnd i bakgrunden för att spåra din position medan skärmen är avstängd
+ Kör OsmAnd i bakgrunden för att spåra din position medan skärmen är avstängd.
Kör OsmAnd i bakgrunden
Tjänsten bakgrundsnavigering kräver en platsleverantör för att vara påslagen.
Dölj filter
@@ -721,7 +721,7 @@ Nyttjat utrymme är {1} MB.
Stående
Liggande
Skärmorientering
- Stående, liggande eller som enheten
+ Stående, liggande eller som enheten.
Öppettider format stöds inte för redigering
Lägg till en ny regel
Rutter
@@ -737,7 +737,7 @@ Nyttjat utrymme är {1} MB.
Resvägssträcka
Transporter
OK
- Visa hållplatser för kollektivtrafik på kartan
+ Visa hållplatser för kollektivtrafik på kartan.
Visa hållplatser
Navigationsappen OsmAnd
POI-data har uppdaterats utan problem ({0} laddades)
@@ -758,9 +758,9 @@ Nyttjat utrymme är {1} MB.
Söker adress …
Online-sökning: Husnummer, gata, stad
Offline
- Välj högsta zoomnivå att ladda ner för online-kartbitar
+ Välj högsta zoomnivå att ladda ner för online-kartbitar.
Total sträcka %1$s, restid %2$d h %3$d min.
- Välj en online- eller offline-navigeringstjänst
+ Välj en online- eller offline-navigeringstjänst.
Navigeringstjänst
Datalagringsmappen på SD-kortet är inte tillgänglig!
Ladda ner {0} - {1}?
@@ -918,7 +918,7 @@ Nyttjat utrymme är {1} MB.
Ta bort destination
Mellanliggande destination %1$s
Online Nominatim
- Hantera kartfiler
+ Hantera kartfiler.
ofullständig
Sök adress med OSM Nominatim
Max. online-zoom
@@ -940,10 +940,10 @@ Nyttjat utrymme är {1} MB.
Slutförd
- Använd Internet för att beräkna rutt
+ Använd Internet för att beräkna en rutt.
Använd online-navigering
- Ange inställningar för Openstreetmap.org (OSM) som behövs för bidrag till OSM
- Ange språk, ladda ner/om data
+ Ange inställningar för OpenStreetMap.org (OSM) som behövs för bidrag till OSM.
+ Ange språk, ladda ner/om data.
Data
Redigera OSM
@@ -959,15 +959,15 @@ Nyttjat utrymme är {1} MB.
Mål
- Välj mellan inhemska och engelska namn på kartorna
+ Välj mellan inhemska och engelska namn på kartorna.
Namn på engelska
Appinställningar
Sök adress
- Aktivera 3D-vy på kartan
+ Aktivera 3D-vy på kartan.
3D-vy på kartan
- Visa POI över karta (använd det senast valda filtret)
- Visa intressepunkt
- Välj källa för onlinekartor eller cachade kartbitar
+ Visa det senast valda POI-överlägget på kartan.
+ Visa POI-överlägg
+ Välj källa för onlinekartor eller cachade kartbitar.
Källa för kartbitar
Kartkälla
Visa din position
@@ -1000,7 +1000,7 @@ Nyttjat utrymme är {1} MB.
Sök byggnader stegvis
Visa färdriktning
Närmaste bekvämligheter
- Skänk lite pengar så att nya funktioner kan läggas till i appen
+ Skänk lite pengar så att nya funktioner kan läggas till i appen.
Skuggad relief
@@ -1141,7 +1141,7 @@ Nyttjat utrymme är {1} MB.
Baskarta (världen)
Typ av kamerafokus
- Välj typ av intern kamerafokus
+ Välj läge för intern kamerafokus.
Autofokus
Hyperfokal fokus
Utökat skärpedjup (EDOF)
@@ -1149,7 +1149,7 @@ Nyttjat utrymme är {1} MB.
Makrofokusläge (närbild)
Kameran försöker fokusera hela tiden
Spela upp ljud vid tagning av foto
- Välj om ett ljud ska spelas upp vid fotografering
+ Välj om ett ljud ska spelas upp vid fotografering.
Kartförstoring
@@ -1281,12 +1281,12 @@ Nyttjat utrymme är {1} MB.
\nDu kan spåra alla enheter som är medlemmar i en grupp i realtid och ni kan kommunicera med varandra. Det finns olika alternativ för sessionsspårning eller permanent spårning.
\n
\nAnonyma grupper kan skapas för ett specificerat antal dagar och begränsas till bestämda funktioner, d.v.s. det finns ingen fjärrkontroll eller gruppadministratör. Helt fungerande grupper kan å andra sidan skapas på webbplatsen och endast registrerade användare har tillgång till dem. "
- Avbryt all musik vid meddelanden (sänk inte endast volymen)
+ Avbryt all musik vid röstmeddelanden (sänk inte endast volymen).
Pausa musiken
Dela rutt som GPX-fil
Utdelad rutt via OsmAnd
Endast manuellt (tryck på pilen)
- Läs upp navigationsinstruktioner med regelbundna intervall
+ Läs upp navigationsinstruktioner med regelbundna intervall.
Upprepa navigationsinstruktioner
Anslutningsproblem med OsMo:
@@ -1408,7 +1408,7 @@ Nyttjat utrymme är {1} MB.
Ankomstmeddelande
Hur tidigt vill du höra ankomstmeddelandet?
- Online OSM-kartklassificering med bilder
+ Online OSM-kartklassificering med bilder.
Spara data som GPX-fil eller importera waypoints till favoriter?
Favoriter utdelade via OsmAnd
Skickar nod…
@@ -1496,7 +1496,7 @@ Vill du fortsätta med en ny registrering?
De sista metrarna
Fotostorlek
- Välj fotostorlek för intern kamera
+ Välj fotostorlek för den interna kameran.
Bil
Cykel
@@ -1795,7 +1795,7 @@ Long %2$s
Undvik att korsa gränsen till ett annat land.
Höjdgräns
Smart omräkning av rutt
- Räkna om endast början av rutten för långa resor
+ Räkna om endast början av rutten för långa resor.
Ange tillåten fordonshöjd på rutter.
Skicka positionen
@@ -1966,7 +1966,7 @@ Long %2$s
%1$.1f av %2$.1f MB
Uppdatera alla (%1$s MB)
Gratis nedladdningar hämtade
- Visar antalet gratisnedladdningar du gjort
+ Visar antalet gratisnedladdningar du gjort.
Hämtar - %1$d fil(er)
geo:
@@ -1988,8 +1988,8 @@ Long %2$s
Annat
Insticksmoduler
Första gången
- Hur man hämtar kartor och gör grundinställningar
- Ställa in navigering
+ Hur man hämtar kartor och gör grundinställningar.
+ Ställa in navigering.
Frågor och svar
Frågor och svar
Kartvisning
@@ -2503,7 +2503,7 @@ Vänligen tillhandahåll fullständig kod
Kartöverlägg
Lägg till överlägg
"Kartöverlägget har ändrats till \"%s\"."
- Tryck länge och dra knappen för att ändra dess position på skärmen
+ Tryck länge och dra knappen för att ändra dess position på skärmen.
Använd höjddata
Använd terränghöjddata från SRTM, ASTER och EU-DEM.
diff --git a/OsmAnd/res/values-uk/phrases.xml b/OsmAnd/res/values-uk/phrases.xml
index 29b5a981c1..8151d754fa 100644
--- a/OsmAnd/res/values-uk/phrases.xml
+++ b/OsmAnd/res/values-uk/phrases.xml
@@ -3644,4 +3644,12 @@
Депо
+Поштова скринька
+ Вулиця
+ Номер будинку
+ Квартира
+
+ Платіжний центр
+ Грошові перекази
+
diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml
index f4b587930c..1c0de8df0c 100644
--- a/OsmAnd/res/values-uk/strings.xml
+++ b/OsmAnd/res/values-uk/strings.xml
@@ -3067,7 +3067,7 @@
Імпортувати як GPX-файл
Імпортувати як закладки
Імпортувати файл
- Дотик на мапі перемикає кнопки управління і віджети.
+ Дотик на мапі приховує кнопки управління і віджети.
Повноекранний режим
Показати на верхній панелі
Позначати пройдене
diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml
index 1dbf04b9aa..0e86a2b523 100644
--- a/OsmAnd/res/values-zh-rTW/strings.xml
+++ b/OsmAnd/res/values-zh-rTW/strings.xml
@@ -2969,10 +2969,10 @@ OsmAnd (Automated Navigation Directions) 是一個地圖和導航的應用程式
按照類型
輕點在地圖上的標記,將其移動到活動標記的頂端,而不用打開內容選單。
變更搜尋的查詢。
- \\022 停止標誌的檢測現在考量駕駛的方向
-\n
-\n• 為 GPX 軌跡提供有意義的上坡/下坡值的新運算法則
-\n
+ \\022 停止標誌的檢測現在考量了駕駛的方向
+\n
+\n• 為 GPX 軌跡提供有意義的上坡/下坡值的新運算法則
+\n
\n• 地形(上坡)察覺爬山時間(尼史密夫定律)
\n
\n
diff --git a/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java b/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java
index 47635fa5f9..a4a71c4efa 100644
--- a/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java
+++ b/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java
@@ -1,10 +1,13 @@
package net.osmand.plus;
import android.content.Context;
+import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
import android.support.v7.app.AlertDialog;
import net.osmand.PlatformUtil;
import net.osmand.data.FavouritePoint;
+import net.osmand.data.LatLon;
import net.osmand.plus.GPXUtilities.GPXFile;
import net.osmand.plus.GPXUtilities.WptPt;
import net.osmand.plus.MapMarkersHelper.MarkersSyncGroup;
@@ -451,6 +454,16 @@ public class FavouritesDbHelper {
return fp;
}
+ @Nullable
+ public FavouritePoint getVisibleFavByLatLon(@NonNull LatLon latLon) {
+ for (FavouritePoint fav : cachedFavoritePoints) {
+ if (fav.isVisible() && latLon.equals(new LatLon(fav.getLatitude(), fav.getLongitude()))) {
+ return fav;
+ }
+ }
+ return null;
+ }
+
public List getFavoriteGroups() {
return favoriteGroups;
diff --git a/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java b/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java
index 3225081c2f..3cf44fe0a8 100644
--- a/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java
+++ b/OsmAnd/src/net/osmand/plus/GpxSelectionHelper.java
@@ -3,10 +3,12 @@ package net.osmand.plus;
import android.graphics.Bitmap;
import android.graphics.Matrix;
import android.support.annotation.NonNull;
+import android.support.annotation.Nullable;
import android.support.v4.content.ContextCompat;
import net.osmand.AndroidUtils;
import net.osmand.IProgress;
+import net.osmand.data.LatLon;
import net.osmand.plus.GPXDatabase.GpxDataItem;
import net.osmand.plus.GPXUtilities.GPXFile;
import net.osmand.plus.GPXUtilities.GPXTrackAnalysis;
@@ -389,6 +391,21 @@ public class GpxSelectionHelper {
return null;
}
+ @Nullable
+ public WptPt getVisibleWayPointByLatLon(@NonNull LatLon latLon) {
+ for (SelectedGpxFile selectedGpx : selectedGPXFiles) {
+ GPXFile gpx;
+ if (selectedGpx != null && (gpx = selectedGpx.getGpxFile()) != null) {
+ for (WptPt pt : gpx.getPoints()) {
+ if (latLon.equals(new LatLon(pt.getLatitude(), pt.getLongitude()))) {
+ return pt;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
public void setGpxFileToDisplay(GPXFile... gpxs) {
// special case for gpx current route
for (GPXFile gpx : gpxs) {
diff --git a/OsmAnd/src/net/osmand/plus/MapMarkersHelper.java b/OsmAnd/src/net/osmand/plus/MapMarkersHelper.java
index 6b27448356..0d69166011 100644
--- a/OsmAnd/src/net/osmand/plus/MapMarkersHelper.java
+++ b/OsmAnd/src/net/osmand/plus/MapMarkersHelper.java
@@ -76,6 +76,7 @@ public class MapMarkersHelper {
public String groupName;
public WptPt wptPt;
public FavouritePoint favouritePoint;
+ public String mapObjectName;
public MapMarker(LatLon point, PointDescription name, int colorIndex,
boolean selected, int index) {
@@ -597,6 +598,26 @@ public class MapMarkersHelper {
return null;
}
+ @Nullable
+ public MapMarker getMapMarker(@NonNull LatLon latLon) {
+ for (MapMarker marker : mapMarkers) {
+ if (marker.point != null && marker.point.equals(latLon)) {
+ return marker;
+ }
+ }
+ return null;
+ }
+
+ @Nullable
+ public MapMarker getMapMarker(@NonNull String mapObjectName) {
+ for (MapMarker marker : mapMarkers) {
+ if (marker.mapObjectName != null && marker.mapObjectName.equals(mapObjectName)) {
+ return marker;
+ }
+ }
+ return null;
+ }
+
private void addNewMarkerIfNeeded(@NonNull MarkersSyncGroup group,
@NonNull List markers,
@NonNull LatLon latLon,
@@ -628,7 +649,7 @@ public class MapMarkersHelper {
if (!exists) {
addMarkers(Collections.singletonList(latLon),
Collections.singletonList(new PointDescription(POINT_TYPE_MAP_MARKER, name)),
- group, enabled, Collections.singletonList(favouritePoint), Collections.singletonList(wptPt));
+ group, enabled, Collections.singletonList(favouritePoint), Collections.singletonList(wptPt), null);
}
}
@@ -936,16 +957,21 @@ public class MapMarkersHelper {
addMarkers(Collections.singletonList(point), Collections.singletonList(historyName), null, true);
}
+ public void addMapMarker(@NonNull LatLon point, @Nullable PointDescription historyName, @Nullable String mapObjectName) {
+ addMarkers(Collections.singletonList(point), Collections.singletonList(historyName), null,
+ true, null, null, Collections.singletonList(mapObjectName));
+ }
+
public void addMapMarkers(@NonNull List points, @NonNull List historyNames, @Nullable MarkersSyncGroup group) {
addMarkers(points, historyNames, group, true);
}
private void addMarkers(@NonNull List points, @NonNull List historyNames, @Nullable MarkersSyncGroup group, boolean enabled) {
- addMarkers(points, historyNames, group, enabled, null, null);
+ addMarkers(points, historyNames, group, enabled, null, null, null);
}
private void addMarkers(@NonNull List points, @NonNull List historyNames, @Nullable MarkersSyncGroup group,
- boolean enabled, @Nullable List favouritePoints, @Nullable List wptPts) {
+ boolean enabled, @Nullable List favouritePoints, @Nullable List wptPts, @Nullable List mapObjNames) {
if (points.size() > 0) {
int colorIndex = -1;
List addedMarkers = new ArrayList<>();
@@ -954,6 +980,7 @@ public class MapMarkersHelper {
PointDescription historyName = historyNames.get(i);
FavouritePoint favouritePoint = favouritePoints == null ? null : favouritePoints.get(i);
WptPt wptPt = wptPts == null ? null : wptPts.get(i);
+ String mapObjName = mapObjNames == null ? null : mapObjNames.get(i);
final PointDescription pointDescription;
if (historyName == null) {
pointDescription = new PointDescription(PointDescription.POINT_TYPE_LOCATION, "");
@@ -986,6 +1013,7 @@ public class MapMarkersHelper {
marker.nextKey = MapMarkersDbHelper.TAIL_NEXT_VALUE;
marker.favouritePoint = favouritePoint;
marker.wptPt = wptPt;
+ marker.mapObjectName = mapObjName;
markersDbHelper.addMarker(marker);
if (enabled) {
addToMapMarkersList(0, marker);
diff --git a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java
index aed969a25e..ab56118d2c 100644
--- a/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java
+++ b/OsmAnd/src/net/osmand/plus/activities/MapActivityActions.java
@@ -6,6 +6,7 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
+import android.support.annotation.Nullable;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
import android.view.View;
@@ -104,9 +105,9 @@ public class MapActivityActions implements DialogProvider {
}
- public void addMapMarker(double latitude, double longitude, PointDescription pd) {
+ public void addMapMarker(double latitude, double longitude, PointDescription pd, @Nullable String mapObjectName) {
MapMarkersHelper markersHelper = getMyApplication().getMapMarkersHelper();
- markersHelper.addMapMarker(new LatLon(latitude, longitude), pd);
+ markersHelper.addMapMarker(new LatLon(latitude, longitude), pd, mapObjectName);
}
public void editWaypoints() {
diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java
index 68b1b93c9d..0d7236c23a 100644
--- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java
+++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MapContextMenu.java
@@ -789,7 +789,7 @@ public class MapContextMenu extends MenuTitleController implements StateChangedL
MapMarkersDialogFragment.showInstance(mapActivity);
} else {
mapActivity.getMapActions().addMapMarker(latLon.getLatitude(), latLon.getLongitude(),
- getPointDescriptionForMarker());
+ getPointDescriptionForMarker(), object instanceof Amenity ? ((Amenity) object).getName() : null);
}
} else {
mapActivity.getMapActions().addAsTarget(latLon.getLatitude(), latLon.getLongitude(),
diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/AmenityMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/AmenityMenuController.java
index dcbacd66df..1b4a2e5ce4 100644
--- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/AmenityMenuController.java
+++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/AmenityMenuController.java
@@ -11,6 +11,7 @@ import net.osmand.data.TransportStop;
import net.osmand.osm.PoiCategory;
import net.osmand.osm.PoiFilter;
import net.osmand.osm.PoiType;
+import net.osmand.plus.MapMarkersHelper.MapMarker;
import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.mapcontextmenu.MapContextMenu;
@@ -35,6 +36,8 @@ public class AmenityMenuController extends MenuController {
private Amenity amenity;
private List routes = new ArrayList<>();
+ private MapMarker marker;
+
public AmenityMenuController(MapActivity mapActivity, PointDescription pointDescription, Amenity amenity) {
super(new AmenityMenuBuilder(mapActivity, amenity), pointDescription, mapActivity);
this.amenity = amenity;
@@ -53,6 +56,14 @@ public class AmenityMenuController extends MenuController {
processTransportStop();
}
}
+
+ marker = mapActivity.getMyApplication().getMapMarkersHelper().getMapMarker(amenity.getName());
+ if (marker != null) {
+ MapMarkerMenuController markerMenuController =
+ new MapMarkerMenuController(mapActivity, marker.getPointDescription(mapActivity), marker);
+ leftTitleButtonController = markerMenuController.getLeftTitleButtonController();
+ leftSubtitleButtonController = markerMenuController.getLeftSubtitleButtonController();
+ }
}
@Override
@@ -67,6 +78,11 @@ public class AmenityMenuController extends MenuController {
return amenity;
}
+ @Override
+ public boolean isWaypointButtonEnabled() {
+ return marker == null;
+ }
+
@Override
public boolean needStreetName() {
if (amenity.getSubType() != null && amenity.getType() != null) {
diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java
index f9f16681ad..96dec7c05c 100644
--- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java
+++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/FavouritePointMenuController.java
@@ -22,13 +22,17 @@ import net.osmand.util.Algorithms;
public class FavouritePointMenuController extends MenuController {
private FavouritePoint fav;
+ private MapMarker mapMarker;
public FavouritePointMenuController(MapActivity mapActivity, PointDescription pointDescription, final FavouritePoint fav) {
super(new FavouritePointMenuBuilder(mapActivity, fav), pointDescription, mapActivity);
this.fav = fav;
final MapMarkersHelper markersHelper = mapActivity.getMyApplication().getMapMarkersHelper();
- final MapMarker mapMarker = markersHelper.getMapMarker(fav);
+ mapMarker = markersHelper.getMapMarker(fav);
+ if (mapMarker == null) {
+ mapMarker = markersHelper.getMapMarker(new LatLon(fav.getLatitude(), fav.getLongitude()));
+ }
if (mapMarker != null) {
MapMarkerMenuController markerMenuController =
new MapMarkerMenuController(mapActivity, mapMarker.getPointDescription(mapActivity), mapMarker);
@@ -81,7 +85,7 @@ public class FavouritePointMenuController extends MenuController {
@Override
public boolean isWaypointButtonEnabled() {
- return getMapActivity().getMyApplication().getMapMarkersHelper().getMapMarker(fav) == null;
+ return mapMarker == null;
}
@Override
diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/WptPtMenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/WptPtMenuController.java
index cf57c719e6..74c7fe2d44 100644
--- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/WptPtMenuController.java
+++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/controllers/WptPtMenuController.java
@@ -3,6 +3,7 @@ package net.osmand.plus.mapcontextmenu.controllers;
import android.graphics.drawable.Drawable;
import android.support.v4.content.ContextCompat;
+import net.osmand.data.LatLon;
import net.osmand.data.PointDescription;
import net.osmand.plus.GPXUtilities.WptPt;
import net.osmand.plus.MapMarkersHelper;
@@ -17,14 +18,17 @@ import net.osmand.util.Algorithms;
public class WptPtMenuController extends MenuController {
private WptPt wpt;
+ private MapMarker mapMarker;
public WptPtMenuController(MapActivity mapActivity, PointDescription pointDescription, WptPt wpt) {
super(new WptPtMenuBuilder(mapActivity, wpt), pointDescription, mapActivity);
this.wpt = wpt;
final MapMarkersHelper markersHelper = mapActivity.getMyApplication().getMapMarkersHelper();
- final MapMarker mapMarker = markersHelper.getMapMarker(wpt);
-
+ mapMarker = markersHelper.getMapMarker(wpt);
+ if (mapMarker == null) {
+ mapMarker = markersHelper.getMapMarker(new LatLon(wpt.lat, wpt.lon));
+ }
if (mapMarker != null) {
MapMarkerMenuController markerMenuController =
new MapMarkerMenuController(mapActivity, mapMarker.getPointDescription(mapActivity), mapMarker);
@@ -84,7 +88,7 @@ public class WptPtMenuController extends MenuController {
@Override
public boolean isWaypointButtonEnabled() {
- return getMapActivity().getMyApplication().getMapMarkersHelper().getMapMarker(wpt) == null;
+ return mapMarker == null;
}
@Override
diff --git a/OsmAnd/src/net/osmand/plus/mapmarkers/MapMarkersActiveFragment.java b/OsmAnd/src/net/osmand/plus/mapmarkers/MapMarkersActiveFragment.java
index 867700c77c..4f561ebdfe 100644
--- a/OsmAnd/src/net/osmand/plus/mapmarkers/MapMarkersActiveFragment.java
+++ b/OsmAnd/src/net/osmand/plus/mapmarkers/MapMarkersActiveFragment.java
@@ -13,6 +13,7 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import net.osmand.Location;
+import net.osmand.data.Amenity;
import net.osmand.data.FavouritePoint;
import net.osmand.data.LatLon;
import net.osmand.data.PointDescription;
@@ -62,32 +63,44 @@ public class MapMarkersActiveFragment extends Fragment implements OsmAndCompassL
if (pos == RecyclerView.NO_POSITION) {
return;
}
+
MapMarker marker = adapter.getItem(pos);
- if (mapActivity.getMyApplication().getSettings().SELECT_MARKER_ON_SINGLE_TAP.get()) {
- mapActivity.getMyApplication().getMapMarkersHelper().moveMarkerToTop(marker);
+ OsmandApplication app = mapActivity.getMyApplication();
+ if (app.getSettings().SELECT_MARKER_ON_SINGLE_TAP.get()) {
+ app.getMapMarkersHelper().moveMarkerToTop(marker);
updateAdapter();
} else {
- WptPt wptPt = marker.wptPt;
- FavouritePoint favouritePoint = marker.favouritePoint;
- Object objectToShow;
- PointDescription pointDescription;
- if (wptPt != null) {
- pointDescription = new PointDescription(PointDescription.POINT_TYPE_WPT, wptPt.name);
- objectToShow = wptPt;
- } else if (favouritePoint != null) {
- pointDescription = new PointDescription(PointDescription.POINT_TYPE_FAVORITE, favouritePoint.getName());
- objectToShow = favouritePoint;
- } else {
- pointDescription = marker.getPointDescription(mapActivity);
- objectToShow = marker;
+ FavouritePoint fav = marker.favouritePoint == null
+ ? app.getFavorites().getVisibleFavByLatLon(marker.point)
+ : marker.favouritePoint;
+ if (fav != null) {
+ showMap(marker.point, fav.getPointDescription(), fav);
+ return;
}
- mapActivity.getMyApplication().getSettings().setMapLocationToShow(marker.getLatitude(), marker.getLongitude(),
- 15, pointDescription, true, objectToShow);
- MapActivity.launchMapActivityMoveToTop(mapActivity);
- ((DialogFragment) getParentFragment()).dismiss();
+
+ WptPt pt = marker.wptPt == null
+ ? app.getSelectedGpxHelper().getVisibleWayPointByLatLon(marker.point)
+ : marker.wptPt;
+ if (pt != null) {
+ showMap(marker.point, pt.getPointDescription(mapActivity), pt);
+ return;
+ }
+
+ Amenity mapObj = mapActivity.getMapLayers().getMapMarkersLayer().getMapObjectByMarker(marker);
+ PointDescription desc = mapObj == null
+ ? marker.getPointDescription(mapActivity)
+ : mapActivity.getMapLayers().getPoiMapLayer().getObjectName(mapObj);
+ showMap(marker.point, desc, mapObj == null ? marker : mapObj);
}
}
+ private void showMap(LatLon latLon, PointDescription desc, Object objToShow) {
+ mapActivity.getMyApplication().getSettings().setMapLocationToShow(latLon.getLatitude(),
+ latLon.getLongitude(), 15, desc, true, objToShow);
+ MapActivity.launchMapActivityMoveToTop(mapActivity);
+ ((DialogFragment) getParentFragment()).dismiss();
+ }
+
@Override
public void onDragStarted(RecyclerView.ViewHolder holder) {
compassUpdateAllowed = false;
diff --git a/OsmAnd/src/net/osmand/plus/mapmarkers/MapMarkersDbHelper.java b/OsmAnd/src/net/osmand/plus/mapmarkers/MapMarkersDbHelper.java
index 3f36a66d48..84e67317fd 100644
--- a/OsmAnd/src/net/osmand/plus/mapmarkers/MapMarkersDbHelper.java
+++ b/OsmAnd/src/net/osmand/plus/mapmarkers/MapMarkersDbHelper.java
@@ -25,7 +25,7 @@ import java.util.Set;
public class MapMarkersDbHelper {
- private static final int DB_VERSION = 11;
+ private static final int DB_VERSION = 12;
public static final String DB_NAME = "map_markers_db";
private static final String MARKERS_TABLE_NAME = "map_markers";
@@ -42,6 +42,7 @@ public class MapMarkersDbHelper {
private static final String MARKERS_COL_NEXT_KEY = "marker_next_key";
private static final String MARKERS_COL_DISABLED = "marker_disabled";
private static final String MARKERS_COL_SELECTED = "marker_selected";
+ private static final String MARKERS_COL_MAP_OBJECT_NAME = "marker_map_object_name";
private static final String MARKERS_TABLE_CREATE = "CREATE TABLE IF NOT EXISTS " +
MARKERS_TABLE_NAME + " (" +
@@ -57,7 +58,8 @@ public class MapMarkersDbHelper {
MARKERS_COL_COLOR + " int, " +
MARKERS_COL_NEXT_KEY + " TEXT, " +
MARKERS_COL_DISABLED + " int, " + // 1 = true, 0 = false
- MARKERS_COL_SELECTED + " int);"; // 1 = true, 0 = false
+ MARKERS_COL_SELECTED + " int, " + // 1 = true, 0 = false
+ MARKERS_COL_MAP_OBJECT_NAME + " TEXT);";
private static final String MARKERS_TABLE_SELECT = "SELECT " +
MARKERS_COL_ID + ", " +
@@ -72,7 +74,8 @@ public class MapMarkersDbHelper {
MARKERS_COL_COLOR + ", " +
MARKERS_COL_NEXT_KEY + ", " +
MARKERS_COL_DISABLED + ", " +
- MARKERS_COL_SELECTED +
+ MARKERS_COL_SELECTED + ", " +
+ MARKERS_COL_MAP_OBJECT_NAME +
" FROM " + MARKERS_TABLE_NAME;
private static final String GROUPS_TABLE_NAME = "map_markers_groups";
@@ -150,6 +153,9 @@ public class MapMarkersDbHelper {
" SET " + MARKERS_COL_SELECTED + " = ? " +
"WHERE " + MARKERS_COL_SELECTED + " IS NULL", new Object[]{0});
}
+ if (oldVersion < 12) {
+ db.execSQL("ALTER TABLE " + MARKERS_TABLE_NAME + " ADD " + MARKERS_COL_MAP_OBJECT_NAME + " TEXT");
+ }
}
private void saveExistingMarkersToDb() {
@@ -378,11 +384,12 @@ public class MapMarkersDbHelper {
MARKERS_COL_COLOR + ", " +
MARKERS_COL_NEXT_KEY + ", " +
MARKERS_COL_DISABLED + ", " +
- MARKERS_COL_SELECTED + ") " +
- "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
+ MARKERS_COL_SELECTED + ", " +
+ MARKERS_COL_MAP_OBJECT_NAME + ") " +
+ "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
new Object[]{marker.id, marker.getLatitude(), marker.getLongitude(), descr, active,
currentTime, visited, marker.groupName, marker.groupKey, marker.colorIndex,
- marker.history ? HISTORY_NEXT_VALUE : TAIL_NEXT_VALUE, 0, 0});
+ marker.history ? HISTORY_NEXT_VALUE : TAIL_NEXT_VALUE, 0, 0, marker.mapObjectName});
}
public List getMarkersFromGroup(MarkersSyncGroup group) {
@@ -459,6 +466,7 @@ public class MapMarkersDbHelper {
int colorIndex = query.getInt(9);
String nextKey = query.getString(10);
boolean selected = query.getInt(12) == 1;
+ String mapObjectName = query.getString(13);
LatLon latLon = new LatLon(lat, lon);
MapMarker marker = new MapMarker(latLon, PointDescription.deserializeFromString(desc, latLon),
@@ -471,6 +479,7 @@ public class MapMarkersDbHelper {
marker.groupKey = groupKey;
marker.nextKey = nextKey;
marker.selected = selected;
+ marker.mapObjectName = mapObjectName;
return marker;
}
diff --git a/OsmAnd/src/net/osmand/plus/mapmarkers/MapMarkersGroupsFragment.java b/OsmAnd/src/net/osmand/plus/mapmarkers/MapMarkersGroupsFragment.java
index 9f23c3de6f..8e139ce0fb 100644
--- a/OsmAnd/src/net/osmand/plus/mapmarkers/MapMarkersGroupsFragment.java
+++ b/OsmAnd/src/net/osmand/plus/mapmarkers/MapMarkersGroupsFragment.java
@@ -23,6 +23,7 @@ import android.widget.ImageView;
import android.widget.TextView;
import net.osmand.Location;
+import net.osmand.data.Amenity;
import net.osmand.data.FavouritePoint;
import net.osmand.data.LatLon;
import net.osmand.data.PointDescription;
@@ -35,9 +36,9 @@ import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.base.MapViewTrackingUtilities;
import net.osmand.plus.dashboard.DashLocationFragment;
+import net.osmand.plus.mapmarkers.SelectionMarkersGroupBottomSheetDialogFragment.AddMarkersGroupFragmentListener;
import net.osmand.plus.mapmarkers.adapters.MapMarkerItemViewHolder;
import net.osmand.plus.mapmarkers.adapters.MapMarkersGroupsAdapter;
-import net.osmand.plus.mapmarkers.SelectionMarkersGroupBottomSheetDialogFragment.AddMarkersGroupFragmentListener;
import net.osmand.plus.widgets.EmptyStateRecyclerView;
import net.osmand.util.MapUtils;
@@ -230,44 +231,59 @@ public class MapMarkersGroupsFragment extends Fragment implements OsmAndCompassL
Object item = adapter.getItem(pos);
if (item instanceof MapMarker) {
MapMarker marker = (MapMarker) item;
+ OsmandApplication app = mapActivity.getMyApplication();
if (!marker.history) {
- if (mapActivity.getMyApplication().getSettings().SELECT_MARKER_ON_SINGLE_TAP.get()) {
- mapActivity.getMyApplication().getMapMarkersHelper().moveMarkerToTop(marker);
+ if (app.getSettings().SELECT_MARKER_ON_SINGLE_TAP.get()) {
+ app.getMapMarkersHelper().moveMarkerToTop(marker);
updateAdapter();
} else {
- WptPt wptPt = marker.wptPt;
- FavouritePoint favouritePoint = marker.favouritePoint;
- Object objectToShow;
- PointDescription pointDescription;
- if (wptPt != null) {
- pointDescription = new PointDescription(PointDescription.POINT_TYPE_WPT, wptPt.name);
- objectToShow = wptPt;
- } else if (favouritePoint != null) {
- pointDescription = new PointDescription(PointDescription.POINT_TYPE_FAVORITE, favouritePoint.getName());
- objectToShow = favouritePoint;
- } else {
- pointDescription = marker.getPointDescription(mapActivity);
- objectToShow = marker;
+ FavouritePoint fav = marker.favouritePoint == null
+ ? app.getFavorites().getVisibleFavByLatLon(marker.point)
+ : marker.favouritePoint;
+ if (fav != null) {
+ showMap(marker.point, fav.getPointDescription(), fav);
+ return;
}
- mapActivity.getMyApplication().getSettings().setMapLocationToShow(marker.getLatitude(), marker.getLongitude(),
- 15, pointDescription, true, objectToShow);
- MapActivity.launchMapActivityMoveToTop(mapActivity);
- ((DialogFragment) getParentFragment()).dismiss();
+
+ WptPt pt = marker.wptPt == null
+ ? app.getSelectedGpxHelper().getVisibleWayPointByLatLon(marker.point)
+ : marker.wptPt;
+ if (pt != null) {
+ showMap(marker.point, pt.getPointDescription(mapActivity), pt);
+ return;
+ }
+
+ Amenity mapObj = mapActivity.getMapLayers().getMapMarkersLayer().getMapObjectByMarker(marker);
+ PointDescription desc = mapObj == null
+ ? marker.getPointDescription(mapActivity)
+ : mapActivity.getMapLayers().getPoiMapLayer().getObjectName(mapObj);
+ showMap(marker.point, desc, mapObj == null ? marker : mapObj);
}
} else {
- HistoryMarkerMenuBottomSheetDialogFragment fragment = new HistoryMarkerMenuBottomSheetDialogFragment();
- fragment.setUsedOnMap(false);
- Bundle arguments = new Bundle();
- arguments.putInt(HistoryMarkerMenuBottomSheetDialogFragment.MARKER_POSITION, pos);
- arguments.putString(HistoryMarkerMenuBottomSheetDialogFragment.MARKER_NAME, marker.getName(mapActivity));
- arguments.putInt(HistoryMarkerMenuBottomSheetDialogFragment.MARKER_COLOR_INDEX, marker.colorIndex);
- arguments.putLong(HistoryMarkerMenuBottomSheetDialogFragment.MARKER_VISITED_DATE, marker.visitedDate);
- fragment.setArguments(arguments);
- fragment.setListener(createHistoryMarkerMenuListener());
- fragment.show(getChildFragmentManager(), HistoryMarkerMenuBottomSheetDialogFragment.TAG);
+ showHistoryMenuFragment(pos, marker);
}
}
}
+
+ private void showMap(LatLon latLon, PointDescription desc, Object objToShow) {
+ mapActivity.getMyApplication().getSettings().setMapLocationToShow(latLon.getLatitude(),
+ latLon.getLongitude(), 15, desc, true, objToShow);
+ MapActivity.launchMapActivityMoveToTop(mapActivity);
+ ((DialogFragment) getParentFragment()).dismiss();
+ }
+
+ private void showHistoryMenuFragment(int pos, MapMarker marker) {
+ HistoryMarkerMenuBottomSheetDialogFragment fragment = new HistoryMarkerMenuBottomSheetDialogFragment();
+ fragment.setUsedOnMap(false);
+ Bundle arguments = new Bundle();
+ arguments.putInt(HistoryMarkerMenuBottomSheetDialogFragment.MARKER_POSITION, pos);
+ arguments.putString(HistoryMarkerMenuBottomSheetDialogFragment.MARKER_NAME, marker.getName(mapActivity));
+ arguments.putInt(HistoryMarkerMenuBottomSheetDialogFragment.MARKER_COLOR_INDEX, marker.colorIndex);
+ arguments.putLong(HistoryMarkerMenuBottomSheetDialogFragment.MARKER_VISITED_DATE, marker.visitedDate);
+ fragment.setArguments(arguments);
+ fragment.setListener(createHistoryMarkerMenuListener());
+ fragment.show(getChildFragmentManager(), HistoryMarkerMenuBottomSheetDialogFragment.TAG);
+ }
});
adapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
@Override
diff --git a/OsmAnd/src/net/osmand/plus/quickaction/actions/MarkerAction.java b/OsmAnd/src/net/osmand/plus/quickaction/actions/MarkerAction.java
index 1a9488172a..64121971a0 100644
--- a/OsmAnd/src/net/osmand/plus/quickaction/actions/MarkerAction.java
+++ b/OsmAnd/src/net/osmand/plus/quickaction/actions/MarkerAction.java
@@ -40,7 +40,8 @@ public class MarkerAction extends QuickAction {
activity.getMapActions().addMapMarker(
latLon.getLatitude(),
latLon.getLongitude(),
- pointDescription);
+ pointDescription,
+ null);
}
@Override
diff --git a/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java b/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java
index fef10ce10f..ef847f7d8b 100644
--- a/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java
+++ b/OsmAnd/src/net/osmand/plus/routing/RouteProvider.java
@@ -728,6 +728,8 @@ public class RouteProvider {
p = GeneralRouterProfile.PEDESTRIAN;
} else if(params.mode.isDerivedRoutingFrom(ApplicationMode.CAR)){
p = GeneralRouterProfile.CAR;
+ } else if (params.mode.isDerivedRoutingFrom(ApplicationMode.BOAT)) {
+ p = GeneralRouterProfile.BOAT;
} else {
return null;
}
@@ -830,7 +832,7 @@ public class RouteProvider {
}
private RouteCalculationResult applicationModeNotSupported(RouteCalculationParams params) {
- return new RouteCalculationResult("Application mode '"+ params.mode.toHumanStringCtx(params.ctx)+ "'is not supported.");
+ return new RouteCalculationResult("Application mode '"+ params.mode.toHumanStringCtx(params.ctx)+ "' is not supported.");
}
private RouteCalculationResult interrupted() {
diff --git a/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java b/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java
index 58fca38ac5..4645bc1d82 100644
--- a/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java
+++ b/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java
@@ -24,13 +24,10 @@ import net.osmand.AndroidUtils;
import net.osmand.CallbackWithObject;
import net.osmand.NativeLibrary.RenderedObject;
import net.osmand.RenderingContext;
-import net.osmand.binary.BinaryMapIndexReader;
import net.osmand.data.Amenity;
import net.osmand.data.LatLon;
import net.osmand.data.PointDescription;
-import net.osmand.data.QuadRect;
import net.osmand.data.RotatedTileBox;
-import net.osmand.osm.PoiCategory;
import net.osmand.osm.PoiFilter;
import net.osmand.osm.PoiType;
import net.osmand.plus.ContextMenuAdapter;
@@ -627,7 +624,7 @@ public class ContextMenuLayer extends OsmandMapLayer {
if (searchLatLon == null) {
searchLatLon = tileBox.getLatLonFromPixel(point.x, point.y);
}
- Amenity amenity = findAmenity(renderedObject.getId() >> 7, names, searchLatLon);
+ Amenity amenity = findAmenity(activity.getMyApplication(), renderedObject.getId() >> 7, names, searchLatLon);
if (amenity != null) {
if (renderedObject.getX() != null && renderedObject.getX().size() > 1
&& renderedObject.getY() != null && renderedObject.getY().size() > 1) {
@@ -824,46 +821,6 @@ public class ContextMenuLayer extends OsmandMapLayer {
return false;
}
- private Amenity findAmenity(long id, List names, LatLon latLon) {
- QuadRect rect = MapUtils.calculateLatLonBbox(latLon.getLatitude(), latLon.getLongitude(), 50);
- List amenities = activity.getMyApplication().getResourceManager().searchAmenities(
- new BinaryMapIndexReader.SearchPoiTypeFilter() {
- @Override
- public boolean accept(PoiCategory type, String subcategory) {
- return true;
- }
-
- @Override
- public boolean isEmpty() {
- return false;
- }
- }, rect.top, rect.left, rect.bottom, rect.right, -1, null);
-
- Amenity res = null;
- for (Amenity amenity : amenities) {
- Long amenityId = amenity.getId() >> 1;
- if (amenityId == id) {
- res = amenity;
- break;
- }
- }
- if (res == null && names != null && names.size() > 0) {
- for (Amenity amenity : amenities) {
- for (String name : names) {
- if (name.equals(amenity.getName())) {
- res = amenity;
- break;
- }
- }
- if (res != null) {
- break;
- }
- }
- }
-
- return res;
- }
-
private boolean hideVisibleMenues() {
if (multiSelectionMenu.isVisible()) {
multiSelectionMenu.hide();
diff --git a/OsmAnd/src/net/osmand/plus/views/MapMarkersLayer.java b/OsmAnd/src/net/osmand/plus/views/MapMarkersLayer.java
index b75f9e0fb1..34216fc1c2 100644
--- a/OsmAnd/src/net/osmand/plus/views/MapMarkersLayer.java
+++ b/OsmAnd/src/net/osmand/plus/views/MapMarkersLayer.java
@@ -21,6 +21,7 @@ import android.view.MotionEvent;
import android.view.View;
import net.osmand.Location;
+import net.osmand.data.Amenity;
import net.osmand.data.LatLon;
import net.osmand.data.PointDescription;
import net.osmand.data.QuadPoint;
@@ -43,6 +44,7 @@ import net.osmand.plus.views.mapwidgets.MapMarkersWidgetsFactory;
import net.osmand.util.MapUtils;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import gnu.trove.list.array.TIntArrayList;
@@ -518,20 +520,47 @@ public class MapMarkersLayer extends OsmandMapLayer implements IContextMenuProvi
OsmandApplication app = map.getMyApplication();
int r = getRadiusPoi(tileBox);
+ boolean selectMarkerOnSingleTap = app.getSettings().SELECT_MARKER_ON_SINGLE_TAP.get();
+
for (MapMarker marker : app.getMapMarkersHelper().getMapMarkers()) {
- if ((!unknownLocation && app.getSettings().SELECT_MARKER_ON_SINGLE_TAP.get()) || !isSynced(marker)) {
+ if ((!unknownLocation && selectMarkerOnSingleTap) || !isSynced(marker)) {
LatLon latLon = marker.point;
if (latLon != null) {
int x = (int) tileBox.getPixXFromLatLon(latLon.getLatitude(), latLon.getLongitude());
int y = (int) tileBox.getPixYFromLatLon(latLon.getLatitude(), latLon.getLongitude());
+
if (calculateBelongs((int) point.x, (int) point.y, x, y, r)) {
- o.add(marker);
+ if (!unknownLocation && selectMarkerOnSingleTap) {
+ o.add(marker);
+ } else {
+ if (isMarkerOnFavorite(marker) || isMarkerOnWaypoint(marker)) {
+ continue;
+ }
+ Amenity mapObj = getMapObjectByMarker(marker);
+ o.add(mapObj == null ? marker : mapObj);
+ }
}
}
}
}
}
+ private boolean isMarkerOnWaypoint(@NonNull MapMarker marker) {
+ return marker.point != null && map.getMyApplication().getSelectedGpxHelper().getVisibleWayPointByLatLon(marker.point) != null;
+ }
+
+ private boolean isMarkerOnFavorite(@NonNull MapMarker marker) {
+ return marker.point != null && map.getMyApplication().getFavorites().getVisibleFavByLatLon(marker.point) != null;
+ }
+
+ @Nullable
+ public Amenity getMapObjectByMarker(@NonNull MapMarker marker) {
+ if (marker.mapObjectName != null && marker.point != null) {
+ return findAmenity(map.getMyApplication(), -1, Collections.singletonList(marker.mapObjectName), marker.point);
+ }
+ return null;
+ }
+
private boolean calculateBelongs(int ex, int ey, int objx, int objy, int radius) {
return Math.abs(objx - ex) <= radius && (ey - objy) <= radius && (objy - ey) <= 2.5 * radius;
}
diff --git a/OsmAnd/src/net/osmand/plus/views/OsmandMapLayer.java b/OsmAnd/src/net/osmand/plus/views/OsmandMapLayer.java
index bdbb19c4e8..46e1d76cd5 100644
--- a/OsmAnd/src/net/osmand/plus/views/OsmandMapLayer.java
+++ b/OsmAnd/src/net/osmand/plus/views/OsmandMapLayer.java
@@ -12,14 +12,16 @@ import android.graphics.PointF;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffColorFilter;
import android.os.AsyncTask;
-import android.os.Build;
import android.support.annotation.NonNull;
import android.view.MotionEvent;
+import net.osmand.binary.BinaryMapIndexReader;
+import net.osmand.data.Amenity;
import net.osmand.data.LatLon;
import net.osmand.data.QuadRect;
import net.osmand.data.QuadTree;
import net.osmand.data.RotatedTileBox;
+import net.osmand.osm.PoiCategory;
import net.osmand.plus.ContextMenuAdapter;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.activities.MapActivity;
@@ -28,6 +30,7 @@ import net.osmand.plus.render.OsmandRenderer.RenderingContext;
import net.osmand.render.RenderingRuleSearchRequest;
import net.osmand.render.RenderingRulesStorage;
import net.osmand.util.MapAlgorithms;
+import net.osmand.util.MapUtils;
import java.util.ArrayList;
import java.util.Arrays;
@@ -218,6 +221,46 @@ public abstract class OsmandMapLayer {
return rf;
}
+ public Amenity findAmenity(OsmandApplication app, long id, List names, LatLon latLon) {
+ QuadRect rect = MapUtils.calculateLatLonBbox(latLon.getLatitude(), latLon.getLongitude(), 50);
+ List amenities = app.getResourceManager().searchAmenities(
+ new BinaryMapIndexReader.SearchPoiTypeFilter() {
+ @Override
+ public boolean accept(PoiCategory type, String subcategory) {
+ return true;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return false;
+ }
+ }, rect.top, rect.left, rect.bottom, rect.right, -1, null);
+
+ Amenity res = null;
+ for (Amenity amenity : amenities) {
+ Long amenityId = amenity.getId() >> 1;
+ if (amenityId == id) {
+ res = amenity;
+ break;
+ }
+ }
+ if (res == null && names != null && names.size() > 0) {
+ for (Amenity amenity : amenities) {
+ for (String name : names) {
+ if (name.equals(amenity.getName())) {
+ res = amenity;
+ break;
+ }
+ }
+ if (res != null) {
+ break;
+ }
+ }
+ }
+
+ return res;
+ }
+
public abstract class MapLayerData {
public int ZOOM_THRESHOLD = 1;
public RotatedTileBox queriedBox;