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_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 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)
* return list of segments
*/
@SuppressWarnings("unused")
FinalRouteSegment searchRouteInternal(final RoutingContext ctx, RouteSegmentPoint start, RouteSegmentPoint end,
RouteSegment recalculationEnd ) throws InterruptedException, IOException {
// measure time
ctx.timeToLoad = 0;
ctx.memoryOverhead = 1000;
ctx.visitedSegments = 0;
// Initializing priority queue to visit way segments
Comparator<RouteSegment> nonHeuristicSegmentsComparator = new NonHeuristicSegmentsComparator();
@ -166,8 +164,12 @@ public class BinaryRoutePlanner {
throw new InterruptedException("Route calculation interrupted");
}
}
ctx.visitedSegments = visitedDirectSegments.size() + visitedOppositeSegments.size();
printDebugMemoryInformation(ctx, graphDirectSegments, graphReverseSegments, visitedDirectSegments, visitedOppositeSegments);
ctx.visitedSegments += visitedDirectSegments.size() + visitedOppositeSegments.size();
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;
}
@ -368,8 +370,7 @@ public class BinaryRoutePlanner {
log.warn(logMsg);
}
public void printDebugMemoryInformation(RoutingContext ctx, PriorityQueue<RouteSegment> graphDirectSegments, PriorityQueue<RouteSegment> graphReverseSegments,
TLongObjectHashMap<RouteSegment> visitedDirectSegments,TLongObjectHashMap<RouteSegment> visitedOppositeSegments) {
public static void printDebugMemoryInformation(RoutingContext ctx) {
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,
ctx.timeToLoadHeaders / 1e6, ctx.timeNanoToCalcDeviation / 1e6));
@ -380,12 +381,8 @@ public class BinaryRoutePlanner {
", loaded more than once same tiles "
+ ctx.loadedPrevUnloadedTiles);
printInfo("Visited segments " + ctx.visitedSegments + ", relaxed roads " + ctx.relaxedSegments);
if (graphDirectSegments != null && graphReverseSegments != null) {
printInfo("Priority queues sizes : " + graphDirectSegments.size() + "/" + graphReverseSegments.size());
}
if (visitedDirectSegments != null && visitedOppositeSegments != null) {
printInfo("Visited interval sizes: " + visitedDirectSegments.size() + "/" + visitedOppositeSegments.size());
}
printInfo("Priority queues sizes : " + ctx.directQueueSize + "/" + ctx.oppositeQueueSize);
printInfo("Visited interval sizes: " + ctx.visitedDirectSegments + "/" + ctx.visitedOppositeSegments);
}

View file

