Merge branch 'master' into gpx_appearance

This commit is contained in:
Vitaliy 2020-07-08 12:29:59 +03:00
commit f178a292c1
21 changed files with 310 additions and 202 deletions

View file

@ -28,9 +28,6 @@ public class IndexConstants {
public static final String EXTRA_EXT = ".extra"; public static final String EXTRA_EXT = ".extra";
public static final String EXTRA_ZIP_EXT = ".extra.zip"; public static final String EXTRA_ZIP_EXT = ".extra.zip";
public static final String TOUR_INDEX_EXT = ".tour"; //$NON-NLS-1$
public static final String TOUR_INDEX_EXT_ZIP = ".tour.zip"; //$NON-NLS-1$
public static final String GEN_LOG_EXT = ".gen.log"; //$NON-NLS-1$ public static final String GEN_LOG_EXT = ".gen.log"; //$NON-NLS-1$
public static final String VOICE_INDEX_EXT_ZIP = ".voice.zip"; //$NON-NLS-1$ public static final String VOICE_INDEX_EXT_ZIP = ".voice.zip"; //$NON-NLS-1$

View file

@ -65,13 +65,11 @@ public class BinaryRoutePlanner {
* Calculate route between start.segmentEnd and end.segmentStart (using A* algorithm) * Calculate route between start.segmentEnd and end.segmentStart (using A* algorithm)
* return list of segments * return list of segments
*/ */
@SuppressWarnings("unused")
FinalRouteSegment searchRouteInternal(final RoutingContext ctx, RouteSegmentPoint start, RouteSegmentPoint end, FinalRouteSegment searchRouteInternal(final RoutingContext ctx, RouteSegmentPoint start, RouteSegmentPoint end,
RouteSegment recalculationEnd ) throws InterruptedException, IOException { RouteSegment recalculationEnd ) throws InterruptedException, IOException {
// measure time // measure time
ctx.timeToLoad = 0; ctx.timeToLoad = 0;
ctx.memoryOverhead = 1000; ctx.memoryOverhead = 1000;
ctx.visitedSegments = 0;
// Initializing priority queue to visit way segments // Initializing priority queue to visit way segments
Comparator<RouteSegment> nonHeuristicSegmentsComparator = new NonHeuristicSegmentsComparator(); Comparator<RouteSegment> nonHeuristicSegmentsComparator = new NonHeuristicSegmentsComparator();
@ -166,8 +164,12 @@ public class BinaryRoutePlanner {
throw new InterruptedException("Route calculation interrupted"); throw new InterruptedException("Route calculation interrupted");
} }
} }
ctx.visitedSegments = visitedDirectSegments.size() + visitedOppositeSegments.size(); ctx.visitedSegments += visitedDirectSegments.size() + visitedOppositeSegments.size();
printDebugMemoryInformation(ctx, graphDirectSegments, graphReverseSegments, visitedDirectSegments, visitedOppositeSegments); ctx.visitedDirectSegments += visitedDirectSegments.size();
ctx.visitedOppositeSegments += visitedOppositeSegments.size();
ctx.directQueueSize = graphDirectSegments.size(); // Math.max(ctx.directQueueSize, graphDirectSegments.size());
ctx.oppositeQueueSize = graphReverseSegments.size();
ctx.visitedOppositeSegments += visitedOppositeSegments.size();
return finalSegment; return finalSegment;
} }
@ -368,8 +370,7 @@ public class BinaryRoutePlanner {
log.warn(logMsg); log.warn(logMsg);
} }
public void printDebugMemoryInformation(RoutingContext ctx, PriorityQueue<RouteSegment> graphDirectSegments, PriorityQueue<RouteSegment> graphReverseSegments, public static void printDebugMemoryInformation(RoutingContext ctx) {
TLongObjectHashMap<RouteSegment> visitedDirectSegments,TLongObjectHashMap<RouteSegment> visitedOppositeSegments) {
printInfo(String.format("Time. Total: %.2f, to load: %.2f, to load headers: %.2f, to calc dev: %.2f ", printInfo(String.format("Time. Total: %.2f, to load: %.2f, to load headers: %.2f, to calc dev: %.2f ",
(System.nanoTime() - ctx.timeToCalculate) / 1e6, ctx.timeToLoad / 1e6, (System.nanoTime() - ctx.timeToCalculate) / 1e6, ctx.timeToLoad / 1e6,
ctx.timeToLoadHeaders / 1e6, ctx.timeNanoToCalcDeviation / 1e6)); ctx.timeToLoadHeaders / 1e6, ctx.timeNanoToCalcDeviation / 1e6));
@ -380,12 +381,8 @@ public class BinaryRoutePlanner {
", loaded more than once same tiles " ", loaded more than once same tiles "
+ ctx.loadedPrevUnloadedTiles); + ctx.loadedPrevUnloadedTiles);
printInfo("Visited segments " + ctx.visitedSegments + ", relaxed roads " + ctx.relaxedSegments); printInfo("Visited segments " + ctx.visitedSegments + ", relaxed roads " + ctx.relaxedSegments);
if (graphDirectSegments != null && graphReverseSegments != null) { printInfo("Priority queues sizes : " + ctx.directQueueSize + "/" + ctx.oppositeQueueSize);
printInfo("Priority queues sizes : " + graphDirectSegments.size() + "/" + graphReverseSegments.size()); printInfo("Visited interval sizes: " + ctx.visitedDirectSegments + "/" + ctx.visitedOppositeSegments);
}
if (visitedDirectSegments != null && visitedOppositeSegments != null) {
printInfo("Visited interval sizes: " + visitedDirectSegments.size() + "/" + visitedOppositeSegments.size());
}
} }

View file

