Merge branch 'master' into plan_route_start

This commit is contained in:
Dima-1 2020-07-24 18:43:51 +03:00
commit d79c1c129c
31 changed files with 613 additions and 333 deletions

View file

@ -56,7 +56,8 @@ public class RoutePlannerFrontEnd {
public int routeCalculations = 0;
public int routePointsSearched = 0;
public int routeDistCalculations = 0;
public List<RouteSegmentResult> res = new ArrayList<RouteSegmentResult>();
public List<GpxPoint> finalPoints = new ArrayList<GpxPoint>();
public List<RouteSegmentResult> result = new ArrayList<RouteSegmentResult>();
public int routeDistance;
public int routeGapDistance;
public int routeDistanceUnmatched;
@ -72,21 +73,21 @@ public class RoutePlannerFrontEnd {
}
public double distFromLastPoint(LatLon startPoint) {
if(res.size() > 0) {
if (result.size() > 0) {
return MapUtils.getDistance(getLastPoint(), startPoint);
}
return 0;
}
public LatLon getLastPoint() {
if(res.size() > 0) {
return res.get(res.size() - 1).getEndPoint();
if (result.size() > 0) {
return result.get(result.size() - 1).getEndPoint();
}
return null;
}
}
private static class GpxPoint {
public static class GpxPoint {
public int ind;
public LatLon loc;
public double cumDist;
@ -94,6 +95,7 @@ public class RoutePlannerFrontEnd {
public List<RouteSegmentResult> routeToTarget;
public List<RouteSegmentResult> stepBackRoute;
public int targetInd = -1;
public boolean straightLine = false;
}
public RoutingContext buildRoutingContext(RoutingConfiguration config, NativeLibrary nativeLibrary, BinaryMapIndexReader[] map, RouteCalculationMode rm) {
@ -285,8 +287,8 @@ public class RoutePlannerFrontEnd {
gctx.ctx.deleteNativeRoutingContext();
BinaryRoutePlanner.printDebugMemoryInformation(gctx.ctx);
calculateGpxRoute(gctx, gpxPoints);
if (!gctx.res.isEmpty()) {
new RouteResultPreparation().printResults(gctx.ctx, points.get(0), points.get(points.size() - 1), gctx.res);
if (!gctx.result.isEmpty()) {
new RouteResultPreparation().printResults(gctx.ctx, points.get(0), points.get(points.size() - 1), gctx.result);
System.out.println(gctx);
}
return gctx;
@ -340,13 +342,14 @@ public class RoutePlannerFrontEnd {
RouteRegion reg = new RouteRegion();
reg.initRouteEncodingRule(0, "highway", RouteResultPreparation.UNMATCHED_HIGHWAY_TYPE);
List<LatLon> lastStraightLine = null;
GpxPoint straightPointStart = null;
for (int i = 0; i < gpxPoints.size(); ) {
GpxPoint pnt = gpxPoints.get(i);
if (pnt.routeToTarget != null && !pnt.routeToTarget.isEmpty()) {
LatLon startPoint = pnt.routeToTarget.get(0).getStartPoint();
if (lastStraightLine != null) {
lastStraightLine.add(startPoint);
addStraightLine(gctx.res, lastStraightLine, reg, gctx);
addStraightLine(gctx, lastStraightLine, straightPointStart, reg);
lastStraightLine = null;
}
if (gctx.distFromLastPoint(startPoint) > 1) {
@ -354,14 +357,16 @@ public class RoutePlannerFrontEnd {
System.out.println(String.format("????? gap of route point = %f, gap of actual gpxPoint = %f, %s ",
gctx.distFromLastPoint(startPoint), gctx.distFromLastPoint(pnt.loc), pnt.loc));
}
gctx.res.addAll(pnt.routeToTarget);
gctx.finalPoints.add(pnt);
gctx.result.addAll(pnt.routeToTarget);
i = pnt.targetInd;
} else {
// add straight line from i -> i+1
if (lastStraightLine == null) {
lastStraightLine = new ArrayList<LatLon>();
straightPointStart = pnt;
// make smooth connection
if(gctx.distFromLastPoint(pnt.loc) > 1) {
if (gctx.distFromLastPoint(pnt.loc) > 1) {
lastStraightLine.add(gctx.getLastPoint());
}
}
@ -370,7 +375,7 @@ public class RoutePlannerFrontEnd {
}
}
if (lastStraightLine != null) {
addStraightLine(gctx.res, lastStraightLine, reg, gctx);
addStraightLine(gctx, lastStraightLine, straightPointStart, reg);
lastStraightLine = null;
}
// clean turns to recaculate them
@ -397,27 +402,27 @@ public class RoutePlannerFrontEnd {
private void cleanupResultAndAddTurns(GpxRouteApproximation gctx) {
// cleanup double joints
int LOOK_AHEAD = 4;
for(int i = 0; i < gctx.res.size(); i++) {
RouteSegmentResult s = gctx.res.get(i);
for(int j = i + 2; j <= i + LOOK_AHEAD && j < gctx.res.size(); j++) {
RouteSegmentResult e = gctx.res.get(j);
if(e.getStartPoint().equals(s.getEndPoint())) {
while((--j) != i) {
gctx.res.remove(j);
for(int i = 0; i < gctx.result.size(); i++) {
RouteSegmentResult s = gctx.result.get(i);
for(int j = i + 2; j <= i + LOOK_AHEAD && j < gctx.result.size(); j++) {
RouteSegmentResult e = gctx.result.get(j);
if (e.getStartPoint().equals(s.getEndPoint())) {
while ((--j) != i) {
gctx.result.remove(j);
}
break;
}
}
}
RouteResultPreparation preparation = new RouteResultPreparation();
for (RouteSegmentResult r : gctx.res) {
for (RouteSegmentResult r : gctx.result) {
r.setTurnType(null);
r.setDescription("");
}
preparation.prepareTurnResults(gctx.ctx, gctx.res);
preparation.prepareTurnResults(gctx.ctx, gctx.result);
}
private void addStraightLine(List<RouteSegmentResult> res, List<LatLon> lastStraightLine, RouteRegion reg, GpxRouteApproximation gctx) {
private void addStraightLine(GpxRouteApproximation gctx, List<LatLon> lastStraightLine, GpxPoint strPnt, RouteRegion reg) {
RouteDataObject rdo = new RouteDataObject(reg);
if(gctx.SMOOTHEN_POINTS_NO_ROUTE > 0) {
simplifyDouglasPeucker(lastStraightLine, gctx.SMOOTHEN_POINTS_NO_ROUTE, 0, lastStraightLine.size() - 1);
@ -441,17 +446,19 @@ public class RoutePlannerFrontEnd {
rdo.pointsY = y.toArray();
rdo.types = new int[] { 0 } ;
rdo.id = -1;
List<RouteSegmentResult> rts = new ArrayList<>();
rts.add(new RouteSegmentResult(rdo, 0, rdo.getPointsLength() - 1));
strPnt.routeToTarget = new ArrayList<>();
strPnt.straightLine = true;
strPnt.routeToTarget.add(new RouteSegmentResult(rdo, 0, rdo.getPointsLength() - 1));
RouteResultPreparation preparation = new RouteResultPreparation();
try {
preparation.prepareResult(gctx.ctx, rts, false);
preparation.prepareResult(gctx.ctx, strPnt.routeToTarget, false);
} catch (IOException e) {
throw new IllegalStateException(e);
}
// VIEW: comment to see road without straight connections
res.addAll(rts);
gctx.finalPoints.add(strPnt);
gctx.result.addAll(strPnt.routeToTarget);
}

View file

@ -513,7 +513,7 @@ public class RouteSegmentResult implements StringExternalizable<RouteDataBundle>
return endPointIndex - startPointIndex > 0;
}
private LatLon convertPoint(RouteDataObject o, int ind){
return new LatLon(MapUtils.get31LatitudeY(o.getPoint31YTile(ind)), MapUtils.get31LongitudeX(o.getPoint31XTile(ind)));
}

View file

@ -3814,4 +3814,12 @@
<string name="route_between_points">المسار بين النقاط</string>
<string name="plan_a_route">قياس المسافة</string>
<string name="add_to_a_track">إضافة إلى مسار</string>
<string name="add_hidden_group_info">لن تكون النقطة المضافة مرئية على الخريطة، نظرًا لأن المجموعة المحددة مخفية، يمكنك العثور عليها في \"%s\".</string>
<string name="track_show_start_finish_icons">إظهار رموز البدء والانتهاء</string>
<string name="select_track_width">حدد العرض</string>
<string name="gpx_split_interval_descr">حدد الفاصل الزمني الذي سيتم عرض العلامات مع المسافة أو الوقت على المسار.</string>
<string name="gpx_split_interval_none_descr">حدد خيار التقسيم المطلوب: حسب الوقت أو بالمسافة.</string>
<string name="shared_string_custom">تخصيص</string>
<string name="gpx_direction_arrows">اتجاه الأسهم</string>
<string name="track_coloring_solid">صلب</string>
</resources>

View file

@ -3831,4 +3831,12 @@
<string name="route_between_points">Route zwischen Punkten</string>
<string name="plan_a_route">Eine Route planen</string>
<string name="add_to_a_track">Zu einem Track hinzufügen</string>
<string name="add_hidden_group_info">Der hinzugefügte Punkt wird auf der Karte nicht sichtbar sein, da die ausgewählte Gruppe ausgeblendet ist, Sie können ihn in \"%s\" finden.</string>
<string name="track_show_start_finish_icons">Start-Ziel-Symbole anzeigen</string>
<string name="select_track_width">Breite auswählen</string>
<string name="gpx_split_interval_descr">Wählen Sie das Intervall, in dem Markierungen mit Abstand oder Zeit auf dem Track angezeigt werden.</string>
<string name="gpx_split_interval_none_descr">Wählen Sie die gewünschte Aufteilungsoption: nach Zeit oder nach Entfernung.</string>
<string name="shared_string_custom">Benutzerdefiniert</string>
<string name="gpx_direction_arrows">Richtungspfeile</string>
<string name="track_coloring_solid">Ausgefüllt</string>
</resources>

View file

@ -1982,7 +1982,7 @@
<string name="search_categories">Categorías</string>
<string name="postcode">Código postal</string>
<string name="shared_string_from">desde</string>
<string name="city_type_district">Distrito</string>
<string name="city_type_district">Manzana urbana</string>
<string name="city_type_neighbourhood">Barrio</string>
<string name="map_widget_search">Buscar</string>
<string name="shared_string_is_open_24_7">Abierto 24/7</string>

View file

@ -3806,4 +3806,12 @@
<string name="route_between_points">Itinéraire entre points</string>
<string name="plan_a_route">Planifier un itinéraire</string>
<string name="add_to_a_track">Ajouter à une trace</string>
<string name="shared_string_custom">Douane</string>
<string name="add_hidden_group_info">Le point ajouté ne sera pas visible sur la carte car le groupe sélectionné est masqué. Vous pouvez le trouver dans \"%s\".</string>
<string name="gpx_split_interval_descr">Sélectionnez l\'intervalle d\'affichage sur la trace des marques de distance ou de durée.</string>
<string name="gpx_split_interval_none_descr">Sélectionner l\'option de découpage : durée ou distance.</string>
<string name="track_coloring_solid">Continu</string>
<string name="track_show_start_finish_icons">Afficher les icônes de départ et d\'arrivée</string>
<string name="select_track_width">Sélectionner la largeur</string>
<string name="gpx_direction_arrows">Flèches de direction</string>
</resources>

View file

@ -3833,4 +3833,11 @@
<string name="plan_a_route">תכנון מסלול</string>
<string name="add_to_a_track">הוספה למסלול</string>
<string name="add_hidden_group_info">הנקודה שנוספה לא תופיע על המפה מאחר שהקבוצה הנבחרת מוסתרת, ניתן למצוא אותה תחת „%s”.</string>
<string name="gpx_split_interval_descr">נא לבחור את משך הזמן בו סמנים עם מרחק או זמן יופיעו על גבי המסלול.</string>
<string name="track_show_start_finish_icons">הצגת סמני התחלה וסוף</string>
<string name="select_track_width">בחירת רוחב</string>
<string name="gpx_split_interval_none_descr">נא לבחור את אפשרות הפיצול הרצויה: לפי זמן או מרחק.</string>
<string name="shared_string_custom">התאמה אישית</string>
<string name="gpx_direction_arrows">חצי כיוון</string>
<string name="track_coloring_solid">אחיד</string>
</resources>

View file

@ -1400,34 +1400,34 @@
<string name="poi_motorcycle_sales_yes_used">Salg: Ja, brukt</string>
<string name="poi_motorcycle_sales_no">Salg: Nei</string>
<string name="poi_beds">Senger</string>
<string name="poi_reservation_members_only">Reservasjon: Kun medlemmer</string>
<string name="poi_reservation_no">Reservasjon: Nei</string>
<string name="poi_direction_all">Retning: Alle</string>
<string name="poi_direction_exit">Retning: Utgang</string>
<string name="poi_direction_entrance">Retning: Inngang</string>
<string name="poi_direction_down">Retning: Nedover</string>
<string name="poi_direction_w">Retning: Vest</string>
<string name="poi_direction_wsw">Retning: Vestlig sørvest</string>
<string name="poi_direction_sw">Retning: Sørvest</string>
<string name="poi_direction_ssw">Retning: Sørlig sørvest</string>
<string name="poi_direction_s">Retning: Sør</string>
<string name="poi_direction_sse">Retning: Sørlig sørøst</string>
<string name="poi_direction_se">Retning: Sørøst</string>
<string name="poi_direction_ese">Retning: Østlig sørøst</string>
<string name="poi_direction_e">Retning: Øst</string>
<string name="poi_direction_ene">Retning: Østlig nordøst</string>
<string name="poi_direction_ne">Retning: Nordøst</string>
<string name="poi_reservation_members_only">Reservasjon: kun medlemmer</string>
<string name="poi_reservation_no">Reservasjon: nei</string>
<string name="poi_direction_all">Retning: alle</string>
<string name="poi_direction_exit">Retning: utgang</string>
<string name="poi_direction_entrance">Retning: inngang</string>
<string name="poi_direction_down">Retning: nedover</string>
<string name="poi_direction_w">Retning: vest</string>
<string name="poi_direction_wsw">Retning: vest-sørvest</string>
<string name="poi_direction_sw">Retning: sørvest</string>
<string name="poi_direction_ssw">Retning: sør-sørvest</string>
<string name="poi_direction_s">Retning: sør</string>
<string name="poi_direction_sse">Retning: sør-sørøst</string>
<string name="poi_direction_se">Retning: sørøst</string>
<string name="poi_direction_ese">Retning: øst-sørøst</string>
<string name="poi_direction_e">Retning: øst</string>
<string name="poi_direction_ene">Retning: øst-nordøst</string>
<string name="poi_direction_ne">Retning: nordøst</string>
<string name="poi_government_treasury">Finansdepartementet</string>
<string name="poi_network">Nettverk</string>
<string name="poi_boat_canoe_rental_rental_no">Kano: Nei</string>
<string name="poi_boat_canoe_rental_rental_yes">Kano: Ja</string>
<string name="poi_boat_kayak_rental_rental_no">Kajakker: Nei</string>
<string name="poi_boat_kayak_rental_rental_yes">Kajakker: Ja</string>
<string name="poi_boat_sailboat_rental_no">Seilbåter: Nei</string>
<string name="poi_boat_sailboat_rental_yes">Seilbåter: Ja</string>
<string name="poi_boat_houseboat_rental_no">Husbåter: Nei</string>
<string name="poi_boat_houseboat_rental_yes">Husbåter: Ja</string>
<string name="poi_boat_motorboat_rental_no">Motorbåt: Nei</string>
<string name="poi_boat_canoe_rental_rental_no">Kano: nei</string>
<string name="poi_boat_canoe_rental_rental_yes">Kano: ja</string>
<string name="poi_boat_kayak_rental_rental_no">Kajakker: nei</string>
<string name="poi_boat_kayak_rental_rental_yes">Kajakker: ja</string>
<string name="poi_boat_sailboat_rental_no">Seilbåter: nei</string>
<string name="poi_boat_sailboat_rental_yes">Seilbåter: ja</string>
<string name="poi_boat_houseboat_rental_no">Husbåter: nei</string>
<string name="poi_boat_houseboat_rental_yes">Husbåter: ja</string>
<string name="poi_boat_motorboat_rental_no">Motorbåter: nei</string>
<string name="poi_surface_clay">Leire</string>
<string name="poi_mountain_area">Fjellheim</string>
<string name="poi_vhf">VHF-kanal</string>
@ -1569,8 +1569,8 @@
<string name="poi_seamark_water_level_part_submerged">Vann-nivå: Delvis nedsenket</string>
<string name="poi_tactile_paving_incorrect">Uriktig</string>
<string name="poi_fire_hydrant_pressure_filter">Trykk</string>
<string name="poi_drive_through_no">Drive-through: Nei</string>
<string name="poi_drive_in_no">Drive-in: Nei</string>
<string name="poi_drive_through_no">Drive-through: nei</string>
<string name="poi_drive_in_no">Drive-in: nei</string>
<string name="poi_equestrian">Ridesport</string>
<string name="poi_croquet">Krokket</string>
<string name="poi_boules">Boule</string>
@ -1597,4 +1597,25 @@
<string name="poi_microbrewery_no">Inget mikrobryggeri</string>
<string name="poi_brewery_additional">Bryggerinavn</string>
<string name="poi_nutrition_supplements">Kosttilskudd</string>
<string name="poi_boat_dinghy_rental_rental_no">Jolle: nei</string>
<string name="poi_boat_dinghy_rental_rental_yes">Jolle: ja</string>
<string name="poi_boat_jetski_rental_no">Vannscooter: nei</string>
<string name="poi_boat_jetski_rental_yes">Vannscooter: ja</string>
<string name="poi_boat_pedalboat_rental_no">Pedalbåter: nei</string>
<string name="poi_boat_pedalboat_rental_yes">Pedalbåter: ja</string>
<string name="poi_boat_motorboat_rental_yes">Motorbåter: ja</string>
<string name="poi_boat_rental">Båtutleie</string>
<string name="poi_reservation_recommended">Reservasjon: anbefalt</string>
<string name="poi_reservation_required">Reservasjon: påkrevd</string>
<string name="poi_reservation_yes">Reservasjon: ja</string>
<string name="poi_direction_wnw">Retning: vest-nordvest</string>
<string name="poi_direction_nne">Retning: nord-nordøst</string>
<string name="poi_direction_n">Retning: nord</string>
<string name="poi_direction_up">Retning: oppover</string>
<string name="poi_direction_backward">Retning: bakover</string>
<string name="poi_direction_forward">Retning: framover</string>
<string name="poi_direction_anticlockwise">Retning: mot urviseren</string>
<string name="poi_direction_clockwise">Retning: med urviseren</string>
<string name="poi_direction_nnw">Retning: nord-nordvest</string>
<string name="poi_direction_nw">Retning: nordvest</string>
</resources>

View file

@ -1935,14 +1935,14 @@
<string name="quick_action_add_first_intermediate">Legg til første mellomliggende punkt</string>
<string name="no_overlay">Ingen overlegg</string>
<string name="no_underlay">Ingen underlag</string>
<string name="quick_action_map_underlay_switch">Kartunderlaget er endret til \"%s\".</string>
<string name="quick_action_map_underlay_switch">Kartunderlag er endret til \"%s\".</string>
<string name="quick_action_map_underlay">Endre kartunderlag</string>
<string name="quick_action_map_underlay_title">Kartunderlag</string>
<string name="quick_action_map_underlay_action">Legg til underlag</string>
<string name="quick_action_map_overlay">Endre overleggskart</string>
<string name="quick_action_map_overlay_title">Overleggskart</string>
<string name="quick_action_map_overlay_action">Legg til overlegg</string>
<string name="quick_action_map_overlay_switch">Kartoverlegget er endret til \"%s\".</string>
<string name="quick_action_map_overlay_switch">Kartoverlegg er endret til \"%s\".</string>
<string name="points_delete_multiple_succesful">Punkt(er) slettet.</string>
<string name="points_delete_multiple">ER du sikker på at du vil slette %1$d punkt(er)\?</string>
<string name="average_speed">Gjennomsnittsfart</string>
@ -1976,7 +1976,7 @@
\n OsmAnd+ er betalingsversjonen, ved å kjøpe den støtter du prosjektet, finansierer utviklingen av nye funksjoner, og mottar de siste oppdateringene.
\n
\n Noen av hovedfunksjonene:</string>
<string name="quick_action_map_source_switch">Kartkilde endret til «%s».</string>
<string name="quick_action_map_source_switch">Kartkilde endret til \"%s\".</string>
<string name="quick_action_map_source_action">Legg til kartkilde</string>
<string name="quick_action_map_source_title">Kartkilder</string>
<string name="quick_action_map_source">Endre kartkilde</string>
@ -2083,9 +2083,9 @@
<string name="measurement_tool_save_as_new_track_descr">Lagre punktene enten som rutepunkter eller som linje.</string>
<string name="choose_navigation_type">Velg navigeringsprofil</string>
<string name="empty_state_my_tracks">Legg til GPX-filer</string>
<string name="empty_state_my_tracks_desc">Importer GPX-filer, eller ta opp spor.</string>
<string name="empty_state_my_tracks_desc">Importer GPX-filer eller ta opp spor.</string>
<string name="empty_state_favourites">Legg til favoritter</string>
<string name="empty_state_favourites_desc">Importer favoritter, eller legg til via markering av punkter på kartet.</string>
<string name="empty_state_favourites_desc">Importer favoritter eller legg dem til ved markering av punkter på kartet.</string>
<string name="import_track">Importer GPX-fil</string>
<string name="import_track_desc">Filen %1$s inneholder ingen rutepunkter, importere den som et spor\?</string>
<string name="move_point">Flytt punkt</string>
@ -2288,7 +2288,7 @@
<string name="quick_action_add_create_items">Opprett elementer</string>
<string name="quick_action_fav_name_descr">La stå tomt for å bruke adressen eller stedsnavnet.</string>
<string name="quick_action_bug_descr">Denne meldingen inkluderes i kommentarfeltet.</string>
<string name="mappilary_no_internet_desc">Du må være koblet til Internett for å vise bilder fra Mapillary.</string>
<string name="mappilary_no_internet_desc">Bilder fra Mapillary er kun tilgjengelig når tilkoblet internett.</string>
<string name="hillshade_menu_download_descr">Last ned kart for \'Relieffskyggeoverlegg\' for å vise vertikal skyggelegging.</string>
<string name="hillshade_purchase_header">Installer programtillegget \'Koter\' for å vise graderte vertikale områder.</string>
<string name="enter_new_name">Oppfør nytt navn</string>
@ -2400,9 +2400,9 @@
<string name="save_poi_too_many_uppercase">Navnet inneholder for mange store bokstaver. Fortsett\?</string>
<string name="quick_action_add_poi">Legg til interessepunkt</string>
<string name="quick_action_showhide_poi_descr">Trykking på denne handlingsknappen viser eller skjuler interessepunkter på kartet.</string>
<string name="quick_action_page_list_descr">Trykking på denne handlingsknappen blar gjennom listen nedenfor.</string>
<string name="quick_action_page_list_descr">En knapp til å bla gjennom listen nedenfor.</string>
<string name="quick_action_empty_param_error">Fyll ut alle parametere</string>
<string name="quick_action_btn_tutorial_descr">Lang-trykking og dragning av knappen endrer dens posisjon på skjermen.</string>
<string name="quick_action_btn_tutorial_descr">Ved å trykke lenge og dra knappen endres dens plassering på skjermen.</string>
<string name="add_track_to_markers_descr">Velg et spor for å legge til dets rutepunkter til markørene.</string>
<string name="depth_contour_descr">Kart for havdybdekoter og sjømerker.</string>
<string name="do_not_send_anonymous_app_usage_desc">OsmAnd samler inn info om hvilke deler av programmet du åpner. Plasseringen din blir aldri sendt, ei heller noe du måtte skrive inn i programmet eller detaljer om områder som vises, søkes etter, eller lastes ned.</string>
@ -2458,7 +2458,7 @@
<string name="use_fast_recalculation_desc">For lange turer, beregn på nytt bare den første delen av ruten.</string>
<string name="nautical_renderer">Nautisk</string>
<string name="day_off_label">stengt (fridag)</string>
<string name="copy_location_name">Kopier punkt/interessepunkt-navn</string>
<string name="copy_location_name">Kopier sted/interessepunkt-navn</string>
<string name="toast_empty_name_error">Sted uten navn</string>
<string name="osc_file_desc">OSC - egnet for eksport til OpenStreetMap.</string>
<string name="shared_string_current">Gjeldende</string>
@ -2663,10 +2663,10 @@
<string name="download_wikipedia_label">Last ned Wikipedia-data</string>
<string name="how_to_open_wiki_title">Hvordan åpne Wikipedia-artikler\?</string>
<string name="download_wikipedia_description">Last ned Wikipedia-artiklene for %1$s slik at du kan lese dem frakoblet.</string>
<string name="open_in_browser_wiki">Åpne nettbasert artikkel</string>
<string name="open_in_browser_wiki">Åpne artikkel på nettet</string>
<string name="open_in_browser_wiki_description">Vis artikkel i en nettleser.</string>
<string name="download_wiki_region_placeholder">denne regionen</string>
<string name="wiki_article_search_text">Søker etter tilhørende wiki-artikkel</string>
<string name="wiki_article_search_text">Søker etter den tilsvarende wiki-artikkelen</string>
<string name="wiki_article_not_found">Artikkel ikke funnet</string>
<string name="osmand_plus_extended_description_part2">Navigering
\n • Virker i nettbasert modus (raskt), eller frakoblet modus (ingen gjestings-kostnader når du er utenlands)
@ -2820,7 +2820,7 @@
<string name="commiting_way">Sender inn vei…</string>
<string name="send_search_query_description">Vi kommer til å sende inn ditt søk \"%1$s\", sammen med din plassering.
\nIngen personlig informasjon samles inn, søkedata brukes kun for å forbedre søkealgoritmen.</string>
<string name="test_voice_desrc">Trykk på en knapp og lytt til tilhørende talemelding for å se om den mangler eller har feil</string>
<string name="test_voice_desrc">Trykk på en knapp og lytt til den tilhørende talemeldingen for å høre om den mangler eller er feil</string>
<string name="release_3_2_pre">• Fikset krasj ved oppstart som skjedde på noen enheter
\n
\n • Ny mulighet med markører: vis markører som allerede er passert
@ -2875,7 +2875,7 @@
\n • OsmAnd Live-abonnement støtter nå alle OsmAnd-funksjoner
\n</string>
<string name="shared_string_launch">Kjør</string>
<string name="run_full_osmand_msg">Du bruker {0}-kart, muliggjort av OsmAnd. Ønsker du å ta i bruk fullversjonen av OsmAnd\?</string>
<string name="run_full_osmand_msg">Du bruker {0} kart levert av OsmAnd. Vil du starte fullversjonen av OsmAnd\?</string>
<string name="run_full_osmand_header">Kjør OsmAnd\?</string>
<string name="lang_gn_py">Guaraní</string>
<string name="quick_action_switch_day_night_descr">Vekselvender mellom dag- og nattmodus i OsmAnd</string>
@ -3132,7 +3132,7 @@
<string name="routing_attr_piste_type_nordic_description">Løyper for langrenn.</string>
<string name="routing_attr_piste_type_skitour_name">Skigåing</string>
<string name="routing_attr_piste_type_skitour_description">Ruter for skigåing.</string>
<string name="routing_attr_allow_intermediate_name">Tillat mellomliggende ruter</string>
<string name="routing_attr_allow_intermediate_name">Tillat mellomnivåruter</string>
<string name="routing_attr_allow_intermediate_description">Vanskeligere ruter med brattere partier. Generelt noen hindringer som bør unngås.</string>
<string name="routing_attr_allow_advanced_description">Vanskelige ruter, med farlige hindringer og bratte partier.</string>
<string name="routing_attr_allow_expert_description">Ekstremt vanskelige ruter, med farlige hindringer og omgivelser.</string>
@ -3209,16 +3209,16 @@
<string name="switch_profile">Bytt profil</string>
<string name="application_profile_changed">Programprofil endret til «%s»</string>
<string name="cancel_subscription">Opphev abonnement</string>
<string name="price_and_discount">%1$s • Lagre %2$s</string>
<string name="price_and_discount">%1$s • Spar %2$s</string>
<string name="units_and_formats">Enheter og formater</string>
<string name="appearance">Utseende</string>
<string name="list_of_installed_plugins">Installerte programtillegg</string>
<string name="configure_navigation">Sett opp navigasjon</string>
<string name="reset_to_default">Tilbakestill til forvalg</string>
<string name="osmand_settings">OsmAnd-innstillinger</string>
<string name="copy_from_other_profile">Kopier fra annen profil</string>
<string name="copy_from_other_profile">Kopier fra en annen profil</string>
<string name="turn_screen_on">Skru skjerm på</string>
<string name="vehicle_parameters_descr">Vekt, høyde, hastighet</string>
<string name="vehicle_parameters_descr">Vekt, høyde, lengde, hastighet</string>
<string name="vehicle_parameters">Kjøretøyparameter</string>
<string name="screen_alerts">Skjermvarsler</string>
<string name="logcat_buffer">Logcat-mellomlager</string>
@ -3243,7 +3243,7 @@
<string name="app_mode_utv">Side om side</string>
<string name="shared_string_calculate">Beregn</string>
<string name="shared_string_osmand_usage">OsmAnd-bruk</string>
<string name="shared_sting_tiles">Flis</string>
<string name="shared_sting_tiles">Fliser</string>
<string name="shared_string_maps">Kart</string>
<string name="shared_string_memory_tb_desc">%1$s TB</string>
<string name="shared_string_memory_gb_desc">%1$s GB</string>
@ -3261,8 +3261,8 @@
<string name="contour_lines_and_hillshade">Koter og relieffskygge</string>
<string name="update_all_maps">Oppdater alle kart</string>
<string name="update_all_maps_q">Er du sikker på at du vil oppdatere alle (%1$d) kart\?</string>
<string name="routing_attr_driving_style_prefer_unpaved_name">Foretrekk veier uten dekke</string>
<string name="routing_attr_driving_style_prefer_unpaved_description">Foretrekk veier uten dekke.</string>
<string name="routing_attr_driving_style_prefer_unpaved_name">Foretrekk veier uten fast dekke</string>
<string name="routing_attr_driving_style_prefer_unpaved_description">Foretrekk veier uten fast dekke framfor med fast dekke for ruting.</string>
<string name="quick_action_contour_lines_show">Vis koter</string>
<string name="quick_action_contour_lines_hide">Skjul koter</string>
<string name="quick_action_show_hide_contour_lines">Vis/skjul koter</string>
@ -3304,12 +3304,12 @@
\n • Andre småfikser
\n
\n</string>
<string name="apply_preference_to_all_profiles">Du kan bruke denne endringen på alle profilene, eller bare den nåværende.</string>
<string name="apply_preference_to_all_profiles">Du kan bruke denne endringen på alle eller bare på den valgte profilen.</string>
<string name="quick_action_contour_lines_descr">En bryter for å vise eller skjule koter på kartet.</string>
<string name="export_profile">Eksporter profil</string>
<string name="overwrite_profile_q">Overskriv profilen «%1$s» som finnes allerede\?</string>
<string name="overwrite_profile_q">\"%1$s\" finnes allerede. Overskriv\?</string>
<string name="export_profile_failed">Kunne ikke eksportere profil.</string>
<string name="profile_import_descr">For å importere en profil, velg filen på enheten og åpne den med OsmAnd.</string>
<string name="profile_import_descr">Legg til en profil ved å åpne profilfilen med OsmAnd.</string>
<string name="file_import_error">%1$s feil under import: %2$s</string>
<string name="file_imported_successfully">%1$s ble importert.</string>
<string name="swap_two_places">Bytt %1$s og %2$s</string>
@ -3319,7 +3319,7 @@
<string name="enter_path_to_folder">Skriv inn sti til mappen</string>
<string name="paste_Osmand_data_folder_path">Lim inn sti til mappen inneholdende OsmAnd-data</string>
<string name="internal_app_storage_description">Internlagring for OsmAnd, (skjult fra bruker og andre programmer).</string>
<string name="change_data_storage_folder">Endre datalagringsmappe</string>
<string name="change_data_storage_folder">Endre lagringsmappe</string>
<string name="rendering_attr_piste_type_snow_park_name">Snøpark</string>
<string name="rendering_attr_piste_type_nordic_name">Langrenn</string>
<string name="routeInfo_piste_type_name">Løypetype</string>
@ -3369,7 +3369,7 @@
<string name="analytics_pref_title">Analyseinstrumenter</string>
<string name="turn_screen_on_info">Vis kart på låseskjermen under navigering.</string>
<string name="route_parameters_info">Innstillinger for ruting i valgt profil «%1$s».</string>
<string name="wake_time">Oppetid</string>
<string name="wake_time">Tidsavbrudd etter oppvåkning</string>
<string name="screen_alerts_descr">Varsler vises nede til venstre under navigering.</string>
<string name="map_during_navigation_info">Kart under navigasjon</string>
<string name="map_during_navigation">Kart under navigasjon</string>
@ -3396,7 +3396,7 @@
<string name="routeInfo_piste_difficulty_name">Løypevanskelighetsgrad</string>
<string name="rendering_value_walkingRoutesOSMCNodes_name">Nodenettverk</string>
<string name="join_segments">Bind sammen segmenter</string>
<string name="add_new_profile_q">Legg til ny profil «%1$s»\?</string>
<string name="add_new_profile_q">Legge til den nye profilen \'%1$s\'\?</string>
<string name="save_heading">Inkluder retning</string>
<string name="save_heading_descr">Lagre retning til hvert sporpunkt under opptak.</string>
<string name="shared_string_revert">Tilbakestill</string>
@ -3409,7 +3409,7 @@
<string name="suggested_maps">Foreslåtte kart</string>
<string name="suggested_maps_descr">Disse kartene kreves av programtillegget.</string>
<string name="added_profiles">Tillagte profiler</string>
<string name="added_profiles_descr">Programtillegg legger til ny profil i OsmAnd</string>
<string name="added_profiles_descr">Profiler lagt til av programtillegg</string>
<string name="shared_string_turn_off">Skru av</string>
<string name="new_plugin_added">Nytt programtillegg lagt til</string>
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
@ -3419,15 +3419,15 @@
<string name="rendering_value_thick_name">Tykk</string>
<string name="desert_render_descr">For ørkener og andre tynt befolkede områder. Høyere detaljnivå.</string>
<string name="select_navigation_icon">Posisjonsikon under bevegelse</string>
<string name="select_map_icon">Velg kartikon</string>
<string name="delete_profiles_descr">Etter å ha trykket «Bruk», går slettede profiler tapt for godt.</string>
<string name="select_map_icon">Posisjonsikon i hviletilstand</string>
<string name="delete_profiles_descr">Trykk på \'Bruk\' sletter fjernede profiler permanent.</string>
<string name="master_profile">Hovedprofil</string>
<string name="select_color">Velg farge</string>
<string name="edit_profiles_descr">Du kan ikke slette forvalgsprofilene, men du kan skru dem av før dette steget, eller flytte dem til bunnen.</string>
<string name="edit_profiles">Rediger profiler</string>
<string name="select_nav_profile_dialog_message">Navigasjonstype har innvirkning på regler for ruteberegning.</string>
<string name="profile_appearance">Profilutseende</string>
<string name="choose_icon_color_name">Velg ikon, farge og navn</string>
<string name="choose_icon_color_name">Ikon, farge og navn</string>
<string name="reorder_profiles">Rediger profilliste</string>
<string name="selected_profile">Valgt profil</string>
<string name="reset_confirmation_descr">Ved å klikke %1$s vil alle endringene dine gå tapt.</string>
@ -3455,11 +3455,11 @@
<string name="route_recalculation">Ruteomberegning</string>
<string name="accessibility_announce">Kunngjør</string>
<string name="login_and_pass">Brukernavn og passord</string>
<string name="plugin_global_prefs_info">Innstillinger av dette programtillegget har innvirkning på alle profiler.</string>
<string name="osm_editing">OpenStreetMap-redigering</string>
<string name="plugin_global_prefs_info">Disse innstillingene gjelder for alle profiler.</string>
<string name="osm_editing">OSM-redigering</string>
<string name="osm_edits_view_descr">Du kan vise alle dine uopplastede redigeringer eller OSM-feil i %1$s. Opplastede punkter viser ikke i OsmAnd.</string>
<string name="select_nav_icon_descr">Du vil se ikonet kun under navigasjon eller bevegelse.</string>
<string name="select_map_icon_descr">Kartikon vises kun på kartet, og endrer seg under navigasjon til navigasjonsikonet.</string>
<string name="select_nav_icon_descr">Ikon vist under navigering eller bevegelse.</string>
<string name="select_map_icon_descr">Ikon vist i hviletilstand.</string>
<string name="multimedia_use_system_camera">Bruk systemprogram</string>
<string name="shared_string_available">Tilgjengelig</string>
<string name="sunrise_at">Soloppgang kl. %1$s</string>
@ -3504,7 +3504,7 @@
<string name="shared_string_octagon">Oktogon</string>
<string name="shared_string_square">Kvadrat</string>
<string name="settings_item_read_error">Kunne ikke lese fra \"%1$s\".</string>
<string name="settings_item_import_error">Kunne ikke importere %1$s.</string>
<string name="settings_item_import_error">Kunne ikke importere fra \'%1$s\'.</string>
<string name="settings_item_write_error">Kunne ikke skrive til \"%1$s\".</string>
<string name="shared_string_languages">Språk</string>
<string name="shared_string_language">Språk</string>
@ -3527,7 +3527,7 @@
<string name="app_mode_ski_snowmobile">Snøscooter</string>
<string name="custom_osmand_plugin">Egendefinert OsmAnd-tillegg</string>
<string name="shared_string_items">Elementer</string>
<string name="changes_applied_to_profile">Endringer utført på %1$s-profilen.</string>
<string name="changes_applied_to_profile">Endringer brukt på profilen \'%1$s\'.</string>
<string name="select_track_file">Velg sporfil</string>
<string name="terrain_slider_description">Angi minste og største forstørrelsesnivå laget skal vises på.</string>
<string name="shared_string_min">Min</string>
@ -3541,7 +3541,7 @@
<string name="reset_plugin_to_default">Tilbakestill programtilleggsinnstillinger til forvalg</string>
<string name="download_unsupported_action">Ustøttet handling %1$s</string>
<string name="extra_maps_menu_group">Ekstra kart</string>
<string name="shared_string_divider">Inndeler</string>
<string name="shared_string_divider">Skillelinje</string>
<string name="some_articles_may_not_available_in_lang">Det kan hende noen Wikipedia-artikler ikke finnes på norsk.</string>
<string name="custom_color">Egendefinert farge</string>
<string name="search_poi_types">Søk etter interessepunkttyper</string>
@ -3555,7 +3555,7 @@
<string name="quick_action_transport_hide">Skjul offentlig transport</string>
<string name="quick_action_transport_show">Vis offentlig transport</string>
<string name="back_to_editing">Tilbake til redigering</string>
<string name="create_edit_poi">Legg til/rediger interessepunkt</string>
<string name="create_edit_poi">Opprett/rediger interessepunkt</string>
<string name="quick_action_show_hide_transport">Vis/skjul offentlig transport</string>
<string name="shared_string_add_profile">Legg til profil</string>
<string name="quick_action_transport_descr">Knapp for vising eller skjuling av offentlig transport på kartet.</string>
@ -3625,7 +3625,7 @@
<string name="select_data_to_import">Velg data å importere.</string>
<string name="slope_read_more">Du kan lese mer om løyper i %1$s.</string>
<string name="reorder_or_hide_from">Omarranger eller skjul elementer fra %1$s.</string>
<string name="divider_descr">Elementer under dette punktet er inndelt av en skillelinje.</string>
<string name="divider_descr">Elementer under dette punktet er atskilt med en skillelinje.</string>
<string name="reset_items_descr">Skjuling av innstillinger tilbakestiller dem til forvalg.</string>
<string name="app_mode_ski_touring">Skigåing</string>
<string name="unsupported_type_error">Ustøttet type</string>
@ -3633,9 +3633,9 @@
<string name="export_profile_dialog_description">Du kan velge ytterligere data å eksportere sammen med profilen.</string>
<string name="import_profile_dialog_description">Importer profil inneholder ytterligere data. Klikk «Import» for å importere kun profildata, eller velg ytterligere data.</string>
<string name="plugin_prefs_reset_successful">Alle programtilleggsinnstillinger tilbakestilt til opprinnelse.</string>
<string name="add_new_custom_category_button_promo">Du kan legge til en ny egendefinert kategori ved å velge én eller flere nødvendige kategorier.</string>
<string name="add_new_custom_category_button_promo">Du kan legge til en ny egendefinert kategori ved å velge én eller flere kategorier.</string>
<string name="create_custom_categories_list_promo">Endre listens sorteringsrekkefølge, skjul unødvendige kategorier. Du kan importere eller eksportere alle endringer med profiler.</string>
<string name="rearrange_categories">Endre kategoriforordning</string>
<string name="rearrange_categories">Omorganiser kategorier</string>
<string name="route_recalculation_dist_descr">Ruten vil bli kalkulert igjen hvis distansen til ruten er lengre enn angitt parameter</string>
<string name="plugin_disabled_descr">Dette programtillegget er et eget program, du vil måtte fjerne det for seg hvis du ikke lenger vil bruke det.
\n
@ -3652,7 +3652,7 @@
<string name="import_duplicates_description">OsmAnd har allerede elementer med samme navn som de i importen.
\n
\nVelg en handling.</string>
<string name="search_poi_types_descr">Kombiner interessepunkttyper fra forskjellige kategorier. Trykk for å velge alle, og venstre side for kategorivalg.</string>
<string name="search_poi_types_descr">Kombiner interessepunkttyper fra forskjellige kategorier. Trykk på bryter for å velge alle, trykk på venstre side for kategorivalg.</string>
<string name="online_map_name_helper_text">Angi navn for nettbasert kartkilde.</string>
<string name="online_map_url_helper_text">Skriv eller lim inn nettadresse for nettbasert kilde.</string>
<string name="edit_online_source">Rediger nettbasert kilde</string>
@ -3663,7 +3663,7 @@
<string name="expire_time">Utløpstid</string>
<string name="storage_format">Lagringsformat</string>
<string name="tiles_storage_descr">Velg hvordan nedlastede fliskart lagres.</string>
<string name="details_dialog_decr">Kontroller synlighet for ytterligere detaljer vist på kartet</string>
<string name="details_dialog_decr">Vis eller skjul ekstra kartdetaljer</string>
<string name="shared_string_night_map">Nattkart</string>
<string name="turn_screen_on_power_button">Av/på-knapp</string>
<string name="turn_screen_on_proximity_sensor">Nærhetssensor</string>
@ -3690,13 +3690,28 @@
<string name="item_deleted">%1$s slettet</string>
<string name="use_volume_buttons_as_zoom">Lydstyrkeknapper til forstørring</string>
<string name="search_download_wikipedia_maps">Last ned Wikipedia-kart</string>
<string name="accessibility_mode_disabled"/>
<string name="accessibility_mode_disabled">Tilgjengelighetsmodus er slått av i Android-systemet.</string>
<string name="listed_exist"/>
<string name="turn_screen_on_navigation_instructions"/>
<string name="speed_cameras_restart_descr"/>
<string name="shared_string_uninstall_and_restart"/>
<string name="quick_action_remove_next_destination_descr"/>
<string name="app_mode_wheelchair"/>
<string name="app_mode_wheelchair">Rullestol</string>
<string name="app_mode_go_cart"/>
<string name="plan_a_route">Planlegg en rute</string>
<string name="additional_actions_descr">Du får tilgang til disse handlingene ved å trykke på knappen “%1$s”.</string>
<string name="use_volume_buttons_as_zoom_descr">Slå på for å stille inn zoomnivået på kartet med enhetens volumknapper.</string>
<string name="add_hidden_group_info">Det tillagte punktet vil ikke være synlig på kartet, siden den valgte gruppen er skjult, du kan finne det i \"%s\".</string>
<string name="app_mode_motor_scooter">Scooter</string>
<string name="app_mode_wheelchair_forward">Rullestol framover</string>
<string name="set_working_days_to_continue">Du må definere arbeidsdagene for å fortsette</string>
<string name="add_to_a_track">Legg til i et spor</string>
<string name="track_show_start_finish_icons">Vis ikoner for start-mål</string>
<string name="select_track_width">Velg bredde</string>
<string name="gpx_split_interval_descr">Velg intervallet hvor markeringer med avstand eller tid på sporet vil vises.</string>
<string name="gpx_split_interval_none_descr">Velg det ønskede oppdelingsalternativet: etter tid eller etter avstand.</string>
<string name="shared_string_custom">Egendefinert</string>
<string name="gpx_direction_arrows">Retningspiler</string>
<string name="shared_string_tones">tonn</string>
<string name="route_between_points">Rute mellom punkter</string>
</resources>

View file

@ -1171,7 +1171,7 @@
<string name="poi_pump_no">Brak pompy</string>
<string name="poi_pump_yes">Tak</string>
<string name="poi_water_characteristic_mineral">Mineralna</string>
<string name="poi_water_characteristic_mud">Charakterystyka wody: mętna</string>
<string name="poi_water_characteristic_mud">Błoto</string>
<string name="poi_water_characteristic_sulfuric">Siarczan(VI)-owa</string>
<string name="poi_amenity_vacuum_cleaner">Odkurzacz</string>
<string name="poi_cooling_tower">Chłodnia kominowa</string>
@ -3828,4 +3828,6 @@
<string name="poi_traffic_signals_arrow_yes">Tak</string>
<string name="poi_traffic_signals_vibration_yes">Tak</string>
<string name="poi_traffic_signals_vibration_no">Wibracja: nie</string>
<string name="poi_city_block">Blok</string>
<string name="poi_borough">Gmina</string>
</resources>

View file

@ -3518,7 +3518,7 @@
\nWtyczka pozostanie na urządzeniu po usunięciu OsmAnd.</string>
<string name="ltr_or_rtl_triple_combine_via_dash">%1$s — %2$s — %3$s</string>
<string name="shared_string_include_data">Uwzględnij dodatkowe dane</string>
<string name="import_profile_dialog_description">Zaimportowany profil zawiera dodatkowe dane. Kliknij przycisk Importuj, aby zaimportować tylko dane profilu lub wybierz dodatkowe dane do zaimportowania.</string>
<string name="import_profile_dialog_description">Zaimportowany profil zawiera dodatkowe dane. Kliknij \"Importuj\", aby zaimportować tylko dane profilu, lub wybierz dodatkowe dane.</string>
<string name="export_profile_dialog_description">Można wybrać dodatkowe dane do wyeksportowania wraz z profilem.</string>
<string name="routing_profile_direct_to">Bezpośrednio do punktu</string>
<string name="navigation_notification_desc">Pokaż powiadomienia systemowe podczas nawigacji z instrukcjami nawigacji.</string>
@ -3528,9 +3528,9 @@
<string name="route_recalculation_dist_title">Minimalna odległość do ponownego wyznaczenia trasy</string>
<string name="route_recalculation_dist_descr">Wyznacza ponownie trasę, jeśli odległość do trasy jest dłuższa niż określony parametr</string>
<string name="tracks_view_descr">Twoje nagrane ślady są w %1$s lub w folderze OsmAnd.</string>
<string name="use_system_screen_timeout_promo">Domyślnie wyłączone, jeśli OsmAnd jest włączony na pierwszym planie, ekran nie będzie się wygaszał.
<string name="use_system_screen_timeout_promo">Domyślnie wyłączone: gdy OsmAnd działa na pierwszym planie, ekran nie wyłączy się.
\n
\nJeśli włączone, OsmAnd będzie używał systemowych ustawień wygaszania.</string>
\nJeśli włączone, OsmAnd użyje ustawienia limitu czasu systemu.</string>
<string name="sort_by_category">Sortuj wg kategorii</string>
<string name="shared_string_menu">Menu</string>
<string name="shared_string_routing">Wyznaczanie trasy</string>
@ -3675,9 +3675,9 @@
<string name="lang_an">Aragoński</string>
<string name="lang_gu">Gudźarati</string>
<string name="lang_yo">Joruba</string>
<string name="ui_customization_description">Dostosuj liczbę elementów w menu bocznym, konfiguracji mapy i menu kontekstowym.
\n
\nMożesz wyłączyć nieużywane wtyczki, aby ukryć ich elementy w aplikacji. %1$s.</string>
<string name="ui_customization_description">Dostosuj ilość pozycji w „Szufladzie”, „Konfiguracja mapy” i „Menu kontekstowe”.
\n
\nWyłącz nieużywane wtyczki, aby ukryć wszystkie ich elementy sterujące. %1$s.</string>
<string name="ltr_or_rtl_combine_via_slash_with_space">%1$s / %2$s</string>
<string name="search_poi_types">Szukaj typów użytecznych miejsc</string>
<string name="search_poi_types_descr">Łącz typy użytecznych zmian z różnych kategorii. Stuknij przełącznik, aby zaznaczyć wszystko, stuknij lewą stronę, aby wybrać kategorię.</string>
@ -3826,4 +3826,10 @@
<string name="route_between_points">Droga pomiędzy punktami</string>
<string name="plan_a_route">Zaplanuj trasę</string>
<string name="add_to_a_track">Dodaj do śladów</string>
<string name="turn_screen_on_power_button_descr">Naciśnięcie przycisku zasilania urządzenia włączy ekran z OsmAnd u góry ekranu blokady.</string>
<string name="quick_action_showhide_mapillary_descr">Przełącznik służący do pokazywania lub ukrywania warstwy Mapillary na mapie.</string>
<string name="add_hidden_group_info">Dodany punkt nie będzie widoczny na mapie, ponieważ wybrana grupa jest ukryta, możesz ją znaleźć w „%s”.</string>
<string name="select_track_width">Wybierz szerokość</string>
<string name="gpx_split_interval_none_descr">Wybierz żądaną opcję podziału: według czasu lub odległości.</string>
<string name="track_coloring_solid">Stałe</string>
</resources>

View file

@ -3811,4 +3811,12 @@ Pôr do Sol: %2$s</string>
<string name="set_working_days_to_continue">Você precisa definir dias úteis para continuar</string>
<string name="route_between_points">Rota entre pontos</string>
<string name="plan_a_route">Planejar uma rota</string>
<string name="add_hidden_group_info">O ponto adicionado não será visível no mapa, já que o grupo selecionado está oculto, você pode encontrá-lo em \"%s\".</string>
<string name="track_show_start_finish_icons">Mostrar ícones de início e término</string>
<string name="select_track_width">Selecionar largura</string>
<string name="gpx_split_interval_descr">Selecione o intervalo no qual as marcas com distância ou tempo na pista serão exibidas.</string>
<string name="gpx_split_interval_none_descr">Selecione a opção de divisão desejada: por tempo ou por distância.</string>
<string name="shared_string_custom">Personalizados</string>
<string name="gpx_direction_arrows">Setas de direção</string>
<string name="track_coloring_solid">Sólido</string>
</resources>

View file

@ -992,7 +992,7 @@
<string name="poi_pump_yes">Есть</string>
<string name="poi_water_characteristic">Характеристика воды</string>
<string name="poi_water_characteristic_mineral">Характеристика воды: минеральная</string>
<string name="poi_water_characteristic_mud">Характеристика воды: грязь</string>
<string name="poi_water_characteristic_mud">Грязь</string>
<string name="poi_water_characteristic_sulfuric">Серная</string>
<string name="poi_water_point">Пункт водоснабжения</string>
<string name="poi_monitoring_station">Станция наблюдения</string>
@ -1361,7 +1361,7 @@
<string name="poi_diet_lactose_free_yes">Безлактозное питание</string>
<string name="poi_diet_lactose_free_no">Безлактозные продукты не предлагаются</string>
<string name="poi_diet_pescetarian_yes">Пескетарианское питание</string>
<string name="poi_drive_in">Обслуживание клиентов сидящих в автомобиле</string>
<string name="poi_drive_in">Обслуживание клиентов, сидящих в автомобиле</string>
<string name="poi_drive_in_yes">Да</string>
<string name="poi_drive_in_no">Приобрести продукты не покидая авто на парковке (drive-in): нет</string>
<string name="poi_drive_through">Обслуживание клиентов, сидящих в автомобиле</string>
@ -1759,7 +1759,7 @@
<string name="poi_fuel_91ul">Топливо 91UL</string>
<string name="poi_fuel_100ll">Топливо 100LL</string>
<string name="poi_fuel_jeta1">Топливо Jet A-1</string>
<string name="poi_fuel_adblue">Топливо AdBlue</string>
<string name="poi_fuel_adblue">Дизельная выхлопная жидкость</string>
<string name="poi_fuel_wood">Топливо: дрова</string>
<string name="poi_fuel_charcoal">Топливо: древесный уголь</string>
<string name="poi_fuel_coal">Топливо: каменный уголь</string>

View file

@ -1620,7 +1620,7 @@
<string name="rendering_attr_busRoutes_name">Маршруты автобусов</string>
<string name="rendering_attr_tramTrainRoutes_name">Маршруты трамваев и поездов</string>
<string name="rendering_category_hide">Скрыть</string>
<string name="impassable_road">Избегать дороги</string>
<string name="impassable_road">Избегать дорог</string>
<string name="lock_screen_request_explanation">%1$s необходимо это разрешение, чтобы выключить экран для экономии энергии.</string>
<string name="wake_on_voice">Автовключение экрана перед поворотом</string>
<string name="wake_on_voice_descr">Включать экран перед поворотом (если выключен).</string>
@ -2366,7 +2366,7 @@
<string name="edit_line">Редактировать линию</string>
<string name="add_point_before">Добавить точку перед</string>
<string name="add_point_after">Добавить точку после</string>
<string name="shared_string_options">Опции</string>
<string name="shared_string_options">Функции</string>
<string name="measurement_tool_snap_to_road_descr">OsmAnd соединит точки с маршрутом для выбранного профиля.</string>
<string name="measurement_tool_save_as_new_track_descr">Сохранить точки, как точки маршрута или как линию.</string>
<string name="choose_navigation_type">Выберите профиль навигации</string>
@ -3825,4 +3825,10 @@
<string name="plan_a_route">План маршрута</string>
<string name="gpx_split_interval_none_descr">Выберите нужный вариант разбиения: по времени или по расстоянию.</string>
<string name="gpx_split_interval_descr">Выберите интервал с которым будут отображаться метки с расстоянием или временем на треке.</string>
<string name="shared_string_custom">Своё</string>
<string name="add_hidden_group_info">Добавленная точка не будет видна на карте, так как выбранная группа скрыта, найти её можно в «%s».</string>
<string name="track_show_start_finish_icons">Показывать значки старта и финиша</string>
<string name="select_track_width">Выберите ширину</string>
<string name="gpx_direction_arrows">Стрелки направления</string>
<string name="track_coloring_solid">Сплошной</string>
</resources>

View file

@ -242,7 +242,7 @@
<string name="poi_hockey">Hockey</string>
<string name="poi_horse_racing">Cursas de sos caddos</string>
<string name="poi_ice_skating">Patinàgiu in s\'astra</string>
<string name="poi_korfbal">Korfbal</string>
<string name="poi_korfbal">Korfball</string>
<string name="poi_sport_multi">Prus isports</string>
<string name="poi_paddle_tennis">Paddle tènnis</string>
<string name="poi_pelota">Pelota</string>
@ -1010,7 +1010,7 @@
<string name="poi_toll_hgv_yes">Pedàgiu pro veìculos pesantes</string>
<string name="poi_information_bicyclemap">Mapa tziclìstica</string>
<string name="poi_water_characteristic_mineral">Minerale</string>
<string name="poi_water_characteristic_mud">Caraterìsica de sabba: ludu</string>
<string name="poi_water_characteristic_mud">Ludu</string>
<string name="poi_water_characteristic_sulfuric">Solfòrica</string>
<string name="poi_water_point">Puntu de abba</string>
<string name="poi_cuisine">Coghina</string>
@ -2215,7 +2215,7 @@
<string name="poi_fuel_100ll">Carburante 100LL</string>
<string name="poi_fuel_autogas">Autogas</string>
<string name="poi_fuel_jeta1">Carburante Jet A-1</string>
<string name="poi_fuel_adblue">Carburante AdBlue</string>
<string name="poi_fuel_adblue">AdBlue - additivu de iscàrrigu diesel</string>
<string name="poi_fuel_wood">Combustìbile: linna</string>
<string name="poi_fuel_charcoal">Combustìbile: carbone vegetale</string>
<string name="poi_fuel_coal">Combustìbile: carbone</string>

View file

@ -3826,4 +3826,6 @@
<string name="route_between_points">Àndala intre puntos</string>
<string name="plan_a_route">Pranìfica un\'àndala</string>
<string name="add_to_a_track">Annanghe a una rasta</string>
<string name="shared_string_custom">Personalizadu</string>
<string name="gpx_direction_arrows">Fritzas de diretzione</string>
</resources>

View file

@ -815,4 +815,9 @@
<string name="poi_fuel_coal">Gorivo: premog</string>
<string name="poi_fuel_wood">Gorivo: les</string>
<string name="poi_aerodrome">Letališče</string>
<string name="poi_parking_entrance">Vhod v parkirišče</string>
<string name="poi_subway_entrance">Vhod v podzemno železnico</string>
<string name="poi_aeroway_terminal">Letališki terminal</string>
<string name="poi_runway">Tekaška proga</string>
<string name="poi_bicycle_parking">Parkirišče za kolesa</string>
</resources>

View file

@ -78,7 +78,7 @@
<string name="poi_boutique">Moda butik</string>
<string name="poi_camera">Kameralar ve lensler</string>
<string name="poi_carpet">Halı mağazası</string>
<string name="poi_charity">Hayır evi</string>
<string name="poi_charity">Yardım dükkanı</string>
<string name="poi_chemist">İlaç mağazası</string>
<string name="poi_clothes">Giyim mağazası</string>
<string name="poi_clothes_children">Çocuk giyim</string>
@ -520,7 +520,7 @@
<string name="poi_horse_racing">At yarışı</string>
<string name="poi_ice_skating">Buz pateni</string>
<string name="poi_ice_stock">Buz stoku</string>
<string name="poi_korfbal">Korfbal</string>
<string name="poi_korfbal">Korfbol</string>
<string name="poi_sport_motor">Motor sporları</string>
<string name="poi_orienteering">Oryantiring</string>
<string name="poi_paddle_tennis">Raket Tenisi</string>
@ -1159,7 +1159,7 @@
<string name="poi_honey">Bal dükkanı</string>
<string name="poi_fuel_91ul">91UL yakıt</string>
<string name="poi_fuel_100ll">100LL yakıt</string>
<string name="poi_fuel_adblue">AdBlue yakıt</string>
<string name="poi_fuel_adblue">Dizel egzoz sıvısı</string>
<string name="poi_fuel_wood">Yakıt: odun</string>
<string name="poi_fuel_charcoal">Yakıt: odun kömürü</string>
<string name="poi_fuel_coal">Yakıt: kömür</string>
@ -1404,7 +1404,7 @@
<string name="poi_pump_powered">Enerjili</string>
<string name="poi_pump_no">Pompa yok</string>
<string name="poi_water_characteristic_mineral">Mineral</string>
<string name="poi_water_characteristic_mud">Su karakteristiği: çamur</string>
<string name="poi_water_characteristic_mud">Çamur</string>
<string name="poi_water_characteristic_sulfuric">Sülfürik</string>
<string name="poi_water_point">Su noktası</string>
<string name="poi_species">Türler</string>
@ -1815,7 +1815,7 @@
<string name="poi_memorial_koshinto">Koshinto</string>
<string name="poi_memorial_blue_plaque">Mavi levha</string>
<string name="poi_memorial_jizo">Jizo</string>
<string name="poi_memorial_cross">Haç şeklinde</string>
<string name="poi_memorial_cross">Haç şekli</string>
<string name="poi_memorial_vehicle">Araç</string>
<string name="poi_memorial_obelisk">Dikilitaş</string>
<string name="poi_inscription">Yazıt</string>

View file

@ -993,7 +993,7 @@
<string name="shared_string_delete_all">Tümünü sil</string>
<string name="animate_routing_route_not_calculated">Lütfen ilk olarak rotayı hesaplayın</string>
<string name="animate_routing_route">Hesaplanan rotayı kullanarak simülasyon </string>
<string name="animate_routing_gpx">GPX Rota kullanarak simülasyonlar</string>
<string name="animate_routing_gpx">GPX yolu kullanarak simülasyon</string>
<string name="shared_string_remember_my_choice">Seçimi anımsa</string>
<string name="shared_string_and">ve</string>
<string name="shared_string_or">veya</string>
@ -2463,8 +2463,8 @@
<string name="shared_string_swap">Takas</string>
<string name="show_more">Daha fazla görüntüle</string>
<string name="quick_action_show_hide_gpx_tracks">GPX yollarını göster/gizle</string>
<string name="quick_action_gpx_tracks_hide">Gps izlerini gizle</string>
<string name="quick_action_gpx_tracks_show">Gps izlerini göster</string>
<string name="quick_action_gpx_tracks_hide">GPX Yollarını Gizle</string>
<string name="quick_action_gpx_tracks_show">GPX Yollarını Göster</string>
<string name="add_home">Ev ekle</string>
<string name="add_work">Iş ekle</string>
<string name="work_button">İş</string>
@ -3779,4 +3779,12 @@
<string name="set_working_days_to_continue">Devam etmek için çalışma günlerini ayarlamalısınız</string>
<string name="route_between_points">Noktalar arasındaki güzergah</string>
<string name="plan_a_route">Güzergah planla</string>
<string name="add_hidden_group_info">Seçilen grup gizli olduğu için eklenen nokta haritada görünmeyecek, \"%s\" içinde bulabilirsiniz.</string>
<string name="track_show_start_finish_icons">Başlangıç bitiş simgelerini göster</string>
<string name="select_track_width">Genişlik seç</string>
<string name="gpx_split_interval_descr">Yol üzerinde mesafe veya zaman işaretlerinin görüntüleneceği aralığı seçin.</string>
<string name="gpx_split_interval_none_descr">İstediğiniz bölme seçeneğini seçin: zamana veya mesafeye göre.</string>
<string name="shared_string_custom">Özel</string>
<string name="gpx_direction_arrows">Yön okları</string>
<string name="track_coloring_solid">Koyu</string>
</resources>

View file

@ -64,7 +64,7 @@
<string name="enable_plugin_monitoring_services">启用跟踪插件使用日志位置服务GPX记录网上查询</string>
<string name="gps_not_available">请在设置中启用GPS</string>
<string name="show_lanes">显示车道</string>
<string name="avoid_unpaved">避开未铺设的道路</string>
<string name="avoid_unpaved">无未铺设道路</string>
<string name="avoid_ferries">避开轮渡</string>
<string name="avoid_in_routing_title">避让…</string>
<string name="int_continuosly">连续</string>
@ -98,7 +98,7 @@
<string name="navpoint_search_desc">坐标</string>
<string name="favourites_search_desc">我的最爱搜索</string>
<string name="unknown_from_location">出发点是尚未确定</string>
<string name="unknown_location">位置尚不清楚</string>
<string name="unknown_location">位置尚不清楚</string>
<string name="plugins_screen">插件</string>
<string name="prefs_plugins">插件</string>
<string name="debugging_and_development">OsmAnd 开发</string>
@ -177,7 +177,7 @@
<string name="global_settings">全局设置</string>
<string name="general_settings">一般</string>
<string name="user_name">你的OSM用户名</string>
<string name="open_street_map_login_descr">用于向 openstreetmap.org 进行提交。</string>
<string name="open_street_map_login_descr">向 openstreetmap.org 提交所需</string>
<string name="user_password">您的OSM密码</string>
<string name="osmand_service">睡眠模式功能</string>
<string name="osmand_service_descr">使用屏幕关闭时运行OsmAnd</string>
@ -313,7 +313,7 @@
<string name="map_view_3d">查看3D地图</string>
<string name="use_internet">使用互联网</string>
<string name="show_gps_coordinates_text">在地图上显示GPS坐标</string>
<string name="shared_string_exit"></string>
<string name="shared_string_exit">退</string>
<string name="search_button">搜索</string>
<string name="search_activity">搜索</string>
<string name="app_mode_default">浏览地图</string>
@ -414,7 +414,7 @@
<string name="cancel_navigation">停止导航</string>
<string name="clear_destination">清除终点</string>
<string name="download_using_mobile_internet">当前未连接 WiFi是否要继续使用当前网络连接下载</string>
<string name="street_name">街道</string>
<string name="street_name">街道</string>
<string name="hno">门牌号</string>
<string name="monitoring_settings">日志服务与睡眠模式</string>
<string name="choose_osmand_theme_descr">选择应用程序主题</string>
@ -716,7 +716,7 @@
<string name="download_question">是否下载 {0} - {1}</string>
<string name="download_question_exist">{0} 的离线数据已经存在({1})。是否要更新它({2})</string>
<string name="address">地址</string>
<string name="shared_string_downloading">正在下载</string>
<string name="shared_string_downloading">正在下载</string>
<string name="downloading_list_indexes">正在下载可用区域的列表…</string>
<string name="list_index_files_was_not_loaded">区域列表未能从 osmand.net 获取。</string>
<string name="fav_points_edited">收藏点已被编辑</string>
@ -731,8 +731,8 @@
<string name="loading_streets">正在加载街道…</string>
<string name="loading_cities">正在加载城市…</string>
<string name="poi">兴趣点</string>
<string name="error_calculating_route">路线计算出错</string>
<string name="error_calculating_route_occured">计算路线时有错误发生</string>
<string name="error_calculating_route">无法计算路线。</string>
<string name="error_calculating_route_occured">无法计算路线。</string>
<string name="empty_route_calculated">错误:计算出的路线为空</string>
<string name="new_route_calculated_dist">新路线已计算出,距离</string>
<string name="loading_data">正在加载数据…</string>
@ -791,7 +791,7 @@
<string name="poi_error_poi_not_found">节点未找到,或者设施不是单个节点,该情况尚不支持。</string>
<string name="poi_remove_confirm_template">是否删除 {0} (输入备注)</string>
<string name="poi_remove_title">删除兴趣点</string>
<string name="poi_remove_success">兴趣点已被成功删除</string>
<string name="poi_remove_success">删除</string>
<string name="poi_action_add">添加</string>
<string name="poi_action_change">修改</string>
<string name="poi_action_succeded_template">动作 {0} 已成功完成。</string>
@ -869,14 +869,14 @@
<string name="rendering_attr_showMtbRoutes_name">显示 MTB 路线</string>
<string name="show_polygons">显示多边形</string>
<string name="shared_string_email_address">电子邮件地址</string>
<string name="rendering_attr_hideUnderground_name">隐藏地下对象</string>
<string name="rendering_attr_hideUnderground_name">隐藏地下物体</string>
<string name="data_is_not_available">数据不可用</string>
<string name="shared_string_remove">移除</string>
<string name="shared_string_read_more">阅读更多</string>
<string name="add_time_span">增加时间跨度</string>
<string name="road_blocked">道路被阻塞</string>
<string name="shared_string_select">选择</string>
<string name="rendering_attr_hideIcons_name">隐藏 POI 图标</string>
<string name="rendering_attr_hideIcons_name">隐藏兴趣点图标</string>
<string name="item_removed">项目已移除</string>
<string name="n_items_removed">项目已移除</string>
<string name="shared_string_undo_all">全部撤销</string>
@ -977,7 +977,7 @@
<string name="rendering_value_default13_name">默认 (13)</string>
<string name="rendering_value_defaultTranslucentCyan_name">默认 (半透明青色)</string>
<string name="rendering_attr_currentTrackColor_name">GPX 颜色</string>
<string name="rendering_attr_currentTrackColor_description">GPX 颜色</string>
<string name="rendering_attr_currentTrackColor_description">GPX颜色</string>
<string name="rendering_attr_currentTrackWidth_name">GPX 宽度</string>
<string name="rendering_attr_currentTrackWidth_description">GPX 宽度</string>
<string name="rendering_value_red_name">红色</string>
@ -1114,16 +1114,16 @@
<string name="type_postcode">输入邮政编码</string>
<string name="nearest_cities">附近的城市</string>
<string name="select_city">选择城市</string>
<string name="select_postcode">选择邮政编码</string>
<string name="select_postcode">邮政编码搜索</string>
<string name="quick_action_auto_zoom">地图自动缩放开关</string>
<string name="quick_action_auto_zoom_on">启用地图自动缩放</string>
<string name="quick_action_auto_zoom_off">禁用地图自动缩放</string>
<string name="quick_action_add_destination">添加目的地</string>
<string name="quick_action_auto_zoom_on">启用自动缩放</string>
<string name="quick_action_auto_zoom_off">关闭自动缩放</string>
<string name="quick_action_add_destination">设置目的地</string>
<string name="quick_action_replace_destination">更换目的地</string>
<string name="quick_action_add_first_intermediate">添加第一个途径地</string>
<string name="subscribe_email_error">错误</string>
<string name="fonts_header">地图字体</string>
<string name="right_side_navigation">靠右驾驶</string>
<string name="right_side_navigation">右侧通行</string>
<string name="driving_region_automatic">自动</string>
<string name="do_not_send_anonymous_app_usage">不要发送匿名应用使用统计信息</string>
<string name="restore_purchases">恢复购买内容</string>
@ -1134,7 +1134,7 @@
<string name="shared_string_action_name">操作名称</string>
<string name="quick_action_auto_zoom_desc">点击操作按钮可以根据您的速度开启/关闭自动地图缩放功能。</string>
<string name="parking_options">泊车选项</string>
<string name="points_delete_multiple_succesful">点已成功删除。</string>
<string name="points_delete_multiple_succesful">点已删除。</string>
<string name="points_delete_multiple">您将要删除 %1$d 个点。要继续操作吗?</string>
<string name="average_speed">平均速度</string>
<string name="max_speed">最快速度</string>
@ -1173,12 +1173,12 @@
<string name="routing_attr_avoid_shuttle_train_name">避开通勤火车</string>
<string name="routing_attr_avoid_shuttle_train_description">避开通勤火车</string>
<string name="impassable_road">避开道路…</string>
<string name="routing_attr_avoid_toll_name">避开收费公路</string>
<string name="routing_attr_avoid_toll_name">收费公路</string>
<string name="routing_attr_avoid_toll_description">避开收费公路</string>
<string name="routing_attr_avoid_unpaved_name">避开未铺设道路</string>
<string name="routing_attr_avoid_unpaved_name">未铺设道路</string>
<string name="routing_attr_avoid_unpaved_description">避开未铺设道路。</string>
<string name="routing_attr_avoid_ferries_name">避开渡轮</string>
<string name="routing_attr_avoid_ferries_description">轮渡</string>
<string name="routing_attr_avoid_ferries_name">无轮渡</string>
<string name="routing_attr_avoid_ferries_description">轮渡</string>
<string name="favourites_context_menu_add">添加收藏</string>
<string name="map_widget_plain_time">当前时间</string>
<string name="map_widget_battery">电池用量</string>
@ -1199,17 +1199,17 @@
<string name="map_mode">地图模式</string>
<string name="map_magnifier">地图缩放</string>
<string name="rendering_attr_showSurfaceGrade_name">显示道路质量</string>
<string name="rendering_attr_showSurfaces_name"/>
<string name="rendering_attr_showSurfaces_name">显示路面材质</string>
<string name="map_widget_left">左边栏</string>
<string name="map_widget_right">右边栏</string>
<string name="rendering_attr_showCycleRoutes_name"/>
<string name="rendering_attr_showCycleRoutes_name">显示</string>
<string name="rendering_attr_horseRoutes_name">马匹路线</string>
<string name="download_wikipedia_maps">维基百科</string>
<string name="do_not_show_startup_messages_desc">停止显示应用折扣信息和特殊本地事件信息。</string>
<string name="shared_string_max">最大</string>
<string name="shared_string_time">时间</string>
<string name="total_distance">总距离</string>
<string name="gpx_add_track">添加轨迹</string>
<string name="gpx_add_track">添加更多…</string>
<string name="shared_string_paused">已暂停</string>
<string name="edit_filter">编辑分类</string>
<string name="subcategories">子分类</string>
@ -1218,7 +1218,7 @@
<string name="anonymous_user">匿名用户</string>
<string name="logged_as">以 %1$s 身份登录</string>
<string name="speed_limit_exceed">速度限制容忍程度</string>
<string name="rendering_category_others"/>
<string name="rendering_category_others">其他地图属性</string>
<string name="print_route">显示路线</string>
<string name="search_osm_offline">搜索地理位置</string>
<string name="srtm_color_scheme">颜色方案</string>
@ -1227,7 +1227,7 @@
<string name="display_zoom_level">显示缩放等级:%1$s</string>
<string name="online_map">在线地图</string>
<string name="roads_only">仅道路</string>
<string name="device_memory"/>
<string name="device_memory">设备内存</string>
<string name="first_usage_item">初次使用</string>
<string name="tips_and_tricks_descr">常见问题、最近修改和其它内容。</string>
<string name="faq_item_description">常见问题</string>
@ -1248,8 +1248,8 @@
<string name="local_map_names">本地名称</string>
<string name="versions_item">版本信息</string>
<string name="shared_string_my_location">我的位置</string>
<string name="select_destination_and_intermediate_points">选择目的地</string>
<string name="route_descr_select_destination">选择目的地</string>
<string name="select_destination_and_intermediate_points">设置目的地</string>
<string name="route_descr_select_destination">设置目的地</string>
<string name="wake_on_voice_descr">(如果屏幕未点亮)在接近转弯地点时点亮屏幕。</string>
<string name="change_markers_position">改变记号位置</string>
<string name="private_access_routing_req">您的目的地似乎位于私人领地。您是否要允许在您的本次旅途中导航进入私人道路?</string>
@ -1269,20 +1269,20 @@
<string name="everything_up_to_date">所有文件均为最新</string>
<string name="use_opengl_render">使用 OpenGL 渲染</string>
<string name="use_opengl_render_descr">使用硬件加速 OpenGL 渲染(可能在某些设备上无法工作)</string>
<string name="rendering_attr_publicTransportMode_name"/>
<string name="rendering_attr_tramTrainRoutes_name"/>
<string name="rendering_attr_subwayMode_name"/>
<string name="rendering_attr_publicTransportMode_name">公交,无轨电车,班车线路</string>
<string name="rendering_attr_tramTrainRoutes_name">电车和火车线路</string>
<string name="rendering_attr_subwayMode_name">地铁线路</string>
<string name="dash_download_msg_none">您是否想要下载离线地图?</string>
<string name="lock_screen_request_explanation">%1$s 需要该项权限以关闭屏幕提供节能功能。</string>
<string name="dash_download_msg">您已下载 %1$s 份地图</string>
<string name="dash_download_new_one">下载新地图</string>
<string name="dash_download_manage">管理</string>
<string name="rendering_attr_trainLightrailRoutes_name">铁路线路</string>
<string name="rendering_category_hide"/>
<string name="rendering_category_hide">隐藏</string>
<string name="traffic_warning_pedestrian">人行横道</string>
<string name="rendering_category_routes"/>
<string name="rendering_category_routes">线路</string>
<string name="show_railway_warnings">铁道交口</string>
<string name="rendering_category_details"/>
<string name="rendering_category_details">详细资料</string>
<string name="show_pedestrian_warnings">人行横道</string>
<string name="rendering_attr_busRoutes_name">公交线路</string>
<string name="traffic_warning_railways">铁道交口</string>
@ -1297,9 +1297,9 @@
<string name="profile_settings">选择设置对应场景</string>
<string name="routing_attr_allow_private_name">允许私有访问</string>
<string name="routing_attr_weight_name">重量限制</string>
<string name="routing_attr_avoid_stairs_name">避免阶梯</string>
<string name="routing_attr_avoid_stairs_name">阶梯</string>
<string name="routing_attr_avoid_stairs_description">避免阶梯</string>
<string name="routing_attr_avoid_borders_name">避开边界穿越</string>
<string name="routing_attr_avoid_borders_name">边界穿越</string>
<string name="routing_attr_avoid_borders_description">避免穿越边境线进入其它国家</string>
<string name="routing_attr_weight_description">指定路线上允许的车辆重量。</string>
<string name="routing_attr_height_name">高度限制</string>
@ -1345,10 +1345,10 @@
<string name="plugin_mapillary_descr">将街道平面照片給每个人。发现新地点、写作、获取整个世界。</string>
<string name="quick_action_showhide_osmbugs_descr">轻点动作按钮会在地图上显示或隐藏 OSM 注记。</string>
<string name="sorted_by_distance">按距离排序</string>
<string name="search_favorites">搜索我的收藏</string>
<string name="search_favorites">在我的收藏中搜索</string>
<string name="hillshade_menu_download_descr">要在地图上看到起伏的山坡,您需要下载这个地区的地形阴影层地图。</string>
<string name="hillshade_purchase_header">要在地图上看到起伏的山坡,您需要购买并安装等高线插件</string>
<string name="hide_from_zoom_level">基于缩放级别隐藏</string>
<string name="hide_from_zoom_level">基于缩放级别开始隐藏</string>
<string name="srtm_menu_download_descr">要查看地图上的等高线,您需要下载该地区的等高线图。</string>
<string name="shared_string_plugin">插件</string>
<string name="srtm_purchase_header">要看到地图上的等高线,您需要购买并安装等高线插件</string>
@ -1373,7 +1373,7 @@
<string name="routing_attr_relief_smoothness_factor_hills_name">丘陵</string>
<string name="routing_attr_relief_smoothness_factor_plains_name">低丘陵</string>
<string name="routing_attr_relief_smoothness_factor_more_plains_name">平地</string>
<string name="routing_attr_driving_style_speed_name">更短的路</string>
<string name="routing_attr_driving_style_speed_name">更短的路线</string>
<string name="routing_attr_driving_style_balance_name">平衡</string>
<string name="routing_attr_driving_style_safety_name">偏好背街小路</string>
<string name="relief_smoothness_factor_descr">首选的地形:平坦或丘陵。</string>
@ -1384,7 +1384,7 @@
<string name="shared_string_gpx_track">轨迹</string>
<string name="shared_string_time_moving">移动的时间</string>
<string name="shared_string_time_span">时间跨度</string>
<string name="select_gpx_folder">选择轨迹文件夹</string>
<string name="select_gpx_folder">选择GPX轨迹文件夹</string>
<string name="shared_string_gpx_tracks">轨迹</string>
<string name="route_altitude">路线标高</string>
<string name="altitude_descent">下坡</string>
@ -1398,23 +1398,23 @@
<string name="rendering_attr_depthContours_name">航海等深线</string>
<string name="auto_split_recording_title">自动拆分录音后的间隙</string>
<string name="auto_split_recording_descr">如果日期已更改开始新区段在6分钟后的间隙新轨迹在2小时后的间隙或新文件在更长的间隙之后。</string>
<string name="rendering_attr_contourDensity_description">等高线密度</string>
<string name="rendering_attr_contourDensity_name">等高线密度</string>
<string name="rendering_attr_contourDensity_description">等高线密度</string>
<string name="rendering_attr_contourDensity_name">等高线密度</string>
<string name="rendering_value_high_name"></string>
<string name="rendering_value_medium_w_name">中等</string>
<string name="rendering_value_low_name"></string>
<string name="rendering_attr_contourWidth_description">等高线线宽</string>
<string name="rendering_attr_contourWidth_name">等高线线宽</string>
<string name="rendering_attr_hideWaterPolygons_description"></string>
<string name="rendering_attr_hideWaterPolygons_name">隐藏水</string>
<string name="rendering_attr_contourWidth_description">等高线线宽</string>
<string name="rendering_attr_contourWidth_name">等高线线宽</string>
<string name="rendering_attr_hideWaterPolygons_description"></string>
<string name="rendering_attr_hideWaterPolygons_name">隐藏水</string>
<string name="legacy_search">旧版搜索</string>
<string name="show_legacy_search">显示旧版搜索</string>
<string name="show_legacy_search_desc">在抽屉列表中添加旧版搜索</string>
<string name="routing_attr_allow_motorway_name">允许进入机动车</string>
<string name="routing_attr_allow_motorway_description">允许机动车路</string>
<string name="routing_attr_allow_motorway_name">使用高速公</string>
<string name="routing_attr_allow_motorway_description">允许高速公路。</string>
<string name="route_roundabout_short">利用 %1$d 退出并离开</string>
<string name="shared_string_appearance">外观</string>
<string name="trip_rec_notification_settings">旅行记录 (没有数据)</string>
<string name="trip_rec_notification_settings">开启快速记录</string>
<string name="trip_rec_notification_settings_desc">显示通知,按录制按钮允许开始旅行记录</string>
<string name="shared_string_trip">旅行</string>
<string name="shared_string_recorded">已录制</string>
@ -1457,7 +1457,7 @@
<string name="update_all_maps_now">现在更新所有的地图吗?</string>
<string name="clear_tile_data">清除所有的图砖</string>
<string name="replace_favorite_confirmation">你确定你想要替换收藏的 %1$s</string>
<string name="rendering_attr_hideOverground_name">地上的对象</string>
<string name="rendering_attr_hideOverground_name">地上物体</string>
<string name="shared_string_change">更改</string>
<string name="get_started">使用入门</string>
<string name="route_stops_before">%1$s 之前停止</string>
@ -1545,7 +1545,7 @@
<string name="lang_nds">低地德语</string>
<string name="lang_mk">马其顿</string>
<string name="lang_fy">菲士兰</string>
<string name="lang_als">"阿尔巴尼亚 (Tosk)"</string>
<string name="lang_als">"阿尔巴尼亚 (Tosk)"</string>
<string name="world_map_download_descr">世界底图(涵盖整个世界的缩小版)可能存在丢失或过期。请考虑下载它的全球概览。</string>
<string name="map_downloaded_descr">已下载 %1$s 的地图,你现在可以开始使用它。</string>
<string name="simulate_initial_startup_descr">设置标志,指示第一个应用程序启动,保持所有其他设置保持不变。</string>
@ -1595,7 +1595,7 @@
<string name="waypoint_visit_before">造访之后</string>
<string name="short_location_on_map">纬度 %1$s 经度 %2$s</string>
<string name="shared_string_remember_my_choice">记住选择</string>
<string name="shared_string_unexpected_error">发生意外的错误</string>
<string name="shared_string_unexpected_error">意外的错误</string>
<string name="shared_string_action_template">动作 {0}</string>
<string name="shared_string_show">显示</string>
<string name="shared_string_collapse">折叠</string>
@ -1653,7 +1653,7 @@
<string name="gps_status">GPS 状态</string>
<string name="version_settings_descr">下载每夜构建。</string>
<string name="version_settings">构建</string>
<string name="rendering_attr_streetLighting_name"/>
<string name="rendering_attr_streetLighting_name">街道照明</string>
<string name="proxy_pref_descr">设置代理互联网通信</string>
<string name="shared_string_gpx_points"></string>
<string name="navigation_over_track">开始沿着轨道导航吗?</string>
@ -1677,9 +1677,9 @@
<string name="map_update">有 %1$s 个地图可更新</string>
<string name="search_for">搜索</string>
<string name="coordinates">坐标</string>
<string name="rendering_attr_tramRoutes_name">有轨电车线</string>
<string name="rendering_attr_shareTaxiRoutes_name">分享出租车线</string>
<string name="rendering_attr_trolleybusRoutes_name">无轨电车线</string>
<string name="rendering_attr_tramRoutes_name">有轨电车线</string>
<string name="rendering_attr_shareTaxiRoutes_name">分享出租车线</string>
<string name="rendering_attr_trolleybusRoutes_name">无轨电车线</string>
<string name="rendering_category_transport"/>
<string name="map_widget_appearance_rem">剩余的元素</string>
<string name="search_radius_proximity">之间</string>
@ -1732,14 +1732,14 @@
\n
\n启动此预览会更改地图样式到“冬季和滑雪”显示出冬季的条件下所有的景观特征。此查看可以在这里经由再次取消启动或通过“配置地图”下的“地图样式”这两者中任何一个的更改而恢复它。</string>
<string name="index_tours">旅游</string>
<string name="shared_string_all"/>
<string name="shared_string_all">全部</string>
<string name="shared_string_waypoints">路标</string>
<string name="download_additional_maps">要下载缺少的地图 %1$s (%2$d MB) 吗?</string>
<string name="rendering_value_browse_map_name">浏览地图</string>
<string name="rendering_value_car_name">汽车</string>
<string name="rendering_value_bicycle_name">自行车</string>
<string name="rendering_value_pedestrian_name">行人</string>
<string name="rendering_attr_coloredBuildings_name"/>
<string name="rendering_value_pedestrian_name">徒步</string>
<string name="rendering_attr_coloredBuildings_name">按类型着色建筑物</string>
<string name="continue_navigation">继续导航</string>
<string name="pause_navigation">暂停导航</string>
<string name="keep_navigation_service">保持</string>
@ -1758,21 +1758,21 @@
<string name="rendering_attr_hideText_name">文本</string>
<string name="rendering_attr_hideWoodScrubs_name">木材和磨砂</string>
<string name="rendering_attr_buildings15zoom_name">15 级缩放建筑物</string>
<string name="rendering_attr_moreDetailed_name"/>
<string name="rendering_attr_moreDetailed_name">更多细节</string>
<string name="rendering_attr_lessDetailed_name">较少细节</string>
<string name="rendering_attr_hideAccess_name">访问限制</string>
<string name="rendering_attr_showAccess_name">显示访问限制和收费</string>
<string name="no_index_file_to_download">下载找不到,请检查您的互联网连接。</string>
<string name="select_index_file_to_download">什么也没有找到。如果您无法找到您所在的地区,你可以自己制作(参考 https://osmand.net</string>
<string name="none_selected_gpx">没有选定的 GPX 文件。选取并按住现有的轨迹。</string>
<string name="local_index_select_gpx_file">选择要显示的</string>
<string name="local_index_select_gpx_file">选择轨迹</string>
<string name="gpx_split_interval">分割间隔</string>
<string name="sort_by_distance">按距离排序</string>
<string name="sort_by_name">按名称排序</string>
<string name="show_zoom_buttons_navigation_descr">在导航过程中显示缩放按钮。</string>
<string name="show_zoom_buttons_navigation">显示缩放按钮</string>
<string name="save_as_favorites_points">另存为收藏夹组</string>
<string name="layer_amenity_label">标签</string>
<string name="layer_amenity_label">兴趣点覆盖标签</string>
<string name="loading_smth">正在加载 %1$s…</string>
<string name="shared_string_waypoint">航点</string>
<string name="selected_gpx_info_show">"
@ -1856,7 +1856,7 @@
<string name="lang_ro">罗马尼亚语</string>
<string name="lang_ru">俄语</string>
<string name="lang_sc">撒丁岛语</string>
<string name="lang_sr">塞尔维亚语</string>
<string name="lang_sr">塞尔维亚语(西里尔文)</string>
<string name="lang_sr_latn">塞尔维亚语(拉丁文)</string>
<string name="lang_zh_hk">中文(香港特别行政区)</string>
<string name="lang_sk">斯洛伐克语</string>
@ -1879,8 +1879,8 @@
<string name="route_info">路线信息</string>
<string name="routing_attr_prefer_motorway_name">更喜欢机动车路</string>
<string name="routing_attr_prefer_motorway_description">更喜欢机动车路</string>
<string name="routing_attr_avoid_motorway_name">避免机动车</string>
<string name="routing_attr_avoid_motorway_description">開高速</string>
<string name="routing_attr_avoid_motorway_name">无高速公</string>
<string name="routing_attr_avoid_motorway_description">开高速公</string>
<string name="copying_osmand_files_descr">将 OsmAnd 数据文件复制到新的目标 (%s)…</string>
<string name="copying_osmand_files">正在复制 OsmAnd 数据文件…</string>
<string name="calculate_osmand_route_gpx">计算 OsmAnd 离线路线</string>
@ -1936,7 +1936,7 @@
<string name="map_widget_audionotes">音频注记</string>
<string name="rendering_attr_alpineHiking_name"/>
<string name="rendering_attr_alpineHiking_description">依据 SAC 分级计算路径</string>
<string name="rendering_attr_hikingRoutesOSMC_name"/>
<string name="rendering_attr_hikingRoutesOSMC_name">徒步旅行符号叠加层</string>
<string name="rendering_attr_hikingRoutesOSMC_description">根据 OSMC 轨迹渲染路径。</string>
<string name="target_point">目的地 %1$s</string>
<string name="intermediate_point">中转地点 %1$s</string>
@ -2069,7 +2069,7 @@
<string name="auto_follow_location_enabled">自动将使用中的地图视图置中。</string>
<string name="poi_filter_nominatim">按名称在线</string>
<string name="select_search_position">起点:</string>
<string name="context_menu_item_search">在这附近搜索</string>
<string name="context_menu_item_search">搜索附近</string>
<string name="show_more_map_detail_descr">在放大地图时已显示部份矢量地图细节(道路等)</string>
<string name="shared_string_others">其它</string>
<string name="vector_data_missing">设备端(离线)的 SD 卡上找不到数据。要使用离线地图请去下载。</string>
@ -2115,8 +2115,8 @@
<string name="transport_searching_route">交通运输结果(有 {0} 条路线可到目的地):</string>
<string name="voices">语音提示</string>
<string name="transport_context_menu">搜索公交站</string>
<string name="rotate_map_compass_opt">以指南针旋转</string>
<string name="rotate_map_bearing_opt">朝向行进方向</string>
<string name="rotate_map_compass_opt">罗盘方向</string>
<string name="rotate_map_bearing_opt">行进方向</string>
<string name="import_file_favourites">将数据保存为 GPX 文件或将路标导入到收藏夹?</string>
<string name="fav_file_to_load_not_found">{0} 处找不到包含收藏夹的 GPX 文件</string>
<string name="fav_saved_sucessfully">收藏夹成功保存到 {0}</string>
@ -2153,7 +2153,7 @@
<string name="transport_route_distance">行程距离</string>
<string name="transport">交通工具</string>
<string name="max_level_download_tile_descr">选择要下载的在线地图图像块的最大缩放级别</string>
<string name="fav_points_not_exist">没有收藏的标点</string>
<string name="fav_points_not_exist">无收藏点存在</string>
<string name="show_view_angle">显示目视方向</string>
<string name="incremental_search_street">渐进式查询街道</string>
<string name="incremental_search_building">渐进式查询建筑物</string>
@ -2324,7 +2324,7 @@
<string name="quick_action_btn_tutorial_title">更改按钮的位置</string>
<string name="quick_action_btn_tutorial_descr">长按并拖动按钮来改变其在屏幕上的位置。</string>
<string name="map_widget_ruler_control">半径量尺</string>
<string name="wrong_user_name">错误的用户名</string>
<string name="wrong_user_name">错误的用户名</string>
<string name="shared_string_to"></string>
<string name="mapillary_menu_date_from"></string>
<string name="mapillary_menu_title_username">用户名</string>
@ -2345,11 +2345,11 @@
<string name="of">%2$d 中的 %1$d</string>
<string name="moving_time">移动时间</string>
<string name="min_max">最小/最大</string>
<string name="quick_action_resume_pause_navigation">继续/暂停导航</string>
<string name="quick_action_resume_pause_navigation">暂停/继续导航</string>
<string name="quick_action_resume_pause_navigation_descr">点击该按钮以暂停或恢复导航。</string>
<string name="quick_action_show_navigation_finish_dialog">显示导航完成对话框</string>
<string name="quick_action_show_navigation_finish_dialog">显示\"导航完成\"对话框</string>
<string name="quick_action_start_stop_navigation">开始/停止导航</string>
<string name="quick_action_start_stop_navigation_descr">点击该按钮以开始或结束导航。</string>
<string name="quick_action_start_stop_navigation_descr">开始或结束导航按钮</string>
<string name="rendering_value_translucent_pink_name">半透明粉红色</string>
<string name="empty_state_osm_edits">创建或修改 OSM 对象</string>
<string name="import_as_gpx">作为 GPX 文件导入</string>
@ -2366,7 +2366,7 @@
<string name="use_location">使用位置</string>
<string name="shared_string_sort">排序</string>
<string name="coordinate_input">坐标输入</string>
<string name="marker_save_as_track">保存为轨迹</string>
<string name="marker_save_as_track">保存为GPX轨迹文件</string>
<string name="today">今天</string>
<string name="yesterday">昨天</string>
<string name="context_menu_read_full_article">阅读完整文章</string>
@ -2453,8 +2453,8 @@
<string name="routing_attr_avoid_ice_roads_fords_description">避开结冰路面和浅滩。</string>
<string name="last_seven_days">最近 7 天</string>
<string name="sort_by">排序方式</string>
<string name="do_not_use_animations">不要使用动画效果</string>
<string name="do_not_use_animations_descr">禁用应用程序中的动画效果。</string>
<string name="do_not_use_animations">动画效果</string>
<string name="do_not_use_animations_descr">关闭地图动画效果。</string>
<string name="empty_state_my_tracks">添加并记录轨迹</string>
<string name="empty_state_favourites">添加收藏</string>
<string name="empty_state_favourites_desc">在地图上添加收藏地点或从文件导入。</string>
@ -2544,15 +2544,15 @@
<string name="osn_modify_dialog_error">无法修改注记</string>
<string name="fast_coordinates_input">快速坐标输入</string>
<string name="my_location">我的位置</string>
<string name="descendingly"></string>
<string name="ascendingly"></string>
<string name="descendingly">字母倒</string>
<string name="ascendingly">字母顺</string>
<string name="order_by">排序方式:</string>
<string name="this_year">今年</string>
<string name="exit_without_saving">不保存退出?</string>
<string name="tunnel_warning">前方隧道</string>
<string name="show_tunnels">隧道</string>
<string name="download_wikipedia_description">下载 %1$s 的维基百科条目以离线阅读。</string>
<string name="add_destination_point">添加目的地</string>
<string name="add_destination_point">设置目的地</string>
<string name="mapillary_menu_title_pano">仅显示 360° 图像</string>
<string name="wiki_article_search_text">搜索对应的维基条目</string>
<string name="run_full_osmand_header">启动 OsmAnd</string>
@ -2598,7 +2598,7 @@
<string name="run_full_osmand_msg">你正在使用基于 OsmAnd 的 {0}。是否启动完整版 OsmAnd</string>
<string name="transfers_size">%1$d 次中转</string>
<string name="rendering_attr_surface_mud_name">泥路</string>
<string name="rendering_attr_surface_asphalt_name">柏油</string>
<string name="rendering_attr_surface_asphalt_name">沥青</string>
<string name="routing_attr_avoid_tram_name">不乘坐电车</string>
<string name="routing_attr_avoid_tram_description">避免电车</string>
<string name="routing_attr_avoid_bus_name">不乘坐公交</string>
@ -2646,9 +2646,9 @@
<string name="step_by_step">逐步</string>
<string name="routeInfo_road_types_name">道路类型</string>
<string name="exit_at">退出于</string>
<string name="quick_action_show_hide_gpx_tracks">显示/隐藏GPX路径</string>
<string name="quick_action_show_hide_gpx_tracks_descr">点按此按钮以在地图中显示或隐藏已选中的GPX路径</string>
<string name="quick_action_gpx_tracks_hide">隐藏GPX路径</string>
<string name="quick_action_show_hide_gpx_tracks">显示/隐藏GPX轨迹</string>
<string name="quick_action_show_hide_gpx_tracks_descr">在地图中显示或隐藏已选中的GPX轨迹的按钮。</string>
<string name="quick_action_gpx_tracks_hide">隐藏GPX轨迹</string>
<string name="quick_action_gpx_tracks_show">显示GPX路径</string>
<string name="add_destination_query">请先添加目的地</string>
<string name="release_3_3">• 新的“导向”屏幕显示家与工作地点按钮、“上一条路径”按钮、活跃的GPX路径与标记以及搜索记录
@ -2669,7 +2669,7 @@
\n</string>
<string name="use_osm_live_public_transport_description">为OsmAnd Live启用公共交通的变更情况。</string>
<string name="add_start_and_end_points">添加起点与终点</string>
<string name="rendering_attr_surface_unpaved_name">规划路径</string>
<string name="rendering_attr_surface_unpaved_name">铺设路面</string>
<string name="rendering_attr_surface_sand_name">沙地</string>
<string name="rendering_attr_surface_grass_name">草地</string>
<string name="rendering_attr_surface_ground_name">地面</string>
@ -2679,7 +2679,7 @@
<string name="rendering_attr_surface_snow_name">雪地</string>
<string name="rendering_attr_surface_paved_name">已铺装路面</string>
<string name="rendering_attr_surface_concrete_name">混凝土地</string>
<string name="rendering_attr_surface_cobblestone_name">鹅卵石</string>
<string name="rendering_attr_surface_cobblestone_name">鹅卵石</string>
<string name="rendering_attr_surface_paving_stones_name">铺路石</string>
<string name="rendering_attr_surface_stone_name">石地</string>
<string name="rendering_attr_smoothness_excellent_name">极佳</string>
@ -2751,7 +2751,7 @@
<string name="rendering_attr_winter_road_name">冬季道路</string>
<string name="price_free">免费</string>
<string name="cancel_subscription">取消订阅</string>
<string name="units_and_formats">单位格式</string>
<string name="units_and_formats">单位格式</string>
<string name="appearance">外观</string>
<string name="list_of_installed_plugins">已安装插件</string>
<string name="configure_navigation">配置导航</string>
@ -2769,8 +2769,8 @@
<string name="shared_string_memory_used_mb_desc">已使用 %1$s MB</string>
<string name="shared_string_memory_used_kb_desc">已使用 %1$s kB</string>
<string name="contour_lines_and_hillshade">轮廓线和山体阴影</string>
<string name="routing_attr_prefer_unpaved_name">偏好未铺道路</string>
<string name="routing_attr_prefer_unpaved_description">偏好未铺道路。</string>
<string name="routing_attr_prefer_unpaved_name">偏好未铺道路</string>
<string name="routing_attr_prefer_unpaved_description">偏好未铺道路。</string>
<string name="update_all_maps">更新所有地图</string>
<string name="update_all_maps_q">您确认要更新全部(%1$d地图吗</string>
<string name="default_speed_dialog_msg">用于估算未知类型道路的到达时间并限制所有道路的速度(可能会更改路线)</string>
@ -2779,7 +2779,7 @@
<string name="exported_osmand_profile">OsmAnd配置文件 %1$s</string>
<string name="overwrite_profile_q">配置文件\"%1$s\"已存在。覆盖?</string>
<string name="export_profile_failed">无法导出配置文件。</string>
<string name="profile_import">配置文件导入</string>
<string name="profile_import">导入配置文件</string>
<string name="profile_import_descr">要导入配置文件请在设备上选择其文件然后使用OsmAnd打开它。</string>
<string name="file_import_error">%1$s 导入错误:%2$s</string>
<string name="file_imported_successfully">%1$s 已成功导入。</string>
@ -2798,12 +2798,12 @@
<string name="suggested_maps">建议的地图</string>
<string name="shared_string_turn_off">关闭</string>
<string name="ltr_or_rtl_combine_via_bold_point">%1$s • %2$s</string>
<string name="select_navigation_icon">选择导航图标</string>
<string name="select_map_icon">选择地图图标</string>
<string name="select_navigation_icon">移动时定位图标</string>
<string name="select_map_icon">静止位置图标</string>
<string name="delete_profiles_descr">在您点击“应用”后,已删除的配置将永久丢失。</string>
<string name="select_color">选择颜色</string>
<string name="edit_profiles_descr">您不能删除默认的 OsmAnd 配置,但您可以在前一个屏幕中将其禁用,或是将它们移到底部。</string>
<string name="choose_icon_color_name">选择图标、颜色和名称</string>
<string name="choose_icon_color_name">图标、颜色与名称</string>
<string name="reset_confirmation_descr">如果点击 %1$s您将丢失所有更改。</string>
<string name="reset_all_profile_settings_descr">所有配置设置将会重置为安装后的状态。</string>
<string name="reset_all_profile_settings">要将所有配置设置重置为默认值吗?</string>
@ -2817,7 +2817,7 @@
<string name="multimedia_use_system_camera">使用系统应用程序</string>
<string name="multimedia_photo_play_sound">相机快门声音</string>
<string name="osm_authorization_success">授权成功</string>
<string name="day"/>
<string name="day">日</string>
<string name="use_system_screen_timeout">使用系统屏幕超时</string>
<string name="open_settings">打开设置</string>
<string name="plugin_disabled">插件已禁用</string>
@ -2893,7 +2893,31 @@
<string name="show_closed_notes">显示关闭的注记</string>
<string name="osm_edit_closed_note">关闭的OSM注记</string>
<string name="add_online_source">添加在线资源</string>
<string name="rendering_attr_highway_class_bridleway_name"></string>
<string name="rendering_attr_surface_gravel_name"></string>
<string name="rendering_attr_surface_sett_name"></string>
<string name="rendering_attr_highway_class_bridleway_name"/>
<string name="rendering_attr_surface_gravel_name">砾石</string>
<string name="rendering_attr_surface_sett_name">比利时石砌路</string>
<string name="routing_attr_allow_expert_name">允许专家路线</string>
<string name="rendering_value_walkingRoutesOSMCNodes_name">节点网络</string>
<string name="hide_compass_ruler">隐藏罗盘标尺</string>
<string name="quick_action_show_hide_hillshade">显示/隐藏山体阴影</string>
<string name="quick_action_hillshade_hide">隐藏山体阴影</string>
<string name="quick_action_show_hide_contour_lines">显示/隐藏轮廓线</string>
<string name="quick_action_contour_lines_hide">隐藏轮廓线</string>
<string name="quick_action_terrain_descr">在地图上显示或隐藏地形图层的按钮。</string>
<string name="details_dialog_decr">显示或隐藏其他地图细节</string>
<string name="quick_action_showhide_mapillary_descr">在地图上显示或隐藏Mapillary图层的开关。</string>
<string name="slope_description">坡度使用颜色来可视化地形陡度。</string>
<string name="accessibility_prefs_descr">选择图标、颜色与名称</string>
<string name="track_coloring_solid">实线</string>
<string name="rendering_attr_surface_compacted_name">马路</string>
<string name="rendering_attr_surface_pebblestone_name">卵石</string>
<string name="rendering_attr_surface_grass_paver_name">草坪砖</string>
<string name="rendering_attr_surface_fine_gravel_name">细砂砾</string>
<string name="routeInfo_tracktype_name">表面坚固度</string>
<string name="rendering_attr_streetLightingNight_name">仅在夜晚显示</string>
<string name="layer_osm_edits">OSM编辑</string>
<string name="quick_action_transport_descr">在地图上显示或隐藏公共交通的按钮。</string>
<string name="base_profile_descr_public_transport">公共交通类型</string>
<string name="rendering_attr_showLez_description">在地图上显示低排放区。不影响路线规划。</string>
<string name="rendering_attr_showLez_name">显示低排放区</string>
</resources>

View file

@ -3819,4 +3819,12 @@
<string name="route_between_points">點與點之間的路線</string>
<string name="plan_a_route">規劃路線</string>
<string name="add_to_a_track">新增到軌跡</string>
<string name="add_hidden_group_info">因為選取的群組是隱藏的,所以加入的點在地圖上不可見,您可以在「%s」尋找它。</string>
<string name="track_show_start_finish_icons">顯示開始與結束圖示</string>
<string name="select_track_width">選取寬度</string>
<string name="gpx_split_interval_descr">選擇在軌跡上要顯示帶有距離或時間標記的間隔。</string>
<string name="gpx_split_interval_none_descr">選取所需的分割選項:按時間或按距離。</string>
<string name="shared_string_custom">自訂</string>
<string name="gpx_direction_arrows">方向箭頭</string>
<string name="track_coloring_solid">密實</string>
</resources>

View file

@ -55,7 +55,7 @@
<string name="poi_fee">Fee</string>
<string name="poi_smoking">Smoking</string>
<string name="poi_delivery">Delivery</string>
<string name="poi_drive_in">Drive in</string>
<string name="poi_drive_in">Drive-in</string>
<string name="poi_drive_through">Drive through</string>
<string name="poi_takeaway">Takeaway</string>
<string name="poi_cocktails">Cocktails</string>
@ -219,7 +219,7 @@
<string name="poi_boutique">Fashion boutique</string>
<string name="poi_camera">Cameras and lenses</string>
<string name="poi_carpet">Carpet store</string>
<string name="poi_charity">Charity store</string>
<string name="poi_charity">Charity shop</string>
<string name="poi_chemist">Drug store</string>
<string name="poi_clothes">Apparel store</string>
<string name="poi_clothes_children">Children\'s apparel</string>
@ -372,7 +372,7 @@
<string name="poi_fuel_100ll">100LL fuel</string>
<string name="poi_fuel_autogas">Autogas</string>
<string name="poi_fuel_jeta1">Jet A-1 fuel</string>
<string name="poi_fuel_adblue">AdBlue fuel</string>
<string name="poi_fuel_adblue">Diesel exhaust fluid</string>
<string name="poi_fuel_electricity">Electricity</string>
<string name="poi_aeroway_fuel">Aircraft fuel station</string>
<string name="poi_waterway_fuel">Gas station for boats</string>
@ -717,7 +717,7 @@
<string name="poi_horse_racing">Horse racing</string>
<string name="poi_ice_skating">Ice skating</string>
<string name="poi_ice_stock">Ice stock</string>
<string name="poi_korfbal">Korfbal</string>
<string name="poi_korfbal">Korfball</string>
<string name="poi_sport_motor">Motor sport</string>
<string name="poi_sport_multi">Multi sport</string>
<string name="poi_orienteering">Orienteering</string>
@ -1495,7 +1495,7 @@
<string name="poi_pump_yes">Yes</string>
<string name="poi_water_characteristic_mineral">Mineral</string>
<string name="poi_water_characteristic_mud">Water characteristic: mud</string>
<string name="poi_water_characteristic_mud">Mud</string>
<string name="poi_water_characteristic_sulfuric">Sulfuric</string>
<string name="poi_water_point">Water point</string>
@ -1931,7 +1931,7 @@
<string name="poi_memorial_koshinto">Koshinto</string>
<string name="poi_memorial_blue_plaque">Blue plaque</string>
<string name="poi_memorial_jizo">Jizo</string>
<string name="poi_memorial_cross">Cross-shaped</string>
<string name="poi_memorial_cross">Cross-shape</string>
<string name="poi_memorial_vehicle">Vehicle</string>
<string name="poi_memorial_stolperstein">Stolperstein</string>
<string name="poi_memorial_obelisk">Obelisk</string>
@ -4241,4 +4241,4 @@
<string name="poi_city_block">City block</string>
</resources>
</resources>

View file

@ -671,50 +671,35 @@ public class OsmandAidlApi {
public void onReceive(Context context, Intent intent) {
MapActivity mapActivity = mapActivityRef.get();
if (mapActivity != null) {
boolean force = intent.getBooleanExtra(AIDL_FORCE, false);
GPXFile gpx = null;
if (intent.getStringExtra(AIDL_DATA) != null) {
String gpxStr = intent.getStringExtra(AIDL_DATA);
if (!Algorithms.isEmpty(gpxStr)) {
gpx = GPXUtilities.loadGPXFile(new ByteArrayInputStream(gpxStr.getBytes()));
}
} else if (intent.getParcelableExtra(AIDL_URI) != null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
Uri gpxUri = intent.getParcelableExtra(AIDL_URI);
ParcelFileDescriptor gpxParcelDescriptor = null;
try {
gpxParcelDescriptor = mapActivity.getContentResolver().openFileDescriptor(gpxUri, "r");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
if (gpxParcelDescriptor != null) {
FileDescriptor fileDescriptor = gpxParcelDescriptor.getFileDescriptor();
gpx = GPXUtilities.loadGPXFile(new FileInputStream(fileDescriptor));
}
}
}
GPXFile gpx = loadGpxFileFromIntent(mapActivity, intent);
if (gpx != null) {
final RoutingHelper routingHelper = app.getRoutingHelper();
if (routingHelper.isFollowingMode() && !force) {
final GPXFile gpxFile = gpx;
AlertDialog dlg = mapActivity.getMapActions().stopNavigationActionConfirm();
dlg.setOnDismissListener(new DialogInterface.OnDismissListener() {
boolean force = intent.getBooleanExtra(AIDL_FORCE, false);
ExternalApiHelper.saveAndNavigateGpx(mapActivity, gpx, force);
}
}
}
@Override
public void onDismiss(DialogInterface dialog) {
MapActivity mapActivity = mapActivityRef.get();
if (mapActivity != null && !routingHelper.isFollowingMode()) {
ExternalApiHelper.startNavigation(mapActivity, gpxFile);
}
}
});
} else {
ExternalApiHelper.startNavigation(mapActivity, gpx);
private GPXFile loadGpxFileFromIntent(@NonNull MapActivity mapActivity, @NonNull Intent intent) {
GPXFile gpx = null;
String gpxStr = intent.getStringExtra(AIDL_DATA);
if (!Algorithms.isEmpty(gpxStr)) {
gpx = GPXUtilities.loadGPXFile(new ByteArrayInputStream(gpxStr.getBytes()));
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
Uri gpxUri = intent.getParcelableExtra(AIDL_URI);
if (gpxUri != null) {
ParcelFileDescriptor gpxParcelDescriptor = null;
try {
gpxParcelDescriptor = mapActivity.getContentResolver().openFileDescriptor(gpxUri, "r");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
if (gpxParcelDescriptor != null) {
FileDescriptor fileDescriptor = gpxParcelDescriptor.getFileDescriptor();
gpx = GPXUtilities.loadGPXFile(new FileInputStream(fileDescriptor));
}
}
}
return gpx;
}
};
registerReceiver(navigateGpxReceiver, mapActivity, AIDL_NAVIGATE_GPX);

View file

@ -25,9 +25,10 @@ class AppVersionUpgradeOnInit {
// Each upgrade should have independent version!
// So, we could have multiple upgrades per 1 release i.e. 3701, 3702, 3703, ... - will be for 3.7
public static final int VERSION_3_7_01 = 3701;
// 3800 - 3.8-00
public static final int VERSION_3_8_00 = 3800;
public static final int LAST_APP_VERSION = VERSION_3_7_01;
public static final int LAST_APP_VERSION = VERSION_3_8_00;
static final String VERSION_INSTALLED = "VERSION_INSTALLED";
@ -110,6 +111,10 @@ class AppVersionUpgradeOnInit {
});
startPrefs.edit().putInt(VERSION_INSTALLED_NUMBER, VERSION_3_7_01).commit();
}
if (prevAppVersion < VERSION_3_8_00) {
app.getSettings().migrateQuickActionStates();
startPrefs.edit().putInt(VERSION_INSTALLED_NUMBER, VERSION_3_8_00).commit();
}
startPrefs.edit().putInt(VERSION_INSTALLED_NUMBER, lastVersion).commit();
startPrefs.edit().putString(VERSION_INSTALLED, Version.getFullVersion(app)).commit();
appVersionChanged = true;

View file

@ -30,15 +30,10 @@ import androidx.core.content.ContextCompat;
import com.google.android.material.slider.Slider;
import net.osmand.plus.settings.backend.ApplicationMode;
import net.osmand.plus.ContextMenuAdapter;
import net.osmand.plus.ContextMenuItem;
import net.osmand.plus.OsmAndFormatter;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.settings.backend.OsmandSettings;
import net.osmand.plus.settings.backend.OsmandSettings.AutoZoomMap;
import net.osmand.plus.settings.backend.OsmandSettings.OsmandPreference;
import net.osmand.plus.settings.backend.OsmandSettings.SpeedConstants;
import net.osmand.plus.R;
import net.osmand.plus.UiUtilities;
import net.osmand.plus.Version;
@ -48,6 +43,11 @@ import net.osmand.plus.helpers.FileNameTranslationHelper;
import net.osmand.plus.routepreparationmenu.RoutingOptionsHelper;
import net.osmand.plus.routing.RouteProvider.RouteService;
import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.settings.backend.ApplicationMode;
import net.osmand.plus.settings.backend.OsmandSettings;
import net.osmand.plus.settings.backend.OsmandSettings.AutoZoomMap;
import net.osmand.plus.settings.backend.OsmandSettings.OsmandPreference;
import net.osmand.plus.settings.backend.OsmandSettings.SpeedConstants;
import net.osmand.plus.voice.CommandPlayer;
import net.osmand.router.GeneralRouter;
import net.osmand.router.GeneralRouter.GeneralRouterProfile;
@ -749,22 +749,26 @@ public class SettingsNavigationActivity extends SettingsBaseActivity {
float settingsMinSpeed = mode.getMinSpeed();
float settingsMaxSpeed = mode.getMaxSpeed();
float settingsDefaultSpeed = mode.getDefaultSpeed();
final int[] defaultValue = {Math.round(mode.getDefaultSpeed() * ratio[0])};
final int[] defaultValue = {Math.round(settingsDefaultSpeed * ratio[0])};
final int[] minValue = new int[1];
final int[] maxValue = new int[1];
final int min;
final int max;
if (defaultSpeedOnly) {
minValue[0] = Math.round(1 * ratio[0]);
maxValue[0] = Math.round(300 * ratio[0]);
minValue[0] = Math.round(Math.min(1, settingsDefaultSpeed) * ratio[0]);
maxValue[0] = Math.round(Math.max(300, settingsDefaultSpeed) * ratio[0]);
min = minValue[0];
max = maxValue[0];
} else {
minValue[0] = Math.round((settingsMinSpeed > 0 ? settingsMinSpeed : router.getMinSpeed()) * ratio[0]);
maxValue[0] = Math.round((settingsMaxSpeed > 0 ? settingsMaxSpeed : router.getMaxSpeed()) * ratio[0]);
min = Math.round(router.getMinSpeed() * ratio[0] / 2f);
max = Math.round(router.getMaxSpeed() * ratio[0] * 1.5f);
float minSpeedValue = settingsMinSpeed > 0 ? settingsMinSpeed : router.getMinSpeed();
float maxSpeedValue = settingsMaxSpeed > 0 ? settingsMaxSpeed : router.getMaxSpeed();
minValue[0] = Math.round(Math.min(minSpeedValue, settingsDefaultSpeed) * ratio[0]);
maxValue[0] = Math.round(Math.max(maxSpeedValue, settingsDefaultSpeed) * ratio[0]);
min = Math.round(Math.min(router.getMinSpeed(), settingsDefaultSpeed) * ratio[0] / 2f);
max = Math.round(Math.max(router.getMaxSpeed(), settingsDefaultSpeed) * ratio[0] * 1.5f);
}
boolean nightMode = !app.getSettings().isLightContentForMode(mode);

View file

@ -5,6 +5,7 @@ import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Build;
import android.os.ParcelFileDescriptor;
@ -15,6 +16,7 @@ import androidx.appcompat.app.AlertDialog;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import net.osmand.AndroidUtils;
import net.osmand.GPXUtilities;
import net.osmand.GPXUtilities.GPXFile;
import net.osmand.IndexConstants;
@ -26,8 +28,9 @@ import net.osmand.aidl.search.SearchParams;
import net.osmand.data.FavouritePoint;
import net.osmand.data.LatLon;
import net.osmand.data.PointDescription;
import net.osmand.plus.settings.backend.ApplicationMode;
import net.osmand.plus.FavouritesDbHelper;
import net.osmand.plus.GpxSelectionHelper;
import net.osmand.plus.GpxSelectionHelper.SelectedGpxFile;
import net.osmand.plus.MapMarkersHelper;
import net.osmand.plus.MapMarkersHelper.MapMarker;
import net.osmand.plus.OsmandApplication;
@ -45,6 +48,9 @@ import net.osmand.plus.routing.RouteCalculationResult.NextDirectionInfo;
import net.osmand.plus.routing.RouteDirectionInfo;
import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.search.listitems.QuickSearchListItem;
import net.osmand.plus.settings.backend.ApplicationMode;
import net.osmand.plus.track.SaveGpxAsyncTask;
import net.osmand.plus.track.SaveGpxAsyncTask.SaveGpxListener;
import net.osmand.router.TurnType;
import net.osmand.search.SearchUICore;
import net.osmand.search.core.ObjectType;
@ -202,7 +208,6 @@ public class ExternalApiHelper {
if (API_CMD_SHOW_GPX.equals(cmd) || API_CMD_NAVIGATE_GPX.equals(cmd)) {
boolean navigate = API_CMD_NAVIGATE_GPX.equals(cmd);
String path = uri.getQueryParameter(PARAM_PATH);
boolean force = uri.getBooleanQueryParameter(PARAM_FORCE, false);
GPXFile gpx = null;
if (path != null) {
@ -240,22 +245,8 @@ public class ExternalApiHelper {
if (gpx != null) {
if (navigate) {
final RoutingHelper routingHelper = app.getRoutingHelper();
if (routingHelper.isFollowingMode() && !force) {
final GPXFile gpxFile = gpx;
AlertDialog dlg = mapActivity.getMapActions().stopNavigationActionConfirm();
dlg.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
if (!routingHelper.isFollowingMode()) {
startNavigation(mapActivity, gpxFile);
}
}
});
} else {
startNavigation(mapActivity, gpx);
}
boolean force = uri.getBooleanQueryParameter(PARAM_FORCE, false);
saveAndNavigateGpx(mapActivity, gpx, force);
} else {
app.getSelectedGpxHelper().setGpxFileToDisplay(gpx);
}
@ -651,6 +642,60 @@ public class ExternalApiHelper {
return result;
}
public static void saveAndNavigateGpx(MapActivity mapActivity, final GPXFile gpxFile, final boolean force) {
final WeakReference<MapActivity> mapActivityRef = new WeakReference<>(mapActivity);
if (Algorithms.isEmpty(gpxFile.path)) {
OsmandApplication app = mapActivity.getMyApplication();
String destFileName = "route" + IndexConstants.GPX_FILE_EXT;
File destDir = app.getAppPath(IndexConstants.GPX_IMPORT_DIR);
File destFile = app.getAppPath(IndexConstants.GPX_IMPORT_DIR + destFileName);
while (destFile.exists()) {
destFileName = AndroidUtils.createNewFileName(destFileName);
destFile = new File(destDir, destFileName);
}
gpxFile.path = destFile.getAbsolutePath();
}
new SaveGpxAsyncTask(gpxFile, new SaveGpxListener() {
@Override
public void gpxSavingStarted() {
}
@Override
public void gpxSavingFinished(Exception errorMessage) {
MapActivity mapActivity = mapActivityRef.get();
if (errorMessage == null && mapActivity != null && AndroidUtils.isActivityNotDestroyed(mapActivity)) {
OsmandApplication app = mapActivity.getMyApplication();
GpxSelectionHelper helper = app.getSelectedGpxHelper();
SelectedGpxFile selectedGpx = helper.getSelectedFileByPath(gpxFile.path);
if (selectedGpx != null) {
selectedGpx.setGpxFile(gpxFile, app);
} else {
helper.selectGpxFile(gpxFile, true, false);
}
final RoutingHelper routingHelper = app.getRoutingHelper();
if (routingHelper.isFollowingMode() && !force) {
AlertDialog dlg = mapActivity.getMapActions().stopNavigationActionConfirm();
dlg.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
MapActivity mapActivity = mapActivityRef.get();
if (mapActivity != null && !routingHelper.isFollowingMode()) {
ExternalApiHelper.startNavigation(mapActivity, gpxFile);
}
}
});
} else {
startNavigation(mapActivity, gpxFile);
}
}
}
}).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
}
private void updateTurnInfo(String prefix, Intent result, NextDirectionInfo ni) {
result.putExtra(prefix + PARAM_NT_DISTANCE, ni.distanceTo);
result.putExtra(prefix + PARAM_NT_IMMINENT, ni.imminent);

View file

@ -15,9 +15,6 @@ import com.google.gson.reflect.TypeToken;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.quickaction.actions.NavRemoveNextDestination;
import net.osmand.plus.quickaction.actions.ShowHideMapillaryAction;
import net.osmand.plus.settings.backend.OsmandSettings;
import net.osmand.plus.R;
import net.osmand.plus.quickaction.actions.DayNightModeAction;
import net.osmand.plus.quickaction.actions.FavoriteAction;
@ -28,15 +25,18 @@ import net.osmand.plus.quickaction.actions.NavAddDestinationAction;
import net.osmand.plus.quickaction.actions.NavAddFirstIntermediateAction;
import net.osmand.plus.quickaction.actions.NavAutoZoomMapAction;
import net.osmand.plus.quickaction.actions.NavDirectionsFromAction;
import net.osmand.plus.quickaction.actions.NavRemoveNextDestination;
import net.osmand.plus.quickaction.actions.NavReplaceDestinationAction;
import net.osmand.plus.quickaction.actions.NavResumePauseAction;
import net.osmand.plus.quickaction.actions.NavStartStopAction;
import net.osmand.plus.quickaction.actions.NavVoiceAction;
import net.osmand.plus.quickaction.actions.ShowHideFavoritesAction;
import net.osmand.plus.quickaction.actions.ShowHideGpxTracksAction;
import net.osmand.plus.quickaction.actions.ShowHideMapillaryAction;
import net.osmand.plus.quickaction.actions.ShowHidePoiAction;
import net.osmand.plus.quickaction.actions.ShowHideTransportLinesAction;
import net.osmand.plus.quickaction.actions.SwitchProfileAction;
import net.osmand.plus.settings.backend.OsmandSettings;
import net.osmand.util.Algorithms;
import java.lang.reflect.Type;
@ -70,7 +70,6 @@ public class QuickActionRegistry {
private final OsmandSettings settings;
private List<QuickAction> quickActions;
private final Map<String, Boolean> fabStateMap;
private final Gson gson;
private List<QuickActionType> quickActionTypes = new ArrayList<>();
private Map<Integer, QuickActionType> quickActionTypesInt = new TreeMap<>();
@ -81,7 +80,6 @@ public class QuickActionRegistry {
public QuickActionRegistry(OsmandSettings settings) {
this.settings = settings;
gson = new GsonBuilder().registerTypeAdapter(QuickAction.class, new QuickActionSerializer()).create();
fabStateMap = getQuickActionFabStateMapFromJson(settings.QUICK_ACTION.get());
updateActionTypes();
}
@ -175,24 +173,13 @@ public class QuickActionRegistry {
}
public boolean isQuickActionOn() {
Boolean result = fabStateMap.get(settings.APPLICATION_MODE.get().getStringKey());
return result != null && result;
return settings.QUICK_ACTION.get();
}
public void setQuickActionFabState(boolean isOn) {
fabStateMap.put(settings.APPLICATION_MODE.get().getStringKey(), isOn);
settings.QUICK_ACTION.set(gson.toJson(fabStateMap));
settings.QUICK_ACTION.set(isOn);
}
private Map<String, Boolean> getQuickActionFabStateMapFromJson(String json) {
Type type = new TypeToken<HashMap<String, Boolean>>() {
}.getType();
HashMap<String, Boolean> quickActions = gson.fromJson(json, type);
return quickActions != null ? quickActions : new HashMap<String, Boolean>();
}
private List<QuickAction> parseActiveActionsList(String json) {
List<QuickAction> resQuickActions;
if (!Algorithms.isEmpty(json)) {

View file

@ -466,14 +466,16 @@ public class RoutingOptionsHelper {
List<LocalRoutingParameter> list = new ArrayList<LocalRoutingParameter>();
RouteProvider.GPXRouteParamsBuilder rparams = routingHelper.getCurrentGPXRoute();
boolean osmandRouter = am.getRouteService() == RouteProvider.RouteService.OSMAND;
if (rparams != null && !routingHelper.isCurrentGPXRouteV2() && osmandRouter) {
if (rparams != null && osmandRouter) {
GPXUtilities.GPXFile fl = rparams.getFile();
if (fl.hasRtePt()) {
list.add(new OtherLocalRoutingParameter(R.string.use_points_as_intermediates,
app.getString(R.string.use_points_as_intermediates), rparams.isUseIntermediatePointsRTE()));
}
list.add(new OtherLocalRoutingParameter(R.string.gpx_option_reverse_route,
app.getString(R.string.gpx_option_reverse_route), rparams.isReverse()));
if (!routingHelper.isCurrentGPXRouteV2()) {
list.add(new OtherLocalRoutingParameter(R.string.gpx_option_reverse_route,
app.getString(R.string.gpx_option_reverse_route), rparams.isReverse()));
}
if (!rparams.isUseIntermediatePointsRTE()) {
list.add(new OtherLocalRoutingParameter(R.string.gpx_option_from_start_point,
app.getString(R.string.gpx_option_from_start_point), rparams.isPassWholeRoute()));

View file

@ -137,7 +137,7 @@ public class RouteCalculationResult {
}
public RouteCalculationResult(List<RouteSegmentResult> list, Location start, LatLon end, List<LatLon> intermediates,
OsmandApplication ctx, boolean leftSide, RoutingContext rctx, List<LocationPoint> waypoints, ApplicationMode mode) {
OsmandApplication ctx, boolean leftSide, RoutingContext rctx, List<LocationPoint> waypoints, ApplicationMode mode, boolean calculateFirstAndLastPoint) {
if (rctx != null) {
this.routingTime = rctx.routingTime;
this.visitedSegments = rctx.getVisitedSegments();
@ -162,7 +162,9 @@ public class RouteCalculationResult {
List<Location> locations = new ArrayList<Location>();
ArrayList<AlarmInfo> alarms = new ArrayList<AlarmInfo>();
List<RouteSegmentResult> segments = convertVectorResult(computeDirections, locations, list, alarms, ctx);
introduceFirstPointAndLastPoint(locations, computeDirections, segments, start, end, ctx);
if (calculateFirstAndLastPoint) {
introduceFirstPointAndLastPoint(locations, computeDirections, segments, start, end, ctx);
}
this.locations = Collections.unmodifiableList(locations);
this.segments = Collections.unmodifiableList(segments);
@ -300,6 +302,37 @@ public class RouteCalculationResult {
return list;
}
public List<RouteSegmentResult> getRoute(int startIndex) {
if (segments.size() == 0) {
return null;
}
List<RouteSegmentResult> list = new ArrayList<RouteSegmentResult>();
int skippedPoints = 0;
for (int i = 1; i <= startIndex; i++) {
RouteSegmentResult seg = segments.get(i - 1);
if (seg != segments.get(i)) {
skippedPoints += Math.abs(seg.getEndPointIndex() - seg.getStartPointIndex());
}
}
list.add(segments.get(startIndex++));
for (int i = startIndex; i < segments.size(); i++) {
if (segments.get(i - 1) != segments.get(i)) {
list.add(segments.get(i));
}
}
if (!list.isEmpty()) {
RouteSegmentResult seg = list.get(0);
if (seg.isForwardDirection()) {
int index = seg.getStartPointIndex() + startIndex - skippedPoints;
seg.setStartPointIndex(index);
} else {
int index = seg.getEndPointIndex() + startIndex - skippedPoints;
seg.setEndPointIndex(index);
}
}
return list;
}
/**
* PREPARATION
*/

View file

@ -79,6 +79,7 @@ public class RouteProvider {
private static final org.apache.commons.logging.Log log = PlatformUtil.getLog(RouteProvider.class);
private static final String OSMAND_ROUTER = "OsmAndRouter";
private static final int MIN_DISTANCE_FOR_INSERTING_ROUTE_SEGMENT = 60;
private static final int ADDITIONAL_DISTANCE_FOR_START_POINT = 300;
private static final int MIN_STRAIGHT_DIST = 50000;
public enum RouteService {
@ -366,22 +367,51 @@ public class RouteProvider {
}
private RouteCalculationResult calculateGpxRoute(RouteCalculationParams routeParams) throws IOException {
List<RouteSegmentResult> route = routeParams.gpxRoute.route;
if (!Algorithms.isEmpty(route)) {
return new RouteCalculationResult(route, routeParams.start, routeParams.end,
routeParams.intermediates, routeParams.ctx, routeParams.leftSide, null, null, routeParams.mode);
}
// get the closest point to start and to end
GPXRouteParams gpxParams = routeParams.gpxRoute;
List<RouteSegmentResult> gpxRouteResult = routeParams.gpxRoute.route;
if (!Algorithms.isEmpty(gpxRouteResult)) {
boolean calculateOsmAndRouteParts = gpxParams.calculateOsmAndRouteParts;
if (routeParams.gpxRoute.passWholeRoute && !calculateOsmAndRouteParts) {
return new RouteCalculationResult(gpxRouteResult, routeParams.start, routeParams.end,
routeParams.intermediates, routeParams.ctx, routeParams.leftSide, null, null, routeParams.mode, true);
}
RouteCalculationResult result = new RouteCalculationResult(gpxRouteResult, routeParams.start, routeParams.end,
routeParams.intermediates, routeParams.ctx, routeParams.leftSide, null, null, routeParams.mode, false);
List<Location> gpxRouteLocations = result.getImmutableAllLocations();
int gpxNextIndex = routeParams.gpxRoute.passWholeRoute ? 0 : findStartIndexFromRoute(gpxRouteLocations, routeParams.start, calculateOsmAndRouteParts);
Location gpxNextLocation;
List<RouteSegmentResult> firstSegmentRoute = null;
List<RouteSegmentResult> gpxRoute;
if (gpxNextIndex > 0) {
gpxNextLocation = gpxRouteLocations.get(gpxNextIndex);
gpxRoute = result.getRoute(gpxNextIndex);
} else {
gpxNextLocation = gpxRouteLocations.get(0);
gpxRoute = result.getOriginalRoute();
}
if (calculateOsmAndRouteParts
&& routeParams.start != null && gpxNextLocation != null
&& gpxNextLocation.distanceTo(routeParams.start) > MIN_DISTANCE_FOR_INSERTING_ROUTE_SEGMENT) {
RouteCalculationResult firstSegmentResult = findOfflineRouteSegment(routeParams, routeParams.start, new LatLon(gpxNextLocation.getLatitude(), gpxNextLocation.getLongitude()));
firstSegmentRoute = firstSegmentResult.getOriginalRoute();
}
List<RouteSegmentResult> newGpxRoute = new ArrayList<>();
if (firstSegmentRoute != null && !firstSegmentRoute.isEmpty()) {
newGpxRoute.addAll(firstSegmentRoute);
}
newGpxRoute.addAll(gpxRoute);
return new RouteCalculationResult(newGpxRoute, routeParams.start, routeParams.end,
routeParams.intermediates, routeParams.ctx, routeParams.leftSide, null, null, routeParams.mode, true);
}
if(routeParams.gpxRoute.useIntermediatePointsRTE){
return calculateOsmAndRouteWithIntermediatePoints(routeParams, gpxParams.points);
}
List<Location> gpxRoute ;
int[] startI = new int[]{0};
int[] endI = new int[]{gpxParams.points.size()};
if(routeParams.gpxRoute.passWholeRoute) {
if (routeParams.gpxRoute.passWholeRoute) {
gpxRoute = gpxParams.points;
if (routeParams.previousToRecalculate != null && routeParams.onlyStartPointChanged) {
List<Location> routeLocations = routeParams.previousToRecalculate.getRouteLocations();
@ -389,7 +419,7 @@ public class RouteProvider {
gpxRoute = new ArrayList<>();
Location trackStart = routeLocations.get(0);
Location realStart = routeParams.start;
//insert route segment from current location to next route location if user deviated from route
//insert gpxRouteResult segment from current location to next gpxRouteResult location if user deviated from gpxRouteResult
if (realStart != null && trackStart != null
&& realStart.distanceTo(trackStart) > MIN_DISTANCE_FOR_INSERTING_ROUTE_SEGMENT
&& !gpxParams.calculateOsmAndRouteParts) {
@ -625,6 +655,30 @@ public class RouteProvider {
return sublist;
}
private int findStartIndexFromRoute(List<Location> route, Location startLoc, boolean calculateOsmAndRouteParts) {
float minDist = Integer.MAX_VALUE;
int start = 0;
if (startLoc != null) {
for (int i = 0; i < route.size(); i++) {
float d = route.get(i).distanceTo(startLoc);
if (d < minDist) {
start = i;
minDist = d;
}
}
}
if (start > 0 && calculateOsmAndRouteParts) {
Location newStartLoc = route.get(start);
for (int i = start + 1; i < route.size(); i++) {
Location loc = route.get(i);
if (loc.distanceTo(newStartLoc) >= ADDITIONAL_DISTANCE_FOR_START_POINT) {
return i;
}
}
}
return start;
}
protected String getString(Context ctx, int resId){
if(ctx == null){
return ""; //$NON-NLS-1$
@ -812,7 +866,7 @@ public class RouteProvider {
} else {
RouteCalculationResult res = new RouteCalculationResult(result, params.start, params.end,
params.intermediates, params.ctx, params.leftSide, ctx, params.gpxRoute == null? null: params.gpxRoute.wpt,
params.mode);
params.mode, true);
return res;
}
} catch (RuntimeException e) {

View file

@ -75,6 +75,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashMap;
@ -318,6 +319,27 @@ public class OsmandSettings {
}
}
public void migrateQuickActionStates() {
String quickActionsJson = settingsAPI.getString(globalPreferences, "quick_action_new", "");
if (!Algorithms.isEmpty(quickActionsJson)) {
Gson gson = new GsonBuilder().create();
Type type = new TypeToken<HashMap<String, Boolean>>() {
}.getType();
HashMap<String, Boolean> quickActions = gson.fromJson(quickActionsJson, type);
if (!Algorithms.isEmpty(quickActions)) {
for (ApplicationMode mode : ApplicationMode.allPossibleValues()) {
if (!QUICK_ACTION.isSetForMode(mode)) {
Boolean actionState = quickActions.get(mode.getStringKey());
if (actionState == null) {
actionState = QUICK_ACTION.getDefaultValue();
}
setPreference(QUICK_ACTION.getId(), actionState, mode);
}
}
}
}
}
public void migrateEnumPreferences() {
for (OsmandPreference pref : registeredPreferences.values()) {
if (pref instanceof EnumStringPreference) {
@ -3499,7 +3521,7 @@ public class OsmandSettings {
public static final String QUICK_FAB_MARGIN_X_LANDSCAPE_MARGIN = "quick_fab_margin_x_landscape_margin";
public static final String QUICK_FAB_MARGIN_Y_LANDSCAPE_MARGIN = "quick_fab_margin_y_landscape_margin";
public final CommonPreference<String> QUICK_ACTION = new StringPreference("quick_action_new", "").makeGlobal();
public final CommonPreference<Boolean> QUICK_ACTION = new BooleanPreference("quick_action_state", false).makeProfile();
public final CommonPreference<String> QUICK_ACTION_LIST = new StringPreference("quick_action_list", "").makeGlobal();