@ -72,6 +72,8 @@ public class GeneralRouter implements VehicleRouter {
private float defaultSpeed = 1f;
// speed in m/s
private float maxSpeed = 10f;
// speed in m/s (used for shortest route)
private float maxVehicleSpeed;
private TLongHashSet impassableRoads;
private GeneralRouterProfile profile;
@ -149,6 +151,7 @@ public class GeneralRouter implements VehicleRouter {
if (params.containsKey(MAX_SPEED)) {
maxSpeed = parseSilentFloat(params.get(MAX_SPEED), maxSpeed);
}
maxVehicleSpeed = maxSpeed;
if (shortestRoute) {
maxSpeed = Math.min(CAR_SHORTEST_DEFAULT_SPEED, maxSpeed);
}
@ -489,10 +492,15 @@ public class GeneralRouter implements VehicleRouter {
@Override
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);
if (sp == null) {
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);
}
return sp;

View file

@ -31,7 +31,7 @@ public class RoutePlannerFrontEnd {
// Check issue #8649
protected static final double GPS_POSSIBLE_ERROR = 7;
public boolean useSmartRouteRecalculation = true;
public RoutePlannerFrontEnd() {
}
@ -50,7 +50,7 @@ public class RoutePlannerFrontEnd {
// don't search subsegments shorter than specified distance (also used to step back for car turns)
public double MINIMUM_STEP_APPROXIMATION = 100;
// 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 int routeCalculations = 0;
@ -92,6 +92,7 @@ public class RoutePlannerFrontEnd {
public double cumDist;
public RouteSegmentPoint pnt;
public List<RouteSegmentResult> routeToTarget;
public List<RouteSegmentResult> stepBackRoute;
public int targetInd = -1;
}
@ -202,38 +203,35 @@ public class RoutePlannerFrontEnd {
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 fix progress - next iteration
// TODO fix timings and remove logging every iteration
public GpxRouteApproximation searchGpxRoute(GpxRouteApproximation gctx, List<LatLon> points) throws IOException, InterruptedException {
gctx.ctx.timeToCalculate = System.nanoTime();
if (gctx.ctx.calculationProgress == null) {
gctx.ctx.calculationProgress = new RouteCalculationProgress();
}
List<GpxPoint> gpxPoints = generageGpxPoints(points, gctx);
GpxPoint start = gpxPoints.size() > 0 ? gpxPoints.get(0) : null;
boolean prevRouteFound = false;
GpxPoint start = null;
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) {
double routeDist = gctx.MAXIMUM_STEP_APPROXIMATION;
GpxPoint next = findNextGpxPointWithin(gctx, gpxPoints, start, routeDist);
boolean routeFound = false;
gctx.ctx.calculationProgress.nextIteration();
if (next != null && initRoutingPoint(start, gctx, gctx.MINIMUM_POINT_APPROXIMATION)) {
while (routeDist >= gctx.MINIMUM_STEP_APPROXIMATION && !routeFound) {
routeFound = initRoutingPoint(next, gctx, gctx.MINIMUM_POINT_APPROXIMATION);
if (routeFound) {
routeFound = findGpxRouteSegment(gctx, gpxPoints, start, next, prevRouteFound);
routeFound = findGpxRouteSegment(gctx, gpxPoints, start, next, prev != null);
if (routeFound) {
// route is found - cut the end of the route and move to next iteration
boolean stepBack = stepBackAndFindPrevPointInRoute(gctx, gpxPoints, start, next);
if (!stepBack) {
// 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;
routeFound = false;
break;
@ -257,21 +255,21 @@ public class RoutePlannerFrontEnd {
if (!routeFound) {
// route is not found, move start point by
next = findNextGpxPointWithin(gctx, gpxPoints, start, gctx.MINIMUM_STEP_APPROXIMATION);
if (prevRouteFound) {
if (next == null) {
// TODO finish
// makeSegmentPointPrecise(prev.routeToTarget.get(prev.routeToTarget.size() - 1), start.loc, false);
} else {
if (prev != null) {
prev.routeToTarget.addAll(prev.stepBackRoute);
makeSegmentPointPrecise(prev.routeToTarget.get(prev.routeToTarget.size() - 1), start.loc, false);
if (next != null) {
log.warn("NOT found route from: " + start.pnt.getRoad() + " at " + start.pnt.getSegmentStart());
}
}
prev = null;
} else {
prev = start;
}
prevRouteFound = routeFound;
start = next;
}
BinaryRoutePlanner.printDebugMemoryInformation(gctx.ctx);
calculateGpxRoute(gctx, gpxPoints);
if (!gctx.res.isEmpty()) {
new RouteResultPreparation().printResults(gctx.ctx, points.get(0), points.get(points.size() - 1), gctx.res);
System.out.println(gctx);
@ -289,6 +287,7 @@ public class RoutePlannerFrontEnd {
double d = 0;
int segmendInd = start.routeToTarget.size() - 1;
boolean search = true;
start.stepBackRoute = new ArrayList<RouteSegmentResult>();
mainLoop: for (; segmendInd >= 0 && search; segmendInd--) {
RouteSegmentResult rr = start.routeToTarget.get(segmendInd);
boolean minus = rr.getStartPointIndex() < rr.getEndPointIndex();
@ -300,6 +299,7 @@ public class RoutePlannerFrontEnd {
if (nextInd == rr.getStartPointIndex()) {
segmendInd--;
} else {
start.stepBackRoute.add(new RouteSegmentResult(rr.getObject(), nextInd, rr.getEndPointIndex()));
rr.setEndPointIndex(nextInd);
}
search = false;
@ -311,8 +311,10 @@ public class RoutePlannerFrontEnd {
// here all route segments - 1 is longer than needed distance to step back
return false;
}
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);
next.pnt = new RouteSegmentPoint(res.getObject(), res.getEndPointIndex(), 0);
@ -321,7 +323,7 @@ public class RoutePlannerFrontEnd {
private void calculateGpxRoute(GpxRouteApproximation gctx, List<GpxPoint> gpxPoints) {
RouteRegion reg = new RouteRegion();
reg.initRouteEncodingRule(0, "highway", "unmatched");
reg.initRouteEncodingRule(0, "highway", RouteResultPreparation.UNMATCHED_HIGHWAY_TYPE);
List<LatLon> lastStraightLine = null;
for (int i = 0; i < gpxPoints.size(); ) {
GpxPoint pnt = gpxPoints.get(i);
@ -424,8 +426,17 @@ public class RoutePlannerFrontEnd {
rdo.pointsY = y.toArray();
rdo.types = new int[] { 0 } ;
rdo.id = -1;
// comment to see road without straight connections
res.add(new RouteSegmentResult(rdo, 0, rdo.getPointsLength() - 1));
List<RouteSegmentResult> rts = new ArrayList<>();
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.routeCalculations++;
res = searchRouteInternalPrepare(gctx.ctx, start.pnt, target.pnt, null);
//BinaryRoutePlanner.printDebugMemoryInformation(gctx.ctx);
routeIsCorrect = res != null && !res.isEmpty();
for (int k = start.ind + 1; routeIsCorrect && k < target.ind; k++) {
GpxPoint ipoint = gpxPoints.get(k);
@ -848,6 +860,7 @@ public class RoutePlannerFrontEnd {
}
pringGC(ctx, true);
List<RouteSegmentResult> res = searchRouteInternalPrepare(ctx, points.get(0), points.get(1), routeDirection);
BinaryRoutePlanner.printDebugMemoryInformation(ctx);
pringGC(ctx, false);
makeStartEndPointsPrecise(res, points.get(0).getPreciseLatLon(), points.get(1).getPreciseLatLon(), null);
return res;

View file

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

View file

@ -22,7 +22,10 @@ import gnu.trove.map.hash.TIntObjectHashMap;
public class RouteSegmentResult implements StringExternalizable<RouteDataBundle> {
// 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 int startPointIndex;
private int endPointIndex;
@ -446,19 +449,32 @@ public class RouteSegmentResult implements StringExternalizable<RouteDataBundle>
}
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) {
return (float) (object.directionRoute(point, plus, DIST_BEARING_DETECT) / Math.PI * 180);
}
public float getDistance(int point, boolean plus) {
return (float) (plus? object.distance(point, endPointIndex): object.distance(startPointIndex, point));
public float getBearingBegin(int point, float dist) {
return getBearing(point, true, dist);
}
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) {

View file

@ -98,11 +98,17 @@ public class RoutingContext {
public int loadedTiles = 0;
public int visitedSegments = 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
RouteSegmentVisitor visitor = null;
// old planner
public FinalRouteSegment finalRouteSegment;
RoutingContext(RoutingContext cp) {
this.config = cp.config;
@ -252,18 +258,6 @@ public class RoutingContext {
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) {
long tileId = getRoutingTile(x31, y31, memoryLimit);

View file

@ -3799,4 +3799,10 @@
<string name="app_mode_inline_skates">أحذية تزلج</string>
<string name="use_volume_buttons_as_zoom_descr">تمكين التحكم في مستوى التكبير/التصغير بالخريطة باستخدام أزرار مستوى صوت الجهاز.</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>

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="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="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>

View file

@ -3811,4 +3811,9 @@
<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">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>

View file

@ -3840,4 +3840,8 @@
<string name="routing_attr_length_name">طول مجاز</string>
<string name="routing_attr_length_description">طول مجاز خودرو در مسیرها را مشخص کنید.</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>

View file

@ -3823,4 +3823,6 @@
<string name="poi_traffic_signals_arrow">Frecha</string>
<string name="poi_traffic_signals_vibration">Vibració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>

View file

@ -3836,4 +3836,10 @@ Lon %2$s</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">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>

View file

@ -3817,4 +3817,10 @@
<string name="speed_cameras_removed_descr">למכשיר הזה אין מצלמות מהירות.</string>
<string name="use_volume_buttons_as_zoom_descr">מאפשר לשלוח ברמת התקריב של המפה עם כפתורי עצמת השמע של המכשיר.</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>

View file

@ -3789,4 +3789,7 @@
<string name="poi_video_yes">igen</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_arrow">Nyíl</string>
<string name="poi_traffic_signals_vibration">Rezgés</string>
<string name="poi_fire_hydrant_pressure_filter">Nyomás</string>
</resources>

View file

@ -245,8 +245,7 @@
<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">Legkisebb vektoros nagyítási szint</string>
<string name="create_poi_link_to_osm_doc">
<u>Online OSM</u> térképbesorolás képekkel.</string>
<string name="create_poi_link_to_osm_doc"><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="search_osm_offline">Keresés geolokáció alapján</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="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="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_source">Térkép forrása</string>
<string name="use_internet">Internet használata</string>
@ -787,29 +786,27 @@
<string name="map_widget_vector_attributes">Megjelenítési jellemzők</string>
<string name="map_widget_renderer">Térképstílus</string>
<string name="osmand_short_description_80_chars">Globális mobil térkép és navigáció, offline és online OSM-térképekkel</string>
<string name="osmand_long_description_1000_chars">OsmAnd (OSM Automated Navigation Directions)
\n
\n Az OsmAnd nyílt forráskódú navigációs alkalmazás, amely a globális OSM adatok széles skáláját használja. Az alkalmazás internetkapcsolat nélkül is használható, mert minden (vektoros és csempés) térképadat tárolható a telefon memóriájában. Az alkalmazás továbbá offline és online útvonaltervezést is tartalmaz, részletes, hangvezérléses navigációval.
\n
<string name="osmand_long_description_1000_chars">OsmAnd (OSM Automated Navigation Directions)
\n
\n Az OsmAnd nyílt forráskódú navigációs alkalmazás, amely a globális OSM adatok széles skáláját használja. Az alkalmazás internetkapcsolat nélkül is használható, mert minden (vektoros és csempés) térképadat tárolható a telefon memóriájában. Az alkalmazás továbbá offline és online útvonaltervezést is tartalmaz, részletes, hangvezérléses navigációval.
\n
\n Néhány fontos funkció:
\n - Teljesen offline működés (letöltött vektoros és csempés térképek tárolása a készülék tárhelyén)
\n - kompakt vektoros térképek az egész világról
\n - Ország- és régiótérképek letöltése közvetlenül az alkalmazásból
\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 - 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 - éjszakai/nappali nézet automatikus átkapcsolása
\n - sebességfüggő térképnagyítás
\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
\n
\n Az OsmAnd ezen ingyenes verziójának korlátozásai:
\n - letölthető térképek számának korlátozása
\n - wikipédia-POI offline elérés nélkül
\n - Teljesen offline működés (letöltött vektoros és csempés térképek tárolása a készülék tárhelyén)
\n - kompakt vektoros térképek az egész világról
\n - Ország- és régiótérképek letöltése közvetlenül az alkalmazásból
\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 - Offline útvonaltervezés közepes távolságra
\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 - sebességfüggő térképnagyítás
\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
\n Az OsmAnd ezen ingyenes verziójának korlátozásai:
\n - letölthető térképek számának korlátozása
\n - wikipédia-POI offline elérés nélkül
\n
\n Az OsmAndot aktívan fejlesztjük. Projektünk és a folyamatos előrelépés az új funkciók kifejlesztésére és tesztelésére kapott adományoktól függ. Kérjük, fontolja meg az OsmAnd+ megvásárlását vagy konkrét új funkciók finanszírozását vagy egy álalános adományt a https://osmand.net oldalon.</string>
<string name="osmand_plus_long_description_1000_chars">OsmAnd+ (OSM Automated Navigation Directions)
\n
@ -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_title">Szintvonal bővítmény</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="local_indexes_cat_av">Hang- és videofelvétel</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="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="free">"%1$s szabad "</string>
<string name="free">%1$s szabad</string>
<string name="roads_only">Csak utak</string>
<string name="rendering_attr_pisteRoutes_name">Sípályák</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="drawer">Lapos lista</string>
<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="routing_settings_2">Navigációs 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="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="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="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>
@ -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_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_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_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_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_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_interim_dialog">Ideiglenes dialógusablak megjelenítése</string>
<string name="favorite_autofill_toast_text">" elmentve ide: "</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_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_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_favorites_descr">Gomb, amely a térképen megjeleníti vagy elrejti a Kedvenc helyeket.</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_favorites_show">Kedvencek megjeleníté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="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_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_off">Automatikus nagyítás kikapcsolá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="shared_string_in_name">itt: %1$s</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_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="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>
@ -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="restart_search">Keresés újraindítása</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="mapillary">Mapillary</string>
<string name="shared_string_add_photos">Fényképek hozzáadása</string>
@ -2318,20 +2315,20 @@ Hosszúság: %2$s</string>
<string name="shared_string_install">Telepítés</string>
<string name="open_mapillary">Mapillary megnyitása</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:
\n • Nyugat-Európa: ****
\n • Kelet-Európa: ***
\n • Oroszország: ***
\n • Észak-Amerika: ***
\n • Dél-Amerika: **
\n • Ázsia: **
\n • Japán és Korea: ***
\n • Közel-Kelet: **
\n • Afrika: **
\n • Antarktisz: *
<string name="osmand_plus_extended_description_part8">Hozzávetőleges lefedettség és térképminőség:
\n • Nyugat-Európa: ****
\n • Kelet-Európa: ***
\n • Oroszország: ***
\n • Észak-Amerika: ***
\n • Dél-Amerika: **
\n • Ázsia: **
\n • Japán és Korea: ***
\n • Közel-Kelet: **
\n • Afrika: **
\n • Antarktisz: *
\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"</string>
\n</string>
<string name="distance_moving">Korrigált távolság</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>
@ -2449,9 +2446,9 @@ Hosszúság: %2$s</string>
<string name="waypoint_one">Útpont 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_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_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_desc">%1$s fájl nem tartalmaz útpontot. Importálod nyomvonalként?</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="select_travel_book">Útikönyv kiválasztása</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="delete_search_history">Keresési előzmények törlé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="edit_map_marker">Térképjelölő szerkeszté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="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>
@ -2854,7 +2851,7 @@ Hosszúság: %2$s</string>
\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</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_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>
@ -2875,7 +2872,7 @@ Hosszúság: %2$s</string>
<string name="routeInfo_road_types_name">Úttípusok</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_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_show">GPX nyomvonalak megjelenítése</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_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_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="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>
@ -3183,8 +3180,8 @@ Hosszúság: %2$s</string>
<string name="osmand_settings">OsmAnd beállítások</string>
<string name="shared_string_calculate">Kiszámít</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_hillshade_descr">Váltógomb, amely a térképen megjeleníti vagy elrejti a domborzatárnyékolást.</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">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="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>
@ -3439,7 +3436,7 @@ Hosszúság: %2$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="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="photo_notes">Fényképes jegyzetek</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="replace_all">Összes lecserélése</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="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>
@ -3532,7 +3529,7 @@ Hosszúság: %2$s</string>
<string name="shared_string_square">Négyzet</string>
<string name="shared_string_min">Min</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_snowmobile">Motoros hószán</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="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="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="changes_applied_to_profile">Módosítások alkalmazva erre a profilra: %1$s.</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="reset_deafult_order">Alapértelmezett elemsorrend visszaállítása</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="shared_string_add_profile">Profil hozzáadá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="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="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>

View file

@ -3037,4 +3037,13 @@
<string name="change_application_profile">Փոխել hավելվածի պրոֆիլը</string>
<string name="profiles_for_action_not_found">Համապատասխան պրոֆիլներ չեն գտնվել:</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>

View file

@ -1426,7 +1426,7 @@
<string name="poi_tactile_paving_yes">Sim</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_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_rescue_station">Estação de resgate</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_pressure_filter">Pressão</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>

View file

@ -365,9 +365,9 @@
<string name="local_indexes_cat_tile">Онлайн и кешированные карты (растровые)</string>
<string name="local_indexes_cat_map">Стандартные карты (векторные)</string>
<string name="index_settings_descr">Загрузка и управление локальными файлами карт на вашем устройстве.</string>
<string name="map_online_plugin_is_not_installed">Активируйте плагин онлайн карт, чтобы выбирать различные источники карт</string>
<string name="map_online_data">Онлайн карты</string>
<string name="map_online_data_descr">Использовать онлайн карты (загрузка и кеширование на SD-карте).</string>
<string name="map_online_plugin_is_not_installed">Активируйте плагин онлайн-карт, чтобы выбирать различные источники карт</string>
<string name="map_online_data">Онлайн-карты</string>
<string name="map_online_data_descr">Использовать онлайн-карты (загрузка и кеширование на SD-карте).</string>
<string name="shared_string_online_maps">Онлайн-карты</string>
<string name="online_map_settings_descr">Выберите источник онлайн или кешированных растровых карт.</string>
<string name="osmand_rastermaps_plugin_description">Получение доступа ко множеству видов онлайн-карт (тайловых или растровых): от предопределённых тайловых OSM (как Mapnik), до спутниковых снимков и слоёв специального назначения, таких как карты погоды, климатические карты, геологические карты, слои затемнения высот и т. д.
@ -387,7 +387,7 @@
<string name="debugging_and_development">Отладка и разработка</string>
<string name="native_rendering">Быстрая отрисовка</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="gpx_visibility_txt">Видимость</string>
<string name="gpx_tags_txt">Теги</string>
@ -410,10 +410,10 @@
<string name="local_openstreetmap_descr_title">Локальное дополнение:</string>
<string name="local_openstreetmap_settings">OSM POI/заметки на устройстве</string>
<string name="local_openstreetmap_settings_descr">Просмотр и управление OSM POI/заметками в локальной базе данных.</string>
<string name="live_monitoring_interval_descr">Укажите интервал онлайн слежения.</string>
<string name="live_monitoring_interval">Интервал онлайн слежения</string>
<string name="live_monitoring_interval_descr">Укажите интервал онлайн-слежения.</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">Web адрес онлайн слежения</string>
<string name="live_monitoring_url">Web адрес онлайн-слежения</string>
<string name="gpx_monitoring_disabled_warn">Записать трек можно с помощью виджета GPX или выбрав «Запись поездки» в Настройках.</string>
<string name="show_current_gpx_title">Показывать текущий путь</string>
<string name="free_version_message">Вы можете скачать или обновить карты %1$s.</string>
@ -448,11 +448,11 @@
<string name="use_transparent_map_theme">Прозрачная тема</string>
<string name="native_library_not_supported">Нативная библиотека не поддерживается на этом устройстве.</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="auto_follow_route_navigation">Автовозврат карты только при следовании по маршруту</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="poi_query_by_name_matches_categories">Найдено несколько связанных категорий POI.</string>
<string name="data_to_search_poi_not_available">Загрузите данные для локального поиска POI.</string>
@ -704,7 +704,7 @@
<string name="where_am_i">Где я?</string>
<string name="network_provider">Сеть</string>
<string name="gps_provider">GPS</string>
<string name="int_seconds">секунды</string>
<string name="int_seconds">сек.</string>
<string name="int_min">мин.</string>
<string name="background_service_int_descr">Интервал пробуждения для фоновой службы:</string>
<string name="background_service_int">Интервал пробуждения GPS</string>
@ -785,9 +785,9 @@
<string name="searching">Поиск…</string>
<string name="searching_address">Поиск адреса…</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_online_address">Онлайн поиск</string>
<string name="search_online_address">Онлайн-поиск</string>
<string name="max_level_download_tile">Уровень детализации</string>
<string name="max_level_download_tile_descr">Выберите максимальный масштаб для загрузки тайлов карт из интернета.</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="finished_task">Окончен</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="osm_settings_descr">Укажите настройки для загрузки данных в Openstreetmap.org (OSM).</string>
<string name="data_settings_descr">Настройка данных: язык, обновление данных.</string>
@ -994,7 +994,7 @@
<string name="shared_string_accessibility">Специальные возможности</string>
<string name="pref_vector_rendering">Настройки векторной отрисовки</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="delete_confirmation_msg">Удалить %1$s?</string>
<string name="city_type_suburb">Пригород</string>
@ -1024,7 +1024,7 @@
<string name="rendering_attr_noPolygons_name">Полигоны</string>
<string name="rendering_attr_appMode_name">Режим отрисовки</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_hmRendered_description">Показывать больше деталей на карте.</string>
<string name="rendering_attr_hmRendered_name">Больше деталей</string>
@ -1055,7 +1055,7 @@
<string name="osmand_parking_position_name">Точка парковки</string>
<string name="osmand_parking_plugin_description">Позволяет записывать, где припаркован ваш автомобиль, а также сколько времени он на парковке.
\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_delete_parking_point">Удалить метку места парковки</string>
<string name="starting_point_too_far">Точка отправления слишком далеко от ближайшей дороги.</string>
@ -1123,7 +1123,7 @@
<string name="osmand_short_description_80_chars">Мобильный просмотр и навигация по онлайн и локальным картам OSM всего мира</string>
<string name="osmand_long_description_1000_chars">OsmAnd (Open Street Maps Automated Navigation Directions)
\n
\n OsmAnd — это навигационное приложение с открытым исходным кодом и доступом к картам и данным на основе OSM. Все данные карт (векторные или растровые) могут быть сохранены на карту памяти устройства для использования без подключения к интернету. OsmAnd также предоставляет локальные и онлайн средства построения маршрута, включая голосовые инструкции по маршруту.
\n OsmAnd — это навигационное приложение с открытым исходным кодом и доступом к картам и данным на основе OSM. Все данные карт (векторные или растровые) могут быть сохранены на карту памяти устройства для использования без подключения к интернету. OsmAnd также предоставляет локальные и онлайн-средства построения маршрута, включая голосовые инструкции по маршруту.
\n
\n Некоторые из основных возможностей приложения:
\n — работа с векторными и растровыми картами без доступа в интернет (для этого нужно предварительно сохранить карты на карту памяти устройства);
@ -1146,7 +1146,7 @@
<string name="osmand_plus_short_description_80_chars">OsmAnd — это навигационное приложение для путешествий с открытым исходным кодом</string>
<string name="osmand_plus_long_description_1000_chars">OsmAnd+ (OSM Automated Navigation Directions)
\n
\n OsmAnd+ — это навигационное приложение с открытым исходным кодом и доступом к широкому спектру глобальных данных OpenStreetMap (OSM). Все данные карт (векторные или растровые/тайловые) могут быть сохранены на карту памяти устройства для автономного использования, без подключения к сети интернет. OsmAnd также предоставляет локальные и онлайн средства построения маршрута, включая пошаговые голосовые подсказки.
\n OsmAnd+ — это навигационное приложение с открытым исходным кодом и доступом к широкому спектру глобальных данных OpenStreetMap (OSM). Все данные карт (векторные или растровые/тайловые) могут быть сохранены на карту памяти устройства для автономного использования, без подключения к сети интернет. OsmAnd также предоставляет локальные и онлайн-средства построения маршрута, включая пошаговые голосовые подсказки.
\n
\n OsmAnd+ — это платная версия приложения, покупая которую вы поддерживаете проект, финансируете разработку новых функций и получаете последние обновления.
\n
@ -1163,7 +1163,7 @@
\n — автоматического переключения на дневной/ночной режим отрисовки карты;
\n — изменения масштабы карты в зависимости от скорости;
\n — вращения карты по компасу или направлению движения;
\n — подсказки полосы движения, отображение ограничения скорости, предварительно записанные и синтезированные голосовые подсказки
\n — подсказки полосы движения, отображение ограничения скорости, предварительно записанные и синтезированные голосовые подсказки
\n</string>
<string name="avoid_motorway">Без автомагистралей</string>
<string name="snap_to_road_descr">Привязываться к дорогам во время навигации.</string>
@ -1182,9 +1182,9 @@
<string name="poi_filter_accomodation">Жильё</string>
<string name="poi_filter_restaurants">Рестораны</string>
<string name="poi_filter_sightseeing">Достопримечательности</string>
<string name="context_menu_item_last_intermediate_point">Добавить как последний промежуточный пункт</string>
<string name="context_menu_item_first_intermediate_point">Добавить как первый промежуточный пункт</string>
<string name="add_as_last_destination_point">Добавить промежуточный пункт в конец</string>
<string name="context_menu_item_last_intermediate_point">Добавить последним промежуточным пунктом</string>
<string name="context_menu_item_first_intermediate_point">Добавить первым промежуточным пунктом</string>
<string name="add_as_last_destination_point">Добавить последним промежуточным пунктом</string>
<string name="add_as_first_destination_point">Добавить как первый промежуточный пункт</string>
<string name="replace_destination_point">Заменить пункт назначения</string>
<string name="new_destination_point_dialog">Пункт назначения уже установлен:</string>
@ -1621,7 +1621,7 @@
<string name="rendering_attr_busRoutes_name">Маршруты автобусов</string>
<string name="rendering_attr_tramTrainRoutes_name">Маршруты трамваев и поездов</string>
<string name="rendering_category_hide">Скрыть</string>
<string name="impassable_road">Избегать дороги…</string>
<string name="impassable_road">Нежелательные участки</string>
<string name="lock_screen_request_explanation">%1$s необходимо это разрешение, чтобы выключить экран для экономии энергии.</string>
<string name="wake_on_voice">Автовключение экрана перед поворотом</string>
<string name="wake_on_voice_descr">Включать экран устройства (если он выключен) при приближении к повороту.</string>
@ -1638,7 +1638,7 @@
<string name="download_tab_local">Локальные</string>
<string name="navigate_point_zone">Зона</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">Загружено карт: %1$s</string>
<string name="dash_download_new_one">Загрузить новую карту</string>
@ -2301,7 +2301,7 @@
<string name="quick_action_navigation_voice_on">Выключить голос</string>
<string name="file_can_not_be_moved">Не удалось переместить файл.</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="online_photos">Онлайн-фото</string>
<string name="no_photos_descr">Здесь нет фотографий.</string>
@ -2414,7 +2414,7 @@
<string name="marker_moved_to_active">Маркер перемещён в действующие</string>
<string name="show_direction">Указатель расстояния</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="shared_string_road">Дорога</string>
<string name="show_guide_line">Показывать направляющие линии</string>
@ -2447,7 +2447,7 @@
\n Большинство стран по всему миру доступны в виде загрузок
\n От Афганистана до Зимбабве, от Австралии до США. Аргентина, Бразилия, Канада, Франция, Германия, Мексика, Великобритания, Испания, …
\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="quick_action_add_marker_descr">Кнопка для добавления маркера карты в центр экрана.</string>
<string name="quick_action_add_gpx_descr">Кнопка для добавления путевой точки GPX в центре экрана.</string>
@ -2543,7 +2543,7 @@
\n• Делитесь своим расположением, чтобы друзья смогли найти вас
\n• Сохраняет ваши самые важные места в избранных
\n• Позволяет вам выбрать как отображать названия на карте: на английском, местным или с фонетическим написанием
\n• Отображает специальные онлайн тайлы, спутниковые снимки (с Bing), различные метки, как туристические/навигационные треки GPX и дополнительные слои с настраиваемой прозрачностью
\n• Отображает специальные онлайн-тайлы, спутниковые снимки (с Bing), различные метки, как туристические/навигационные треки GPX и дополнительные слои с настраиваемой прозрачностью
\n</string>
<string name="osmand_extended_description_part4">Катание на лыжах
\n• OsmAnd плагин лыжные карты позволяет видеть лыжные трассы с уровнем сложности и некоторой дополнительной информацией, как расположение подъёмников и других объектов.</string>
@ -2579,12 +2579,12 @@
\n• Автоматическое перестройка маршрута при отклонении от существующего
\n• Поиск мест по адресу, типу (например, ресторан, гостиница, заправка, музей) или географическим координатам
\n</string>
<string name="osmand_plus_extended_description_part3">Просмотр карты
\n• Отображение вашего местоположения и ориентации
\n• Возможность ориентирования карты по компасу или по направлению вашего движения
\n• Сохранение ваших самых важных мест в качестве избранных
\n• Отображение POI (точек интереса) вокруг вас
\n• Отображение специализированных онлайн тайлов, спутниковые снимки (от Bing), различные наложения, такие как туристические/навигационные GPX треки и дополнительные слои с настраиваемой прозрачностью
<string name="osmand_plus_extended_description_part3">Просмотр карты
\n• Отображение вашего местоположения и ориентации
\n• Возможность ориентирования карты по компасу или по направлению вашего движения
\n• Сохранение ваших самых важных мест в качестве избранных
\n• Отображение POI (точек интереса) вокруг вас
\n• Отображение специализированных онлайн-тайлов, спутниковые снимки (от Bing), различные наложения, такие как туристические/навигационные GPX треки и дополнительные слои с настраиваемой прозрачностью
\n• Возможность отображения географических названий на английском, местном или фонетическом написании
\n</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_connection_name">Соединение</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="suggested_maps_descr">Эти карты необходимо использовать с плагином.</string>
<string name="added_profiles">Добавленные профили</string>

View file

@ -1646,8 +1646,8 @@
<string name="live_monitoring_m">Праћење на мрежи (потребан GPX)</string>
<string name="live_monitoring_start">Започни праћење на мрежи</string>
<string name="live_monitoring_stop">Заустави праћење на мрежи</string>
<string name="gpx_monitoring_start">Надтави GPX бележење</string>
<string name="gpx_monitoring_stop">Паузирај GPX бележење</string>
<string name="gpx_monitoring_start">Настави GPX бележење</string>
<string name="gpx_monitoring_stop">Заустави GPX бележење</string>
<string name="none_selected_gpx">Одаберите GPX фајл дугим притискањем.</string>
<string name="lang_zh">Кинески</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="sunset_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_promo">Подразумевано је искључено: Док OsmAnd ради у предњем плану, екран неће да се гаси.
\n

View file

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