diff --git a/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java b/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java index 8acf7b4106..47705ec8ed 100644 --- a/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java +++ b/OsmAnd-java/src/main/java/net/osmand/GPXUtilities.java @@ -42,6 +42,7 @@ import java.util.TimeZone; public class GPXUtilities { public final static Log log = PlatformUtil.getLog(GPXUtilities.class); + private static final String ICON_NAME_EXTENSION = "icon_name"; private final static String GPX_TIME_FORMAT = "yyyy-MM-dd'T'HH:mm:ss'Z'"; //$NON-NLS-1$ private final static String GPX_TIME_FORMAT_MILLIS = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"; //$NON-NLS-1$ @@ -257,6 +258,14 @@ public class GPXUtilities { return true; } + public String getIconName() { + return getExtensionsToRead().get(ICON_NAME_EXTENSION); + } + + public void setIconName(String iconName) { + getExtensionsToWrite().put(ICON_NAME_EXTENSION, iconName); + } + @Override public int hashCode() { final int prime = 31; diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index 4c03b44380..7abea6c4ce 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -3327,7 +3327,7 @@ تحرير قائمة ملفات التعريف الملف الشخصي المحدد بالضغط على %1$s، ستفقد كل تغييراتك. - سيتم إعادة ضبط جميع إعدادات البروفايل إلى الحالة بعد التثبيت. + سيتم إعادة ضبط جميع إعدادات ملف التعريف إلى الحالة بعد التثبيت. إعادة تعيين جميع إعدادات البروفايل إلى الوضع الافتراضي؟ %2$s %1$s %2$s :%1$s @@ -3356,4 +3356,35 @@ تظهر أيقونة الخريطة فقط على الخريطة ، وتتغير أثناء التنقل إلى أيقونة التنقل. تحقق وتبادل سجلات مفصلة من التطبيق تعذر تحليل الهدف الجغرافي \'%s\'. + الإذن مطلوب لاستخدام هذا الخيار. + اعراض جانبية: سيفقد المسار الخاص بك جميع الأقسام التي لم يتحقق فيها معيار الحد الأدنى للسرعة (على سبيل المثال ، حيث تدفع دراجتك أعلى تل شديد الانحدار). أيضا ، لن تكون هناك معلومات حول فترات الراحة ، مثل الاستراحات. هذا له تأثيرات على أي تحليل أو مرحلة ما بعد المعالجة ، مثل عند محاولة تحديد المدة الإجمالية لرحلتك ، أو وقت الحركة ، أو متوسط سرعتك. + المسارات المسجلة الخاصة بك هي في %1 $s، أو مجلد OsmAnd. + ملاحظات OSM موجودة في٪ 1 $ s. + عرض تعديلاتك أو أخطاء OSM التي لم يتم تحميلها بعد في٪ 1 $ s. لن يتم عرض النقاط التي تم تحميلها بعد الآن. + مرشح قطع سرعة منخفضة لعدم تسجيل نقاط أقل من سرعة معينة. وهذا قد يجعل المسارات المسجلة تبدو أكثر سلاسة عند عرضها على الخريطة. + التوصية: حاول استخدام كشف الحركة عبر مرشح الحد الأدنى للإزاحة للتسجيل (B) أولاً ، فقد ينتج عنه نتائج أفضل ، ويستهلك بيانات أقل. إذا استمرت المسارات الخاصة بك مزعجة عند السرعات المنخفضة ، فجرب القيم غير الصفرية هنا. يرجى ملاحظة أن بعض القياسات قد لا تبلغ عن أي قيمة سرعة على الإطلاق (بعض الطرق المستندة إلى الشبكة) ، وفي هذه الحالة لن تسجل أي شيء. + ملاحظة: سرعة > 0 الاختيار: معظم شرائح GPS تبلغ عن قيمة السرعة فقط إذا كانت الخوارزمية تحدد الحركة أوالسكون. وبالتالي باستخدام إعدادات> 0 في هذا المرشح يتم كشف عن الحركة من شرائح GPS. ولكن حتى لو لم تتم تصفيتها هنا في وقت التسجيل ، فإننا لا نزال نستخدم هذه الميزة في تحليل GPX لتحديد المسافة المصححة ، أي أن القيمة المعروضة في هذا الحقل هي المسافة المسجلة أثناء الحركة. + سوف يسجل هذا النقاط التي تم قياسها فقط مع الحد الأدنى من مؤشر الدقة (بالأمتار / القدمين وفقا لما أورده Android بخصوص مجموعة الشرائح). تشير الدقة إلى تشتت القياسات المتكررة ، ولا ترتبط ارتباطًا مباشرًا بالدقة ، والتي تحدد مدى قرب القياسات من موقعك الحقيقي. + الآثار الجانبية: نتيجة التصفية بدقة ، قد تكون النقاط مفقودة تمامًا على سبيل المثال أسفل الجسور ، تحت الأشجار ، بين المباني العالية ، أو مع بعض الظروف الجوية. + توصية: من الصعب التنبؤ بما سيتم تسجيله وما لا يتم تسجيله ، قد يكون من الأفضل إيقاف تشغيل هذا المرشح. + ملاحظة :إذا كان GPS قد تم إيقافه قبل التسجيل مباشرة ، فقد تكون دقة النقطة الأولى التي تم قياسها منخفضة ، لذلك قد نود في الرمز الخاص بنا الانتظار ثانية أو نحو ذلك قبل تسجيل نقطة (أو تسجيل أفضل 3 نقاط متتالية ، إلخ) .) ، ولكن هذا لم ينفذ بعد. + يتجنب هذا المرشح تسجيل النقاط المكررة حيث قد يكون هناك حركة فعلية قليلة جدًا ، مما يجعل المظهر المكاني أجمل للمسارات لا يتم معالجته لاحقًا. + الآثار الجانبية: لا يتم تسجيل الفترات في الراحة على الإطلاق أو بنقطة واحدة فقط لكل منها. قد يتم تصفية الحركات الصغيرة (في العالم الحقيقي) (على سبيل المثال ، لوضع علامة على وجود امتداد محتمل في رحلتك). يحتوي ملفك على معلومات أقل للمعالجة اللاحقة ، ويحتوي على إحصائيات أسوأ عن طريق تصفية النقاط الزائدة عن الحاجة بشكل واضح في وقت التسجيل ، مع الاحتفاظ في نفس الوقت بالآثار الناتجة عن الاستقبال السيئ أو تأثيرات شرائح GPS. + التوصية: قد يكون إعداد 5 أمتار جيدًا إذا لم تكن بحاجة إلى التقاط تفاصيل أدق من ذلك ، ولا ترغب في التقاط البيانات بشكل صريح أثناء الراحة. + عازل الوقت + تتبع الفاصل الزمني + عنوان صفحة انترنت + حدد عنوان الويب مع بناء جملة المعلمة: lat = {0} ، lon = {1} ، الطابع الزمني = {2} ، hdop = {3} ، الارتفاع = {4} ، السرعة = {5} ، التحمل = {6}. + إعلام + الحد الأدنى للسرعة + دقة الحد الأدنى + الحد الأدنى للإزاحة + القائمة - الأماكن الخاصة بي - المسارات + القائمة - الأماكن الخاصة بي - ملاحظات + القائمة - أماكني - تعديلات OSM + إعادة تعيين إعدادات البرنامج المساعد الافتراضي + تقسيم المسجل + استخدام تطبيق النظام + صوت الكاميرا + التفويض ناجح \ No newline at end of file diff --git a/OsmAnd/res/values-el/strings.xml b/OsmAnd/res/values-el/strings.xml index bf8ff9d2b0..e6d3cc7088 100644 --- a/OsmAnd/res/values-el/strings.xml +++ b/OsmAnd/res/values-el/strings.xml @@ -3023,7 +3023,7 @@ Απότομη κλίση Χρησιμοποιείτε τον χάρτη {0} που παρέχεται από το OsmAnd. Θέλετε να εκκινήσετε την πλήρη έκδοση του OsmAnd; Έναρξη OsmAnd; - Αποφυγή βοτσάλων και πλακών + Χωρίς βότσαλα ή πλάκες Απέφυγε βότσαλα και πλάκες Ελαχ. ταχύτητα Μεγ. ταχύτητα @@ -3165,7 +3165,7 @@ Αυτοκίνητο, φορτηγό, μηχανή Ποδήλατο βουνού, μοτοποδήλατο, άλογο Περπάτημα, πεζοπορία, τρέξιμο - Όλα τα είδη ΜΜΜ + Όλοι οι δημόσιοι τύποι μεταφοράς Σκάφος, κωπηλασία, ιστιοπλοΐα Αεροπλάνο, ανεμοπορία Γεωκωδικοποίηση @@ -3221,7 +3221,7 @@ Προτιμώμενη δυσκολία Προτιμήστε διαδρομές αυτής της δυσκολίας, αν και η διαδρομή σε πιο δύσκολες ή εύκολες πίστες είναι ακόμα εφικτές, εάν είναι πιο σύντομες. Εκτός πίστας - Ελεύθερες καθώς και εκτός πίστας διαδρομές είναι ανεπίσημες και περάσματα. Συνήθως ακαθάριστες, ασυντήρητες από τους υπεύθυνους και μη ελεγμένες το πρωί. Μπαίνετε με δικό σας κίνδυνο. + "\'Ελεύθερες\' καθώς και \'εκτός πίστας\' είναι ανεπίσημες διαδρομές και περάσματα. Συνήθως ακαθάριστες, ασυντήρητες και μη ελεγμένες το πρωί. Μπαίνετε με δικό σας κίνδυνο." Ρυθμίσεις για την κατατομή (προφίλ): Το OsmAnd χρησιμοποιεί το πρότυπο UTM, το οποίο είναι παρόμοιο αλλά όχι ίδιο με τη μορφή UTM NATO. Παράδειγμα @@ -3246,7 +3246,7 @@ Ρυθμίσεις πλοήγησης Θέμα εφαρμογής, μονάδες, περιοχή Ρυθμίστε το προφίλ - Οι προειδοποιήσεις εμφανίζονται κάτω αριστερά κατά την πλοήγηση. + Οι προειδοποιήσεις να εμφανίζονται κάτω αριστερά κατά την πλοήγηση. Εναλλαγή προφίλ Γλώσσα και απόδοση Επαναφορά προεπιλογών @@ -3267,7 +3267,7 @@ Οπτικές προειδοποιήσεις Ρύθμιση παραμέτρων διαδρομής Παράμετροι διαδρομής - Χρησιμοποιείται για τον υπολογισμό του χρόνου άφιξης μέσω άγνωστου τύπου δρόμων και να περιορίσει την ταχύτητα σε όλους τους δρόμους (θα μπορούσε να αλλάξει η διαδρομή) + Εκτιμά τον χρόνο άφιξης αγνώστων τύπων δρόμων και περιορίζει την ταχύτητα σε όλους τους δρόμους (μπορεί να επηρεάσει τη διαδρομή) Η κατατομή (προφίλ) της εφαρμογής άλλαξε σε \"%s\" Ενδιάμεση μνήμη του Logcat Ρυθμίσεις προσθέτου @@ -3282,8 +3282,8 @@ Επικόλληση διαδρομής στον φάκελο με τα δεδομένα OsmAnd Αλλαγή του φακέλου δεδομένων του OsmAnd; Μετακίνηση στον νέο προορισμό - Εσωτερική αποθήκευση, κρυφή από τον χρήστη και άλλες εφαρμογές, αποκλειστικά προσπελάσιμη στο OsmAnd - Αλλαγή φακέλου αποθήκευσης δεδομένων + Εσωτερική αποθήκευση για το OsmAnd, (κρυφή από τους χρήστες και άλλες εφαρμογές). + Αλλαγή φακέλου αποθήκευσης Χιονοδρομικό πάρκο Έλκηθρο Έλκηθρο @@ -3347,29 +3347,29 @@ \n • Λοιπές διορθώσεις σφαλμάτων \n \n - Μπορείτε να εφαρμόσετε αυτήν την αλλαγή σε όλες τις κατατομές (προφίλ) ή μόνο στην τρέχουσα επιλεγμένη. + Μπορείτε να εφαρμόσετε αυτήν την αλλαγή σε όλες τις κατατομές (προφίλ) ή μόνο στην επιλεγμένη. Κοινόχρηστο Να προτιμώνται οι μη ασφαλτοστρωμένοι δρόμοι - Να προτιμώνται οι μη ασφαλτοστρωμένοι δρόμοι. + Να προτιμώνται οι μη ασφαλτοστρωμένοι δρόμοι για τη διαδρομή. Επεξεργασίες OSM - Εμφάνιση ή απόκρυψη ισοϋψών γραμμών στον χάρτη. + Εμφάνιση ή απόκρυψη πλήκτρου ισοϋψών γραμμών στον χάρτη. Εμφάνιση γραμμών ισοϋψών Απόκρυψη ισοϋψών γραμμών Εμφάνιση/Απόκρυψη ισοϋψών γραμμών - Εμφάνιση ή απόκρυψη σκίασης αναγλύφου στον χάρτη. + Εμφάνιση ή απόκρυψη πλήκτρου σκίασης αναγλύφου στον χάρτη. Εμφάνιση σκίασης ανάγλυφου Απόκρυψη σκίασης ανάγλυφου Εμφάνιση/Απόκρυψη σκίασης ανάγλυφου - Αδυναμία εκκίνησης μηχανής μετατροπής κειμένου σε ομιλία + Αδυναμία εκκίνησης μηχανής κειμένου σε ομιλία Προσομοίωση της θέσης σας χρησιμοποιώντας καταγεγραμμένη διαδρομή GPX. Εξαγωγή κατατομής (προφίλ) Κατατομή (προφίλ) OsmAnd: %1$s - Η κατατομή (προφίλ) \'%1$s\' υπάρχει ήδη. Να αντικατασταθεί; + Το \'%1$s\' υπάρχει ήδη. Να αντικατασταθεί; Αδυναμία εξαγωγής κατατομής (προφίλ). Εισαγωγή κατατομής (προφίλ) - Για εισαγωγή κατατομής (προφίλ), επιλέξετε το αρχείο της στη συσκευή και ανοίξτε το με το OsmAnd. + Προσθήκη κατατομής (προφίλ) ανοίγοντας το αρχείο του με το OsmAnd. %1$s σφάλμα εισαγωγής: %2$s - Το %1$s εισήχθη επιτυχώς. + Το %1$s εισήχθη. Λευκό Εναλλαγή μεταξύ %1$s και %2$s Σημείο εκκίνησης @@ -3381,12 +3381,12 @@ Καθαρισμός του %1$s; Ερώτημα λήψης χάρτη Ερωτήματα και ειδοποιήσεις - Έλεγχος αναδύσεων, ερωτήματα και ειδοποιήσεις που το OsmAnd εμφανίζει κατά τη χρήση. + Έλεγχος αναδύσεων, διαλόγων και ειδοποιήσεων. Δίκτυα κόμβων Προτεινόμενοι χάρτες - Αυτοί οι χάρτες απαιτούνται για τη χρήση του προσθέτου + Αυτοί οι χάρτες απαιτούνται για το πρόσθετο. Κατατομές (προφίλ) που προστέθηκαν - Το πρόσθετο προσθέτει νέα κατατομή (προφίλ) στο OsmAnd + Οι κατατομές (προφίλ) που προστέθηκαν από το πρόσθετο Απενεργοποίηση Προστέθηκε νέο πρόσθετο Συνένωση τμημάτων @@ -3398,17 +3398,61 @@ Προσωπικό Λήψη %s Πυκνός - Για ερήμους και άλλες αραιοκατοικημένες περιοχές. - Επιλέξτε εικονίδιο πλοήγησης - Επιλέξτε εικονίδιο χάρτη - Όταν πατήσετε Εφαρμογή, οι διαγραμμένες κατατομές (προφίλ) θα χαθούν πλήρως. + Για ερήμους και άλλες αραιοκατοικημένες περιοχές. Περισσότερες λεπτομέρειες. + Εικονίδιο πλοήγησης + Εικονίδιο χάρτη + Πατώντας \'Εφαρμογή\' διαγράφονται οι αφαιρούμενες κατατομές (προφίλ) μόνιμα. Κύρια κατατομή (προφίλ) Επιλέξτε χρώμα Δεν μπορείτε να διαγράψετε τις προεπιλεγμένες κατατομές (προφίλ) OsmAnd, αλλά μπορείτε να τις απενεργοποιήσετε στην προηγούμενη οθόνη, ή να τις μετακινήσετε στο τέλος. Επεξεργασία κατατομών (προφίλ) - Ο τύπος πλοήγησης επηρεάζει τους κανόνες υπολογισμών διαδρομών. + Ο \'τύπος πλοήγησης\' καθορίζει τους υπολογισμούς διαδρομών. Εμφάνιση κατατομής (προφίλ) - Επιλέξτε εικονίδιο, χρώμα και όνομα - Επεξεργαστείτε τον κατάλογο κατατομών (προφίλ) + Εικονίδιο, χρώμα και όνομα + Επεξεργασία καταλόγου κατατομών (προφίλ) Επιλεγμένη κατατομή (προφίλ) + Το πάτημα του %1$s θα απορρίψει όλες τις αλλαγές σας. + Επαναφορά όλων των ρυθμίσεων κατατομών (προφίλ) στις προεπιλογές εγκατάστασης. + Να επαναφερθούν όλες οι ρυθμίσεις κατατομών (προφίλ); + %1$s %2$s + %1$s: %2$s + Χωρίς κανόνες διαδρομής στο \'%1$s\'. Παρακαλούμε, επιλέξτε ένα άλλο αρχείο. + Αντ΄αυτού επιλέξτε υποστηριζόμενο αρχείο επέκτασης %1$s. + Εισαγωγή από αρχείο + Εισαγωγή αρχείου διαδρομής + Εισαγωγή κατατομής (προφίλ) + Πλοήγηση, ακρίβεια καταγραφής + Μέγεθος εικόνας, ποιότητα ήχου και βίντεο + Σύνδεση, κωδικός πρόσβασης, επεξεργασία χωρίς σύνδεση + Επιλογή εικονιδίου, χρώματος και ονόματος + Επιτρέπει την κοινή χρήση της τρέχουσας τοποθεσίας χρησιμοποιώντας την καταγραφή ταξιδιού. + Διαδικτυακή παρακολούθηση + Ακρίβεια καταγραφής + Οι καταγραμμένες διαδρομές είναι στο %1$s, ή στον φάκελο OsmAnd. + Οι σημειώσεις σας OSM είναι στο %1$s. + Σημειώσεις βίντεο + Σημειώσεις φωτογραφίας + Επανυπολογισμός διαδρομής + Ανακοίνωση + Όνομα χρήστη και κωδικός πρόσβασης + Αυτές οι ρυθμίσεις εφαρμόζονται σε όλες τις κατατομές (προφίλ). + Επεξεργασία OSM + Προβολή των επεξεργασιών σας ή των σφαλμάτων OSM που δεν έχουν αποσταλεί ακόμα στο %1$s. Τα σταλμένα σημεία δεν θα εμφανίζονται πια. + OSM + Το εικονίδιο εμφανίζεται μόνο κατά την πλοήγηση ή τη μετακίνηση. + Το εικονίδιο χάρτη εμφανίζεται μόνο στον χάρτη. + Ηλ. διεύθυνση + Καθορίστε την ηλ. διεύθυνση με σύνταξη παραμέτρων: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}. + Ειδοποίηση + Ελάχιστη ταχύτητα + Ελάχιστη ακρίβεια + Ελάχιστη μετατόπιση + Μενού — Οι τοποθεσίες μου — Ίχνη + Μενού — Οι τοποθεσίες μου — Σημειώσεις + Μενού — Οι τοποθεσίες μου — Επεξεργασίες OSM + Επαναφορά ρυθμίσεων προσθέτου στην προεπιλογή + Καταγραφή διαίρεσης + Χρήση εφαρμογής συστήματος + Ήχος κλείστρου κάμερας + Η εξουσιοδότηση είναι επιτυχής \ No newline at end of file diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml index a1bf0c8644..14a03fd017 100644 --- a/OsmAnd/res/values-fa/strings.xml +++ b/OsmAnd/res/values-fa/strings.xml @@ -3385,15 +3385,15 @@ ترجیح جاده‌های روسازی‌نشده جاده‌های روسازی‌نشده را ترجیح می‌دهم. ویرایش‌های OSM - با لمس این دکمهٔ عملیاتی، منحنی‌های میزان را روی نقشه آشکار/پنهان کنید. + دکمه‌ای برای آشکار/پنهان کردن منحنی‌های میزان روی نقشه. نشان‌دادن منحنی‌های میزان پنهان‌کردن منحنی‌های میزان آشکار/پنهان کردن منحنی‌های میزان - با لمس این دکمهٔ عملیاتی، سایه‌روشن‌ها را روی نقشه آشکار/پنهان کنید. + دکمه‌ای برای آشکار/پنهان کردن سایه‌روشن‌ها روی نقشه. نشان‌دادن سایه‌روشن‌ها پنهان‌کردن سایه‌روشن‌ها آشکار/پنهان کردن سایه‌روشن‌ها - راه‌اندازی موتور متن به گفتار ناموفق بود + راه‌اندازی موتور متن به گفتار ناموفق بود. موقعیت خود را با استفاده از یک رد GPX ضبط‌شده شبیه‌سازی کنید. پروفایل OsmAnd:‏ %1$s به‌روزرسانی‌های ماهانهٔ نقشه @@ -3402,27 +3402,27 @@ \n \nاطلاعات خصوصی جمع‌آوری نمی‌شود. فقط داده‌های جست‌وجو برای بهبود الگوریتم جست‌وجو موردنیاز است. برون‌برد پروفایل - پروفایل «%1$s» وجود دارد. جای آن نوشته شود؟ + ‏«%1$s» وجود دارد. بازنویسی شود؟ برون‌برد پروفایل ناموفق بود. درون‌برد پروفایل - برای درون‌ریزی یک پروفایل، فایل آن را از روی دستگاه انتخاب و با OsmAnd باز کنید. + فایل یک پروفایل را با OsmAnd باز کنید تا اضافه شود. %1$s خطای درون‌برد: %2$s - ‏%1$s باموفقیت درون‌برد شد. + ‏%1$s درون‌برد شد. سفید تعویض %1$s و %2$s نقطهٔ شروع رد ذخیره شد نام فایل تهی است - برای تخمین زمان رسیدن هنگام پیمودن راه‌های ناشناخته و برای محدودکردن سرعت در همهٔ راه‌ها (ممکن است مسیر را تغییر دهد) استفاده می‌شود + هنگام پیمودن راه‌های ناشناخته زمان رسیدن را تخمین می‌زند و سرعت را برای همهٔ راه‌ها محدود می‌کند (ممکن است بر مسیریابی اثر بگذارد) بازنشانی با لمس این دکمهٔ عملیاتی، نقطهٔ مبدأ در مرکز صفحه قرار می‌گیرد و مسیر تا مقصد محاسبه می‌شود یا اگر نشانگری برای مقصد نباشد، کادری برای انتخاب مقصد باز می‌شود. کادر دانلود نقشه کادرها و اعلان‌ها - کادرها، کادرهای بالاپر و اعلان‌هایی که OsmAnd در هنگام کار نشان می‌دهد را تنظیم کنید. + کادرها، کادرهای بالاپر و اعلان‌ها را تنظیم کنید. نقشه‌های پیشنهادی - به این نقشه‌ها برای استفاده با افزونه نیاز دارید + این نقشه‌ها برای افزونه لازم هستند. پروفایل‌های افزوده - افزونه پروفایل تازه‌ای به OsmAnd اضافه می‌کند + پروفایل‌هایی که افزونه افزوده افزونهٔ تازه اضافه شد نمایش مسیرهای دوچرخهٔ شبکه‌های گره %1$s پاک‌سازی شود؟ @@ -3430,34 +3430,34 @@ خاموش پیوند پاره‌ها ثبت جهت - هنگام ضبط، برای هر یک از نقطه‌های رد جهت را ثبت کن. + هنگام ضبط، جهت را برای هر یک از نقطه‌های رد ثبت کن. %1$s • %2$s %1$s،‏ %2$s شخصی در حال بارگیری %s ضخیم - برای بیابان‌ها و سایر نواحی با جمعیت پراکنده. در مقیاس مشابه، جزئیات بیشتری نشان می‌دهد. + برای بیابان‌ها و سایر نواحی با جمعیت پراکنده. جزئیات بیشتری دارد. پروفایل تازهٔ «%1$s» اضافه شود؟ - انتخاب نماد ناوبری - انتخاب نماد نقشه - پس از لمس «به‌کارگیری»، پروفایل‌های حذف‌شده کاملاً از بین می‌روند. + نماد ناوبری + نماد نقشه + با لمس «به‌کارگیری»، پروفایل‌های حذف‌شده برای همیشه از بین می‌روند. پروفایل اصلی انتخاب رنگ - نمی‌توانید پروفایل‌های پیشفرض OsmAnd را حذف کنید، اما در صفحهٔ پیشین می‌توانید آن‌ها را غیرفعال نمایید یا به پایین منتقل کنید. + پروفایل‌های پیشفرض OsmAnd حذف نمی‌شوند، اما می‌توانید آن‌ها را غیرفعال نمایید (در صفحهٔ پیشین)، یا با مرتب‌سازی به پایین منتقل کنید. ویرایش پروفایل‌ها - نوع ناوبری بر قواعد محاسبهٔ مسیر اثرگذار است. + «نوع ناوبری» نحوهٔ محاسبهٔ مسیر را کنترل می‌کند. ظاهر پروفایل - انتخاب نماد، رنگ و نام - ویرایش لیست پروفایل‌ها + نماد، رنگ و نام + ویرایش لیست پروفایل پروفایل انتخاب‌شده - با کلیک روی %1$s، همهٔ تغییرات شما از بین می‌رود. - همهٔ تنظیمات پروفایل به حالت اولیهٔ پس از نصب بازنشانی می‌شود. + با زدن روی %1$s، همهٔ تغییرات شما از بین می‌رود. + همهٔ تنظیمات پروفایل را به حالت اولیهٔ پس از نصب بازنشانی کنید. همهٔ تنظیمات پروفایل را بازنشانی می‌کنید؟ %1$s: ‪%2$s‬ ‪%1$s %2$s‬‏ %1$s: ‪%2$s‬ - فایل %1$s قواعد مسیریابی را ندارد. لطفاً فایل دیگری انتخاب کنید. - قالب فایل پشتیبانی نمی‌شود. فایلی با پسوند %1$s انتخاب کنید. + در فایل %1$s دستوری برای مسیریابی یافت نشد. لطفاً فایل دیگری انتخاب کنید. + فایل دیگری با پسوند %1$s انتخاب کنید که پشتیبانی شود. درون‌برد از فایل درون‌برد فایل مسیریابی درون‌برد پروفایل diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 42f6dac2f5..b604b47b01 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3421,4 +3421,16 @@ représentant la zone : %1$s x %2$s Vous ne verrez l\'icône que lors de la navigation ou en déplacement. L \'icône Carte n\'apparaît que sur la carte et est remplacée par l\'icône Navigation lors de la navigation. Ici, vous pouvez consulter les journaux de l\'application et les partager (pour debug) + Vous n\'êtes pas autorisés à utiliser cette option. + Intervalle de suivi + Adresse web + Notification + Vitesse minimale + Précision minimale + Déplacement minimum + Restaurer les paramètres par défaut du greffon + Fractionner l\'enregistrement + Utiliser l\'application système + Son de la prise de vue + L\'autorisation a été accordée \ No newline at end of file diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index 21dee3beb9..343cf85537 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -392,7 +392,7 @@ Yandex forgalmi információ Útvonal Kedvencek - OSM Jegyzetek (online) + OSM-jegyzetek (online) POI-rátétréteg… Térképforrás… Térképrétegek @@ -1871,7 +1871,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Átlátszóságcsúszka megjelenítése Nincs elég hely! A művelethez ideiglenesen {3} MB, véglegesen pedig {1} MB hely szükséges. (Jelenleg csak {2} MB áll rendelkezésre.) Letölt {0} fájlt\? Ehhez ideiglenesen {3} MB, véglegesen pedig {1} MB hely szükséges. (A jelenlegi {2} MB-ból.) - Tölts fel OSM Jegyzetet névtelenül vagy az OpenStreetMap.org-fiókodat használva. + Töltse fel OSM-jegyzetét névtelenül vagy OpenStreetMap.org-fiókjának használatával. OSM Jegyzet feltöltése Első térképjelölő Második térképjelölő @@ -2236,8 +2236,8 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Közeli települések Térkép automatikus nagyítása be/ki Váltógomb, amely be- vagy kikapcsolja a sebességtől függő automatikus térképnagyítást. - Automatikus térképnagyítás engedélyezése - Térkép automatikus nagyításának kikapcsolása + Automatikus nagyítás bekapcsolása + Automatikus nagyítás kikapcsolása Célpont megadása Célpont lecserélése Hozzáadás első köztes célpontként @@ -2266,8 +2266,8 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük itt: %1$s Cím megadása OSM Jegyzetek ki/bekapcsolása - OSM Jegyzetek megjelenítése - OSM Jegyzetek elrejtése + OSM-jegyzetek megjelenítése + OSM-jegyzetek elrejtése Váltógomb, amely a térképen megjeleníti vagy elrejti az OSM-jegyzeteket. Távolság szerinti sorrendben Keresés a Kedvencekben @@ -2388,7 +2388,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük A–Z Hozzáadva Rendezés alapja: - Válassza ki, hogyan jelenjen meg a térképjelölők távolsága és iránya a térképképernyőn: + "Válassza ki, hogyan jelenjék meg a térképen a térképjelölők távolsága és iránya:" Válaszd ki, mekkora sebesség alatt váltson a térkép forgatása „Haladási irány”-ról „Iránytű”-re. Minden térképjelölő áthelyezve az előzményekbe Térképjelölő áthelyezve az előzményekhez @@ -2403,7 +2403,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Távolság jelzése Rendezés alapja Ne használjon animációkat - Animációk kikapcsolása az alkalmazásban. + Térképanimációk kikapcsolása. Továbbra is mutassa a térképen Kilépés mentés nélkül? Vonal @@ -2470,9 +2470,9 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük %s jelölő aktiválva. Koppints a térképen egy jelölőre, hogy az aktív jelölők tetejére mozgasd anélkül, hogy megnyitnád a környezeti menüt. Aktiválás egy koppintással - Készíts jegyzeteket! + Készítsen jegyzeteket! Hang-, video-, vagy fényképjegyzet hozzáadása a térkép bármely pontjához, widget vagy környezeti menü használatával. - Jegyzetek dátum szerint + OSM-jegyzetek dátum szerint Dátum szerint Típus szerint Útpontokat tartalmazó nyomvonalak keresése @@ -2549,7 +2549,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Fájltípus kijelölése Exportálás típusának kijelölése: OSM-jegyzetek, érdekes pontok (POI-k) vagy mindkettő. Minden adat - OSM Jegyzetek + OSM-jegyzetek Holnap ekkor nyit: POI-feliratok Névtelen @@ -3086,7 +3086,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Személyautó, teherautó, motorkerékpár Mountain bike, kismotor, ló Gyaloglás, túrázás, futás - Minden tömegközlekedés-típus + Tömegközlekedés-típusok Hajózás, evezés, vitorlázás Repülés, siklórepülés Geokódolás @@ -3128,7 +3128,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Alkalmazás az összes profilra Indítási üzenet Analitika - Térkép megjelenítése a lezárási képernyő felett navigáció közben. + Navigáció közben a térkép megjelenítése a lezárási képernyőn. Útvonaltervezési beállítások erre a profilra: %1$s. Felébresztési idő Mértékegységek & formátumok @@ -3157,7 +3157,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Bővítménybeállítások Töltsd le a részletes %s térképet a terület megtekintéséhez. Belső tároló, a felhasználó és a többi alkalmazás számára rejtett, kizárólag az OsmAnd számára hozzáférhető - Adattárolás könyvtárának módosítása + Tárolás mappájának módosítása Szélességkorlátozás Adja meg az útvonalakon a járművekre vonatkozó szélességkorlátozást. Bizonyos útvonalak és úttípusok elkerülése @@ -3174,14 +3174,14 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Ezt a módosítást alkalmazhatod az összes profilra vagy csak a jelenleg kiválasztottra. Megosztott Burkolatlan utak előnyben részesítése - Burkolatlan utak előnyben részesítése. + Útvonaltervezésnél a burkolatlan utak előnyben részesítése a burkoltakkal szemben. Az egész alkalmazás beállításait módosítja OsmAnd beállítások Kiszámít OSM-szerkesztések Váltógomb, amely a térképen megjeleníti vagy elrejti a szintvonalakat. Váltógomb, amely a térképen megjeleníti vagy elrejti a domborzatárnyékolást. - Szövegfelolvasó motor indítása sikertelen + Szövegfelolvasó motor indítása sikertelen. %1$s • %2$s %1$s GB szabad (%2$s GB-ból) Add meg a könyvtár elérési útvonalát @@ -3208,12 +3208,12 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Nyomvonalak rögzítése alkönyvtárakba a rögzítés napja szerint (pl. 2018-01-01). Profil exportálása OsmAnd profil: %1$s - \'%1$s\' profil már létezik. Felülírod\? + \'%1$s\' már létezik. Felülírja\? Nem sikerült a profil exportálása. Profil importálása Profil importálásához jelölje ki a megfelelő fájlt a készüléken, és nyissa meg az OsmAnddal. %1$s importálás hiba: %2$s - %1$s sikeresen importálva. + %1$s importálva. UTV (kis terepautó) Kötélpályás felvonó Profil váltás @@ -3229,7 +3229,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Fájlnév üres Térképletöltés párbeszédablak Párbeszédablakok és értesítések - OsmAnd használata közben megjelenő felugró üzenetek, párbeszédablakok és értesítések beállításai. + Felugró üzenetek, párbeszédablakok és értesítések beállításai. Javasolt térképek Hozzáadja az új „%1$s” profilt\? %1$s • %2$s @@ -3314,16 +3314,16 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Kerékpárút-hálózatok csomópontjainak megjelenítése Törölje ezt: %1$s\? Ponthálózatok - Ezeket a térképeket bővítménnyel kell használni + A bővítményhez szükség van ezekre a térképekre. Hozzáadott profilok - A bővítmény új profilt ad az OsmAndhoz + Bővítmény által hozzáadott profilok Kikapcsolás Új bővítmény hozzáadva Szegmensek összekapcsolása Irány belefoglalása Rögzítéskor menti az egyes útpontok irányát is. - Navigációs ikon kijelölése - Térképikon kijelölése + Navigációs ikon + Térképikon Az Alkalmazás-ra koppintva a törölt profilok végérvényesen elvesznek. Főprofil Szín kijelölése @@ -3331,7 +3331,7 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük Profilok szerkesztése A navigációtípus befolyásolja az útvonal kiszámításának szabályait. Profil megjelenése - Ikon, szín és név kiválasztása + Ikon, szín és név Profilok listájának szerkesztése Kijelölt profil A létrehozandó egyedi profil az alkalmazás egyik alapprofilján fog alapulni, ez határozza meg az alapvető beállításokat, mint például a widgetek láthatóságát vagy a sebesség és távolság mértékegységeit. Ezek az alapprofilok, néhány pédával az egyedi profilokra, amikre kiterjeszthetők: @@ -3397,20 +3397,20 @@ Ha szereted az OsmAndot és az OSM-et, és szeretnéd támogatni a fejlődésük \n • Más hibajavítások \n \n - • Frissített alkalmazás- és profilbeállítások: a beállítások most típusonként vannak elrendezve. Minden profil külön-külön testreszabható. -\n -\n • Az új térképletöltési párbeszédablak böngészés közben javaslatot tesz a letöltendő térképre -\n -\n • Az éjszakai téma hibáinak javítása -\n -\n • Számos útvonaltervezési probléma javítása világszerte -\n -\n • Frissített alaptérkép részletesebb úthálózattal -\n -\n • Elárasztott területek javítása világszerte -\n -\n • Sí útvonaltervezés: magassági profil és útvonalbonyolultság hozzáadása az útvonal részleteihez -\n + • Frissített alkalmazás- és profilbeállítások: a beállítások most típusonként vannak elrendezve. Minden profil külön-külön testreszabható. +\n +\n • Az új térképletöltési párbeszédablak böngészés közben javaslatot tesz a letöltendő térképre +\n +\n • Az sötét téma hibáinak javítása +\n +\n • Számos útvonaltervezési probléma javítása világszerte +\n +\n • Frissített alaptérkép részletesebb úthálózattal +\n +\n • Elárasztott területek javítása világszerte +\n +\n • Sí útvonaltervezés: magassági profil és útvonalbonyolultság hozzáadása az útvonal részleteihez +\n \n • További hibajavítások \n \n diff --git a/OsmAnd/res/values-tr/strings.xml b/OsmAnd/res/values-tr/strings.xml index 4350a2fbe0..cb5b3cf4cf 100644 --- a/OsmAnd/res/values-tr/strings.xml +++ b/OsmAnd/res/values-tr/strings.xml @@ -548,7 +548,7 @@ Cihaz veri tabanınızdaki OSM-POI\'lerini/notlarını görüntüleyin ve yönetin. Çevrim içi izleme aralığını belirtin. Canlı izleme aralığı - Parametre sözdizimi ile web adresini belirtin: enlem={0}, boylam={1}, zaman damgası={2}, hdop={3}, rakım={4}, Hız={5}, bearing={6}. + Parametre sözdizimi ile web adresini belirtin: enlem={0}, boylam={1}, zaman damgası={2}, hdop={3}, rakım={4}, hız={5}, bearing={6}. Web adresinden izlemeyi canlı izlemek Track\'ın kaydını GPX widget\'ı kullanarak ya da \'Seyahat kaydetme\' ayarları aracılığıyla tut. Geçerli izi göster @@ -2000,7 +2000,7 @@ OSM notlarını göster ya da gizle OSM notlarını göster OSM notlarını gizle - OSM notlarını haritada gösterme veya gizleme butonu. + OSM notlarını haritada göstermek veya gizlemek için bir buton. Mesafeye göre sıralandı Butona uzunca basıp sürüklemek, ekrandaki konumunu değiştirir. Aramayı yeniden başlat @@ -2302,9 +2302,9 @@ Yarıçap cetveli Sokak düzeyinde görüşünüzü Mapillary ile paylaşın. Şehir/kasaba/bölgeyi yazın - Hızınıza göre otomatik yakınlaştırma özelliğini açma veya kapatma butonu. + Hız kontrollü otomatik yakınlaştırma özelliğini açmak veya kapatmak için buton. Seyahatteki ilk ara-noktayı ekleyin - Önceki seçilmiş hedefi son ara hedef haline getiren, ekranı rota hedefine ortalama butonu. + Ekranın rota hedefini ortalamasını sağlayan bir buton, önceden seçilen bir hedef son ara hedef haline gelecektir. Önceden seçilen hedefi (varsa) değiştirerek ekranı yeni rota hedefine ortalama butonu. Ekranı ilk ara hedefe ortalama butonu. Sağdan akan trafik @@ -2602,7 +2602,7 @@ Tüm profillere uygula Başlangıç mesajı Analytics - Navigasyon sırasında kilit ekranındaki harita. + Navigasyon sırasında haritayı kilit ekranında göster. Seçili profildeki yönlendirme ayarları \"%1$s\". Uyanma zamanı Birimler ve formatlar @@ -2934,7 +2934,7 @@ Adım adım Burada çık Durakta bin - Seçilen GPX yollarını haritada gösterme veya gizleme butonu. + Seçilen GPX yollarını haritada göstermek veya gizlemek için bir buton. Lütfen önce hedefi ayarlayın • Yeni \'Yol Tarifleri\' ekranı: Ev ve İş hedefi düğmelerini, \'önceki rota\' kısayolunu, etkin GPX yol-izlerinin ve işaretleyicilerin listesini, arama geçmişini görüntüler \n @@ -3291,8 +3291,8 @@ Kullanılan %1$s MB Kullanılan %1$s kB Eş yükselti eğrileri ve tepe gölgeleri - Asfaltsız rotaları tercih et - Asfaltsız rotaları tercih et. + Asfaltsız yolları tercih et + Asfaltsız yolları tercih et. Tüm haritaları güncelle Tüm (%1$d) haritaları güncellemek istediğinizden emin misiniz\? • Güncellenmiş uygulama ve profil ayarları. Ayarlar türlerine göre düzenlendi. Her profil ayrı olarak özelleştirilebilir. @@ -3314,14 +3314,14 @@ \n Bu değişikliği tümüne veya yalnızca seçili profile uygulayabilirsiniz. Paylaşılan - Asfaltsız rotaları tercih et - Kaplamasız arazi üzerinden yönlendir. + Asfaltsız yolları tercih et + Yönlendirme için asfaltsız yolları asfaltlılara tercih et. OSM düzenlemeleri Eş yükselti eğrilerini haritada gösterme veya gizleme butonu. Eş yükselti eğrilerini göster Eş yükselti eğrilerini gizle Eş yükselti eğrilerini göster/gizle - Haritada tepe gölgelemesini gösterme veya gizleme butonu. + Haritada tepe gölgelerini göstermek veya gizlemek için bir buton. Tepe gölgesini göster Tepe gölgesini gizle Tepe gölgesini göster/gizle @@ -3332,13 +3332,13 @@ \'%1$s\' zaten var. Üzerine yazılsın mı\? Profil dışa aktarılamadı. Profili içe aktar - Dosyayı OsmAnd\'da açarak bir profil ekleyin. + Dosyasını OsmAnd ile açarak bir profil ekleyin. %1$s içe aktarma hatası: %2$s %1$s içe aktarıldı. Beyaz %1$s ile %2$s\'i değiştir Başlangıç noktası - Bilinmeyen yol türleri için varış süresini tahmin eder ve tüm yollar için hızı sınırlar (rotayı değiştirebilir) + Bilinmeyen yol türleri için varış zamanını tahmin eder ve tüm yollar için hızı sınırlar (güzergahı etkileyebilir) Yol izi kaydedildi Dosya adı boş Eski haline döndür @@ -3350,7 +3350,7 @@ Açılır pencereleri, iletişim kutularını ve bildirimleri kontrol edin. Düğüm ağları Önerilen haritalar - Bu haritaların eklenti ile kullanılması gerekmektedir. + Bu haritalar eklenti için gereklidir. Eklenen profiller Eklenti tarafından eklenen profiller Kapat @@ -3358,7 +3358,7 @@ Segmentleri birleştir \'%1$s\' yeni profil eklensin mi\? Başlığı dahil et - İzleme sırasında her izleme noktasına başlığı kaydet. + Kayıt sırasında her izleme noktasına başlığı kaydet. %1$s • %2$s %1$s, %2$s Kişisel @@ -3367,18 +3367,18 @@ Çöller ve diğer seyrek nüfuslu alanlar için. Daha ayrıntılı. Navigasyon simgesi Harita simgesi - \"Uygula\"ya dokunmak, tüm profilleri kalıcı olarak siler. + \'Uygula\'ya dokunmak, kaldırılan profilleri kalıcı olarak siler. Ana profil Renk seç - OsmAnd profilleri alt tarafa taşınabilir ancak silinemez. Kaldırmak için geri dönün. + OsmAnd varsayılan profilleri silinemez, ancak (önceki ekranda) devre dışı bırakılabilir veya en altta sıralanabilir. Profilleri düzenle - \'Navigasyon türü\', rota hesaplamaları için kuralları etkiler. + \'Navigasyon türü\' rotaların nasıl hesaplandığını yönetir. Profil görünümü Simge, renk ve isim Profil listesini düzenle Seçilen profil - %1$s\'e tıkladığınızda tüm değişikliklerinizi kaybedersiniz. - Tüm profil ayarları kurulum anındaki varsayılanlarına dönecektir. + %1$s\'e dokunmak tüm değişikliklerinizi atacaktır. + Tüm profil ayarları kurulum anındaki varsayılanlarına sıfırlayın. Tüm profil ayarları sıfırlansın mı\? %1$s: %2$s %1$s %2$s @@ -3408,4 +3408,34 @@ Harita simgesi yalnızca haritada gösterilir. Uygulamanın detaylı log kayıtlarını kontrol edin ve paylaşın Geo intent \'%s\' ayrıştırılamadı. + Kayıtlı yollarınız %1$s veya OsmAnd klasöründe. + OSM notlarınız %1$s içindedir. + Bu seçeneği kullanmak için izin gereklidir. + Bu, belirli bir hızın altındaki noktaları kaydetmemek için bir düşük hızda kesme filtresidir. Bu, harita üzerinde görüntülendiğinde kaydedilen yolların daha düzgün görünmesini sağlayabilir. + Yan etki: Kaydedilen yolunuzda minimum hız kriterinin karşılanmadığı tüm bölümler eksik olacaktır (örn. bisikletinizi dik bir tepeye doğru ittiğiniz yer). Ayrıca, molalar gibi dinlenme süreleri hakkında hiçbir bilgi olmayacaktır. Bunun, seyahatinizin toplam uzunluğunu, hareket zamanını veya ortalama hızınızı belirlemeye çalışırken olduğu gibi herhangi bir analiz veya işlem sonrası üzerinde etkileri vardır. + Öneri: Önce minimum yer değiştirme kayıt filtresi (B) üzerinden hareket algılamayı kullanmayı deneyin, daha iyi sonuçlar üretebilir ve daha az veri kaybedersiniz. Kaydettiğiniz yollarınız düşük hızlarda gürültülü kalırsa, burada sıfır olmayan değerleri deneyin. Bazı ölçümlerin herhangi bir hız değeri bildirmeyebileceğini (bazı ağ tabanlı yöntemler) unutmayın, bu durumda hiçbir şey kaydetmezsiniz. + Not: hız > 0 kontrolü: Çoğu GPS yonga seti, yalnızca algoritma hareket halinde olduğunuzu belirlerse bir hız değeri bildirir ve değilseniz hiçbir şey bildirmez. Dolayısıyla bu filtrede > 0 ayarını kullanmak bir anlamda GPS yongasetinin hareket algılamasını kullanır. Ancak burada kayıt zamanında filtrelenmemiş olsa bile, düzeltilen mesafeyi belirlemek için GPX analizimizde bu özelliği kullanmaya devam ediyoruz, yani bu alanda görüntülenen değer hareket halindeyken kaydedilen mesafedir. + Bu, yalnızca minimum doğruluk göstergesiyle ölçülen noktaları kaydedecektir (Android tarafından yonga setiniz için bildirildiği gibi metre/feet cinsinden). Doğruluk, tekrarlanan ölçümlerin dağılımı anlamına gelir ve ölçümlerinizin gerçek konumunuza ne kadar yakın olduğunu tanımlayan hassasiyetle doğrudan ilişkili değildir. + Yan etki: Doğruluğa göre filtrelemenin bir sonucu olarak, örn. köprülerin altında, ağaçların altında, yüksek binalar arasında veya belirli hava koşullarında noktalar tamamen eksik olabilir. + Öneri: Neyin kaydedileceğini ve kaydedilmeyeceğini tahmin etmek zordur, bu filtreyi kapatmak en iyisi olabilir. + Not: GPS bir kayıttan hemen önce kapalıysa, ölçülen ilk noktanın doğruluğu azalabilir, bu nedenle kodumuzda bir nokta kaydetmeden önce bir saniye beklemek isteyebiliriz (veya art arda 3 noktanın en iyisini kaydedebiliriz, vs.), ancak bu henüz uygulanmadı. + Bu filtre, çok az gerçek hareketin meydana gelebileceği yerlerde aynı noktanın iki kere kaydedilmesini önler, sonrasında işlenmediğinde kaydedilen yolların daha güzel bir uzaysal görünümünü sağlar. + Yan etkiler: Dinlenmedeki dönemler hiç kaydedilmez veya sadece bir nokta ile kaydedilir. Küçük (gerçek dünya) hareketler (örn. yolculuğunuzda olası bir sapmayı işaretlemek için yanlara doğru) filtrelenebilir. Dosyanız daha sonra işleme için daha az bilgi içerir ve kayıt sırasında açıkça gereksiz noktaları filtreleyerek daha kötü istatistiklere sahip olurken, kötü alım veya GPS yonga seti efektlerinin neden olduğu bozulmaları koruyabilir. + Öneri: Bundan daha ince ayrıntıları yakalamanız gerekmiyorsa ve dinlenirken açıkça veri yakalamak istemiyorsanız, 5 metrelik bir ayar sizin için iyi çalışabilir. + Zaman tamponu + İzleme aralığı + Web adresi + Web adresini parametre sözdizimi ile belirtin: enlem={0}, boylam={1}, zaman damgası={2}, hdop={3}, rakım={4}, hız={5}, bearing={6}. + Bildirim + Minimum hız + Minimum doğruluk + Minimum yer değiştirme + Menü — Yerlerim — İzlenen yollar + Menü — Yerlerim — Notlar + Menü — Yerlerim — OSM Düzenlemeleri + Eklenti ayarlarını varsayılana sıfırla + Kaydedici bölmesi + Sistem uygulamasını kullan + Kamera deklanşör sesi + Yetkilendirme başarılı \ No newline at end of file diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index b48ee9a2c1..d8928810d0 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -27,7 +27,7 @@ Встановити прозорість (0 – прозорий, 255 – непрозорий) Скасувати завантаження\? Дякуємо за використання OsmAnd. Завантажуйте регіональні дані для використання в автономному режимі за допомогою пункту меню \'Налаштування\' → \'Управління мапами\' для перегляду мап, пошуку адрес, POI, громадського транспорту тощо. - Основна мапа (у черзі для завантаження) забезпечує основні можливості. + Основна мапа, необхідна для забезпечення основних можливостей, знаходиться у черзі завантаження. Нічого не знайдено. Якщо ви не знайшли свій регіон, ви можете створити його самостійно (див. https://osmand.net). Мережеві та кешовані растрові мапи Стандартні мапи (векторні) @@ -46,11 +46,11 @@ \nКвадрати мап можна отримувати безпосередньо з мережевих джерел або підготувати їх для безмережевого використання (та вручну скопіювати в теку даних OsmAnd) у вигляді бази даних SQLite, яку можна створити за допомогою різноманітних сторонніх знаряддь підготовки мап. Показує налаштування для увімкнення фонового трекінгу та навігації шляхом періодичного пробудження GPS-передавача (з вимкненим екраном). Робить спеціальні можливості пристрою доступними безпосередньо в OsmAnd. Це полегшує, наприклад, налаштування частоти мовлення для голосу синтезу мовлення, настроювання D-Pad навігації, за допомогою трекбола для контролю масштабу або зворотного зв\'язку синтезу мовлення, наприклад, щоб самочинно оголосити свою позицію. - Налаштування для розробки та налагодження можливостей, таких як моделювання маршрутизації, плідність відмальовування або голосові оголошення. + Налаштування функцій розробки та налагодження, як-от навігаційне моделювання, дієвість відмальовування чи голосові підказки. Призначений для розробників, не потрібний для звичайного використання додатку. Втулки Втулки надають додаткові можливості. Втулки - Зробіть внески OSM, такі як створення або модифікація об\'єктів OSM POI, відкриття або коментування приміток OSM та додавання записаних файлів GPX в OsmAnd, надаючи своє ім’я користувача та пароль. OSM.org - це глобальний проєкт зі спільного прилюдного домену, який керується спільнотою. + Зробіть внески OSM, такі як створення або модифікація об\'єктів OSM POI, відкриття або коментування приміток OSM та додавання записаних файлів GPX в OsmAnd, надаючи своє ім’я користувача та пароль. OpenStreetMap.org - це глобальний проєкт зі спільного прилюдного домену, який керується спільнотою. Векторні мапи відображаються швидше. Підтримуються не всіма пристроями. Відтворити оголошення вибраним голосом: Налагодження і розробка OsmAnd @@ -169,7 +169,7 @@ Налаштуйте відображення та загальні параметри додатку. Загальні налаштування Ім\'я користувача OSM - Потрібно для подання на OSM.org. + Потрібно для подань на openstreetmap.org. Пароль Фоновий режим OsmAnd працює у фоновому режимі з вимкненим екраном. @@ -291,7 +291,7 @@ Верхній шар Виберіть накладку для основної мапи Мапа вже встановлена, \'Налаштування\' будуть оновлені. - Виберіть мапи для встановлення або оновлення. + Виберіть (плиткові) мапи для встановлення або оновлення. Неможливо виконати операцію без підключення до Інтернету. Завантажити ще… Використовувати растрові мапи для будь-чого поза цим рівнем. @@ -406,7 +406,7 @@ телефон фільтрувати Дисплей високої роздільної здатності - Не розтягувати (із розмиттям) мапи на дисплеях з високою роздільною здатністю. + Не розтягувати (із розмиттям) плитки мап на дисплеях з високою роздільною здатністю. Шукати громадський транспорт Пошук транспорту (нема цілі): Пошук транспорту ({0} до цілі): @@ -586,10 +586,10 @@ Закінчено Використовувати Інтернет для прокладання маршруту. Мережева маршрутизація - Укажіть дані для входу в OSM.org, щоб завантажити правки. + Вкажіть параметри OpenStreetMap.org (OSM), необхідні для подання. Налаштування даних: мова, оновлення даних. Дані - OSM-редагування + OpenStreetMap-редагування Зміна масштабу мапи згідно вашої швидкості (якщо мапа синхронізована з поточним положенням). Самочинне зменшення/збільшення Додаткові налаштування @@ -617,13 +617,13 @@ 3D вид Відображати останні вибрані POI на мапі. Відображати POI - Виберіть джерело мережевих або кешованих мап + Виберіть джерело мережевих або кешованих плиток мап Джерело растрових мап Джерело мапи Використовувати Інтернет Показати ваше місцерозташування Показати GPS-координати на мапі - Завантажити відсутні частини мапи + Завантажити відсутні плитки мапи Навігаційна програма Вихід Пошук @@ -642,7 +642,7 @@ Пішохід В центрі Внизу - Введіть широту і довготу у форматі (Г - градуси, М - мінути, С - секунди) + Широта та довгота введення у вибраному форматі (D - градуси, M - хвилини, S - секунди) Широта Довгота ГГГ.ГГГГГ @@ -785,7 +785,7 @@ Взаємозберігайте треки та звуко/відео-примітки з вашим обліковим записом Dropbox. Втулок Dropbox Змінити порядок - Будьте повним молодчиком та сплатіть втулок \"Поземистості\", щоб підтримати його розвиток. + Будь ласка, зверніть увагу на оплату втулка \"Поземистості\" для підтримки подальшого розвитку. Втулок \'Поземистості\' Запис відео Запис аудіо @@ -826,7 +826,7 @@ \nВсесвітні дані (між 70° на півночі і 70° на півдні) базуються на вимірюваннях SRTM (Shuttle Radar Topography Mission) і ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), даних інструменту відмальовуванню Terra, флагманського супутника системи спостереження Землі від NASA. ASTER — це підсумок спільної роботи NASA, міністерства економіки Японії, міністерства торгівлі і промисловості Японії (METI), агенції космічних систем Японії (J-spacesystems). Вимірювання відстаней Звукопримітки - Зробіть звуко/світлино/відео примітки під час подорожі, використовуючи або кнопку мапи, або безпосередньо з контекстного меню для будь-якої позиції на мапі. + Зробіть звуко/світлино/відео примітки під час подорожі, використовуючи або кнопку мапи, або контекстне меню розташування. Звуко/відео-примітки частин Поземистості @@ -1002,7 +1002,7 @@ Файл змін OSM створений в %1$s Знаряддя підрахунку відстані і планування Виберіть місто або вулицю - Створіть шляхи, натиснувши мапу або використовуючи чи змінюючи наявні файли GPX, щоб спланувати поїздку і виміряти відстань між пунктами. Крім того, збережіть як файл GPX, щоб пізніше використовувати його для посібництва. + Створіть треки, натиснувши мапу або використовуючи чи змінюючи наявні файли GPX, щоб спланувати поїздку і виміряти відстань між пунктами. Підсумок може бути збережений як файл GPX, щоб пізніше використовувати його для посібництва. Виміряти нову ділянку Поземистості Встановити як пункт призначення @@ -1015,7 +1015,7 @@ Використовувати магнітометр для визначення сторін світу замість датчика орієнтації. Пункт призначення %1$s Тип фокусування камери - Виберіть режим фокусу вбудованного додатку для світлинознімків: + Режим фокусу камери: Самофокус Макро-режим фокусування (крупний план) Постійне фокусування @@ -1023,7 +1023,7 @@ Збільшення глибини різкості Фокус встановлюється на нескінченність Відтворювати звук затвору камери - Під час світлинознімання відтворювати звук. + Під час знімкування відтворювати звук. Всі локальні дані зі старого встановленого додатку будуть підтримуватися новим, але Закладки потрібно експортувати зі старого додатку та імпортувати в новий. Обмеження швидкості Камери детектування швидкості @@ -1226,7 +1226,7 @@ Надавати перевагу автомагістралям Без платних доріг Уникати платних доріг - Лише асфальтовані дороги + Лише неасфальтовані дороги Уникати ґрунтових доріг Без поромних переправ Уникати поромних переправ @@ -1500,7 +1500,7 @@ Пошук Показати опис. Повідомлення - Завантажені дані A-GPS востаннє: %1$s + Завантажені дані A-GPS: %1$s У багатьох країнах (Німеччина, Франція, Італія та інші) використання детекторів камер контролю швидкості не дозволено законом. OsmAnd не несе ніякої відповідальності, якщо Ви порушите закон. Будь ласка, натисніть кнопку „Так“, тільки якщо ви маєте право використовувати цю функцію. Завантаження мап Щоб правильно показувати дорожні знаки та правила дорожнього руху, будь ласка, виберіть ваш регіон: @@ -1521,7 +1521,7 @@ \n \nВін також має спеціальні налаштування для показу веломаршрутів та гірських туристичних маршрутів. \n -\nВін не потребує завантаження окремих мап, вид створюється на основі інформації зі стандартної мапи. +\nВін не потребує завантаження окремих мап, вид створюється на основі відомостей з усталеної мапи. \n \nЦей вид можна де-активувати тут або змінити на інший, змінивши „Стиль мапи“ на потрібний в „Налаштування мапи“. Втулок забезпечує вам доступ до даних про гірськолижні траси, маршрути для бігових лиж, гірськолижні спуски, фунікулери та підйомники. Маршрути і спуски відзначені різними кольорами залежно від їх складності та зображені з використанням спеціального „зимового“ стилю мапи, який полягає в тому, що використовуються „снігові“ кольори зимового пейзажу. @@ -1963,9 +1963,9 @@ Передплата дозволяє щогодини отримувати оновлення для мап по всьому світу. \nЧастина від передплати переводиться спільноті OSM та виплачується кожному землеписцю за його внесок. \nЯкщо Вам подобається OsmAnd та OSM, і хочете підтримати і бути підтриманими ними, це ідеальний спосіб зробити це. - Надішліть вашу OSM-примітку таємно, або скориставшись обліковим записом на OpenStreetMap.org. + Надішліть вашу OSM-примітку таємно, або скориставшись обліковим записом на OSM.org. Надіслати нотатку в OSM - Спершу видаліть усі неприпустимі знаки з імені файлу + Ім\'я файлу містить неприпустимі знаки Слідкуйте за нами Звукова ідентифікація напрямку Ініціювати звуком напрям на цільову точку. @@ -2043,7 +2043,7 @@ Введіть назву для нового фільтра. Ви зможете його знайти у списку категорій. Абонентська плата стягується щомісячно. Скасувати підписку можна в Google Play у будь-який момент. Пожертва для спільноти OSM - Частина вашого пожертвування надсилається до OSM-землеписців. Вартість передплати залишається однаковою. + Частина вашого пожертвування надсилається до OSM-вкладників. Вартість передплати залишається однаковою. Підписка включає в себе щогодинні, щоденні і щотижневі оновлення, а також необмежену кількість доступних завантажень для усіх мап з усього світу. Отримати Отримати на %1$s @@ -2141,7 +2141,7 @@ Змінити положення кнопки Назва дії Показати діалог Закладок - Кнопка, щоб показати або сховати \"Закладки\" на мапі. + Перемикач, щоб показати або сховати \"Закладки\" на мапі. Файл не може бути переміщений. Перемістити Треки @@ -2171,7 +2171,7 @@ Приглушити голос Швидку дію перейменовано на %1$s, щоб уникнути дублювання. Виявлено дублікат імені - Кнопка для показу або приховування POI на мапі. + Перемикач для показу або приховування POI на мапі. Виберіть категорію (за бажанням). Кнопка для перегляду списку нижче. Змінити мапу покриття @@ -2191,15 +2191,15 @@ Нова відеонотатка Нова світлино-примітка Найменування - Натиснувши на цю кнопку додасть позначку мапи всередині екрану. + Кнопка для додавання маркера мапи в центрі екрану. Натискання на цю кнопку додасть маршрутну точку GPX посередині екрану. Натискання цієї кнопки додає авдіопримітку посередині екрану. Натискання цієї кнопки додає відеопримітку посередині екрану. Натискання цієї кнопки додає світлинопримітку посередині екрану. Натискання цієї кнопки додає OSM-примітку посередині екрану. Натискання цієї кнопки додає POI посередині екрану. - Кнопка що вмикає/вимикає голосові вказівки під час навігації. - Ця кнопка додає місце для паркування посередині екрану. + Перемикач, щоб вимкнути або увімкнути голосові підказки під час навігації. + Кнопка для додавання місця паркування посередині екрана. Показати проміжний діалог " збережено до " Створення елементів @@ -2237,7 +2237,7 @@ Показати/приховати OSM-примітки Показати OSM-примітки Приховати OSM-примітки - Натискання на кнопку дії відобразить чи приховає OSM-примітки на мапі. + Натискання на кнопку дії покаже чи приховає OSM-примітки на мапі. Відсортоване за відстанню Пошук у закладках Для того, щоб відобразити затінення рельєфу, потрібно завантажити спеціальну мапу для цієї області. @@ -2264,16 +2264,16 @@ Виберіть місто Виберіть поштовий індекс Автомасштаб мапи вкл/викл - Натискання на кнопку дії увімкне чи вимкне самомасштабування мапи за швидкістю. + Кнопка для увімкнення або вимкнення самочинного наближення при збільшеній швидкості Увімкнути самомасштабування мапи Вимкнути самомасштабування мапи Установити місце призначення Замінити пункт призначення Додати першу проміжну точку - Натискання на кнопку дії додасть пункт призначення в центр екрану, раніше встановлений пункт призначення стає останнім проміжним пунктом. - Натискання на кнопку дії встановить пункт відправлення в центр екрану та прокладе шлях до раніше обраного пункту призначення або відкриє діалог для вибору пункту призначення якщо він відсутній на мапі. - Натискання на кнопку дії встановить пункт призначення в центр екрану, замінивши раніше обраний пункт призначення (якщо такий був заданий). - Натискання на кнопку дії додасть в центр екрану першу проміжну точку маршруту. + Кнопка, щоб центрувати екран на пункті призначення, раніше вибране місце призначення стане останнім проміжним пунктом призначення. + Кнопка, щоб зробити центр екрану точкою відправлення. Потім буде запропоновано встановити місце призначення або запустити розрахунок маршруту. + Кнопка, щоб перетворити середину екрану на нове місце призначення маршруту, замінивши раніше вибране місце призначення (якщо воно є). + Кнопка, щоб зробити центр екрану першим проміжним пунктом призначення. Мапа покриття вимкнена Підкладка вимкнена Помилка @@ -2432,7 +2432,7 @@ Тут нема світлин. Відкрити Mapillary Встановити - Поліпшити фото-покриття Mapillary + Поліпшити фотопокриття Mapillary Встановіть Mapillary, щоб додати одну або кілька світлин до цього місця на мапі. Зображення Mapillary Відстань виправлена @@ -2887,7 +2887,7 @@ Проміжна точка Пересадки Пішки - Шлях + Трек Громадський транспорт Симулювати навігацію Голосові оголошення @@ -3010,7 +3010,7 @@ Оберіть дорогу, яку ви хочете уникати при навігації, або на мапі, або зі списку нижче: Показувати поруч з маршрутом Оберіть файл треку для слідування - Кнопка для перемикання режимів дня та ночі для OsmAnd. + Перемикач для режимів дня та ночі OsmAnd. Ви використовуєте {0} мапу, надану OsmAnd. Хочете запустити повну версію OsmAnd\? Без мостових та бруківки Уникати мостові та бруківку @@ -3263,7 +3263,7 @@ Код Open Location Обраний формат буде застосовано у всьому додатку. Це налаштування вибране типовим для профілів: %s - Мапа на екрані блокування під час навігації. + Показати мапу на екрані блокування під час навігації. Налаштування для маршрутизації у вибраному профілі: %1$s. Час пробудження Попередження відображаються внизу зліва під час навігації. @@ -3273,7 +3273,7 @@ Буфер logcat Налаштування втулка Усталено - Розраховує час прибуття для невідомих типів доріг і обмежує швидкість для всіх доріг (може змінити маршрут) + Розраховує час прибуття для невідомих типів доріг і обмежує швидкість для всіх доріг (може вплинути на маршрутизацію) Завантажте детальну карту %s, щоб переглянути цю область. Перемістити файли даних OsmAnd до нового місця призначення\? \n%1$s > %2$s @@ -3352,7 +3352,7 @@ Цю зміну можна застосувати до всіх або лише до виділеного профілю. Спільний Надавати перевагу ґрунтовим дорогам - Маршрут по місцевості без дорожнього покриття. + Надати перевагу незаасфальтованим над асфальтованими дорогами для прокладки. Правки OSM Кнопка, що показує чи приховує контурні лінії на мапі. Показати контурні лінії @@ -3385,7 +3385,7 @@ Керуйте спливаючими вікнами, діалогами та сповіщеннями. Вузлові мережі Пропоновані мапи - Ці мапи потрібно використовувати з втулком. + Ці мапи потрібно використовувати з утулком. Додані профілі Профілі, додані втулком Вимкнути @@ -3402,18 +3402,18 @@ Для пустель та інших малонаселених ділянок. Більше докладностей. Образок навігації Образок мапи - Натиснувши \"Застосувати\", видалить усі профілі назавжди. + Натиснення \"Застосувати\" видалить профілі назавжди. Основний профіль Оберіть барву - Профілі OsmAnd можна перемістити донизу, але не видалити. Поверніться, щоб видалити їх. + Усталені профілі OsmAnd не видалено, проте вимкнуто (на попередньому екрані) чи відпорядковано донизу. Редагувати профілі - \"Вид навігації\" впливає на правила обчислення маршруту. + \"Вид навігації\" визначає спосіб обчислення маршрутів. Зовнішній вигляд профілю Образок, барва та назва Редагувати список профілів Вибраний профіль - Натиснувши %1$s, ви втратите всі свої зміни. - Усі налаштування профілю повернуться до усталених. + Торкніться %1$S, щоб відхилити всі зміни. + Скиньте всі параметри профілю до усталено встановлених. Скинути всі налаштування профілю\? %1$s: %2$s %1$s %2$s @@ -3445,4 +3445,32 @@ Образок мапи відображається лише на мапі. Перевіряти та обмінюватися докладними часописами додатку Не вдалося розібрати метод \'%s\'. + Для використання цього параметра потрібен дозвіл. + Це низькошвидкісний відсічний фільтр, щоб не записувати точки нижче певної швидкості. Це може призвести до плавнішого вигляду записаних треків при перегляді на мапі. + Побічний вплив: у вашому треці будуть відсутні всі ділянки, де не було дотримано критерій найменшої швидкості (наприклад, коли ви підштовхуєте велосипед до крутого пагорба). Також не буде відомостей про проміжки спокою, як-от перерви. Це впливає на будь-який аналіз або після обробки, як, наприклад, при спробі визначити загальну тривалість вашої поїздки, час у русі або середню швидкість. + Порада: Спробуйте спочатку скористатись виявленням руху через фільтр найменшого переміщення (B), який може здійснюватись, це може принести кращі наслідки, і ви втратите менше даних. Якщо ваші треки залишаються занадто шумними на низькій швидкості, спробуйте тут ненульові значення. Зауважте, що деякі вимірювання можуть взагалі не повідомляти про значення швидкості (деякі мережеві методи), і в цьому випадку ви нічого не записуєте. + Зауваження: швидкість > 0 перевірка: Більшість наборів чіпів GPS повідомляють про значення швидкості, лише якщо алгоритм визначає, що ви перебуваєте в русі, і жоден, якщо ви цього не робите. Отже, використовуючи налаштування> 0 у цьому фільтрі, в деякому сенсі використовується виявлення руху GPS-чіпсета. Але навіть якщо не фільтровано під час запису, ми все одно використовуємо цю функцію в нашому аналізі GPX для визначення виправленої відстані, тобто значення, що відображається в цьому полі, - це відстань, записана під час руху. + Записує лише значення, виміряні з найменшою точністю (у метрах/футах, як повідомляє Android до вашого чіпсета). Точність стосується розсіювання повторних вимірювань і не пов\'язана безпосередньо з точністю, яка визначає, наскільки близькі ваші вимірювання до вашого справжнього положення. + Побічний вплив: внаслідок фільтрації на точність, значення можуть бути повністю відсутні, наприклад, під мостами, під деревами, між високих будинків, або при певних погодних умовах. + Порада: Важко передбачити, що буде записано, а що ні, можливо, найкраще вимкнути цей фільтр. + Зауваження: Якщо GPS був вимкнений безпосередньо перед записом, перша вимірювана точка може мати знижену точність, тому в нашому коді ми можемо зачекати секунду або близько того, перш ніж записати точку (або записати найкраще з 3-х підрядних точок тощо), але це ще не реалізовано. + Цей фільтр уникає повторюваних точок, які записуються, де занадто мало фактичний рух може статися, робить краще просторовий вигляд композицій, не післяоброблених пізніше. + Побічні впливи: проміжки спокою не реєструються взагалі або лише по одній миті. Невеликі (справжні) рухи (наприклад, збоку, щоб позначити можливий поворот у вашій поїздці) можуть бути відфільтровані. Ваш файл містить менше відомостей для післяобробки та має гіршу статистику, фільтруючи очевидно зайві точки під час запису, при цьому потенційно зберігаючи артефакти, спричинені поганими впливами прийому чи GPS-чіпсетами. + Порада. Налаштування в 5 метрів може вам знадобитися, якщо вам не потрібно буде фіксувати деталі тонкіші, ніж це, і якщо Ви не хочете явно фіксувати дані, перебуваючи в стані спокою. + Буфер часу + Проміжок відстеження + Вебадреса + Вкажіть веб-адресу з наступними параметрами: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}. + Сповіщення + Найменша швидкість + Найменша точність + Найменше зміщення + Меню - Мої місця - Треки + Меню — Мої місця — Примітки + Меню — Мої місця — OSM правки + Скинути налаштування втулка до усталених + Розділений записувач + Використовувати системний додаток + Звук затвору камери + Авторизація пройшла успішно \ No newline at end of file diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 7476012d4d..b872d7bc36 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -24,7 +24,7 @@ Recommendation: It is hard to predict what will be recorded and what not, it may be best to turn this filter off. Remark: If GPS had been off immediately before a recording, the first point measured may have a decreased accuracy,so in our code we may want to wait a second or so before recording a point (or record the best of 3 consecutive points, etc.), but this is not yet implemented. This filter avoids duplicate points being recorded where too little actual motion may have occurred, makes a nicer spatial appearance of tracks not post-processed later. - Side effects: Periods at rest are not recorded at all or by just one point each. Small (real world) movements (e.g. sideways, to mark a possile turnoff on your trip) may be filtered out. Your file contains less information for post-processing, and has worse stats by filtering out obviously redundant points at recording time, while potentially keeping artifacts caused by bad reception or GPS chipset effects. + Side effects: Periods at rest are not recorded at all or by just one point each. Small (real world) movements (e.g. sideways, to mark a possible turnoff on your trip) may be filtered out. Your file contains less information for post-processing, and has worse stats by filtering out obviously redundant points at recording time, while potentially keeping artifacts caused by bad reception or GPS chipset effects. Recommendation: A setting of 5 meters may work well for you if you do not require to capture details finer than that, and do not want to explicitly capture data while at rest. Time buffer Tracking interval @@ -63,15 +63,15 @@ OSM editing View your edits or OSM bugs not yet uploaded in %1$s. Uploaded points will not show any more. OSM - Icon only shown while navigating or moving. - Map icon only shown on the map. + Icon shown while navigating or moving. + Icon shown at rest. %1$s %2$s %1$s: %2$s Tapping %1$s will discard all your changes. Reset all profile settings to installation defaults. Reset all profile settings? - Navigation icon - Map icon + Position icon while moving + Position icon at rest Tapping \'Apply\' deletes removed profiles permanently. Master profile Select color diff --git a/OsmAnd/src/net/osmand/data/FavouritePoint.java b/OsmAnd/src/net/osmand/data/FavouritePoint.java index 72508c4d87..5a9e38706c 100644 --- a/OsmAnd/src/net/osmand/data/FavouritePoint.java +++ b/OsmAnd/src/net/osmand/data/FavouritePoint.java @@ -19,12 +19,11 @@ public class FavouritePoint implements Serializable, LocationPoint { private static final String HIDDEN = "hidden"; private static final String ADDRESS_EXTENSION = "address"; - - protected String name = ""; protected String description; protected String category = ""; protected String address = ""; + protected int iconId; private String originObjectName = ""; private double latitude; private double longitude; @@ -56,6 +55,7 @@ public class FavouritePoint implements Serializable, LocationPoint { this.visible = favouritePoint.visible; this.originObjectName = favouritePoint.originObjectName; this.address = favouritePoint.address; + this.iconId = favouritePoint.iconId; initPersonalType(); } @@ -89,6 +89,18 @@ public class FavouritePoint implements Serializable, LocationPoint { return !Algorithms.isEmpty(address); } + public int getIconId() { + return iconId; + } + + public void setIconId(int iconId) { + this.iconId = iconId; + } + + public void setIconIdFromName(Context ctx, String iconName) { + this.iconId = ctx.getResources().getIdentifier("mx_" + iconName, "drawable", ctx.getPackageName()); + } + public boolean isSpecialPoint() { return specialPointType != null; } @@ -122,7 +134,7 @@ public class FavouritePoint implements Serializable, LocationPoint { if (isSpecialPoint()) { return specialPointType.getIconId(); } - return 0; + return iconId; } public double getLatitude() { @@ -237,9 +249,9 @@ public class FavouritePoint implements Serializable, LocationPoint { public enum SpecialPointType { - HOME("home", R.string.home_button, R.drawable.ic_action_home_dark), - WORK("work", R.string.work_button, R.drawable.ic_action_work), - PARKING("parking", R.string.map_widget_parking, R.drawable.ic_action_parking_dark); + HOME("home", R.string.home_button, R.drawable.mx_special_house), + WORK("work", R.string.work_button, R.drawable.mx_special_building), + PARKING("parking", R.string.map_widget_parking, R.drawable.mx_parking); private String typeName; @StringRes @@ -269,7 +281,7 @@ public class FavouritePoint implements Serializable, LocationPoint { } - public static FavouritePoint fromWpt(@NonNull WptPt pt) { + public static FavouritePoint fromWpt(@NonNull WptPt pt, @NonNull Context ctx) { String name = pt.name; String categoryName = pt.category != null ? pt.category : ""; if (name == null) { @@ -284,10 +296,14 @@ public class FavouritePoint implements Serializable, LocationPoint { fp.setColor(pt.getColor(0)); fp.setVisible(!pt.getExtensionsToRead().containsKey(HIDDEN)); fp.setAddress(pt.getExtensionsToRead().get(ADDRESS_EXTENSION)); + String iconName = pt.getIconName(); + if (iconName != null) { + fp.setIconIdFromName(ctx, iconName); + } return fp; } - public WptPt toWpt() { + public WptPt toWpt(@NonNull Context ctx) { WptPt pt = new WptPt(); pt.lat = getLatitude(); pt.lon = getLongitude(); @@ -297,6 +313,9 @@ public class FavouritePoint implements Serializable, LocationPoint { if (isAddressSpecified()) { pt.getExtensionsToWrite().put(ADDRESS_EXTENSION, getAddress()); } + if (iconId != 0) { + pt.setIconName(ctx.getResources().getResourceEntryName(iconId).substring(3)); + } if (getColor() != 0) { pt.setColor(getColor()); } diff --git a/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java b/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java index 5c3007a80e..5e03643b09 100644 --- a/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java +++ b/OsmAnd/src/net/osmand/plus/FavouritesDbHelper.java @@ -3,6 +3,7 @@ package net.osmand.plus; import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v4.content.ContextCompat; import android.support.v7.app.AlertDialog; import net.osmand.GPXUtilities; @@ -271,10 +272,12 @@ public class FavouritesDbHelper { public void setSpecialPoint(@NonNull LatLon latLon, FavouritePoint.SpecialPointType specialType, @Nullable String address) { FavouritePoint point = getSpecialPoint(specialType); if (point != null) { + point.setIconId(specialType.getIconId()); editFavourite(point, latLon.getLatitude(), latLon.getLongitude(), address); } else { point = new FavouritePoint(latLon.getLatitude(), latLon.getLongitude(), specialType.getName(), specialType.getCategory()); point.setAddress(address); + point.setIconId(specialType.getIconId()); addFavourite(point); } } @@ -295,7 +298,11 @@ public class FavouritesDbHelper { if (!p.getName().equals("")) { p.setVisible(group.visible); - p.setColor(group.color); + if (FavouritePoint.SpecialPointType.PARKING.equals(p.getSpecialPointType())) { + p.setColor(ContextCompat.getColor(context, R.color.map_widget_blue)); + } else { + p.setColor(group.color); + } group.points.add(p); cachedFavoritePoints.add(p); } @@ -429,7 +436,11 @@ public class FavouritesDbHelper { } FavoriteGroup pg = getOrCreateGroup(p, 0); p.setVisible(pg.visible); - p.setColor(pg.color); + if (FavouritePoint.SpecialPointType.PARKING.equals(p.getSpecialPointType())) { + p.setColor(ContextCompat.getColor(context, R.color.map_widget_blue)); + } else { + p.setColor(pg.color); + } pg.points.add(p); } sortAll(); @@ -560,6 +571,7 @@ public class FavouritesDbHelper { return GPXUtilities.writeGpxFile(f, gpx); } + public GPXFile asGpxFile() { return asGpxFile(cachedFavoritePoints); } @@ -567,7 +579,7 @@ public class FavouritesDbHelper { private GPXFile asGpxFile(List favoritePoints) { GPXFile gpx = new GPXFile(Version.getFullVersion(context)); for (FavouritePoint p : favoritePoints) { - context.getSelectedGpxHelper().addPoint(p.toWpt(), gpx); + context.getSelectedGpxHelper().addPoint(p.toWpt(context), gpx); } return gpx; } @@ -724,7 +736,7 @@ public class FavouritesDbHelper { return false; } for (WptPt p : res.getPoints()) { - FavouritePoint fp = FavouritePoint.fromWpt(p); + FavouritePoint fp = FavouritePoint.fromWpt(p, context); if (fp != null) { points.put(getKey(fp), fp); } diff --git a/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java b/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java index 57db27e9d4..d590e8a796 100644 --- a/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java +++ b/OsmAnd/src/net/osmand/plus/base/FavoriteImageDrawable.java @@ -14,13 +14,12 @@ import android.graphics.PorterDuffColorFilter; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.support.annotation.NonNull; -import android.support.v4.content.ContextCompat; import android.support.v4.content.res.ResourcesCompat; import net.osmand.GPXUtilities; import net.osmand.data.FavouritePoint; +import net.osmand.plus.OsmandApplication; import net.osmand.plus.R; -import net.osmand.plus.UiUtilities; import java.util.TreeMap; @@ -29,7 +28,7 @@ public class FavoriteImageDrawable extends Drawable { private boolean withShadow; private boolean synced; private boolean history; - private Bitmap favIcon; + private Drawable favIcon; private Bitmap favBackground; private Bitmap syncedStroke; private Bitmap syncedColor; @@ -42,7 +41,6 @@ public class FavoriteImageDrawable extends Drawable { private Paint paintInnerCircle = new Paint(); private ColorFilter colorFilter; private ColorFilter grayFilter; - private Drawable personalPointBitmap; private FavoriteImageDrawable(Context ctx, int color, boolean withShadow, boolean synced, FavouritePoint point) { this.withShadow = withShadow; @@ -50,23 +48,32 @@ public class FavoriteImageDrawable extends Drawable { Resources res = ctx.getResources(); int overlayIconId = point != null ? point.getOverlayIconId() : 0; if (overlayIconId != 0) { - personalPointBitmap = UiUtilities.tintDrawable(ResourcesCompat.getDrawable(res, overlayIconId, null), - ContextCompat.getColor(ctx, R.color.icon_color_default_light)); + favIcon = ((OsmandApplication) ctx.getApplicationContext()).getUIUtilities() + .getIcon(getMapIconId(ctx, overlayIconId), R.color.color_white); + listDrawable = ((OsmandApplication) ctx.getApplicationContext()).getUIUtilities() + .getIcon(overlayIconId, R.color.color_white); + } else { + favIcon = res.getDrawable(R.drawable.map_favorite); + listDrawable = ResourcesCompat.getDrawable(res, R.drawable.ic_action_fav_dark, null).mutate(); } int col = color == 0 || color == Color.BLACK ? res.getColor(R.color.color_favorite) : color; - favIcon = BitmapFactory.decodeResource(res, R.drawable.map_favorite); favBackground = BitmapFactory.decodeResource(res, R.drawable.map_white_favorite_shield); syncedStroke = BitmapFactory.decodeResource(res, R.drawable.map_shield_marker_point_stroke); syncedColor = BitmapFactory.decodeResource(res, R.drawable.map_shield_marker_point_color); syncedShadow = BitmapFactory.decodeResource(res, R.drawable.map_shield_marker_point_shadow); syncedIcon = BitmapFactory.decodeResource(res, R.drawable.map_marker_point_14dp); - listDrawable = ResourcesCompat.getDrawable(res, R.drawable.ic_action_fav_dark, null).mutate(); initSimplePaint(paintOuter, color == 0 || color == Color.BLACK ? 0x88555555 : color); initSimplePaint(paintInnerCircle, col); colorFilter = new PorterDuffColorFilter(col, PorterDuff.Mode.MULTIPLY); grayFilter = new PorterDuffColorFilter(res.getColor(R.color.color_favorite_gray), PorterDuff.Mode.MULTIPLY); } + private int getMapIconId(Context ctx, int iconId) { + String iconName = ctx.getResources().getResourceEntryName(iconId); + return ctx.getResources().getIdentifier(iconName + .replaceFirst("mx_", "mm_"), "drawable", ctx.getPackageName()); + } + private void initSimplePaint(Paint paint, int color) { paint.setAntiAlias(true); paint.setStyle(Style.FILL_AND_STROKE); @@ -76,14 +83,13 @@ public class FavoriteImageDrawable extends Drawable { @Override protected void onBoundsChange(Rect bounds) { super.onBoundsChange(bounds); + Rect bs = new Rect(bounds); + //bs.inset((int) (4 * density), (int) (4 * density)); + bs.inset(bs.width() / 4, bs.height() / 4); if (!withShadow && !synced) { - Rect bs = new Rect(bounds); - //bs.inset((int) (4 * density), (int) (4 * density)); - bs.inset(bs.width() / 4, bs.height() / 4); listDrawable.setBounds(bs); - if (personalPointBitmap != null) { - personalPointBitmap.setBounds(bounds); - } + } else if (withShadow) { + favIcon.setBounds(bs); } } @@ -108,9 +114,7 @@ public class FavoriteImageDrawable extends Drawable { canvas.drawBitmap(syncedIcon, bs.exactCenterX() - syncedIcon.getWidth() / 2f, bs.exactCenterY() - syncedIcon.getHeight() / 2f, paintIcon); } else if (withShadow) { canvas.drawBitmap(favBackground, bs.exactCenterX() - favBackground.getWidth() / 2f, bs.exactCenterY() - favBackground.getHeight() / 2f, paintBackground); - canvas.drawBitmap(favIcon, bs.exactCenterX() - favIcon.getWidth() / 2f, bs.exactCenterY() - favIcon.getHeight() / 2f, paintIcon); - } else if (personalPointBitmap != null) { - personalPointBitmap.draw(canvas); + favIcon.draw(canvas); } else { int min = Math.min(bs.width(), bs.height()); int r = (min * 4 / 10); @@ -149,7 +153,7 @@ public class FavoriteImageDrawable extends Drawable { private static FavoriteImageDrawable getOrCreate(Context a, int color, boolean withShadow, boolean synced, FavouritePoint point) { String pointName = ""; - if (point != null && point.isSpecialPoint()) { + if (point != null) { pointName = point.getName(); } color = color | 0xff000000; @@ -169,7 +173,7 @@ public class FavoriteImageDrawable extends Drawable { } public static FavoriteImageDrawable getOrCreate(Context a, int color, boolean withShadow, GPXUtilities.WptPt pt) { - return getOrCreate(a, color, withShadow, false, null); + return getOrCreate(a, color, withShadow, false, getFavouriteFromWpt(a, pt)); } public static FavoriteImageDrawable getOrCreateSyncedIcon(Context a, int color, FavouritePoint point) { @@ -177,6 +181,15 @@ public class FavoriteImageDrawable extends Drawable { } public static FavoriteImageDrawable getOrCreateSyncedIcon(Context a, int color, GPXUtilities.WptPt pt) { - return getOrCreate(a, color, false, true, null); + return getOrCreate(a, color, false, true, getFavouriteFromWpt(a, pt)); + } + + private static FavouritePoint getFavouriteFromWpt(Context a, GPXUtilities.WptPt pt) { + FavouritePoint point = null; + if (pt != null) { + point = new FavouritePoint(pt.getLatitude(), pt.getLongitude(), pt.name, pt.category); + point.setIconIdFromName(a, pt.getIconName()); + } + return point; } } diff --git a/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java b/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java index 8997c4069a..44adb57ca9 100644 --- a/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java +++ b/OsmAnd/src/net/osmand/plus/helpers/ImportHelper.java @@ -1053,6 +1053,7 @@ public class ImportHelper { fp.setDescription(p.desc); } fp.setColor(p.getColor(0)); + fp.setIconIdFromName(app, p.getIconName()); favourites.add(fp); } } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java index 085a9f375f..00012480a1 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/MenuController.java @@ -184,7 +184,8 @@ public abstract class MenuController extends BaseMenuController implements Colla if (object instanceof Amenity) { menuController = new AmenityMenuController(mapActivity, pointDescription, (Amenity) object); } else if (object instanceof FavouritePoint) { - if (pointDescription.isParking()) { + if (pointDescription.isParking() + || (FavouritePoint.SpecialPointType.PARKING.equals(((FavouritePoint) object).getSpecialPointType()))) { menuController = new ParkingPositionMenuController(mapActivity, pointDescription); } else { menuController = new FavouritePointMenuController(mapActivity, pointDescription, (FavouritePoint) object); diff --git a/OsmAnd/src/net/osmand/plus/parkingpoint/DashParkingFragment.java b/OsmAnd/src/net/osmand/plus/parkingpoint/DashParkingFragment.java index 393e8d7751..17dcdd61fa 100644 --- a/OsmAnd/src/net/osmand/plus/parkingpoint/DashParkingFragment.java +++ b/OsmAnd/src/net/osmand/plus/parkingpoint/DashParkingFragment.java @@ -101,7 +101,7 @@ public class DashParkingFragment extends DashLocationFragment { TextView timeLeft = (TextView) mainView.findViewById(R.id.time_left); if (limited) { - descr = getString(R.string.parking_place_limited) + " " + plugin.getFormattedTime( plugin.getParkingTime(), getActivity()); + descr = getString(R.string.parking_place_limited) + " " + plugin.getFormattedTime( plugin.getParkingTime()); long endtime = plugin.getParkingTime(); long currTime = Calendar.getInstance().getTimeInMillis(); long timeDiff = endtime - currTime; diff --git a/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionLayer.java b/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionLayer.java deleted file mode 100644 index 417f0f9be3..0000000000 --- a/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionLayer.java +++ /dev/null @@ -1,226 +0,0 @@ -package net.osmand.plus.parkingpoint; - -import android.content.Context; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.graphics.PointF; -import android.support.annotation.NonNull; -import android.support.annotation.Nullable; -import android.util.DisplayMetrics; -import android.view.WindowManager; - -import net.osmand.data.LatLon; -import net.osmand.data.PointDescription; -import net.osmand.data.RotatedTileBox; -import net.osmand.plus.R; -import net.osmand.plus.activities.MapActivity; -import net.osmand.plus.views.ContextMenuLayer; -import net.osmand.plus.views.OsmandMapLayer; -import net.osmand.plus.views.OsmandMapTileView; - -import java.util.List; - -/** - * Class represents a layer which depicts the position of the parked car - * @author Alena Fedasenka - * @see ParkingPositionPlugin - * - */ -public class ParkingPositionLayer extends OsmandMapLayer implements - ContextMenuLayer.IContextMenuProvider, ContextMenuLayer.IMoveObjectProvider { - /** - * magic number so far - */ - private static final int radius = 18; - - private DisplayMetrics dm; - - private final MapActivity map; - private OsmandMapTileView view; - - private Paint bitmapPaint; - - private Bitmap parkingNoLimitIcon; - private Bitmap parkingLimitIcon; - - private boolean timeLimit; - - private ParkingPositionPlugin plugin; - - private ContextMenuLayer contextMenuLayer; - - public ParkingPositionLayer(MapActivity map, ParkingPositionPlugin plugin) { - this.map = map; - this.plugin = plugin; - } - - public LatLon getParkingPoint() { - return plugin.getParkingPosition(); - } - - @Override - public void initLayer(OsmandMapTileView view) { - this.view = view; - dm = new DisplayMetrics(); - WindowManager wmgr = (WindowManager) view.getContext().getSystemService(Context.WINDOW_SERVICE); - wmgr.getDefaultDisplay().getMetrics(dm); - - bitmapPaint = new Paint(); - bitmapPaint.setDither(true); - bitmapPaint.setAntiAlias(true); - bitmapPaint.setFilterBitmap(true); - parkingNoLimitIcon = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_poi_parking_pos_no_limit); - parkingLimitIcon = BitmapFactory.decodeResource(view.getResources(), R.drawable.map_poi_parking_pos_limit); - timeLimit = plugin.getParkingType(); - - contextMenuLayer = view.getLayerByClass(ContextMenuLayer.class); - } - - @Override - public void onDraw(Canvas canvas, RotatedTileBox tileBox, DrawSettings nightMode) { - LatLon parkingPoint = getParkingPoint(); - boolean inMotion = parkingPoint == contextMenuLayer.getMoveableObject(); - if (parkingPoint == null) - return; - - Bitmap parkingIcon; - if (!timeLimit) { - parkingIcon = parkingNoLimitIcon; - } else { - parkingIcon = parkingLimitIcon; - } - double latitude = parkingPoint.getLatitude(); - double longitude = parkingPoint.getLongitude(); - if (isLocationVisible(tileBox, latitude, longitude) || inMotion) { - int marginX = parkingNoLimitIcon.getWidth() / 2; - int marginY = parkingNoLimitIcon.getHeight() / 2; - float locationX; - float locationY; - if (inMotion) { - PointF pf = contextMenuLayer.getMovableCenterPoint(tileBox); - locationX = pf.x; - locationY = pf.y; - } else { - locationX = tileBox.getPixXFromLonNoRot(longitude); - locationY = tileBox.getPixYFromLatNoRot(latitude); - } - canvas.rotate(-view.getRotate(), locationX, locationY); - canvas.drawBitmap(parkingIcon, locationX - marginX, locationY - marginY, bitmapPaint); - } - } - - @Override - public void destroyLayer() { - } - - @Override - public boolean drawInScreenPixels() { - return false; - } - - @Override - public boolean disableSingleTap() { - return false; - } - - @Override - public boolean disableLongPressOnMap() { - return false; - } - - @Override - public boolean isObjectClickable(Object o) { - return o == getParkingPoint(); - } - - @Override - public boolean runExclusiveAction(Object o, boolean unknownLocation) { - return false; - } - - @Override - public void collectObjectsFromPoint(PointF point, RotatedTileBox tileBox, List o, boolean unknownLocation) { - getParkingFromPoint(tileBox, point, o); - } - - @Override - public LatLon getObjectLocation(Object o) { - if(o == getParkingPoint()) { - return getParkingPoint(); - } - return null; - } - - - public String getFormattedTime(long time){ - return plugin.getFormattedTime(time, map); - } - - @Override - public PointDescription getObjectName(Object o) { - return new PointDescription(PointDescription.POINT_TYPE_PARKING_MARKER, - view.getContext().getString(R.string.osmand_parking_position_name)); - } - - public void refresh() { - if (view != null) { - view.refreshMap(); - } - } - - /** - * @param latitude - * @param longitude - * @return true if the parking point is located on a visible part of map - */ - private boolean isLocationVisible(RotatedTileBox tb, double latitude, double longitude){ - if(getParkingPoint() == null || view == null){ - return false; - } - return tb.containsLatLon(latitude, longitude); - } - - /** - * @param point - * @param parkingPosition - * is in this case not necessarily has to be a list, but it's also used in method - * collectObjectsFromPoint(PointF point, List o) - */ - private void getParkingFromPoint(RotatedTileBox tb, PointF point, List parkingPosition) { - LatLon parkingPoint = getParkingPoint(); - if (parkingPoint != null && view != null) { - int ex = (int) point.x; - int ey = (int) point.y; - LatLon position = plugin.getParkingPosition(); - int x = (int) tb.getPixXFromLatLon(position.getLatitude(), position.getLongitude()); - int y = (int) tb.getPixYFromLatLon(position.getLatitude(), position.getLongitude()); - // the width of an image is 40 px, the height is 60 px -> radius = 20, - // the position of a parking point relatively to the icon is at the center of the bottom line of the image - int rad = (int) (radius * tb.getDensity()); - if (Math.abs(x - ex) <= rad && (ey - y) <= rad && (y - ey) <= 2.5 * rad) { - parkingPosition.add(parkingPoint); - } - } - } - - - @Override - public boolean isObjectMovable(Object o) { - return o == getParkingPoint(); - } - - @Override - public void applyNewObjectPosition(@NonNull Object o, @NonNull LatLon position, - @Nullable ContextMenuLayer.ApplyMovedObjectCallback callback) { - boolean result = false; - if (o == getParkingPoint()) { - plugin.setParkingPosition(position.getLatitude(), position.getLongitude()); - result = true; - } - if (callback != null) { - callback.onApplyMovedObject(result, getParkingPoint()); - } - } -} diff --git a/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionPlugin.java b/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionPlugin.java index 2e068d9cb8..b7c3759003 100644 --- a/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionPlugin.java +++ b/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingPositionPlugin.java @@ -17,6 +17,7 @@ import android.widget.TimePicker; import net.osmand.data.FavouritePoint; import net.osmand.data.LatLon; +import net.osmand.data.PointDescription; import net.osmand.plus.ApplicationMode; import net.osmand.plus.ContextMenuAdapter; import net.osmand.plus.ContextMenuAdapter.ItemClickListener; @@ -31,7 +32,6 @@ import net.osmand.plus.UiUtilities; import net.osmand.plus.activities.MapActivity; import net.osmand.plus.dashboard.tools.DashFragmentData; import net.osmand.plus.mapcontextmenu.MapContextMenu; -import net.osmand.plus.settings.BaseSettingsFragment; import net.osmand.plus.views.AnimateDraggingMapThread; import net.osmand.plus.views.MapInfoLayer; import net.osmand.plus.views.OsmandMapLayer.DrawSettings; @@ -62,10 +62,9 @@ public class ParkingPositionPlugin extends OsmandPlugin { // Constants for determining the order of items in the additional actions context menu private static final int MARK_AS_PARKING_POS_ITEM_ORDER = 10500; - private LatLon parkingPosition; - private OsmandApplication app; + private LatLon parkingPosition; + private OsmandApplication app; - private ParkingPositionLayer parkingLayer; private TextInfoWidget parkingPlaceControl; private final CommonPreference parkingLat; private final CommonPreference parkingLon; @@ -84,13 +83,12 @@ public class ParkingPositionPlugin extends OsmandPlugin { parkingEvent = set.registerBooleanPreference(PARKING_EVENT_ADDED, false).makeGlobal(); parkingTime = set.registerLongPreference(PARKING_TIME, -1).makeGlobal(); parkingStartTime = set.registerLongPreference(PARKING_START_TIME, -1).makeGlobal(); - parkingPosition = constructParkingPosition(); + parkingPosition = constructParkingPosition(); } - - public LatLon getParkingPosition() { - return parkingPosition; - } + public LatLon getParkingPosition() { + return parkingPosition; + } public LatLon constructParkingPosition() { float lat = parkingLat.get(); @@ -128,7 +126,7 @@ public class ParkingPositionPlugin extends OsmandPlugin { parkingTime.resetToDefault(); parkingEvent.resetToDefault(); parkingStartTime.resetToDefault(); - parkingPosition = null; + parkingPosition = null; return true; } @@ -188,29 +186,16 @@ public class ParkingPositionPlugin extends OsmandPlugin { @Override public void registerLayers(MapActivity activity) { - // remove old if existing after turn - if(parkingLayer != null) { - activity.getMapView().removeLayer(parkingLayer); - } - parkingLayer = new ParkingPositionLayer(activity, this); - activity.getMapView().addLayer(parkingLayer, 5.5f); registerWidget(activity); } @Override public void updateLayers(OsmandMapTileView mapView, MapActivity activity) { if (isActive()) { - if (parkingLayer == null) { - registerLayers(activity); - } if (parkingPlaceControl == null) { registerWidget(activity); } } else { - if (parkingLayer != null) { - activity.getMapView().removeLayer(parkingLayer); - parkingLayer = null; - } MapInfoLayer mapInfoLayer = activity.getMapLayers().getMapInfoLayer(); if (mapInfoLayer != null && parkingPlaceControl != null) { mapInfoLayer.removeSideWidget(parkingPlaceControl); @@ -270,16 +255,18 @@ public class ParkingPositionPlugin extends OsmandPlugin { } void showContextMenuIfNeeded(final MapActivity mapActivity, boolean animated) { - if (parkingLayer != null) { - MapContextMenu menu = mapActivity.getContextMenu(); - if (menu.isVisible()) { - menu.hide(animated); - menu.show(new LatLon(parkingPosition.getLatitude(), parkingPosition.getLongitude()), - parkingLayer.getObjectName(parkingPosition), parkingPosition); - } + MapContextMenu menu = mapActivity.getContextMenu(); + if (menu.isVisible()) { + menu.hide(animated); + menu.show(new LatLon(parkingPosition.getLatitude(), parkingPosition.getLongitude()), + getObjectName(parkingPosition), parkingPosition); } } + public PointDescription getObjectName(Object o) { + return new PointDescription(PointDescription.POINT_TYPE_PARKING_MARKER, + app.getString(R.string.osmand_parking_position_name)); + } /** * Method creates confirmation dialog for deletion of a parking location. */ @@ -336,25 +323,25 @@ public class ParkingPositionPlugin extends OsmandPlugin { @Override public void onTimeChanged(TimePicker timePicker, int hourOfDay, int minute) { - if (mIgnoreEvent) { - return; - } - if (minute % TIME_PICKER_INTERVAL != 0) { - int minuteFloor = minute - (minute % TIME_PICKER_INTERVAL); - minute = minuteFloor + (minute == minuteFloor + 1 ? TIME_PICKER_INTERVAL : 0); - if (minute == 60) { - minute = 0; - } - mIgnoreEvent = true; - timePicker.setCurrentMinute(minute); - mIgnoreEvent = false; - } - long timeInMillis = cal.getTimeInMillis() + hourOfDay * 60 * 60 * 1000 + minute * 60 * 1000; - textView.setText(mapActivity.getString(R.string.osmand_parking_position_description_add) - + " " + parkingLayer.getFormattedTime(timeInMillis)); + if (mIgnoreEvent) { + return; + } + if (minute % TIME_PICKER_INTERVAL != 0) { + int minuteFloor = minute - (minute % TIME_PICKER_INTERVAL); + minute = minuteFloor + (minute == minuteFloor + 1 ? TIME_PICKER_INTERVAL : 0); + if (minute == 60) { + minute = 0; + } + mIgnoreEvent = true; + timePicker.setCurrentMinute(minute); + mIgnoreEvent = false; + } + long timeInMillis = cal.getTimeInMillis() + hourOfDay * 60 * 60 * 1000 + minute * 60 * 1000; + textView.setText(mapActivity.getString(R.string.osmand_parking_position_description_add) + + " " + getFormattedTime(timeInMillis)); - } - }); + } + }); //to set the same 24-hour or 12-hour mode as it is set in the device @@ -421,24 +408,17 @@ public class ParkingPositionPlugin extends OsmandPlugin { /** * Method sets a parking point on a ParkingLayer. - * @param mapActivity * @param latitude * @param longitude * @param isLimited */ - void setParkingPosition(final MapActivity mapActivity, final double latitude, final double longitude, boolean isLimited) { + void setParkingPosition(final double latitude, final double longitude, boolean isLimited) { setParkingPosition(latitude, longitude); setParkingType(isLimited); setParkingStartTime(Calendar.getInstance().getTimeInMillis()); - if (parkingLayer != null) { - parkingLayer.refresh(); - } } private void cancelParking() { - if (parkingLayer != null) { - parkingLayer.refresh(); - } clearParkingPosition(); } @@ -455,8 +435,7 @@ public class ParkingPositionPlugin extends OsmandPlugin { @Override public boolean updateInfo(DrawSettings drawSettings) { - if (parkingLayer != null) { - LatLon parkingPoint = parkingLayer.getParkingPoint(); + LatLon parkingPoint = getParkingPosition(); if (parkingPoint != null && !map.getRoutingHelper().isFollowingMode()) { OsmandMapTileView view = map.getMapView(); int d = 0; @@ -485,7 +464,6 @@ public class ParkingPositionPlugin extends OsmandPlugin { setText(null, null); return true; } - } return false; } @@ -529,7 +507,7 @@ public class ParkingPositionPlugin extends OsmandPlugin { return R.drawable.ic_action_parking_dark; } - String getFormattedTime(long timeInMillis, Activity ctx) { + String getFormattedTime(long timeInMillis) { StringBuilder timeStringBuilder = new StringBuilder(); Time time = new Time(); time.set(timeInMillis); @@ -537,8 +515,8 @@ public class ParkingPositionPlugin extends OsmandPlugin { timeStringBuilder.append(":"); int minute = time.minute; timeStringBuilder.append(minute < 10 ? "0" + minute : minute); - if (!DateFormat.is24HourFormat(ctx)) { - timeStringBuilder.append(time.hour >= 12 ? ctx.getString(R.string.osmand_parking_pm) : ctx + if (!DateFormat.is24HourFormat(app)) { + timeStringBuilder.append(time.hour >= 12 ? app.getString(R.string.osmand_parking_pm) : app .getString(R.string.osmand_parking_am)); } return timeStringBuilder.toString(); @@ -574,7 +552,7 @@ public class ParkingPositionPlugin extends OsmandPlugin { if (getParkingType()) { title.append(ctx.getString(R.string.pick_up_till)).append(" "); long endTime = getParkingTime(); - title.append(getFormattedTime(endTime, ctx)); + title.append(getFormattedTime(endTime)); } else { title.append(ctx.getString(R.string.osmand_parking_position_name)); } @@ -583,7 +561,7 @@ public class ParkingPositionPlugin extends OsmandPlugin { public String getParkingStartDesc(Activity ctx) { StringBuilder parkingStartDesc = new StringBuilder(); - String startTime = getFormattedTime(getStartParkingTime(), ctx); + String startTime = getFormattedTime(getStartParkingTime()); if (getParkingType()) { parkingStartDesc.append(ctx.getString(R.string.osmand_parking_position_name)); parkingStartDesc.append(", "); @@ -618,7 +596,7 @@ public class ParkingPositionPlugin extends OsmandPlugin { public String getParkingDescription(Activity ctx) { StringBuilder timeLimitDesc = new StringBuilder(); timeLimitDesc.append(ctx.getString(R.string.osmand_parking_position_description_add_time) + " "); - timeLimitDesc.append(getFormattedTime(getStartParkingTime(), ctx) + "."); + timeLimitDesc.append(getFormattedTime(getStartParkingTime()) + "."); if (getParkingType()) { // long parkingTime = settings.getParkingTime(); // long parkingStartTime = settings.getStartParkingTime(); @@ -634,7 +612,7 @@ public class ParkingPositionPlugin extends OsmandPlugin { // map.getString(R.string.osmand_parking_am)); // } timeLimitDesc.append(ctx.getString(R.string.osmand_parking_position_description_add) + " "); - timeLimitDesc.append(getFormattedTime(getParkingTime(),ctx)); + timeLimitDesc.append(getFormattedTime(getParkingTime())); } return ctx.getString(R.string.osmand_parking_position_description, timeLimitDesc.toString()); } diff --git a/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingTypeBottomSheetDialogFragment.java b/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingTypeBottomSheetDialogFragment.java index 58ca3422f6..6c48241ec6 100644 --- a/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingTypeBottomSheetDialogFragment.java +++ b/OsmAnd/src/net/osmand/plus/parkingpoint/ParkingTypeBottomSheetDialogFragment.java @@ -64,12 +64,12 @@ public class ParkingTypeBottomSheetDialogFragment extends MenuBottomSheetDialogF plugin.showDeleteEventWarning(mapActivity); } if (limited) { - plugin.setParkingPosition(mapActivity, latitude, longitude, true); + plugin.setParkingPosition(latitude, longitude, true); plugin.showSetTimeLimitDialog(mapActivity, new Dialog(getContext())); mapActivity.refreshMap(); } else { plugin.addOrRemoveParkingEvent(false); - plugin.setParkingPosition(mapActivity, latitude, longitude, false); + plugin.setParkingPosition(latitude, longitude, false); plugin.showContextMenuIfNeeded(mapActivity, true); mapActivity.refreshMap(); }