@ -72,6 +72,8 @@ public class GeneralRouter implements VehicleRouter {
private float defaultSpeed = 1f; private float defaultSpeed = 1f;
// speed in m/s // speed in m/s
private float maxSpeed = 10f; private float maxSpeed = 10f;
// speed in m/s (used for shortest route)
private float maxVehicleSpeed;
private TLongHashSet impassableRoads; private TLongHashSet impassableRoads;
private GeneralRouterProfile profile; private GeneralRouterProfile profile;
@ -149,6 +151,7 @@ public class GeneralRouter implements VehicleRouter {
if (params.containsKey(MAX_SPEED)) { if (params.containsKey(MAX_SPEED)) {
maxSpeed = parseSilentFloat(params.get(MAX_SPEED), maxSpeed); maxSpeed = parseSilentFloat(params.get(MAX_SPEED), maxSpeed);
} }
maxVehicleSpeed = maxSpeed;
if (shortestRoute) { if (shortestRoute) {
maxSpeed = Math.min(CAR_SHORTEST_DEFAULT_SPEED, maxSpeed); maxSpeed = Math.min(CAR_SHORTEST_DEFAULT_SPEED, maxSpeed);
} }
@ -489,10 +492,15 @@ public class GeneralRouter implements VehicleRouter {
@Override @Override
public float defineVehicleSpeed(RouteDataObject road) { public float defineVehicleSpeed(RouteDataObject road) {
// don't use cache cause max/min is different for routing speed
if (maxVehicleSpeed != maxSpeed) {
float spd = getObjContext(RouteDataObjectAttribute.ROAD_SPEED).evaluateFloat(road, defaultSpeed);
return Math.max(Math.min(spd, maxVehicleSpeed), minSpeed);
}
Float sp = getCache(RouteDataObjectAttribute.ROAD_SPEED, road); Float sp = getCache(RouteDataObjectAttribute.ROAD_SPEED, road);
if (sp == null) { if (sp == null) {
float spd = getObjContext(RouteDataObjectAttribute.ROAD_SPEED).evaluateFloat(road, defaultSpeed); float spd = getObjContext(RouteDataObjectAttribute.ROAD_SPEED).evaluateFloat(road, defaultSpeed);
sp = Math.max(Math.min(spd, maxSpeed), minSpeed); sp = Math.max(Math.min(spd, maxVehicleSpeed), minSpeed);
putCache(RouteDataObjectAttribute.ROAD_SPEED, road, sp); putCache(RouteDataObjectAttribute.ROAD_SPEED, road, sp);
} }
return sp; return sp;

View file

@ -50,7 +50,7 @@ public class RoutePlannerFrontEnd {
// don't search subsegments shorter than specified distance (also used to step back for car turns) // don't search subsegments shorter than specified distance (also used to step back for car turns)
public double MINIMUM_STEP_APPROXIMATION = 100; public double MINIMUM_STEP_APPROXIMATION = 100;
// Parameter to smoother the track itself (could be 0 if it's not recorded track) // Parameter to smoother the track itself (could be 0 if it's not recorded track)
public double SMOOTHEN_POINTS_NO_ROUTE = 2; public double SMOOTHEN_POINTS_NO_ROUTE = 5;
public final RoutingContext ctx; public final RoutingContext ctx;
public int routeCalculations = 0; public int routeCalculations = 0;
@ -92,6 +92,7 @@ public class RoutePlannerFrontEnd {
public double cumDist; public double cumDist;
public RouteSegmentPoint pnt; public RouteSegmentPoint pnt;
public List<RouteSegmentResult> routeToTarget; public List<RouteSegmentResult> routeToTarget;
public List<RouteSegmentResult> stepBackRoute;
public int targetInd = -1; public int targetInd = -1;
} }
@ -202,38 +203,35 @@ public class RoutePlannerFrontEnd {
useSmartRouteRecalculation = use; useSmartRouteRecalculation = use;
} }
// TODO last segment not correct (cut) before end point and point of straight line
// TODO add missing turns for straight lines (compare code)
// TODO native matches less roads // TODO native matches less roads
// TODO fix progress - next iteration
// TODO fix timings and remove logging every iteration
public GpxRouteApproximation searchGpxRoute(GpxRouteApproximation gctx, List<LatLon> points) throws IOException, InterruptedException { public GpxRouteApproximation searchGpxRoute(GpxRouteApproximation gctx, List<LatLon> points) throws IOException, InterruptedException {
gctx.ctx.timeToCalculate = System.nanoTime(); gctx.ctx.timeToCalculate = System.nanoTime();
if (gctx.ctx.calculationProgress == null) { if (gctx.ctx.calculationProgress == null) {
gctx.ctx.calculationProgress = new RouteCalculationProgress(); gctx.ctx.calculationProgress = new RouteCalculationProgress();
} }
List<GpxPoint> gpxPoints = generageGpxPoints(points, gctx); List<GpxPoint> gpxPoints = generageGpxPoints(points, gctx);
GpxPoint start = gpxPoints.size() > 0 ? gpxPoints.get(0) : null; GpxPoint start = null;
boolean prevRouteFound = false; GpxPoint prev = null;
if(gpxPoints.size() > 0) {
gctx.ctx.calculationProgress.totalIterations = (int) (gpxPoints.get(gpxPoints.size() - 1).cumDist / gctx.MAXIMUM_STEP_APPROXIMATION + 1);
start = gpxPoints.get(0);
}
while (start != null) { while (start != null) {
double routeDist = gctx.MAXIMUM_STEP_APPROXIMATION; double routeDist = gctx.MAXIMUM_STEP_APPROXIMATION;
GpxPoint next = findNextGpxPointWithin(gctx, gpxPoints, start, routeDist); GpxPoint next = findNextGpxPointWithin(gctx, gpxPoints, start, routeDist);
boolean routeFound = false; boolean routeFound = false;
gctx.ctx.calculationProgress.nextIteration();
if (next != null && initRoutingPoint(start, gctx, gctx.MINIMUM_POINT_APPROXIMATION)) { if (next != null && initRoutingPoint(start, gctx, gctx.MINIMUM_POINT_APPROXIMATION)) {
while (routeDist >= gctx.MINIMUM_STEP_APPROXIMATION && !routeFound) { while (routeDist >= gctx.MINIMUM_STEP_APPROXIMATION && !routeFound) {
routeFound = initRoutingPoint(next, gctx, gctx.MINIMUM_POINT_APPROXIMATION); routeFound = initRoutingPoint(next, gctx, gctx.MINIMUM_POINT_APPROXIMATION);
if (routeFound) { if (routeFound) {
routeFound = findGpxRouteSegment(gctx, gpxPoints, start, next, prevRouteFound); routeFound = findGpxRouteSegment(gctx, gpxPoints, start, next, prev != null);
if (routeFound) { if (routeFound) {
// route is found - cut the end of the route and move to next iteration // route is found - cut the end of the route and move to next iteration
boolean stepBack = stepBackAndFindPrevPointInRoute(gctx, gpxPoints, start, next); boolean stepBack = stepBackAndFindPrevPointInRoute(gctx, gpxPoints, start, next);
if (!stepBack) { if (!stepBack) {
// not supported case (workaround increase MAXIMUM_STEP_APPROXIMATION) // not supported case (workaround increase MAXIMUM_STEP_APPROXIMATION)
log.info("Consider to increase MAXIMUM_STEP_APPROXIMATION to: " + routeDist*2); log.info("Consider to increase MAXIMUM_STEP_APPROXIMATION to: " + routeDist * 2);
start.routeToTarget = null; start.routeToTarget = null;
routeFound = false; routeFound = false;
break; break;
@ -257,21 +255,21 @@ public class RoutePlannerFrontEnd {
if (!routeFound) { if (!routeFound) {
// route is not found, move start point by // route is not found, move start point by
next = findNextGpxPointWithin(gctx, gpxPoints, start, gctx.MINIMUM_STEP_APPROXIMATION); next = findNextGpxPointWithin(gctx, gpxPoints, start, gctx.MINIMUM_STEP_APPROXIMATION);
if (prevRouteFound) { if (prev != null) {
if (next == null) { prev.routeToTarget.addAll(prev.stepBackRoute);
// TODO finish makeSegmentPointPrecise(prev.routeToTarget.get(prev.routeToTarget.size() - 1), start.loc, false);
// makeSegmentPointPrecise(prev.routeToTarget.get(prev.routeToTarget.size() - 1), start.loc, false); if (next != null) {
} else {
log.warn("NOT found route from: " + start.pnt.getRoad() + " at " + start.pnt.getSegmentStart()); log.warn("NOT found route from: " + start.pnt.getRoad() + " at " + start.pnt.getSegmentStart());
} }
} }
prev = null;
} else {
prev = start;
} }
prevRouteFound = routeFound;
start = next; start = next;
} }
BinaryRoutePlanner.printDebugMemoryInformation(gctx.ctx);
calculateGpxRoute(gctx, gpxPoints); calculateGpxRoute(gctx, gpxPoints);
if (!gctx.res.isEmpty()) { if (!gctx.res.isEmpty()) {
new RouteResultPreparation().printResults(gctx.ctx, points.get(0), points.get(points.size() - 1), gctx.res); new RouteResultPreparation().printResults(gctx.ctx, points.get(0), points.get(points.size() - 1), gctx.res);
System.out.println(gctx); System.out.println(gctx);
@ -289,6 +287,7 @@ public class RoutePlannerFrontEnd {
double d = 0; double d = 0;
int segmendInd = start.routeToTarget.size() - 1; int segmendInd = start.routeToTarget.size() - 1;
boolean search = true; boolean search = true;
start.stepBackRoute = new ArrayList<RouteSegmentResult>();
mainLoop: for (; segmendInd >= 0 && search; segmendInd--) { mainLoop: for (; segmendInd >= 0 && search; segmendInd--) {
RouteSegmentResult rr = start.routeToTarget.get(segmendInd); RouteSegmentResult rr = start.routeToTarget.get(segmendInd);
boolean minus = rr.getStartPointIndex() < rr.getEndPointIndex(); boolean minus = rr.getStartPointIndex() < rr.getEndPointIndex();
@ -300,6 +299,7 @@ public class RoutePlannerFrontEnd {
if (nextInd == rr.getStartPointIndex()) { if (nextInd == rr.getStartPointIndex()) {
segmendInd--; segmendInd--;
} else { } else {
start.stepBackRoute.add(new RouteSegmentResult(rr.getObject(), nextInd, rr.getEndPointIndex()));
rr.setEndPointIndex(nextInd); rr.setEndPointIndex(nextInd);
} }
search = false; search = false;
@ -311,8 +311,10 @@ public class RoutePlannerFrontEnd {
// here all route segments - 1 is longer than needed distance to step back // here all route segments - 1 is longer than needed distance to step back
return false; return false;
} }
while (start.routeToTarget.size() > segmendInd + 1) { while (start.routeToTarget.size() > segmendInd + 1) {
start.routeToTarget.remove(segmendInd + 1); RouteSegmentResult removed = start.routeToTarget.remove(segmendInd + 1);
start.stepBackRoute.add(removed);
} }
RouteSegmentResult res = start.routeToTarget.get(segmendInd); RouteSegmentResult res = start.routeToTarget.get(segmendInd);
next.pnt = new RouteSegmentPoint(res.getObject(), res.getEndPointIndex(), 0); next.pnt = new RouteSegmentPoint(res.getObject(), res.getEndPointIndex(), 0);
@ -321,7 +323,7 @@ public class RoutePlannerFrontEnd {
private void calculateGpxRoute(GpxRouteApproximation gctx, List<GpxPoint> gpxPoints) { private void calculateGpxRoute(GpxRouteApproximation gctx, List<GpxPoint> gpxPoints) {
RouteRegion reg = new RouteRegion(); RouteRegion reg = new RouteRegion();
reg.initRouteEncodingRule(0, "highway", "unmatched"); reg.initRouteEncodingRule(0, "highway", RouteResultPreparation.UNMATCHED_HIGHWAY_TYPE);
List<LatLon> lastStraightLine = null; List<LatLon> lastStraightLine = null;
for (int i = 0; i < gpxPoints.size(); ) { for (int i = 0; i < gpxPoints.size(); ) {
GpxPoint pnt = gpxPoints.get(i); GpxPoint pnt = gpxPoints.get(i);
@ -424,8 +426,17 @@ public class RoutePlannerFrontEnd {
rdo.pointsY = y.toArray(); rdo.pointsY = y.toArray();
rdo.types = new int[] { 0 } ; rdo.types = new int[] { 0 } ;
rdo.id = -1; rdo.id = -1;
// comment to see road without straight connections List<RouteSegmentResult> rts = new ArrayList<>();
res.add(new RouteSegmentResult(rdo, 0, rdo.getPointsLength() - 1)); rts.add(new RouteSegmentResult(rdo, 0, rdo.getPointsLength() - 1));
RouteResultPreparation preparation = new RouteResultPreparation();
try {
preparation.prepareResult(gctx.ctx, rts, false);
} catch (IOException e) {
throw new IllegalStateException(e);
}
// VIEW: comment to see road without straight connections
res.addAll(rts);
} }
@ -493,6 +504,7 @@ public class RoutePlannerFrontEnd {
gctx.routeDistCalculations += (target.cumDist - start.cumDist); gctx.routeDistCalculations += (target.cumDist - start.cumDist);
gctx.routeCalculations++; gctx.routeCalculations++;
res = searchRouteInternalPrepare(gctx.ctx, start.pnt, target.pnt, null); res = searchRouteInternalPrepare(gctx.ctx, start.pnt, target.pnt, null);
//BinaryRoutePlanner.printDebugMemoryInformation(gctx.ctx);
routeIsCorrect = res != null && !res.isEmpty(); routeIsCorrect = res != null && !res.isEmpty();
for (int k = start.ind + 1; routeIsCorrect && k < target.ind; k++) { for (int k = start.ind + 1; routeIsCorrect && k < target.ind; k++) {
GpxPoint ipoint = gpxPoints.get(k); GpxPoint ipoint = gpxPoints.get(k);
@ -848,6 +860,7 @@ public class RoutePlannerFrontEnd {
} }
pringGC(ctx, true); pringGC(ctx, true);
List<RouteSegmentResult> res = searchRouteInternalPrepare(ctx, points.get(0), points.get(1), routeDirection); List<RouteSegmentResult> res = searchRouteInternalPrepare(ctx, points.get(0), points.get(1), routeDirection);
BinaryRoutePlanner.printDebugMemoryInformation(ctx);
pringGC(ctx, false); pringGC(ctx, false);
makeStartEndPointsPrecise(res, points.get(0).getPreciseLatLon(), points.get(1).getPreciseLatLon(), null); makeStartEndPointsPrecise(res, points.get(0).getPreciseLatLon(), points.get(1).getPreciseLatLon(), null);
return res; return res;

View file

@ -44,8 +44,11 @@ public class RouteResultPreparation {
public static boolean PRINT_TO_CONSOLE_ROUTE_INFORMATION_TO_TEST = false; public static boolean PRINT_TO_CONSOLE_ROUTE_INFORMATION_TO_TEST = false;
public static String PRINT_TO_GPX_FILE = null; public static String PRINT_TO_GPX_FILE = null;
private static final float TURN_DEGREE_MIN = 45; private static final float TURN_DEGREE_MIN = 45;
private static final float UNMATCHED_TURN_DEGREE_MINIMUM = 45;
private static final float SPLIT_TURN_DEGREE_NOT_STRAIGHT = 100;
public static final int SHIFT_ID = 6; public static final int SHIFT_ID = 6;
private Log log = PlatformUtil.getLog(RouteResultPreparation.class); private Log log = PlatformUtil.getLog(RouteResultPreparation.class);
public static final String UNMATCHED_HIGHWAY_TYPE = "unmatched";
/** /**
* Helper method to prepare final result * Helper method to prepare final result
*/ */
@ -222,7 +225,7 @@ public class RouteResultPreparation {
private void justifyUTurns(boolean leftSide, List<RouteSegmentResult> result) { private void justifyUTurns(boolean leftSide, List<RouteSegmentResult> result) {
int next; int next;
for (int i = 0; i < result.size() - 1; i = next) { for (int i = 1; i < result.size() - 1; i = next) {
next = i + 1; next = i + 1;
TurnType t = result.get(i).getTurnType(); TurnType t = result.get(i).getTurnType();
// justify turn // justify turn
@ -313,6 +316,7 @@ public class RouteResultPreparation {
RouteSegmentResult rr = result.get(i); RouteSegmentResult rr = result.get(i);
boolean plus = rr.getStartPointIndex() < rr.getEndPointIndex(); boolean plus = rr.getStartPointIndex() < rr.getEndPointIndex();
int next; int next;
boolean unmatched = UNMATCHED_HIGHWAY_TYPE.equals(rr.getObject().getHighway());
for (int j = rr.getStartPointIndex(); j != rr.getEndPointIndex(); j = next) { for (int j = rr.getStartPointIndex(); j != rr.getEndPointIndex(); j = next) {
next = plus ? j + 1 : j - 1; next = plus ? j + 1 : j - 1;
if (j == rr.getStartPointIndex()) { if (j == rr.getStartPointIndex()) {
@ -323,27 +327,33 @@ public class RouteResultPreparation {
} }
List<RouteSegmentResult> attachedRoutes = rr.getAttachedRoutes(next); List<RouteSegmentResult> attachedRoutes = rr.getAttachedRoutes(next);
boolean tryToSplit = next != rr.getEndPointIndex() && !rr.getObject().roundabout() && attachedRoutes != null; boolean tryToSplit = next != rr.getEndPointIndex() && !rr.getObject().roundabout() && attachedRoutes != null;
if(rr.getDistance(next, plus ) == 0) { if (rr.getDistance(next, plus) == 0) {
// same point will be processed next step // same point will be processed next step
tryToSplit = false; tryToSplit = false;
} }
if (tryToSplit) { if (tryToSplit) {
float distBearing = unmatched ? RouteSegmentResult.DIST_BEARING_DETECT_UNMATCHED : RouteSegmentResult.DIST_BEARING_DETECT;
// avoid small zigzags // avoid small zigzags
float before = rr.getBearing(next, !plus); float before = rr.getBearingEnd(next, distBearing);
float after = rr.getBearing(next, plus); float after = rr.getBearingBegin(next, distBearing);
if(rr.getDistance(next, plus ) < 5) { if (rr.getDistance(next, plus) < distBearing) {
after = before + 180; after = before;
} else if(rr.getDistance(next, !plus ) < 5) { } else if (rr.getDistance(next, !plus) < distBearing) {
before = after - 180; before = after;
} }
boolean straight = Math.abs(MapUtils.degreesDiff(before + 180, after)) < TURN_DEGREE_MIN; double contAngle = Math.abs(MapUtils.degreesDiff(before, after));
boolean straight = contAngle < TURN_DEGREE_MIN;
boolean isSplit = false; boolean isSplit = false;
if (unmatched && Math.abs(contAngle) >= UNMATCHED_TURN_DEGREE_MINIMUM) {
isSplit = true;
}
// split if needed // split if needed
for (RouteSegmentResult rs : attachedRoutes) { for (RouteSegmentResult rs : attachedRoutes) {
double diff = MapUtils.degreesDiff(before + 180, rs.getBearingBegin()); double diff = MapUtils.degreesDiff(before, rs.getBearingBegin());
if (Math.abs(diff) <= TURN_DEGREE_MIN) { if (Math.abs(diff) <= TURN_DEGREE_MIN) {
isSplit = true; isSplit = true;
} else if (!straight && Math.abs(diff) < 100) { } else if (!straight && Math.abs(diff) < SPLIT_TURN_DEGREE_NOT_STRAIGHT) {
isSplit = true; isSplit = true;
} }
} }
@ -1061,18 +1071,17 @@ public class RouteResultPreparation {
} }
TurnType t = null; TurnType t = null;
if (prev != null) { if (prev != null) {
boolean noAttachedRoads = rr.getAttachedRoutes(rr.getStartPointIndex()).size() == 0;
// add description about turn // add description about turn
double mpi = MapUtils.degreesDiff(prev.getBearingEnd(), rr.getBearingBegin()); // avoid small zigzags is covered at (search for "zigzags")
if(noAttachedRoads){ float bearingDist = RouteSegmentResult.DIST_BEARING_DETECT;
// VICTOR : look at the comment inside direction route // could be || noAttachedRoads, boolean noAttachedRoads = rr.getAttachedRoutes(rr.getStartPointIndex()).size() == 0;
// ? avoid small zigzags is covered at (search for "zigzags") if (UNMATCHED_HIGHWAY_TYPE.equals(rr.getObject().getHighway())) {
// double begin = rr.getObject().directionRoute(rr.getStartPointIndex(), rr.getStartPointIndex() < bearingDist = RouteSegmentResult.DIST_BEARING_DETECT_UNMATCHED;
// rr.getEndPointIndex(), 25);
// mpi = MapUtils.degreesDiff(prev.getBearingEnd(), begin);
} }
double mpi = MapUtils.degreesDiff(prev.getBearingEnd(prev.getEndPointIndex(), bearingDist),
rr.getBearingBegin(rr.getStartPointIndex(), bearingDist));
if (mpi >= TURN_DEGREE_MIN) { if (mpi >= TURN_DEGREE_MIN) {
if (mpi < 45) { if (mpi < TURN_DEGREE_MIN) {
// Slight turn detection here causes many false positives where drivers would expect a "normal" TL. Best use limit-angle=TURN_DEGREE_MIN, this reduces TSL to the turn-lanes cases. // Slight turn detection here causes many false positives where drivers would expect a "normal" TL. Best use limit-angle=TURN_DEGREE_MIN, this reduces TSL to the turn-lanes cases.
t = TurnType.valueOf(TurnType.TSLL, leftSide); t = TurnType.valueOf(TurnType.TSLL, leftSide);
} else if (mpi < 120) { } else if (mpi < 120) {
@ -1085,7 +1094,7 @@ public class RouteResultPreparation {
int[] lanes = getTurnLanesInfo(prev, t.getValue()); int[] lanes = getTurnLanesInfo(prev, t.getValue());
t.setLanes(lanes); t.setLanes(lanes);
} else if (mpi < -TURN_DEGREE_MIN) { } else if (mpi < -TURN_DEGREE_MIN) {
if (mpi > -45) { if (mpi > -TURN_DEGREE_MIN) {
t = TurnType.valueOf(TurnType.TSLR, leftSide); t = TurnType.valueOf(TurnType.TSLR, leftSide);
} else if (mpi > -120) { } else if (mpi > -120) {
t = TurnType.valueOf(TurnType.TR, leftSide); t = TurnType.valueOf(TurnType.TR, leftSide);
@ -1467,32 +1476,39 @@ public class RouteResultPreparation {
protected TurnType createSimpleKeepLeftRightTurn(boolean leftSide, RouteSegmentResult prevSegm, protected TurnType createSimpleKeepLeftRightTurn(boolean leftSide, RouteSegmentResult prevSegm,
RouteSegmentResult currentSegm, RoadSplitStructure rs) { RouteSegmentResult currentSegm, RoadSplitStructure rs) {
double devation = Math.abs(MapUtils.degreesDiff(prevSegm.getBearingEnd(), currentSegm.getBearingBegin()));
boolean makeSlightTurn = devation > 5 && (!isMotorway(prevSegm) || !isMotorway(currentSegm));
TurnType t = null;
int laneType = TurnType.C;
if (rs.keepLeft && rs.keepRight) {
t = TurnType.valueOf(TurnType.C, leftSide);
} else if (rs.keepLeft) {
t = TurnType.valueOf(makeSlightTurn ? TurnType.TSLL : TurnType.KL, leftSide);
if (makeSlightTurn) {
laneType = TurnType.TSLL;
}
} else if (rs.keepRight) {
t = TurnType.valueOf(makeSlightTurn ? TurnType.TSLR : TurnType.KR, leftSide);
if (makeSlightTurn) {
laneType = TurnType.TSLR;
}
} else {
return null;
}
int current = countLanesMinOne(currentSegm); int current = countLanesMinOne(currentSegm);
int ls = current + rs.leftLanes + rs.rightLanes; int ls = current + rs.leftLanes + rs.rightLanes;
int[] lanes = new int[ls]; int[] lanes = new int[ls];
for (int it = 0; it < ls; it++) { for (int it = 0; it < ls; it++) {
if (it < rs.leftLanes || it >= rs.leftLanes + current) { if (it < rs.leftLanes || it >= rs.leftLanes + current) {
lanes[it] = 0; lanes[it] = TurnType.C << 1;
} else { } else {
lanes[it] = 1; lanes[it] = (laneType << 1) + 1;
} }
} }
// sometimes links are // sometimes links are
if ((current <= rs.leftLanes + rs.rightLanes) && (rs.leftLanes > 1 || rs.rightLanes > 1)) { if ((current <= rs.leftLanes + rs.rightLanes) && (rs.leftLanes > 1 || rs.rightLanes > 1)) {
rs.speak = true; rs.speak = true;
} }
double devation = Math.abs(MapUtils.degreesDiff(prevSegm.getBearingEnd(), currentSegm.getBearingBegin()));
boolean makeSlightTurn = devation > 5 && (!isMotorway(prevSegm) || !isMotorway(currentSegm));
TurnType t = null;
if (rs.keepLeft && rs.keepRight) {
t = TurnType.valueOf(TurnType.C, leftSide);
} else if (rs.keepLeft) {
t = TurnType.valueOf(makeSlightTurn ? TurnType.TSLL : TurnType.KL, leftSide);
} else if (rs.keepRight) {
t = TurnType.valueOf(makeSlightTurn ? TurnType.TSLR : TurnType.KR, leftSide);
} else {
return t;
}
t.setSkipToSpeak(!rs.speak); t.setSkipToSpeak(!rs.speak);
t.setLanes(lanes); t.setLanes(lanes);
return t; return t;

View file

@ -22,7 +22,10 @@ import gnu.trove.map.hash.TIntObjectHashMap;
public class RouteSegmentResult implements StringExternalizable<RouteDataBundle> { public class RouteSegmentResult implements StringExternalizable<RouteDataBundle> {
// this should be bigger (50-80m) but tests need to be fixed first // this should be bigger (50-80m) but tests need to be fixed first
private static final float DIST_BEARING_DETECT = 5; public static final float DIST_BEARING_DETECT = 5;
public static final float DIST_BEARING_DETECT_UNMATCHED = 50;
private RouteDataObject object; private RouteDataObject object;
private int startPointIndex; private int startPointIndex;
private int endPointIndex; private int endPointIndex;
@ -446,19 +449,32 @@ public class RouteSegmentResult implements StringExternalizable<RouteDataBundle>
} }
public float getBearingBegin() { public float getBearingBegin() {
return (float) (object.directionRoute(startPointIndex, startPointIndex < endPointIndex, DIST_BEARING_DETECT) / Math.PI * 180); return getBearingBegin(startPointIndex, DIST_BEARING_DETECT);
} }
public float getBearing(int point, boolean plus) { public float getBearingBegin(int point, float dist) {
return (float) (object.directionRoute(point, plus, DIST_BEARING_DETECT) / Math.PI * 180); return getBearing(point, true, dist);
}
public float getDistance(int point, boolean plus) {
return (float) (plus? object.distance(point, endPointIndex): object.distance(startPointIndex, point));
} }
public float getBearingEnd() { public float getBearingEnd() {
return (float) (MapUtils.alignAngleDifference(object.directionRoute(endPointIndex, startPointIndex > endPointIndex, DIST_BEARING_DETECT) - Math.PI) / Math.PI * 180); return getBearingEnd(endPointIndex, DIST_BEARING_DETECT);
}
public float getBearingEnd(int point, float dist) {
return getBearing(point, false, dist);
}
public float getBearing(int point, boolean begin, float dist) {
if (begin) {
return (float) (object.directionRoute(point, startPointIndex < endPointIndex, dist) / Math.PI * 180);
} else {
double dr = object.directionRoute(point, startPointIndex > endPointIndex, dist);
return (float) (MapUtils.alignAngleDifference(dr - Math.PI) / Math.PI * 180);
}
}
public float getDistance(int point, boolean plus) {
return (float) (plus ? object.distance(point, endPointIndex) : object.distance(startPointIndex, point));
} }
public void setSegmentTime(float segmentTime) { public void setSegmentTime(float segmentTime) {

View file

@ -98,12 +98,18 @@ public class RoutingContext {
public int loadedTiles = 0; public int loadedTiles = 0;
public int visitedSegments = 0; public int visitedSegments = 0;
public int relaxedSegments = 0; public int relaxedSegments = 0;
public int visitedDirectSegments = 0;
public int visitedOppositeSegments = 0;
public int directQueueSize = 0;
public int oppositeQueueSize = 0;
// callback of processing segments // callback of processing segments
RouteSegmentVisitor visitor = null; RouteSegmentVisitor visitor = null;
// old planner // old planner
public FinalRouteSegment finalRouteSegment; public FinalRouteSegment finalRouteSegment;
RoutingContext(RoutingContext cp) { RoutingContext(RoutingContext cp) {
this.config = cp.config; this.config = cp.config;
this.map.putAll(cp.map); this.map.putAll(cp.map);
@ -252,18 +258,6 @@ public class RoutingContext {
return ind; return ind;
} }
public void newRoutingPoints() {
int middleX = startX / 2 + targetX / 2;
int middleY = startY / 2 + targetY;
List<RouteDataObject> dataObjects = new ArrayList<RouteDataObject>();
loadTileData(middleX, middleY, 17, dataObjects);
System.out.println("Size of data objects " + dataObjects.size());
}
public RouteSegment loadRouteSegment(int x31, int y31, long memoryLimit) { public RouteSegment loadRouteSegment(int x31, int y31, long memoryLimit) {
long tileId = getRoutingTile(x31, y31, memoryLimit); long tileId = getRoutingTile(x31, y31, memoryLimit);

View file

@ -3799,4 +3799,10 @@
<string name="app_mode_inline_skates">أحذية تزلج</string> <string name="app_mode_inline_skates">أحذية تزلج</string>
<string name="use_volume_buttons_as_zoom_descr">تمكين التحكم في مستوى التكبير/التصغير بالخريطة باستخدام أزرار مستوى صوت الجهاز.</string> <string name="use_volume_buttons_as_zoom_descr">تمكين التحكم في مستوى التكبير/التصغير بالخريطة باستخدام أزرار مستوى صوت الجهاز.</string>
<string name="use_volume_buttons_as_zoom">أزرار مستوى الصوت</string> <string name="use_volume_buttons_as_zoom">أزرار مستوى الصوت</string>
<string name="lenght_limit_description">إعطاء معلومات وزن مركبتك ،قد يتم تطبيق بعض القيود على المركبات الثقيلة.</string>
<string name="quick_action_remove_next_destination">حذف نقطة الوجهة التالية</string>
<string name="please_provide_point_name_error">يرجى إعطاء اسم للنقطة</string>
<string name="quick_action_remove_next_destination_descr">سيتم حذف نقطة الوجهة الحالية على المسار. إذا كانت هي الوجهة، سوف تتوقف الملاحة.</string>
<string name="search_download_wikipedia_maps">تنزيل بيانات ويكيبيديا</string>
<string name="plugin_wikipedia_description">الحصول على معلومات حول النقاط المثيرة للاهتمام من ويكيبيديا. إنه دليلك غير المتصل بجيبك - ما عليك سوى تمكين المكون الإضافي ويكبيديا والاستمتاع بمقالات حول الكائنات من حولك.</string>
</resources> </resources>

View file

@ -3699,4 +3699,17 @@ Abasta l\'àrea: %1$s x %2$s</string>
<string name="app_mode_inline_skates">Patins en línia</string> <string name="app_mode_inline_skates">Patins en línia</string>
<string name="use_volume_buttons_as_zoom_descr">Activeu per controlar el nivell d\'ampliació del mapa amb els botons del volum del dispositiu.</string> <string name="use_volume_buttons_as_zoom_descr">Activeu per controlar el nivell d\'ampliació del mapa amb els botons del volum del dispositiu.</string>
<string name="use_volume_buttons_as_zoom">Botons de volum pel zoom</string> <string name="use_volume_buttons_as_zoom">Botons de volum pel zoom</string>
<string name="delete_all_actions_message_q">Esteu segur que voleu suprimir definitivament %d dreceres\?</string>
<string name="export_import_quick_actions_with_profiles_promo">Podeu exportar o importar les dreceres amb els perfils de les aplicacions.</string>
<string name="shared_string_delete_all_q">Ho esborrem tot\?</string>
<string name="screen_timeout">Retard de pantalla</string>
<string name="keep_active">Continua actiu</string>
<string name="screen_timeout_descr">Si està activat \"%1$s\" el temps d\'activitat quedarà afectat.</string>
<string name="shared_string_tones">tones</string>
<string name="shared_string_meters">metres</string>
<string name="quick_action_remove_next_destination">Suprimeix la propera fita</string>
<string name="please_provide_point_name_error">Proporcioneu un nom per al punt</string>
<string name="quick_action_remove_next_destination_descr">La propera fita de la ruta s\'esborrarà. Si es tractés de la Destinació final, la navegació s\'aturaria.</string>
<string name="search_download_wikipedia_maps">Baixa mapes de la Viquipèdia</string>
<string name="plugin_wikipedia_description">Obteniu informació de punts d\'interès des la Viquipèdia. Serà la vostra guia de butxaca en desconnexió - només cal que activeu el connector Viquipèdia i fruireu dels articles que tracten de les coses que us rodegen.</string>
</resources> </resources>

View file

@ -3811,4 +3811,9 @@
<string name="app_mode_inline_skates">Patines en línea</string> <string name="app_mode_inline_skates">Patines en línea</string>
<string name="use_volume_buttons_as_zoom_descr">Permite controlar el nivel de zoom del mapa con los botones de volumen del dispositivo.</string> <string name="use_volume_buttons_as_zoom_descr">Permite controlar el nivel de zoom del mapa con los botones de volumen del dispositivo.</string>
<string name="use_volume_buttons_as_zoom">Botones de volumen como zoom</string> <string name="use_volume_buttons_as_zoom">Botones de volumen como zoom</string>
<string name="lenght_limit_description">Proporcione la longitud de su vehículo, se pueden aplicar algunas restricciones de rutas para vehículos largos.</string>
<string name="quick_action_remove_next_destination">Eliminar el siguiente punto de destino</string>
<string name="please_provide_point_name_error">Por favor, proporcione un nombre para el punto</string>
<string name="quick_action_remove_next_destination_descr">El punto de destino actual de la ruta será borrado. Si se trata del destino, la navegación se detendrá.</string>
<string name="search_download_wikipedia_maps">Descargar mapas de Wikipedia</string>
</resources> </resources>

View file

@ -3840,4 +3840,8 @@
<string name="routing_attr_length_name">طول مجاز</string> <string name="routing_attr_length_name">طول مجاز</string>
<string name="routing_attr_length_description">طول مجاز خودرو در مسیرها را مشخص کنید.</string> <string name="routing_attr_length_description">طول مجاز خودرو در مسیرها را مشخص کنید.</string>
<string name="speed_cameras_removed_descr">این دستگاه دوربین‌های سرعت را ندارد.</string> <string name="speed_cameras_removed_descr">این دستگاه دوربین‌های سرعت را ندارد.</string>
<string name="keep_active">فعال بماند</string>
<string name="quick_action_remove_next_destination">حذف مقصد بعدی</string>
<string name="please_provide_point_name_error">لطفاً نام نقطه را بنویسید</string>
<string name="search_download_wikipedia_maps">دانلود نقشه‌های ویکی‌پدیا</string>
</resources> </resources>

View file

@ -3823,4 +3823,6 @@
<string name="poi_traffic_signals_arrow">Frecha</string> <string name="poi_traffic_signals_arrow">Frecha</string>
<string name="poi_traffic_signals_vibration">Vibración</string> <string name="poi_traffic_signals_vibration">Vibración</string>
<string name="poi_give_box">Caixa de distribución</string> <string name="poi_give_box">Caixa de distribución</string>
<string name="poi_city_block">Predio</string>
<string name="poi_borough">Concello</string>
</resources> </resources>

View file

@ -3836,4 +3836,10 @@ Lon %2$s</string>
<string name="app_mode_inline_skates">Patíns en liña</string> <string name="app_mode_inline_skates">Patíns en liña</string>
<string name="use_volume_buttons_as_zoom_descr">Activar para controlar o nivel de achegamento (zoom) do mapa cos botóns de volume do dispositivo.</string> <string name="use_volume_buttons_as_zoom_descr">Activar para controlar o nivel de achegamento (zoom) do mapa cos botóns de volume do dispositivo.</string>
<string name="use_volume_buttons_as_zoom">Os botóns de volume mudan o achegamento</string> <string name="use_volume_buttons_as_zoom">Os botóns de volume mudan o achegamento</string>
<string name="lenght_limit_description">Fornece a lonxitude do teu vehículo. Algunhas restricións de ruta poden ser aplicadas a vehículos longos.</string>
<string name="quick_action_remove_next_destination">Eliminar seguinte punto de destino</string>
<string name="please_provide_point_name_error">Fornece un nome para o punto</string>
<string name="quick_action_remove_next_destination_descr">O punto de destino actual na ruta será eliminado. Se fora o destino, a navegación sería interrompida.</string>
<string name="search_download_wikipedia_maps">Baixar mapas da Wikipedia</string>
<string name="plugin_wikipedia_description">Obter información sobre os puntos de interesse da Wikipédia. É o teu guía de peto sen conexión - só activar o complemento da Wikipédia e desfrutar dos artigos sobre os elementos ó teu redor.</string>
</resources> </resources>

View file

@ -3817,4 +3817,10 @@
<string name="speed_cameras_removed_descr">למכשיר הזה אין מצלמות מהירות.</string> <string name="speed_cameras_removed_descr">למכשיר הזה אין מצלמות מהירות.</string>
<string name="use_volume_buttons_as_zoom_descr">מאפשר לשלוח ברמת התקריב של המפה עם כפתורי עצמת השמע של המכשיר.</string> <string name="use_volume_buttons_as_zoom_descr">מאפשר לשלוח ברמת התקריב של המפה עם כפתורי עצמת השמע של המכשיר.</string>
<string name="use_volume_buttons_as_zoom">כפתורי עצמת שמע כתקריב</string> <string name="use_volume_buttons_as_zoom">כפתורי עצמת שמע כתקריב</string>
<string name="lenght_limit_description">נא לספק את אורך כלי הרכב שלך, מגבלות מסלול מסוימות עשויות לחול על כלי רכב ארוכים.</string>
<string name="quick_action_remove_next_destination">מחיקת נקודת היעד הבאה</string>
<string name="please_provide_point_name_error">נא לספק שם לנקודה</string>
<string name="quick_action_remove_next_destination_descr">נקודת היעד הנוכחית במסלול תימחק. אם זה יהיה היעד, הניווט ייעצר.</string>
<string name="search_download_wikipedia_maps">הורדת מפות ויקיפדיה</string>
<string name="plugin_wikipedia_description">קבלת מידע על נקודות עניין מוויקיפדיה. מדריך הכיס הפרטי שלך - עליך פשוט להפעיל את התוסף של ויקיפדיה וליהנות מערכים על מה שסביבך.</string>
</resources> </resources>

View file

@ -3789,4 +3789,7 @@
<string name="poi_video_yes">igen</string> <string name="poi_video_yes">igen</string>
<string name="poi_video_no">nem</string> <string name="poi_video_no">nem</string>
<string name="poi_traffic_signals_sound_locate">Csak amikor át szabad menni</string> <string name="poi_traffic_signals_sound_locate">Csak amikor át szabad menni</string>
<string name="poi_traffic_signals_arrow">Nyíl</string>
<string name="poi_traffic_signals_vibration">Rezgés</string>
<string name="poi_fire_hydrant_pressure_filter">Nyomás</string>
</resources> </resources>

View file

@ -245,8 +245,7 @@
<string name="install_more">További telepítése…</string> <string name="install_more">További telepítése…</string>
<string name="level_to_switch_vector_raster_descr">Raszteres térképek használata ezen nagyítási szint alatt.</string> <string name="level_to_switch_vector_raster_descr">Raszteres térképek használata ezen nagyítási szint alatt.</string>
<string name="level_to_switch_vector_raster">Legkisebb vektoros nagyítási szint</string> <string name="level_to_switch_vector_raster">Legkisebb vektoros nagyítási szint</string>
<string name="create_poi_link_to_osm_doc"> <string name="create_poi_link_to_osm_doc"><u>Online OSM</u> térképbesorolás képekkel.</string>
<u>Online OSM</u> térképbesorolás képekkel.</string>
<string name="error_doing_search">Nem sikerült az offline keresés.</string> <string name="error_doing_search">Nem sikerült az offline keresés.</string>
<string name="search_osm_offline">Keresés geolokáció alapján</string> <string name="search_osm_offline">Keresés geolokáció alapján</string>
<string name="system_locale">Rendszer nyelve</string> <string name="system_locale">Rendszer nyelve</string>
@ -572,7 +571,7 @@
<string name="map_view_3d">3D térképnézet</string> <string name="map_view_3d">3D térképnézet</string>
<string name="show_poi_over_map_description">Utoljára használt POI-rátétréteg megjelenítése.</string> <string name="show_poi_over_map_description">Utoljára használt POI-rátétréteg megjelenítése.</string>
<string name="show_poi_over_map">POI-rátétréteg megjelenítése</string> <string name="show_poi_over_map">POI-rátétréteg megjelenítése</string>
<string name="map_tile_source_descr">Online vagy gyorsítótárazott térképcsempék kiválasztása</string> <string name="map_tile_source_descr">Online vagy gyorsítótárazott térképcsempék kiválasztása.</string>
<string name="map_tile_source">Csempés térkép forrása</string> <string name="map_tile_source">Csempés térkép forrása</string>
<string name="map_source">Térkép forrása</string> <string name="map_source">Térkép forrása</string>
<string name="use_internet">Internet használata</string> <string name="use_internet">Internet használata</string>
@ -798,14 +797,12 @@
\n - Több térkép egymásra rétegezése, például állítható átlátszóságú GPX- vagy navigációs nyomvonalak, érdekes pontok, kedvence, szintvonalak, tömegközlekedési megállók és további térképek \n - Több térkép egymásra rétegezése, például állítható átlátszóságú GPX- vagy navigációs nyomvonalak, érdekes pontok, kedvence, szintvonalak, tömegközlekedési megállók és további térképek
\n - Címek és helyek (érdekes pontok) offline keresése \n - Címek és helyek (érdekes pontok) offline keresése
\n - Offline útvonaltervezés közepes távolságra \n - Offline útvonaltervezés közepes távolságra
\n \n - Autós, kerékpáros és gyalogos módok a következő beállításokkal:
\n- Autós, kerékpáros és gyalogos módok a következő beállításokkal:
\n - éjszakai/nappali nézet automatikus átkapcsolása \n - éjszakai/nappali nézet automatikus átkapcsolása
\n - sebességfüggő térképnagyítás \n - sebességfüggő térképnagyítás
\n - térképigazítás iránytű vagy mozgásirány szerint \n - térképigazítás iránytű vagy mozgásirány szerint
\n - sávnavigáció, sebességkorlátozás kijelzése, rögzített és hangfelolvasásos (TTS) hangok \n - sávnavigáció, sebességkorlátozás kijelzése, rögzített és hangfelolvasásos (TTS) hangok
\n \n
\n
\n Az OsmAnd ezen ingyenes verziójának korlátozásai: \n Az OsmAnd ezen ingyenes verziójának korlátozásai:
\n - letölthető térképek számának korlátozása \n - letölthető térképek számának korlátozása
\n - wikipédia-POI offline elérés nélkül \n - wikipédia-POI offline elérés nélkül
@ -936,7 +933,7 @@
<string name="srtm_paid_version_msg">Kérem, fontolja meg a „Szintvonalak” bővítmény megvásárlását, ezzel is támogatva a további fejlesztéseket.</string> <string name="srtm_paid_version_msg">Kérem, fontolja meg a „Szintvonalak” bővítmény megvásárlását, ezzel is támogatva a további fejlesztéseket.</string>
<string name="srtm_paid_version_title">Szintvonal bővítmény</string> <string name="srtm_paid_version_title">Szintvonal bővítmény</string>
<string name="intermediate_points_change_order">Más sorrend</string> <string name="intermediate_points_change_order">Más sorrend</string>
<string name="dropbox_plugin_description">Szinkronizálja a hang/videó jegyzeteket a Dropbox fiókjával</string> <string name="dropbox_plugin_description">Szinkronizálja a hang/videó jegyzeteket a Dropbox fiókjával.</string>
<string name="dropbox_plugin_name">Dropbox bővítmény</string> <string name="dropbox_plugin_name">Dropbox bővítmény</string>
<string name="local_indexes_cat_av">Hang- és videofelvétel</string> <string name="local_indexes_cat_av">Hang- és videofelvétel</string>
<string name="stop_routing_confirm">Biztosan megszakítja a navigációt\?</string> <string name="stop_routing_confirm">Biztosan megszakítja a navigációt\?</string>
@ -1437,7 +1434,7 @@
<string name="world_ski_missing">Töltse le a speciális offline térképet a sílétesítmények megjelenítéséhez.</string> <string name="world_ski_missing">Töltse le a speciális offline térképet a sílétesítmények megjelenítéséhez.</string>
<string name="nautical_maps_missing">Töltse le a speciális offline térképet a hajózási részletek megjelenítéséhez.</string> <string name="nautical_maps_missing">Töltse le a speciális offline térképet a hajózási részletek megjelenítéséhez.</string>
<string name="device_memory">Eszköz memóriája</string> <string name="device_memory">Eszköz memóriája</string>
<string name="free">"%1$s szabad "</string> <string name="free">%1$s szabad</string>
<string name="roads_only">Csak utak</string> <string name="roads_only">Csak utak</string>
<string name="rendering_attr_pisteRoutes_name">Sípályák</string> <string name="rendering_attr_pisteRoutes_name">Sípályák</string>
<string name="rendering_attr_pisteGrooming_name">Sípálya kezeltség</string> <string name="rendering_attr_pisteGrooming_name">Sípálya kezeltség</string>
@ -1473,7 +1470,7 @@
<string name="simulate_your_location">Pozíció szimulálása</string> <string name="simulate_your_location">Pozíció szimulálása</string>
<string name="drawer">Lapos lista</string> <string name="drawer">Lapos lista</string>
<string name="short_location_on_map">Szélesség: %1$s <string name="short_location_on_map">Szélesség: %1$s
Hosszúság: %2$s</string> \nHosszúság: %2$s</string>
<string name="tips_and_tricks_descr">Gyakran ismételt kérdések, legutóbbi módosítások és egyebek.</string> <string name="tips_and_tricks_descr">Gyakran ismételt kérdések, legutóbbi módosítások és egyebek.</string>
<string name="routing_settings_2">Navigációs beállítások</string> <string name="routing_settings_2">Navigációs beállítások</string>
<string name="general_settings_2">Általános beállítások</string> <string name="general_settings_2">Általános beállítások</string>
@ -1926,7 +1923,7 @@ Hosszúság: %2$s</string>
<string name="open_street_map_login_and_pass">OSM felhasználónév és jelszó</string> <string name="open_street_map_login_and_pass">OSM felhasználónév és jelszó</string>
<string name="osm_live_email_desc">Ezzel kaphat friss tájékoztatást a szerkesztéseiről.</string> <string name="osm_live_email_desc">Ezzel kaphat friss tájékoztatást a szerkesztéseiről.</string>
<string name="shared_string_undo_all">Minden visszavonása</string> <string name="shared_string_undo_all">Minden visszavonása</string>
<string name="file_name_containes_illegal_char">A fájlnév érvénytelen karaktereket tartalmaz</string> <string name="file_name_containes_illegal_char">A fájlnév érvénytelen karaktert tartalmaz</string>
<string name="storage_permission_restart_is_required">Az alkalmazás már tud írni a külső tárolóra, de ehhez egy kézi újraindítás szükséges.</string> <string name="storage_permission_restart_is_required">Az alkalmazás már tud írni a külső tárolóra, de ehhez egy kézi újraindítás szükséges.</string>
<string name="rec_split_desc">Klipek elvágása, ha a felhasznált hely túllépi a tárolási méretet.</string> <string name="rec_split_desc">Klipek elvágása, ha a felhasznált hely túllépi a tárolási méretet.</string>
<string name="rec_split_clip_length_desc">A felvett klipek maximális hossza.</string> <string name="rec_split_clip_length_desc">A felvett klipek maximális hossza.</string>
@ -2127,21 +2124,21 @@ Hosszúság: %2$s</string>
<string name="quick_favorites_show_favorites_dialog">Kedvencek párbeszédablak megjelenítése</string> <string name="quick_favorites_show_favorites_dialog">Kedvencek párbeszédablak megjelenítése</string>
<string name="quick_favorites_name_preset">Előre megadott név</string> <string name="quick_favorites_name_preset">Előre megadott név</string>
<string name="quick_action_add_marker_descr">Gomb, amely létrehoz a képernyő közepén egy térképjelölőt.</string> <string name="quick_action_add_marker_descr">Gomb, amely létrehoz a képernyő közepén egy térképjelölőt.</string>
<string name="quick_action_add_gpx_descr">A gomb, amely létrehoz a képernyő közepén egy GPX-útpontot.</string> <string name="quick_action_add_gpx_descr">Gomb, amely létrehoz a képernyő közepén egy GPX-útpontot.</string>
<string name="quick_action_take_audio_note_descr">Gomb, amely létrehoz a képernyő közepén egy hangjegyzetet.</string> <string name="quick_action_take_audio_note_descr">Gomb, amely létrehoz a képernyő közepén egy hangjegyzetet.</string>
<string name="quick_action_take_video_note_descr">Gomb, amely létrehoz a képernyő közepén egy videojegyzetet.</string> <string name="quick_action_take_video_note_descr">Gomb, amely létrehoz a képernyő közepén egy videojegyzetet.</string>
<string name="quick_action_take_photo_note_descr">Gomb, amely létrehoz a képernyő közepén egy fényképes jegyzetet.</string> <string name="quick_action_take_photo_note_descr">Gomb, amely létrehoz a képernyő közepén egy fényképes jegyzetet.</string>
<string name="quick_action_add_osm_bug_descr">Gomb, amely létrehoz a képernyő közepén egy OSM-jegyzetet.</string> <string name="quick_action_add_osm_bug_descr">Gomb, amely létrehoz a képernyő közepén egy OSM-jegyzetet.</string>
<string name="quick_action_add_poi_descr">Gomb, amely létrehoz a képernyő közepén egy érdekes helyet (POI-t).</string> <string name="quick_action_add_poi_descr">Gomb, amely létrehoz a képernyő közepén egy érdekes helyet (POI-t).</string>
<string name="quick_action_navigation_voice_descr">Váltógomb, amely engedélyezi vagy letiltja a navigáció közbeni hangutasításokat.</string> <string name="quick_action_navigation_voice_descr">Gomb, amely engedélyezi vagy letiltja a navigáció közbeni hangutasításokat.</string>
<string name="quick_action_add_parking_descr">Gomb, amely létrehoz a képernyő közepén egy parkolási helyet.</string> <string name="quick_action_add_parking_descr">Gomb, amely létrehoz a képernyő közepén egy parkolási helyet.</string>
<string name="quick_action_interim_dialog">Ideiglenes dialógusablak megjelenítése</string> <string name="quick_action_interim_dialog">Ideiglenes dialógusablak megjelenítése</string>
<string name="favorite_autofill_toast_text">" elmentve ide: "</string> <string name="favorite_autofill_toast_text">" elmentve ide: "</string>
<string name="favorite_empty_place_name">Hely</string> <string name="favorite_empty_place_name">Hely</string>
<string name="quick_action_duplicates">A duplikáció elkerüléséért a gyorsművelet át lett nevezve erre: %1$s.</string> <string name="quick_action_duplicates">A duplikáció elkerüléséért a gyorsművelet át lett nevezve erre: %1$s.</string>
<string name="quick_action_duplicate">A gyorsművelet neve kétszer szerepel</string> <string name="quick_action_duplicate">A gyorsművelet neve kétszer szerepel</string>
<string name="quick_action_showhide_favorites_descr">Váltógomb, amely a térképen megjeleníti vagy elrejti a Kedvenc helyeket.</string> <string name="quick_action_showhide_favorites_descr">Gomb, amely a térképen megjeleníti vagy elrejti a Kedvenc helyeket.</string>
<string name="quick_action_showhide_poi_descr">Váltógomb, amely a térképen megjeleníti vagy elrejti az érdekes pontokat (POI-kat).</string> <string name="quick_action_showhide_poi_descr">Gomb, amely a térképen megjeleníti vagy elrejti az érdekes pontokat (POI-kat).</string>
<string name="quick_action_showhide_favorites_title">Kedvencek megjelenítése/elrejtése</string> <string name="quick_action_showhide_favorites_title">Kedvencek megjelenítése/elrejtése</string>
<string name="quick_action_favorites_show">Kedvencek megjelenítése</string> <string name="quick_action_favorites_show">Kedvencek megjelenítése</string>
<string name="quick_action_favorites_hide">Kedvencek elrejtése</string> <string name="quick_action_favorites_hide">Kedvencek elrejtése</string>
@ -2239,7 +2236,7 @@ Hosszúság: %2$s</string>
<string name="type_postcode">Add meg az irányítószámot</string> <string name="type_postcode">Add meg az irányítószámot</string>
<string name="nearest_cities">Közeli települések</string> <string name="nearest_cities">Közeli települések</string>
<string name="quick_action_auto_zoom">Térkép automatikus nagyítása be/ki</string> <string name="quick_action_auto_zoom">Térkép automatikus nagyítása be/ki</string>
<string name="quick_action_auto_zoom_desc">Váltógomb, amely be- vagy kikapcsolja a sebességtől függő automatikus térképnagyítást.</string> <string name="quick_action_auto_zoom_desc">Gomb, amely be- vagy kikapcsolja a sebességtől függő automatikus térképnagyítást.</string>
<string name="quick_action_auto_zoom_on">Automatikus nagyítás bekapcsolása</string> <string name="quick_action_auto_zoom_on">Automatikus nagyítás bekapcsolása</string>
<string name="quick_action_auto_zoom_off">Automatikus nagyítás kikapcsolása</string> <string name="quick_action_auto_zoom_off">Automatikus nagyítás kikapcsolása</string>
<string name="quick_action_add_destination">Célpont megadása</string> <string name="quick_action_add_destination">Célpont megadása</string>
@ -2269,10 +2266,10 @@ Hosszúság: %2$s</string>
<string name="select_street">Utca kijelölése</string> <string name="select_street">Utca kijelölése</string>
<string name="shared_string_in_name">itt: %1$s</string> <string name="shared_string_in_name">itt: %1$s</string>
<string name="type_address">Cím megadása</string> <string name="type_address">Cím megadása</string>
<string name="quick_action_showhide_osmbugs_title">OSM-jegyzetek megjelenítése vagy elrejtése</string> <string name="quick_action_showhide_osmbugs_title">OSM-jegyzetek megjelenítése / elrejtése</string>
<string name="quick_action_osmbugs_show">OSM-jegyzetek megjelenítése</string> <string name="quick_action_osmbugs_show">OSM-jegyzetek megjelenítése</string>
<string name="quick_action_osmbugs_hide">OSM-jegyzetek elrejtése</string> <string name="quick_action_osmbugs_hide">OSM-jegyzetek elrejtése</string>
<string name="quick_action_showhide_osmbugs_descr">Váltógomb, amely a térképen megjeleníti vagy elrejti az OSM-jegyzeteket.</string> <string name="quick_action_showhide_osmbugs_descr">Gomb, amely a térképen megjeleníti vagy elrejti az OSM-jegyzeteket.</string>
<string name="sorted_by_distance">Távolság szerinti sorrendben</string> <string name="sorted_by_distance">Távolság szerinti sorrendben</string>
<string name="search_favorites">Keresés a Kedvencekben</string> <string name="search_favorites">Keresés a Kedvencekben</string>
<string name="hillshade_menu_download_descr">A függőleges árnyékolás megjelenítéséhez töltse le a „Domborzatárnyékolás” térképet.</string> <string name="hillshade_menu_download_descr">A függőleges árnyékolás megjelenítéséhez töltse le a „Domborzatárnyékolás” térképet.</string>
@ -2300,7 +2297,7 @@ Hosszúság: %2$s</string>
<string name="private_access_routing_req">A célpont korlátozott hozzáférésű területen található. Engedélyezed a magánutak használatát ennél az útvonaltervnél\?</string> <string name="private_access_routing_req">A célpont korlátozott hozzáférésű területen található. Engedélyezed a magánutak használatát ennél az útvonaltervnél\?</string>
<string name="restart_search">Keresés újraindítása</string> <string name="restart_search">Keresés újraindítása</string>
<string name="increase_search_radius">Keresett terület szélesítése</string> <string name="increase_search_radius">Keresett terület szélesítése</string>
<string name="nothing_found">"Nincs találat "</string> <string name="nothing_found">Nincs találat</string>
<string name="nothing_found_descr">Módosítsa a keresést vagy növelje a sugarát.</string> <string name="nothing_found_descr">Módosítsa a keresést vagy növelje a sugarát.</string>
<string name="mapillary">Mapillary</string> <string name="mapillary">Mapillary</string>
<string name="shared_string_add_photos">Fényképek hozzáadása</string> <string name="shared_string_add_photos">Fényképek hozzáadása</string>
@ -2318,7 +2315,7 @@ Hosszúság: %2$s</string>
<string name="shared_string_install">Telepítés</string> <string name="shared_string_install">Telepítés</string>
<string name="open_mapillary">Mapillary megnyitása</string> <string name="open_mapillary">Mapillary megnyitása</string>
<string name="mapillary_image">Mapillary-fénykép</string> <string name="mapillary_image">Mapillary-fénykép</string>
<string name="osmand_plus_extended_description_part8">"Hozzávetőleges lefedettség és térképminőség: <string name="osmand_plus_extended_description_part8">Hozzávetőleges lefedettség és térképminőség:
\n • Nyugat-Európa: **** \n • Nyugat-Európa: ****
\n • Kelet-Európa: *** \n • Kelet-Európa: ***
\n • Oroszország: *** \n • Oroszország: ***
@ -2331,7 +2328,7 @@ Hosszúság: %2$s</string>
\n • Antarktisz: * \n • Antarktisz: *
\n A világ legtöbb országa letölthető. \n A világ legtöbb országa letölthető.
\n Afganisztántól Zimbabwéig, Ausztráliától az Egyesült Államokig. Magyarország, Szlovákia, Románia, Ausztria, Németország, Olaszország… \n Afganisztántól Zimbabwéig, Ausztráliától az Egyesült Államokig. Magyarország, Szlovákia, Románia, Ausztria, Németország, Olaszország…
\n"</string> \n</string>
<string name="distance_moving">Korrigált távolság</string> <string name="distance_moving">Korrigált távolság</string>
<string name="shared_string_permissions">Engedélyek</string> <string name="shared_string_permissions">Engedélyek</string>
<string name="import_gpx_failed_descr">Nem sikerült a fájl importálása. Győződjék meg arról, hogy az OsmAndnak van engedélye a fájl olvasására.</string> <string name="import_gpx_failed_descr">Nem sikerült a fájl importálása. Győződjék meg arról, hogy az OsmAndnak van engedélye a fájl olvasására.</string>
@ -2449,9 +2446,9 @@ Hosszúság: %2$s</string>
<string name="waypoint_one">Útpont 1</string> <string name="waypoint_one">Útpont 1</string>
<string name="route_point_one">Útvonalpont 1</string> <string name="route_point_one">Útvonalpont 1</string>
<string name="empty_state_my_tracks">GPX-fájlok hozzáadása</string> <string name="empty_state_my_tracks">GPX-fájlok hozzáadása</string>
<string name="empty_state_my_tracks_desc">GPX fájlok importálása, vagy nyomvonalak rögzítése.</string> <string name="empty_state_my_tracks_desc">GPX fájlok importálása vagy nyomvonalak rögzítése.</string>
<string name="empty_state_favourites">Kedvencek hozzáadása</string> <string name="empty_state_favourites">Kedvencek hozzáadása</string>
<string name="empty_state_favourites_desc">Kedvencek importálása, vagy hozzáadása a térképen pontok megjelölésével.</string> <string name="empty_state_favourites_desc">Kedvencek importálása vagy hozzáadása a térképen pontok megjelölésével.</string>
<string name="import_track">GPX fájl importálása</string> <string name="import_track">GPX fájl importálása</string>
<string name="import_track_desc">%1$s fájl nem tartalmaz útpontot. Importálod nyomvonalként?</string> <string name="import_track_desc">%1$s fájl nem tartalmaz útpontot. Importálod nyomvonalként?</string>
<string name="move_point">Pont mozgatása</string> <string name="move_point">Pont mozgatása</string>
@ -2623,7 +2620,7 @@ Hosszúság: %2$s</string>
<string name="shared_string_wifi_only">Csak Wi-Fin</string> <string name="shared_string_wifi_only">Csak Wi-Fin</string>
<string name="select_travel_book">Útikönyv kiválasztása</string> <string name="select_travel_book">Útikönyv kiválasztása</string>
<string name="shared_string_travel_book">Útikönyv</string> <string name="shared_string_travel_book">Útikönyv</string>
<string name="online_webpage_warning">Az oldal csak online érhető el. Megnyitod böngészőben?</string> <string name="online_webpage_warning">Az oldal csak online érhető el. Megnyitja böngészőben\?</string>
<string name="images_cache">Kép gyorsítótár</string> <string name="images_cache">Kép gyorsítótár</string>
<string name="delete_search_history">Keresési előzmények törlése</string> <string name="delete_search_history">Keresési előzmények törlése</string>
<string name="download_images">Képek letöltése</string> <string name="download_images">Képek letöltése</string>
@ -2720,7 +2717,7 @@ Hosszúság: %2$s</string>
<string name="markers_remove_dialog_msg">Törlöd „%s” térképjelölőt\?</string> <string name="markers_remove_dialog_msg">Törlöd „%s” térképjelölőt\?</string>
<string name="edit_map_marker">Térképjelölő szerkesztése</string> <string name="edit_map_marker">Térképjelölő szerkesztése</string>
<string name="search_street">Utca keresése</string> <string name="search_street">Utca keresése</string>
<string name="start_search_from_city">Előbb adja meg meg a várost/helyet</string> <string name="start_search_from_city">Előbb adja meg a várost/helyet</string>
<string name="shared_string_restore">Visszaállítás</string> <string name="shared_string_restore">Visszaállítás</string>
<string name="keep_passed_markers">Elhagyott jelölők megtartása a térképen</string> <string name="keep_passed_markers">Elhagyott jelölők megtartása a térképen</string>
<string name="ask_for_location_permission">A folytatáshoz engedélyezze a helymeghatározást az OsmAnd számára.</string> <string name="ask_for_location_permission">A folytatáshoz engedélyezze a helymeghatározást az OsmAnd számára.</string>
@ -2854,7 +2851,7 @@ Hosszúság: %2$s</string>
\n • Az útvonalterv újratervezésre kerül, ha eltérsz attól \n • Az útvonalterv újratervezésre kerül, ha eltérsz attól
\n • Célkeresés cím, típus (például: parkoló, étterem, hotel, benzinkút, múzeum), vagy földrajzi koordináták szerint \n • Célkeresés cím, típus (például: parkoló, étterem, hotel, benzinkút, múzeum), vagy földrajzi koordináták szerint
\n</string> \n</string>
<string name="quick_action_switch_day_night_descr">Váltógomb, amellyel az OsmAnd éjszakai és nappali módja között lehet váltani.</string> <string name="quick_action_switch_day_night_descr">Gomb, amellyel az OsmAnd éjszakai és nappali módja között lehet váltani.</string>
<string name="quick_action_switch_day_mode">Nappali mód</string> <string name="quick_action_switch_day_mode">Nappali mód</string>
<string name="quick_action_switch_night_mode">Éjszakai mód</string> <string name="quick_action_switch_night_mode">Éjszakai mód</string>
<string name="quick_action_day_night_switch_mode">Váltás a nappali/éjszakai mód között</string> <string name="quick_action_day_night_switch_mode">Váltás a nappali/éjszakai mód között</string>
@ -2875,7 +2872,7 @@ Hosszúság: %2$s</string>
<string name="routeInfo_road_types_name">Úttípusok</string> <string name="routeInfo_road_types_name">Úttípusok</string>
<string name="exit_at">Szálljon le itt:</string> <string name="exit_at">Szálljon le itt:</string>
<string name="quick_action_show_hide_gpx_tracks">GPX-nyomvonalak megjelenítése/elrejtése</string> <string name="quick_action_show_hide_gpx_tracks">GPX-nyomvonalak megjelenítése/elrejtése</string>
<string name="quick_action_show_hide_gpx_tracks_descr">Váltógomb, amely a térképen megjeleníti vagy elrejti a GPX-nyomvonalakat.</string> <string name="quick_action_show_hide_gpx_tracks_descr">Gomb, amely a térképen megjeleníti vagy elrejti a GPX-nyomvonalakat.</string>
<string name="quick_action_gpx_tracks_hide">GPX nyomvonalak elrejtése</string> <string name="quick_action_gpx_tracks_hide">GPX nyomvonalak elrejtése</string>
<string name="quick_action_gpx_tracks_show">GPX nyomvonalak megjelenítése</string> <string name="quick_action_gpx_tracks_show">GPX nyomvonalak megjelenítése</string>
<string name="add_destination_query">Először adjon meg egy célpontot</string> <string name="add_destination_query">Először adjon meg egy célpontot</string>
@ -3123,7 +3120,7 @@ Hosszúság: %2$s</string>
<string name="routing_attr_difficulty_preference_name">Előnyben részesített nehézség</string> <string name="routing_attr_difficulty_preference_name">Előnyben részesített nehézség</string>
<string name="routing_attr_difficulty_preference_description">Az ilyen nehézségű pályák részesülnek előnyben, azonban az útvonalba továbbra is bekerülhetnek nehezebb vagy könnyebb pályák, ha úgy rövidebb.</string> <string name="routing_attr_difficulty_preference_description">Az ilyen nehézségű pályák részesülnek előnyben, azonban az útvonalba továbbra is bekerülhetnek nehezebb vagy könnyebb pályák, ha úgy rövidebb.</string>
<string name="routing_attr_freeride_policy_name">Pályán kívül</string> <string name="routing_attr_freeride_policy_name">Pályán kívül</string>
<string name="routing_attr_freeride_policy_description">A freeride és pályán kívüli utak nem hivatalos útvonalak és átjárók. Általában nem egyengetik el őket, nincsenek karbantartva, este pedig nem ellenőrzik őket. Belépés csak saját felelősségre.</string> <string name="routing_attr_freeride_policy_description">A \'freeride\' és a \'pályán kívüli utak\' nem hivatalos útvonalak és átjárók. Általában nem egyengetik el őket, nincsenek karbantartva, este pedig nem ellenőrzik őket. Belépés csak saját felelősségre.</string>
<string name="configure_profile_info">Profil beállításai:</string> <string name="configure_profile_info">Profil beállításai:</string>
<string name="coordinates_format_info">A kiválasztott formátum az alkalmazás összes területén alkalmazva lesz.</string> <string name="coordinates_format_info">A kiválasztott formátum az alkalmazás összes területén alkalmazva lesz.</string>
<string name="change_default_settings">Beállítás módosítása</string> <string name="change_default_settings">Beállítás módosítása</string>
@ -3183,8 +3180,8 @@ Hosszúság: %2$s</string>
<string name="osmand_settings">OsmAnd beállítások</string> <string name="osmand_settings">OsmAnd beállítások</string>
<string name="shared_string_calculate">Kiszámít</string> <string name="shared_string_calculate">Kiszámít</string>
<string name="layer_osm_edits">OSM-szerkesztések</string> <string name="layer_osm_edits">OSM-szerkesztések</string>
<string name="quick_action_contour_lines_descr">Váltógomb, amely a térképen megjeleníti vagy elrejti a szintvonalakat.</string> <string name="quick_action_contour_lines_descr">Gomb, amely a térképen megjeleníti vagy elrejti a szintvonalakat.</string>
<string name="quick_action_hillshade_descr">Váltógomb, amely a térképen megjeleníti vagy elrejti a domborzatárnyékolást.</string> <string name="quick_action_hillshade_descr">Gomb, amely a térképen megjeleníti vagy elrejti a domborzatárnyékolást.</string>
<string name="tts_initialization_error">Szövegfelolvasó motor indítása sikertelen.</string> <string name="tts_initialization_error">Szövegfelolvasó motor indítása sikertelen.</string>
<string name="data_storage_preference_summary">%1$s • %2$s</string> <string name="data_storage_preference_summary">%1$s • %2$s</string>
<string name="data_storage_space_description">%1$s GB szabad (%2$s GB-ból)</string> <string name="data_storage_space_description">%1$s GB szabad (%2$s GB-ból)</string>
@ -3439,7 +3436,7 @@ Hosszúság: %2$s</string>
<string name="live_monitoring">Online nyomvonalrögzítés</string> <string name="live_monitoring">Online nyomvonalrögzítés</string>
<string name="save_track_logging_accuracy">Naplózás pontossága</string> <string name="save_track_logging_accuracy">Naplózás pontossága</string>
<string name="tracks_view_descr">Az összes rögzített nyomvonal megtalálható a %1$s helyen vagy a fájlkezelővel az OsmAnd mappában.</string> <string name="tracks_view_descr">Az összes rögzített nyomvonal megtalálható a %1$s helyen vagy a fájlkezelővel az OsmAnd mappában.</string>
<string name="multimedia_notes_view_descr">Az összes jegyzetét megtalálja a %1$s helyen</string> <string name="multimedia_notes_view_descr">Az összes OSM-jegyzetét megtalálja a %1$s helyen.</string>
<string name="video_notes">Videojegyzetek</string> <string name="video_notes">Videojegyzetek</string>
<string name="photo_notes">Fényképes jegyzetek</string> <string name="photo_notes">Fényképes jegyzetek</string>
<string name="route_recalculation">Útvonal újraszámítása</string> <string name="route_recalculation">Útvonal újraszámítása</string>
@ -3503,7 +3500,7 @@ Hosszúság: %2$s</string>
<string name="keep_both">Mindkettő megtartása</string> <string name="keep_both">Mindkettő megtartása</string>
<string name="replace_all">Összes lecserélése</string> <string name="replace_all">Összes lecserélése</string>
<string name="shared_string_terrain">Domborzat</string> <string name="shared_string_terrain">Domborzat</string>
<string name="hillshade_description">A domborzatárnyékolás réteg sötét árnyalattal emeli ki a lejtőket, csúcsokat és az alföldeket.</string> <string name="hillshade_description">A domborzatárnyékolás réteg sötét árnyalattal emeli ki a lejtőket, csúcsokat és a síkságokat.</string>
<string name="slope_description">A lejtő réteg színezéssel jeleníti meg a terep meredekségét.</string> <string name="slope_description">A lejtő réteg színezéssel jeleníti meg a terep meredekségét.</string>
<string name="terrain_slider_description">Állítsa be a legkisebb és legnagyobb nagyítási szintet, amelyen a réteg megjelenjen.</string> <string name="terrain_slider_description">Állítsa be a legkisebb és legnagyobb nagyítási szintet, amelyen a réteg megjelenjen.</string>
<string name="hillshade_download_description">További térképek szükségesek a domborzatárnyékolás térképen való megjelenítéséhez.</string> <string name="hillshade_download_description">További térképek szükségesek a domborzatárnyékolás térképen való megjelenítéséhez.</string>
@ -3532,7 +3529,7 @@ Hosszúság: %2$s</string>
<string name="shared_string_square">Négyzet</string> <string name="shared_string_square">Négyzet</string>
<string name="shared_string_min">Min</string> <string name="shared_string_min">Min</string>
<string name="clear_recorded_data">Rögzített adatok törlése</string> <string name="clear_recorded_data">Rögzített adatok törlése</string>
<string name="terrain_empty_state_text">Engedélyezésével domborzatárnyékolás vagy lejtőtérkép jeleníthető meg. Ezekről a térképfajtákról többet olvashat a honlapunkon:</string> <string name="terrain_empty_state_text">Engedélyezésével domborzatárnyékolás vagy lejtőtérkép jeleníthető meg. Ezekről a térképfajtákról többet olvashat a honlapunkon.</string>
<string name="app_mode_ski_touring">Túrasízés</string> <string name="app_mode_ski_touring">Túrasízés</string>
<string name="app_mode_ski_snowmobile">Motoros hószán</string> <string name="app_mode_ski_snowmobile">Motoros hószán</string>
<string name="custom_osmand_plugin">Egyéni OsmAnd bővítmény</string> <string name="custom_osmand_plugin">Egyéni OsmAnd bővítmény</string>
@ -3556,7 +3553,7 @@ Hosszúság: %2$s</string>
<string name="main_actions">Fő műveletek</string> <string name="main_actions">Fő műveletek</string>
<string name="move_inside_category">Csak ezen a kategórián belül lehetséges az elemek áthelyezése.</string> <string name="move_inside_category">Csak ezen a kategórián belül lehetséges az elemek áthelyezése.</string>
<string name="developer_plugin">Fejlesztő bővítmény</string> <string name="developer_plugin">Fejlesztő bővítmény</string>
<string name="replace_point_descr">Másik pont lecserélése erre</string> <string name="replace_point_descr">Másik pont lecserélése erre.</string>
<string name="shared_string_items">Elemek</string> <string name="shared_string_items">Elemek</string>
<string name="changes_applied_to_profile">Módosítások alkalmazva erre a profilra: %1$s.</string> <string name="changes_applied_to_profile">Módosítások alkalmazva erre a profilra: %1$s.</string>
<string name="shared_string_languages">Nyelvek</string> <string name="shared_string_languages">Nyelvek</string>
@ -3624,7 +3621,7 @@ Hosszúság: %2$s</string>
<string name="add_edit_favorite">Kedvenc hozzáadása/módosítása</string> <string name="add_edit_favorite">Kedvenc hozzáadása/módosítása</string>
<string name="reset_deafult_order">Alapértelmezett elemsorrend visszaállítása</string> <string name="reset_deafult_order">Alapértelmezett elemsorrend visszaállítása</string>
<string name="back_to_editing">Vissza a szerkesztéshez</string> <string name="back_to_editing">Vissza a szerkesztéshez</string>
<string name="profiles_for_action_not_found">Nem található ilyen profil</string> <string name="profiles_for_action_not_found">Nem található ilyen profil.</string>
<string name="quick_action_switch_profile_descr">A műveletgomb vált a kiválasztott profilok között.</string> <string name="quick_action_switch_profile_descr">A műveletgomb vált a kiválasztott profilok között.</string>
<string name="shared_string_add_profile">Profil hozzáadása</string> <string name="shared_string_add_profile">Profil hozzáadása</string>
<string name="change_application_profile">Alkalmazásprofil módosítása</string> <string name="change_application_profile">Alkalmazásprofil módosítása</string>
@ -3760,4 +3757,15 @@ Hosszúság: %2$s</string>
<string name="lenght_limit_description">Adja meg a járműve hosszát, a hosszú járművekre útvonalkorlátozások lehetnek érvényben.</string> <string name="lenght_limit_description">Adja meg a járműve hosszát, a hosszú járművekre útvonalkorlátozások lehetnek érvényben.</string>
<string name="quick_action_remove_next_destination">Következő célpont törlése</string> <string name="quick_action_remove_next_destination">Következő célpont törlése</string>
<string name="search_download_wikipedia_maps">Wikipédia térképek letöltése</string> <string name="search_download_wikipedia_maps">Wikipédia térképek letöltése</string>
<string name="export_profile_dialog_description">További adatokat is kijelölhet exportálásra a profillal együtt.</string>
<string name="shared_string_include_data">Kiegészítő adatok átvétele</string>
<string name="import_profile_dialog_description">Az importált profil kiegészítő adatokat is tartalmaz. Koppintson az \"Importál\" gombra kizálólag a profiladatok importálásához vagy válassza a kiegészítő adatokat.</string>
<string name="import_complete_description">Összes adat importálva innen: %1$s, az alábbi gombokkal megnyithatja az alkalmazás megfelelő részét az adatok kezeléséhez.</string>
<string name="osm_live_payment_subscription_management">A fizetés a Google Play fiókhoz lesz felszámítva a vásárlás megerősítésekor.
\n
\nAz előfizetés automatikusan megújul, kivéve ha a meghosszabbítás napja előtt lemondásra kerül. A fókjához az új időszak (hónap/három hónap/év) díja kizárólag a meghosszabítás napján lesz felszámolva.
\n
\nAz előfizetéseit a Google Play beállításainál tudja kezelni és lemondani.</string>
<string name="quick_action_remove_next_destination_descr">Törli az útvonal soron következő célpontját. Amennyiben ez a végző célpont, a navigáció megáll.</string>
<string name="plugin_wikipedia_description">Szerezzen információt az érdekes helyekkel kapcsolatban a Wikipédiáról. Ez az ön offline zseb útikönyve - egyszerűen engedélyezze a Wikipédia bővítményt és élvezze az ön körül lévő objektumokról szóló cikkeket.</string>
</resources> </resources>

View file

@ -3037,4 +3037,13 @@
<string name="change_application_profile">Փոխել hավելվածի պրոֆիլը</string> <string name="change_application_profile">Փոխել hավելվածի պրոֆիլը</string>
<string name="profiles_for_action_not_found">Համապատասխան պրոֆիլներ չեն գտնվել:</string> <string name="profiles_for_action_not_found">Համապատասխան պրոֆիլներ չեն գտնվել:</string>
<string name="index_item_world_basemap_detailed">Համաշխարհային ակնարկային քարտեզ (մանրամասն)</string> <string name="index_item_world_basemap_detailed">Համաշխարհային ակնարկային քարտեզ (մանրամասն)</string>
<string name="lenght_limit_description">Նշեք մեքենայի երկարությունը, երկար տրանսպորտային միջոցների համար կարող են կիրառվել երթուղու սահմանափակումներ։</string>
<string name="routing_attr_length_description">Նշեք թույլատրելի տրանսպորտային միջոցի երկարությունը երթուղով երթևեկության համար։</string>
<string name="routing_attr_length_name">Երկարության սահմանապակումը</string>
<string name="speed_cameras_removed_descr">Այս սարքը չունի արագության վերահսկման տեսախցիկներ:</string>
<string name="app_mode_inline_skates">Անվաչմուշկներ</string>
<string name="quick_action_remove_next_destination">Ջնջել հաջորդ նպատակակետը</string>
<string name="please_provide_point_name_error">Խնդրում ենք մուտքագրել կետի անունը</string>
<string name="quick_action_remove_next_destination_descr">Երթուղու ընթացիկ նպատակակետը կջնջվի: Եթե դա նպատակակետն է, նավարկումը կդադարի։</string>
<string name="search_download_wikipedia_maps">Ներբեռնել Վիքիպեդիայի քարտեզները</string>
</resources> </resources>

View file

@ -1426,7 +1426,7 @@
<string name="poi_tactile_paving_yes">Sim</string> <string name="poi_tactile_paving_yes">Sim</string>
<string name="poi_tactile_paving_no">Sem piso tátil</string> <string name="poi_tactile_paving_no">Sem piso tátil</string>
<string name="poi_traffic_signals_sound_yes">Sim</string> <string name="poi_traffic_signals_sound_yes">Sim</string>
<string name="poi_traffic_signals_sound_no">Não</string> <string name="poi_traffic_signals_sound_no">Som: não</string>
<string name="poi_traffic_signals_sound_walk">Só quando permitido atravessar</string> <string name="poi_traffic_signals_sound_walk">Só quando permitido atravessar</string>
<string name="poi_rescue_station">Estação de resgate</string> <string name="poi_rescue_station">Estação de resgate</string>
<string name="poi_services">Área de serviço</string> <string name="poi_services">Área de serviço</string>
@ -3809,4 +3809,9 @@
<string name="poi_fire_hydrant_type_pipe">Tubo</string> <string name="poi_fire_hydrant_type_pipe">Tubo</string>
<string name="poi_fire_hydrant_pressure_filter">Pressão</string> <string name="poi_fire_hydrant_pressure_filter">Pressão</string>
<string name="poi_pump_status_missing_beam">Estado da bomba: falta de feixe</string> <string name="poi_pump_status_missing_beam">Estado da bomba: falta de feixe</string>
<string name="poi_traffic_signals_arrow_yes">Sim</string>
<string name="poi_traffic_signals_vibration_yes">Sim</string>
<string name="poi_traffic_signals_vibration_no">Vibração: não</string>
<string name="poi_traffic_signals_arrow">Seta</string>
<string name="poi_traffic_signals_vibration">Vibração</string>
</resources> </resources>

View file

@ -365,9 +365,9 @@
<string name="local_indexes_cat_tile">Онлайн и кешированные карты (растровые)</string> <string name="local_indexes_cat_tile">Онлайн и кешированные карты (растровые)</string>
<string name="local_indexes_cat_map">Стандартные карты (векторные)</string> <string name="local_indexes_cat_map">Стандартные карты (векторные)</string>
<string name="index_settings_descr">Загрузка и управление локальными файлами карт на вашем устройстве.</string> <string name="index_settings_descr">Загрузка и управление локальными файлами карт на вашем устройстве.</string>
<string name="map_online_plugin_is_not_installed">Активируйте плагин онлайн карт, чтобы выбирать различные источники карт</string> <string name="map_online_plugin_is_not_installed">Активируйте плагин онлайн-карт, чтобы выбирать различные источники карт</string>
<string name="map_online_data">Онлайн карты</string> <string name="map_online_data">Онлайн-карты</string>
<string name="map_online_data_descr">Использовать онлайн карты (загрузка и кеширование на SD-карте).</string> <string name="map_online_data_descr">Использовать онлайн-карты (загрузка и кеширование на SD-карте).</string>
<string name="shared_string_online_maps">Онлайн-карты</string> <string name="shared_string_online_maps">Онлайн-карты</string>
<string name="online_map_settings_descr">Выберите источник онлайн или кешированных растровых карт.</string> <string name="online_map_settings_descr">Выберите источник онлайн или кешированных растровых карт.</string>
<string name="osmand_rastermaps_plugin_description">Получение доступа ко множеству видов онлайн-карт (тайловых или растровых): от предопределённых тайловых OSM (как Mapnik), до спутниковых снимков и слоёв специального назначения, таких как карты погоды, климатические карты, геологические карты, слои затемнения высот и т. д. <string name="osmand_rastermaps_plugin_description">Получение доступа ко множеству видов онлайн-карт (тайловых или растровых): от предопределённых тайловых OSM (как Mapnik), до спутниковых снимков и слоёв специального назначения, таких как карты погоды, климатические карты, геологические карты, слои затемнения высот и т. д.
@ -387,7 +387,7 @@
<string name="debugging_and_development">Отладка и разработка</string> <string name="debugging_and_development">Отладка и разработка</string>
<string name="native_rendering">Быстрая отрисовка</string> <string name="native_rendering">Быстрая отрисовка</string>
<string name="test_voice_prompts">Тест голосовых подсказок</string> <string name="test_voice_prompts">Тест голосовых подсказок</string>
<string name="switch_to_raster_map_to_see">Скачайте локальную векторную карту для этой локации в меню «Настройки» («Управление файлами карт»), или переключитесь на плагин «Онлайн карты».</string> <string name="switch_to_raster_map_to_see">Скачайте локальную векторную карту для этой локации в меню «Настройки» («Управление файлами карт»), или переключитесь на плагин «Онлайн-карты».</string>
<string name="send_files_to_osm">Отправить файлы GPX в OSM\?</string> <string name="send_files_to_osm">Отправить файлы GPX в OSM\?</string>
<string name="gpx_visibility_txt">Видимость</string> <string name="gpx_visibility_txt">Видимость</string>
<string name="gpx_tags_txt">Теги</string> <string name="gpx_tags_txt">Теги</string>
@ -410,10 +410,10 @@
<string name="local_openstreetmap_descr_title">Локальное дополнение:</string> <string name="local_openstreetmap_descr_title">Локальное дополнение:</string>
<string name="local_openstreetmap_settings">OSM POI/заметки на устройстве</string> <string name="local_openstreetmap_settings">OSM POI/заметки на устройстве</string>
<string name="local_openstreetmap_settings_descr">Просмотр и управление OSM POI/заметками в локальной базе данных.</string> <string name="local_openstreetmap_settings_descr">Просмотр и управление OSM POI/заметками в локальной базе данных.</string>
<string name="live_monitoring_interval_descr">Укажите интервал онлайн слежения.</string> <string name="live_monitoring_interval_descr">Укажите интервал онлайн-слежения.</string>
<string name="live_monitoring_interval">Интервал онлайн слежения</string> <string name="live_monitoring_interval">Интервал онлайн-слежения</string>
<string name="live_monitoring_url_descr">Укажите веб-адрес со следующими параметрами: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}.</string> <string name="live_monitoring_url_descr">Укажите веб-адрес со следующими параметрами: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}.</string>
<string name="live_monitoring_url">Web адрес онлайн слежения</string> <string name="live_monitoring_url">Web адрес онлайн-слежения</string>
<string name="gpx_monitoring_disabled_warn">Записать трек можно с помощью виджета GPX или выбрав «Запись поездки» в Настройках.</string> <string name="gpx_monitoring_disabled_warn">Записать трек можно с помощью виджета GPX или выбрав «Запись поездки» в Настройках.</string>
<string name="show_current_gpx_title">Показывать текущий путь</string> <string name="show_current_gpx_title">Показывать текущий путь</string>
<string name="free_version_message">Вы можете скачать или обновить карты %1$s.</string> <string name="free_version_message">Вы можете скачать или обновить карты %1$s.</string>
@ -448,11 +448,11 @@
<string name="use_transparent_map_theme">Прозрачная тема</string> <string name="use_transparent_map_theme">Прозрачная тема</string>
<string name="native_library_not_supported">Нативная библиотека не поддерживается на этом устройстве.</string> <string name="native_library_not_supported">Нативная библиотека не поддерживается на этом устройстве.</string>
<string name="init_native_library">Инициализация нативной библиотеки…</string> <string name="init_native_library">Инициализация нативной библиотеки…</string>
<string name="choose_auto_follow_route">Вид карты автоцентра</string> <string name="choose_auto_follow_route">Центрировать карту автоматически</string>
<string name="choose_auto_follow_route_descr">Выберите время, через которое карта вернётся к текущей позиции.</string> <string name="choose_auto_follow_route_descr">Выберите время, через которое карта вернётся к текущей позиции.</string>
<string name="auto_follow_route_navigation">Автовозврат карты только при следовании по маршруту</string> <string name="auto_follow_route_navigation">Автовозврат карты только при следовании по маршруту</string>
<string name="auto_follow_route_navigation_descr">Возвращать карту в текущее положение только при следовании по маршруту.</string> <string name="auto_follow_route_navigation_descr">Возвращать карту в текущее положение только при следовании по маршруту.</string>
<string name="auto_follow_location_enabled">Автоцентр просмотра карты во время использования.</string> <string name="auto_follow_location_enabled">Центрировать карту при использовании.</string>
<string name="shared_string_gpx_route">Маршрут GPX</string> <string name="shared_string_gpx_route">Маршрут GPX</string>
<string name="poi_query_by_name_matches_categories">Найдено несколько связанных категорий POI.</string> <string name="poi_query_by_name_matches_categories">Найдено несколько связанных категорий POI.</string>
<string name="data_to_search_poi_not_available">Загрузите данные для локального поиска POI.</string> <string name="data_to_search_poi_not_available">Загрузите данные для локального поиска POI.</string>
@ -704,7 +704,7 @@
<string name="where_am_i">Где я?</string> <string name="where_am_i">Где я?</string>
<string name="network_provider">Сеть</string> <string name="network_provider">Сеть</string>
<string name="gps_provider">GPS</string> <string name="gps_provider">GPS</string>
<string name="int_seconds">секунды</string> <string name="int_seconds">сек.</string>
<string name="int_min">мин.</string> <string name="int_min">мин.</string>
<string name="background_service_int_descr">Интервал пробуждения для фоновой службы:</string> <string name="background_service_int_descr">Интервал пробуждения для фоновой службы:</string>
<string name="background_service_int">Интервал пробуждения GPS</string> <string name="background_service_int">Интервал пробуждения GPS</string>
@ -785,9 +785,9 @@
<string name="searching">Поиск…</string> <string name="searching">Поиск…</string>
<string name="searching_address">Поиск адреса…</string> <string name="searching_address">Поиск адреса…</string>
<string name="search_osm_nominatim">Поиск адреса в OSM Nominatim</string> <string name="search_osm_nominatim">Поиск адреса в OSM Nominatim</string>
<string name="hint_search_online">Онлайн поиск: Номер дома, улица, Город</string> <string name="hint_search_online">Онлайн-поиск: номер дома, улица, город</string>
<string name="search_offline_address">Локальный поиск</string> <string name="search_offline_address">Локальный поиск</string>
<string name="search_online_address">Онлайн поиск</string> <string name="search_online_address">Онлайн-поиск</string>
<string name="max_level_download_tile">Уровень детализации</string> <string name="max_level_download_tile">Уровень детализации</string>
<string name="max_level_download_tile_descr">Выберите максимальный масштаб для загрузки тайлов карт из интернета.</string> <string name="max_level_download_tile_descr">Выберите максимальный масштаб для загрузки тайлов карт из интернета.</string>
<string name="route_general_information">Общая протяжённость = %1$s, время в пути = %2$d ч. %3$d м.</string> <string name="route_general_information">Общая протяжённость = %1$s, время в пути = %2$d ч. %3$d м.</string>
@ -836,7 +836,7 @@
<string name="saving_gpx_tracks">Сохранение файла GPX…</string> <string name="saving_gpx_tracks">Сохранение файла GPX…</string>
<string name="finished_task">Окончен</string> <string name="finished_task">Окончен</string>
<string name="use_online_routing_descr">Использовать интернет-сервис для прокладки маршрута.</string> <string name="use_online_routing_descr">Использовать интернет-сервис для прокладки маршрута.</string>
<string name="use_online_routing">Онлайн маршрутизация</string> <string name="use_online_routing">Онлайн-маршрутизация</string>
<string name="user_password">Пароль</string> <string name="user_password">Пароль</string>
<string name="osm_settings_descr">Укажите настройки для загрузки данных в Openstreetmap.org (OSM).</string> <string name="osm_settings_descr">Укажите настройки для загрузки данных в Openstreetmap.org (OSM).</string>
<string name="data_settings_descr">Настройка данных: язык, обновление данных.</string> <string name="data_settings_descr">Настройка данных: язык, обновление данных.</string>
@ -994,7 +994,7 @@
<string name="shared_string_accessibility">Специальные возможности</string> <string name="shared_string_accessibility">Специальные возможности</string>
<string name="pref_vector_rendering">Настройки векторной отрисовки</string> <string name="pref_vector_rendering">Настройки векторной отрисовки</string>
<string name="pref_overlay">Дополнительные слои</string> <string name="pref_overlay">Дополнительные слои</string>
<string name="pref_raster_map">Настройки онлайн карт</string> <string name="pref_raster_map">Настройки онлайн-карт</string>
<string name="pref_vector_map">Настройки локальных карт</string> <string name="pref_vector_map">Настройки локальных карт</string>
<string name="delete_confirmation_msg">Удалить %1$s?</string> <string name="delete_confirmation_msg">Удалить %1$s?</string>
<string name="city_type_suburb">Пригород</string> <string name="city_type_suburb">Пригород</string>
@ -1024,7 +1024,7 @@
<string name="rendering_attr_noPolygons_name">Полигоны</string> <string name="rendering_attr_noPolygons_name">Полигоны</string>
<string name="rendering_attr_appMode_name">Режим отрисовки</string> <string name="rendering_attr_appMode_name">Режим отрисовки</string>
<string name="rendering_attr_appMode_description">Оптимизация карты для соответствующего профиля</string> <string name="rendering_attr_appMode_description">Оптимизация карты для соответствующего профиля</string>
<string name="rendering_attr_contourLines_description">Показывать, начиная с уровня масштабирования (требуются данные контурных линий):</string> <string name="rendering_attr_contourLines_description">Показывать начиная с уровня масштабирования (требуются данные контурных линий):</string>
<string name="rendering_attr_contourLines_name">Показывать контурные линии</string> <string name="rendering_attr_contourLines_name">Показывать контурные линии</string>
<string name="rendering_attr_hmRendered_description">Показывать больше деталей на карте.</string> <string name="rendering_attr_hmRendered_description">Показывать больше деталей на карте.</string>
<string name="rendering_attr_hmRendered_name">Больше деталей</string> <string name="rendering_attr_hmRendered_name">Больше деталей</string>
@ -1055,7 +1055,7 @@
<string name="osmand_parking_position_name">Точка парковки</string> <string name="osmand_parking_position_name">Точка парковки</string>
<string name="osmand_parking_plugin_description">Позволяет записывать, где припаркован ваш автомобиль, а также сколько времени он на парковке. <string name="osmand_parking_plugin_description">Позволяет записывать, где припаркован ваш автомобиль, а также сколько времени он на парковке.
\nМесто и время парковки доступны на панели управления, а также в виде виджета на карте. Для напоминания в календарь Android может быть добавлено уведомление.</string> \nМесто и время парковки доступны на панели управления, а также в виде виджета на карте. Для напоминания в календарь Android может быть добавлено уведомление.</string>
<string name="osmand_parking_plugin_name">Парковочное место</string> <string name="osmand_parking_plugin_name">Место парковки</string>
<string name="context_menu_item_add_parking_point">Пометить место парковки</string> <string name="context_menu_item_add_parking_point">Пометить место парковки</string>
<string name="context_menu_item_delete_parking_point">Удалить метку места парковки</string> <string name="context_menu_item_delete_parking_point">Удалить метку места парковки</string>
<string name="starting_point_too_far">Точка отправления слишком далеко от ближайшей дороги.</string> <string name="starting_point_too_far">Точка отправления слишком далеко от ближайшей дороги.</string>
@ -1123,7 +1123,7 @@
<string name="osmand_short_description_80_chars">Мобильный просмотр и навигация по онлайн и локальным картам OSM всего мира</string> <string name="osmand_short_description_80_chars">Мобильный просмотр и навигация по онлайн и локальным картам OSM всего мира</string>
<string name="osmand_long_description_1000_chars">OsmAnd (Open Street Maps Automated Navigation Directions) <string name="osmand_long_description_1000_chars">OsmAnd (Open Street Maps Automated Navigation Directions)
\n \n
\n OsmAnd — это навигационное приложение с открытым исходным кодом и доступом к картам и данным на основе OSM. Все данные карт (векторные или растровые) могут быть сохранены на карту памяти устройства для использования без подключения к интернету. OsmAnd также предоставляет локальные и онлайн средства построения маршрута, включая голосовые инструкции по маршруту. \n OsmAnd — это навигационное приложение с открытым исходным кодом и доступом к картам и данным на основе OSM. Все данные карт (векторные или растровые) могут быть сохранены на карту памяти устройства для использования без подключения к интернету. OsmAnd также предоставляет локальные и онлайн-средства построения маршрута, включая голосовые инструкции по маршруту.
\n \n
\n Некоторые из основных возможностей приложения: \n Некоторые из основных возможностей приложения:
\n — работа с векторными и растровыми картами без доступа в интернет (для этого нужно предварительно сохранить карты на карту памяти устройства); \n — работа с векторными и растровыми картами без доступа в интернет (для этого нужно предварительно сохранить карты на карту памяти устройства);
@ -1146,7 +1146,7 @@
<string name="osmand_plus_short_description_80_chars">OsmAnd — это навигационное приложение для путешествий с открытым исходным кодом</string> <string name="osmand_plus_short_description_80_chars">OsmAnd — это навигационное приложение для путешествий с открытым исходным кодом</string>
<string name="osmand_plus_long_description_1000_chars">OsmAnd+ (OSM Automated Navigation Directions) <string name="osmand_plus_long_description_1000_chars">OsmAnd+ (OSM Automated Navigation Directions)
\n \n
\n OsmAnd+ — это навигационное приложение с открытым исходным кодом и доступом к широкому спектру глобальных данных OpenStreetMap (OSM). Все данные карт (векторные или растровые/тайловые) могут быть сохранены на карту памяти устройства для автономного использования, без подключения к сети интернет. OsmAnd также предоставляет локальные и онлайн средства построения маршрута, включая пошаговые голосовые подсказки. \n OsmAnd+ — это навигационное приложение с открытым исходным кодом и доступом к широкому спектру глобальных данных OpenStreetMap (OSM). Все данные карт (векторные или растровые/тайловые) могут быть сохранены на карту памяти устройства для автономного использования, без подключения к сети интернет. OsmAnd также предоставляет локальные и онлайн-средства построения маршрута, включая пошаговые голосовые подсказки.
\n \n
\n OsmAnd+ — это платная версия приложения, покупая которую вы поддерживаете проект, финансируете разработку новых функций и получаете последние обновления. \n OsmAnd+ — это платная версия приложения, покупая которую вы поддерживаете проект, финансируете разработку новых функций и получаете последние обновления.
\n \n
@ -1182,9 +1182,9 @@
<string name="poi_filter_accomodation">Жильё</string> <string name="poi_filter_accomodation">Жильё</string>
<string name="poi_filter_restaurants">Рестораны</string> <string name="poi_filter_restaurants">Рестораны</string>
<string name="poi_filter_sightseeing">Достопримечательности</string> <string name="poi_filter_sightseeing">Достопримечательности</string>
<string name="context_menu_item_last_intermediate_point">Добавить как последний промежуточный пункт</string> <string name="context_menu_item_last_intermediate_point">Добавить последним промежуточным пунктом</string>
<string name="context_menu_item_first_intermediate_point">Добавить как первый промежуточный пункт</string> <string name="context_menu_item_first_intermediate_point">Добавить первым промежуточным пунктом</string>
<string name="add_as_last_destination_point">Добавить промежуточный пункт в конец</string> <string name="add_as_last_destination_point">Добавить последним промежуточным пунктом</string>
<string name="add_as_first_destination_point">Добавить как первый промежуточный пункт</string> <string name="add_as_first_destination_point">Добавить как первый промежуточный пункт</string>
<string name="replace_destination_point">Заменить пункт назначения</string> <string name="replace_destination_point">Заменить пункт назначения</string>
<string name="new_destination_point_dialog">Пункт назначения уже установлен:</string> <string name="new_destination_point_dialog">Пункт назначения уже установлен:</string>
@ -1621,7 +1621,7 @@
<string name="rendering_attr_busRoutes_name">Маршруты автобусов</string> <string name="rendering_attr_busRoutes_name">Маршруты автобусов</string>
<string name="rendering_attr_tramTrainRoutes_name">Маршруты трамваев и поездов</string> <string name="rendering_attr_tramTrainRoutes_name">Маршруты трамваев и поездов</string>
<string name="rendering_category_hide">Скрыть</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="lock_screen_request_explanation">%1$s необходимо это разрешение, чтобы выключить экран для экономии энергии.</string>
<string name="wake_on_voice">Автовключение экрана перед поворотом</string> <string name="wake_on_voice">Автовключение экрана перед поворотом</string>
<string name="wake_on_voice_descr">Включать экран устройства (если он выключен) при приближении к повороту.</string> <string name="wake_on_voice_descr">Включать экран устройства (если он выключен) при приближении к повороту.</string>
@ -1638,7 +1638,7 @@
<string name="download_tab_local">Локальные</string> <string name="download_tab_local">Локальные</string>
<string name="navigate_point_zone">Зона</string> <string name="navigate_point_zone">Зона</string>
<string name="rendering_attr_transportStops_name">Остановки транспорта</string> <string name="rendering_attr_transportStops_name">Остановки транспорта</string>
<string name="shared_string_dismiss">Отменить</string> <string name="shared_string_dismiss">Отклонить</string>
<string name="dash_download_msg_none">Загрузить локальные карты\?</string> <string name="dash_download_msg_none">Загрузить локальные карты\?</string>
<string name="dash_download_msg">Загружено карт: %1$s</string> <string name="dash_download_msg">Загружено карт: %1$s</string>
<string name="dash_download_new_one">Загрузить новую карту</string> <string name="dash_download_new_one">Загрузить новую карту</string>
@ -2301,7 +2301,7 @@
<string name="quick_action_navigation_voice_on">Выключить голос</string> <string name="quick_action_navigation_voice_on">Выключить голос</string>
<string name="file_can_not_be_moved">Не удалось переместить файл.</string> <string name="file_can_not_be_moved">Не удалось переместить файл.</string>
<string name="sea_depth_thanks">Благодарим вас за покупку контуров морских глубин</string> <string name="sea_depth_thanks">Благодарим вас за покупку контуров морских глубин</string>
<string name="shared_string_add_photos">Добавить фотографии</string> <string name="shared_string_add_photos">Добавить фото</string>
<string name="shared_string_permissions">Разрешения</string> <string name="shared_string_permissions">Разрешения</string>
<string name="online_photos">Онлайн-фото</string> <string name="online_photos">Онлайн-фото</string>
<string name="no_photos_descr">Здесь нет фотографий.</string> <string name="no_photos_descr">Здесь нет фотографий.</string>
@ -2414,7 +2414,7 @@
<string name="marker_moved_to_active">Маркер перемещён в действующие</string> <string name="marker_moved_to_active">Маркер перемещён в действующие</string>
<string name="show_direction">Указатель расстояния</string> <string name="show_direction">Указатель расстояния</string>
<string name="show_map">Показать карту</string> <string name="show_map">Показать карту</string>
<string name="plan_route_no_markers_toast">Вы должны добавить по крайней мере один маркер, чтобы использовать эту функцию.</string> <string name="plan_route_no_markers_toast">Для использования этой функции вы должны добавить хотя бы один маркер.</string>
<string name="osn_modify_dialog_error">Не удалось изменить заметку.</string> <string name="osn_modify_dialog_error">Не удалось изменить заметку.</string>
<string name="shared_string_road">Дорога</string> <string name="shared_string_road">Дорога</string>
<string name="show_guide_line">Показывать направляющие линии</string> <string name="show_guide_line">Показывать направляющие линии</string>
@ -2447,7 +2447,7 @@
\n Большинство стран по всему миру доступны в виде загрузок \n Большинство стран по всему миру доступны в виде загрузок
\n От Афганистана до Зимбабве, от Австралии до США. Аргентина, Бразилия, Канада, Франция, Германия, Мексика, Великобритания, Испания, … \n От Афганистана до Зимбабве, от Австралии до США. Аргентина, Бразилия, Канада, Франция, Германия, Мексика, Великобритания, Испания, …
\n</string> \n</string>
<string name="live_monitoring_max_interval_to_send">Временной буфер для онлайн слежения</string> <string name="live_monitoring_max_interval_to_send">Временной буфер для онлайн-слежения</string>
<string name="live_monitoring_max_interval_to_send_desrc">Укажите временной буфер для хранения местоположений при отсутствии подключения к сети</string> <string name="live_monitoring_max_interval_to_send_desrc">Укажите временной буфер для хранения местоположений при отсутствии подключения к сети</string>
<string name="quick_action_add_marker_descr">Кнопка для добавления маркера карты в центр экрана.</string> <string name="quick_action_add_marker_descr">Кнопка для добавления маркера карты в центр экрана.</string>
<string name="quick_action_add_gpx_descr">Кнопка для добавления путевой точки GPX в центре экрана.</string> <string name="quick_action_add_gpx_descr">Кнопка для добавления путевой точки GPX в центре экрана.</string>
@ -2543,7 +2543,7 @@
\n• Делитесь своим расположением, чтобы друзья смогли найти вас \n• Делитесь своим расположением, чтобы друзья смогли найти вас
\n• Сохраняет ваши самые важные места в избранных \n• Сохраняет ваши самые важные места в избранных
\n• Позволяет вам выбрать как отображать названия на карте: на английском, местным или с фонетическим написанием \n• Позволяет вам выбрать как отображать названия на карте: на английском, местным или с фонетическим написанием
\n• Отображает специальные онлайн тайлы, спутниковые снимки (с Bing), различные метки, как туристические/навигационные треки GPX и дополнительные слои с настраиваемой прозрачностью \n• Отображает специальные онлайн-тайлы, спутниковые снимки (с Bing), различные метки, как туристические/навигационные треки GPX и дополнительные слои с настраиваемой прозрачностью
\n</string> \n</string>
<string name="osmand_extended_description_part4">Катание на лыжах <string name="osmand_extended_description_part4">Катание на лыжах
\n• OsmAnd плагин лыжные карты позволяет видеть лыжные трассы с уровнем сложности и некоторой дополнительной информацией, как расположение подъёмников и других объектов.</string> \n• OsmAnd плагин лыжные карты позволяет видеть лыжные трассы с уровнем сложности и некоторой дополнительной информацией, как расположение подъёмников и других объектов.</string>
@ -2584,7 +2584,7 @@
\n• Возможность ориентирования карты по компасу или по направлению вашего движения \n• Возможность ориентирования карты по компасу или по направлению вашего движения
\n• Сохранение ваших самых важных мест в качестве избранных \n• Сохранение ваших самых важных мест в качестве избранных
\n• Отображение POI (точек интереса) вокруг вас \n• Отображение POI (точек интереса) вокруг вас
\n• Отображение специализированных онлайн тайлов, спутниковые снимки (от Bing), различные наложения, такие как туристические/навигационные GPX треки и дополнительные слои с настраиваемой прозрачностью \n• Отображение специализированных онлайн-тайлов, спутниковые снимки (от Bing), различные наложения, такие как туристические/навигационные GPX треки и дополнительные слои с настраиваемой прозрачностью
\n• Возможность отображения географических названий на английском, местном или фонетическом написании \n• Возможность отображения географических названий на английском, местном или фонетическом написании
\n</string> \n</string>
<string name="quick_action_item_screen">Экран %d</string> <string name="quick_action_item_screen">Экран %d</string>
@ -3414,7 +3414,7 @@
<string name="rendering_attr_piste_difficulty_aerialway_name">Канатная дорога</string> <string name="rendering_attr_piste_difficulty_aerialway_name">Канатная дорога</string>
<string name="rendering_attr_piste_difficulty_connection_name">Соединение</string> <string name="rendering_attr_piste_difficulty_connection_name">Соединение</string>
<string name="simulate_your_location_gpx_descr">Симулировать свою позицию используя записанный GPX трек.</string> <string name="simulate_your_location_gpx_descr">Симулировать свою позицию используя записанный GPX трек.</string>
<string name="route_start_point">Начальная точка</string> <string name="route_start_point">Начало маршрута</string>
<string name="shared_string_revert">Вернуться</string> <string name="shared_string_revert">Вернуться</string>
<string name="suggested_maps_descr">Эти карты необходимо использовать с плагином.</string> <string name="suggested_maps_descr">Эти карты необходимо использовать с плагином.</string>
<string name="added_profiles">Добавленные профили</string> <string name="added_profiles">Добавленные профили</string>

View file

@ -1646,8 +1646,8 @@
<string name="live_monitoring_m">Праћење на мрежи (потребан GPX)</string> <string name="live_monitoring_m">Праћење на мрежи (потребан GPX)</string>
<string name="live_monitoring_start">Започни праћење на мрежи</string> <string name="live_monitoring_start">Започни праћење на мрежи</string>
<string name="live_monitoring_stop">Заустави праћење на мрежи</string> <string name="live_monitoring_stop">Заустави праћење на мрежи</string>
<string name="gpx_monitoring_start">Надтави GPX бележење</string> <string name="gpx_monitoring_start">Настави GPX бележење</string>
<string name="gpx_monitoring_stop">Паузирај GPX бележење</string> <string name="gpx_monitoring_stop">Заустави GPX бележење</string>
<string name="none_selected_gpx">Одаберите GPX фајл дугим притискањем.</string> <string name="none_selected_gpx">Одаберите GPX фајл дугим притискањем.</string>
<string name="lang_zh">Кинески</string> <string name="lang_zh">Кинески</string>
<string name="lang_pt_br">Португалски (бразилски)</string> <string name="lang_pt_br">Португалски (бразилски)</string>
@ -3489,7 +3489,7 @@
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string> <string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
<string name="sunset_at">Сунце залази у %1$s</string> <string name="sunset_at">Сунце залази у %1$s</string>
<string name="sunrise_at">Сунце излази у %1$s</string> <string name="sunrise_at">Сунце излази у %1$s</string>
<string name="accessibility_mode_disabled">Режим приступачности је искључен на вашем Андроид систему.</string> <string name="accessibility_mode_disabled">Режим приступачности је искључен на Вашем Андроид систему.</string>
<string name="use_system_screen_timeout">Користи системско време одлагања гашења екрана</string> <string name="use_system_screen_timeout">Користи системско време одлагања гашења екрана</string>
<string name="use_system_screen_timeout_promo">Подразумевано је искључено: Док OsmAnd ради у предњем плану, екран неће да се гаси. <string name="use_system_screen_timeout_promo">Подразумевано је искључено: Док OsmAnd ради у предњем плану, екран неће да се гаси.
\n \n

View file

@ -493,9 +493,9 @@ public class RouteCalculationResult {
Location current = locations.get(i); Location current = locations.get(i);
float bearing = current.bearingTo(next); float bearing = current.bearingTo(next);
// try to get close to current location if possible // try to get close to current location if possible
while(prevBearingLocation < i - 1){ while (prevBearingLocation < i - 1) {
if(locations.get(prevBearingLocation + 1).distanceTo(current) > 70){ if (locations.get(prevBearingLocation + 1).distanceTo(current) > 70) {
prevBearingLocation ++; prevBearingLocation++;
} else { } else {
break; break;
} }