diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapIndexReader.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapIndexReader.java index 86fce4f208..c8f84796b9 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapIndexReader.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapIndexReader.java @@ -2655,6 +2655,7 @@ public class BinaryMapIndexReader { } } + public TLongObjectHashMap getIncompleteTransportRoutes() throws InvalidProtocolBufferException, IOException { if (incompleteTransportRoutes == null) { incompleteTransportRoutes = new TLongObjectHashMap<>(); @@ -2662,7 +2663,7 @@ public class BinaryMapIndexReader { if (ti.incompleteRoutesLength > 0) { codedIS.seek(ti.incompleteRoutesOffset); int oldLimit = codedIS.pushLimit(ti.incompleteRoutesLength); - transportAdapter.readIncompleteRoutesList(incompleteTransportRoutes); + transportAdapter.readIncompleteRoutesList(incompleteTransportRoutes, ti.filePointer); codedIS.popLimit(oldLimit); } } @@ -2670,5 +2671,4 @@ public class BinaryMapIndexReader { return incompleteTransportRoutes; } - } diff --git a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapTransportReaderAdapter.java b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapTransportReaderAdapter.java index 358e908dbd..1e733e50f6 100644 --- a/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapTransportReaderAdapter.java +++ b/OsmAnd-java/src/main/java/net/osmand/binary/BinaryMapTransportReaderAdapter.java @@ -11,6 +11,7 @@ import com.google.protobuf.WireFormat; import gnu.trove.map.hash.TIntObjectHashMap; import gnu.trove.map.hash.TLongObjectHashMap; import net.osmand.binary.BinaryMapIndexReader.SearchRequest; +import net.osmand.data.IncompleteTransportRoute; import net.osmand.data.TransportSchedule; import net.osmand.data.TransportStop; import net.osmand.data.TransportStopExit; @@ -71,7 +72,6 @@ public class BinaryMapTransportReaderAdapter { return bottom; } - IndexStringTable stringTable = null; } @@ -251,7 +251,7 @@ public class BinaryMapTransportReaderAdapter { return ((char) i)+""; } - public void readIncompleteRoutesList(TLongObjectHashMap incompleteRoutes) throws IOException { + public void readIncompleteRoutesList(TLongObjectHashMap incompleteRoutes, int transportIndexStart) throws IOException { boolean end = false; while (!end) { int t = codedIS.readTag(); @@ -263,7 +263,7 @@ public class BinaryMapTransportReaderAdapter { case OsmandOdb.IncompleteTransportRoutes.ROUTES_FIELD_NUMBER: int l = codedIS.readRawVarint32(); int olds = codedIS.pushLimit(l); - net.osmand.data.IncompleteTransportRoute ir = readIncompleteRoute(); + net.osmand.data.IncompleteTransportRoute ir = readIncompleteRoute(transportIndexStart); net.osmand.data.IncompleteTransportRoute itr = incompleteRoutes.get(ir.getRouteId()); if(itr != null) { itr.setNextLinkedRoute(ir); @@ -281,7 +281,7 @@ public class BinaryMapTransportReaderAdapter { } - public net.osmand.data.IncompleteTransportRoute readIncompleteRoute() throws IOException { + public net.osmand.data.IncompleteTransportRoute readIncompleteRoute(int transportIndexStart) throws IOException { net.osmand.data.IncompleteTransportRoute dataObject = new net.osmand.data.IncompleteTransportRoute(); boolean end = false; while(!end){ @@ -295,7 +295,12 @@ public class BinaryMapTransportReaderAdapter { dataObject.setRouteId(codedIS.readUInt64()); break; case OsmandOdb.IncompleteTransportRoute.ROUTEREF_FIELD_NUMBER : - dataObject.setRouteOffset(codedIS.readRawVarint32()); + int delta = codedIS.readRawVarint32(); + if (delta > transportIndexStart) { + dataObject.setRouteOffset(delta); + } else { + dataObject.setRouteOffset(transportIndexStart + delta); + } break; case OsmandOdb.IncompleteTransportRoute.OPERATOR_FIELD_NUMBER : skipUnknownField(t); @@ -318,7 +323,6 @@ public class BinaryMapTransportReaderAdapter { break; } } - return dataObject; } diff --git a/OsmAnd-java/src/main/java/net/osmand/data/IncompleteTransportRoute.java b/OsmAnd-java/src/main/java/net/osmand/data/IncompleteTransportRoute.java index 84be533a5f..9518f1237d 100644 --- a/OsmAnd-java/src/main/java/net/osmand/data/IncompleteTransportRoute.java +++ b/OsmAnd-java/src/main/java/net/osmand/data/IncompleteTransportRoute.java @@ -13,7 +13,11 @@ public class IncompleteTransportRoute { } public void setNextLinkedRoute(IncompleteTransportRoute nextLinkedRoute) { - this.nextLinkedRoute = nextLinkedRoute; + if (this.nextLinkedRoute == null) { + this.nextLinkedRoute = nextLinkedRoute; + } else { + this.nextLinkedRoute.setNextLinkedRoute(nextLinkedRoute); + } } public long getRouteId() { diff --git a/OsmAnd-java/src/main/java/net/osmand/router/BinaryRoutePlanner.java b/OsmAnd-java/src/main/java/net/osmand/router/BinaryRoutePlanner.java index 154d31928e..1b6077cbb1 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/BinaryRoutePlanner.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/BinaryRoutePlanner.java @@ -370,10 +370,10 @@ public class BinaryRoutePlanner { public void printDebugMemoryInformation(RoutingContext ctx, PriorityQueue graphDirectSegments, PriorityQueue graphReverseSegments, TLongObjectHashMap visitedDirectSegments,TLongObjectHashMap visitedOppositeSegments) { - printInfo(String.format("Time. Total: %.2f, to load: %.2f, to load headers: %.2f, to calc dev: %.2f, to calc rules: %.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, - ctx.timeToLoadHeaders / 1e6, ctx.timeNanoToCalcDeviation / 1e6, GeneralRouter.TIMER / 1e6)); - GeneralRouter.TIMER = 0; + ctx.timeToLoadHeaders / 1e6, ctx.timeNanoToCalcDeviation / 1e6)); +// GeneralRouter.TIMER = 0; int maxLoadedTiles = Math.max(ctx.maxLoadedTiles, ctx.getCurrentlyLoadedTiles()); printInfo("Current loaded tiles : " + ctx.getCurrentlyLoadedTiles() + ", maximum loaded tiles " + maxLoadedTiles); printInfo("Loaded tiles " + ctx.loadedTiles + " (distinct " + ctx.distinctLoadedTiles + "), unloaded tiles " + ctx.unloadedTiles + @@ -856,6 +856,13 @@ public class BinaryRoutePlanner { super(road, segmentStart); this.distSquare = distSquare; } + + public RouteSegmentPoint(RouteSegmentPoint pnt) { + super(pnt.road, pnt.segStart); + this.distSquare = pnt.distSquare; + this.preciseX = pnt.preciseX; + this.preciseY = pnt.preciseY; + } public double distSquare; public int preciseX; diff --git a/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java b/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java index 0032fb200c..f8de46a783 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/GeneralRouter.java @@ -516,6 +516,7 @@ public class GeneralRouter implements VehicleRouter { } private void putCache(RouteDataObjectAttribute attr, RouteRegion reg, int[] types, Float val, boolean extra) { +// TIMER -= System.nanoTime(); Map> ch = evalCache[attr.ordinal()]; if (USE_CACHE) { Map rM = ch.get(reg); @@ -525,7 +526,7 @@ public class GeneralRouter implements VehicleRouter { } rM.put(new IntHolder(types, extra), val); } - TIMER += System.nanoTime(); +// TIMER += System.nanoTime(); } class IntHolder { diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java b/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java index e8f2fe3707..acf76552a4 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RoutePlannerFrontEnd.java @@ -23,13 +23,15 @@ import net.osmand.util.MapUtils; import org.apache.commons.logging.Log; +import gnu.trove.list.array.TIntArrayList; + public class RoutePlannerFrontEnd { protected static final Log log = PlatformUtil.getLog(RoutePlannerFrontEnd.class); // Check issue #8649 protected static final double GPS_POSSIBLE_ERROR = 7; public boolean useSmartRouteRecalculation = true; - + public RoutePlannerFrontEnd() { } @@ -39,6 +41,59 @@ public class RoutePlannerFrontEnd { NORMAL, COMPLEX } + + public static class GpxRouteApproximation { + // ! MAIN parameter to approximate (35m good for custom recorded tracks) + public double MINIMUM_POINT_APPROXIMATION = 50; // 35 m good for small deviations + // This parameter could speed up or slow down evaluation (better to make bigger for long routes and smaller for short) + public double MAXIMUM_STEP_APPROXIMATION = 3000; + // 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 final RoutingContext ctx; + public int routeCalculations = 0; + public int routePointsSearched = 0; + public int routeDistCalculations = 0; + public List res = new ArrayList(); + public int routeDistance; + public int routeGapDistance; + public int routeDistanceUnmatched; + + public GpxRouteApproximation(RoutingContext ctx) { + this.ctx = ctx; + } + + @Override + public String toString() { + return String.format(">> GPX approximation (%d of %d m route calcs, %d route points searched) for %d m: %d m umatched", + routeCalculations, routeDistCalculations, routePointsSearched, routeDistance, routeDistanceUnmatched); + } + + public double distFromLastPoint(LatLon startPoint) { + if(res.size() > 0) { + return MapUtils.getDistance(getLastPoint(), startPoint); + } + return 0; + } + + public LatLon getLastPoint() { + if(res.size() > 0) { + return res.get(res.size() - 1).getEndPoint(); + } + return null; + } + } + + private static class GpxPoint { + public int ind; + public LatLon loc; + public double cumDist; + public RouteSegmentPoint pnt; + public List routeToTarget; + public int targetInd = -1; + } public RoutingContext buildRoutingContext(RoutingConfiguration config, NativeLibrary nativeLibrary, BinaryMapIndexReader[] map, RouteCalculationMode rm) { return new RoutingContext(config, nativeLibrary, map, rm); @@ -148,6 +203,345 @@ public class RoutePlannerFrontEnd { } + // 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 points) throws IOException, InterruptedException { + gctx.ctx.timeToCalculate = System.nanoTime(); + if (gctx.ctx.calculationProgress == null) { + gctx.ctx.calculationProgress = new RouteCalculationProgress(); + } + List gpxPoints = generageGpxPoints(points, gctx); + GpxPoint start = gpxPoints.size() > 0 ? gpxPoints.get(0) : null; + boolean prevRouteFound = false; + while (start != null) { + double routeDist = gctx.MAXIMUM_STEP_APPROXIMATION; + GpxPoint next = findNextGpxPointWithin(gctx, gpxPoints, start, routeDist); + boolean routeFound = false; + + 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); + 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); + start.routeToTarget = null; + routeFound = false; + break; + } + } + } + if (!routeFound) { + // route is not found move next point closer to start point (distance / 2) + routeDist = routeDist / 2; + if (routeDist < gctx.MINIMUM_STEP_APPROXIMATION && routeDist > gctx.MINIMUM_STEP_APPROXIMATION / 2 + 1) { + routeDist = gctx.MINIMUM_STEP_APPROXIMATION; + } + next = findNextGpxPointWithin(gctx, gpxPoints, start, routeDist); + if (next != null) { + routeDist = Math.min(next.cumDist - start.cumDist, routeDist); + } + } + } + } + // route is not found skip segment and keep it as straight line on display + 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 { + log.warn("NOT found route from: " + start.pnt.getRoad() + " at " + start.pnt.getSegmentStart()); + } + } + } + prevRouteFound = routeFound; + start = next; + } + + 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); + } + return gctx; + } + + private boolean stepBackAndFindPrevPointInRoute(GpxRouteApproximation gctx, + List gpxPoints, GpxPoint start, GpxPoint next) throws IOException { + // step back to find to be sure + // 1) route point is behind GpxPoint - MINIMUM_POINT_APPROXIMATION (end route point could slightly ahead) + // 2) we don't miss correct turn i.e. points could be attached to muliple routes + // 3) to make sure that we perfectly connect to RoadDataObject points + double STEP_BACK_DIST = Math.max(gctx.MINIMUM_POINT_APPROXIMATION, gctx.MINIMUM_STEP_APPROXIMATION); + double d = 0; + int segmendInd = start.routeToTarget.size() - 1; + boolean search = true; + mainLoop: for (; segmendInd >= 0 && search; segmendInd--) { + RouteSegmentResult rr = start.routeToTarget.get(segmendInd); + boolean minus = rr.getStartPointIndex() < rr.getEndPointIndex(); + int nextInd; + for (int j = rr.getEndPointIndex(); j != rr.getStartPointIndex(); j = nextInd) { + nextInd = minus ? j - 1 : j + 1; + d += MapUtils.getDistance(rr.getPoint(j), rr.getPoint(nextInd)); + if (d > STEP_BACK_DIST) { + if (nextInd == rr.getStartPointIndex()) { + segmendInd--; + } else { + rr.setEndPointIndex(nextInd); + } + search = false; + break mainLoop; + } + } + } + if (segmendInd == -1) { + // 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 res = start.routeToTarget.get(segmendInd); + next.pnt = new RouteSegmentPoint(res.getObject(), res.getEndPointIndex(), 0); + return true; + } + + private void calculateGpxRoute(GpxRouteApproximation gctx, List gpxPoints) { + RouteRegion reg = new RouteRegion(); + reg.initRouteEncodingRule(0, "highway", "unmatched"); + List lastStraightLine = null; + for (int i = 0; i < gpxPoints.size(); ) { + GpxPoint pnt = gpxPoints.get(i); + if (pnt.routeToTarget != null && !pnt.routeToTarget.isEmpty()) { + LatLon startPoint = pnt.routeToTarget.get(0).getStartPoint(); + if (lastStraightLine != null) { + lastStraightLine.add(startPoint); + addStraightLine(gctx.res, lastStraightLine, reg, gctx); + lastStraightLine = null; + } + if (gctx.distFromLastPoint(startPoint) > 1) { + gctx.routeGapDistance += gctx.distFromLastPoint(startPoint); + System.out.println(String.format("????? gap of route point = %f, gap of actual gpxPoint = %f ", + gctx.distFromLastPoint(startPoint), gctx.distFromLastPoint(pnt.loc))); + } + gctx.res.addAll(pnt.routeToTarget); + i = pnt.targetInd; + } else { + // add straight line from i -> i+1 + if (lastStraightLine == null) { + lastStraightLine = new ArrayList(); + // make smooth connection + if(gctx.distFromLastPoint(pnt.loc) > 1) { + lastStraightLine.add(gctx.getLastPoint()); + } + } + lastStraightLine.add(pnt.loc); + i++; + } + } + if (lastStraightLine != null) { + addStraightLine(gctx.res, lastStraightLine, reg, gctx); + lastStraightLine = null; + } + // clean turns to recaculate them + cleanupResultAndAddTurns(gctx); + } + + private List generageGpxPoints(List points, GpxRouteApproximation gctx) { + List gpxPoints = new ArrayList<>(points.size()); + GpxPoint prev = null; + for(int i = 0; i < points.size(); i++) { + GpxPoint p = new GpxPoint(); + p.ind = i; + p.loc = points.get(i); + if (prev != null) { + p.cumDist = MapUtils.getDistance(p.loc, prev.loc) + prev.cumDist; + } + gpxPoints.add(p); + gctx.routeDistance = (int) p.cumDist; + prev = p; + } + return gpxPoints; + } + + private void cleanupResultAndAddTurns(GpxRouteApproximation gctx) { + // cleanup double joints + int LOOK_AHEAD = 4; + for(int i = 0; i < gctx.res.size(); i++) { + RouteSegmentResult s = gctx.res.get(i); + for(int j = i + 2; j <= i + LOOK_AHEAD && j < gctx.res.size(); j++) { + RouteSegmentResult e = gctx.res.get(j); + if(e.getStartPoint().equals(s.getEndPoint())) { + while((--j) != i) { + gctx.res.remove(j); + } + break; + } + } + } + RouteResultPreparation preparation = new RouteResultPreparation(); + for (RouteSegmentResult r : gctx.res) { + r.setTurnType(null); + r.setDescription(""); + } + preparation.prepareTurnResults(gctx.ctx, gctx.res); + } + + private void addStraightLine(List res, List lastStraightLine, RouteRegion reg, GpxRouteApproximation gctx) { + RouteDataObject rdo = new RouteDataObject(reg); + if(gctx.SMOOTHEN_POINTS_NO_ROUTE > 0) { + simplifyDouglasPeucker(lastStraightLine, gctx.SMOOTHEN_POINTS_NO_ROUTE, 0, lastStraightLine.size() - 1); + } + int s = lastStraightLine.size(); + TIntArrayList x = new TIntArrayList(s); + TIntArrayList y = new TIntArrayList(s); + for (int i = 0; i < s; i++) { + if(lastStraightLine.get(i) != null) { + LatLon l = lastStraightLine.get(i); + int t = x.size() - 1; + x.add(MapUtils.get31TileNumberX(l.getLongitude())); + y.add(MapUtils.get31TileNumberY(l.getLatitude())); + if (t >= 0) { + double dist = MapUtils.squareRootDist31(x.get(t), y.get(t), x.get(t + 1), y.get(t + 1)); + gctx.routeDistanceUnmatched += dist; + } + } + } + rdo.pointsX = x.toArray(); + 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)); + } + + + private void simplifyDouglasPeucker(List l, double eps, int start, int end) { + double dmax = -1; + int index = -1; + LatLon s = l.get(start); + LatLon e = l.get(end); + for (int i = start + 1; i <= end - 1; i++) { + LatLon ip = l.get(i); + double dist = MapUtils.getOrthogonalDistance(ip.getLatitude(), ip.getLongitude(), s.getLatitude(), s.getLongitude(), + e.getLatitude(), e.getLongitude()); + if (dist > dmax) { + dmax = dist; + index = i; + } + } + if (dmax >= eps) { + simplifyDouglasPeucker(l, eps, start, index); + simplifyDouglasPeucker(l, eps, index, end); + } else { + for(int i = start + 1; i < end; i++ ) { + l.set(i, null); + } + } + } + + private boolean initRoutingPoint(GpxPoint start, GpxRouteApproximation gctx, double distThreshold) throws IOException { + if (start != null && start.pnt == null) { + gctx.routePointsSearched++; + RouteSegmentPoint rsp = findRouteSegment(start.loc.getLatitude(), start.loc.getLongitude(), gctx.ctx, null, false); + if (MapUtils.getDistance(rsp.getPreciseLatLon(), start.loc) < distThreshold) { + start.pnt = rsp; + } + } + if (start != null && start.pnt != null) { + return true; + } + return false; + } + + private GpxPoint findNextGpxPointWithin(GpxRouteApproximation gctx, List gpxPoints, + GpxPoint start, double dist) { + // returns first point with that has slightly more than dist or last point + int plus = dist > 0 ? 1 : -1; + int targetInd = start.ind + plus; + GpxPoint target = null; + while (targetInd < gpxPoints.size() && targetInd >= 0) { + target = gpxPoints.get(targetInd); + if (Math.abs(target.cumDist - start.cumDist) > Math.abs(dist)) { + break; + } + targetInd = targetInd + plus; + } + return target; + } + + private boolean findGpxRouteSegment(GpxRouteApproximation gctx, List gpxPoints, + GpxPoint start, GpxPoint target, boolean prevRouteCalculated) throws IOException, InterruptedException { + List res = null; + boolean routeIsCorrect = false; + if (start.pnt != null && target.pnt != null) { + start.pnt = new RouteSegmentPoint(start.pnt); + target.pnt = new RouteSegmentPoint(target.pnt); + gctx.routeDistCalculations += (target.cumDist - start.cumDist); + gctx.routeCalculations++; + res = searchRouteInternalPrepare(gctx.ctx, start.pnt, target.pnt, null); + routeIsCorrect = res != null && !res.isEmpty(); + for (int k = start.ind + 1; routeIsCorrect && k < target.ind; k++) { + GpxPoint ipoint = gpxPoints.get(k); + if (!pointCloseEnough(gctx, ipoint, res)) { + routeIsCorrect = false; + } + } + if (routeIsCorrect) { + // correct start point though don't change end point + if (!prevRouteCalculated) { + // make first position precise + makeSegmentPointPrecise(res.get(0), start.loc, true); + } else { + assert res.get(0).getObject().getId() == start.pnt.getRoad().getId(); + // start point could shift to +-1 due to direction + res.get(0).setStartPointIndex(start.pnt.getSegmentStart()); + } + start.routeToTarget = res; + start.targetInd = target.ind; + } + } + return routeIsCorrect; + } + + private boolean pointCloseEnough(GpxRouteApproximation gctx, GpxPoint ipoint, List res) { + int px = MapUtils.get31TileNumberX(ipoint.loc.getLongitude()); + int py = MapUtils.get31TileNumberY(ipoint.loc.getLatitude()); + double SQR = gctx.MINIMUM_POINT_APPROXIMATION; + SQR = SQR * SQR; + for (RouteSegmentResult sr : res) { + int start = sr.getStartPointIndex(); + int end = sr.getEndPointIndex(); + if (sr.getStartPointIndex() > sr.getEndPointIndex()) { + start = sr.getEndPointIndex(); + end = sr.getStartPointIndex(); + } + for (int i = start; i < end; i++) { + RouteDataObject r = sr.getObject(); + QuadPoint pp = MapUtils.getProjectionPoint31(px, py, r.getPoint31XTile(i), r.getPoint31YTile(i), + r.getPoint31XTile(i + 1), r.getPoint31YTile(i + 1)); + double currentsDist = squareDist((int) pp.x, (int) pp.y, px, py); + if (currentsDist <= SQR) { + return true; + } + } + } + return false; + } + private boolean needRequestPrivateAccessRouting(RoutingContext ctx, List points) throws IOException { boolean res = false; GeneralRouter router = (GeneralRouter) ctx.getRouter(); @@ -252,8 +646,8 @@ public class RoutePlannerFrontEnd { protected void makeStartEndPointsPrecise(List res, LatLon start, LatLon end, List intermediates) { if (res.size() > 0) { - updateResult(res.get(0), start, true); - updateResult(res.get(res.size() - 1), end, false); + makeSegmentPointPrecise(res.get(0), start, true); + makeSegmentPointPrecise(res.get(res.size() - 1), end, false); } } @@ -267,7 +661,7 @@ public class RoutePlannerFrontEnd { return currentsDist; } - private void updateResult(RouteSegmentResult routeSegmentResult, LatLon point, boolean st) { + private void makeSegmentPointPrecise(RouteSegmentResult routeSegmentResult, LatLon point, boolean st) { int px = MapUtils.get31TileNumberX(point.getLongitude()); int py = MapUtils.get31TileNumberY(point.getLatitude()); int pind = st ? routeSegmentResult.getStartPointIndex() : routeSegmentResult.getEndPointIndex(); @@ -510,7 +904,7 @@ public class RoutePlannerFrontEnd { ctx.relaxedSegments += local.relaxedSegments; ctx.routingTime += local.routingTime; - local.unloadAllData(ctx); +// local.unloadAllData(ctx); if (restPartRecalculatedRoute != null) { results.addAll(restPartRecalculatedRoute); break; @@ -539,5 +933,6 @@ public class RoutePlannerFrontEnd { } } + } diff --git a/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java b/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java index 1ee7865634..8344ff6027 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/RouteResultPreparation.java @@ -175,6 +175,11 @@ public class RouteResultPreparation { splitRoadsAndAttachRoadSegments(ctx, result, recalculation); calculateTimeSpeed(ctx, result); + prepareTurnResults(ctx, result); + return result; + } + + public void prepareTurnResults(RoutingContext ctx, List result) { for (int i = 0; i < result.size(); i ++) { TurnType turnType = getTurnInfo(result, i, ctx.leftSideNavigation); result.get(i).setTurnType(turnType); @@ -184,7 +189,6 @@ public class RouteResultPreparation { ignorePrecedingStraightsOnSameIntersection(ctx.leftSideNavigation, result); justifyUTurns(ctx.leftSideNavigation, result); addTurnInfoDescriptions(result); - return result; } protected void ignorePrecedingStraightsOnSameIntersection(boolean leftside, List result) { @@ -283,11 +287,12 @@ public class RouteResultPreparation { float height = heightDistanceArray[heightIndex]; if (prevHeight != -99999.0f) { float heightDiff = height - prevHeight; - if (heightDiff > 0) { //ascent only - distOnRoadToPass += heightDiff * 6.0f; //Naismith's rule: add 1 hour per every 600m of ascent + if (heightDiff > 0) { // ascent only + distOnRoadToPass += heightDiff * 6.0f; // Naismith's rule: add 1 hour per every 600m of + // ascent } } - prevHeight = height; + prevHeight = height; } } } @@ -359,7 +364,7 @@ public class RouteResultPreparation { private void checkAndInitRouteRegion(RoutingContext ctx, RouteDataObject road) throws IOException { BinaryMapIndexReader reader = ctx.reverseMap.get(road.region); - if(reader != null) { + if (reader != null) { reader.initRouteRegion(road.region); } } diff --git a/OsmAnd-java/src/main/java/net/osmand/router/TransportRoutePlanner.java b/OsmAnd-java/src/main/java/net/osmand/router/TransportRoutePlanner.java index c9d471a497..c94831d8f4 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/TransportRoutePlanner.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/TransportRoutePlanner.java @@ -865,7 +865,6 @@ public class TransportRoutePlanner { lst.add(segment); } } else { - // MapUtils.getDistance(s.getLocation(), route.getForwardStops().get(158).getLocation()); System.err.println(String.format("Routing error: missing stop '%s' in route '%s' id: %d", s.toString(), route.getRef(), route.getId() / 2)); } diff --git a/OsmAnd-java/src/main/java/net/osmand/router/TransportStopsRouteReader.java b/OsmAnd-java/src/main/java/net/osmand/router/TransportStopsRouteReader.java index d077335d0b..7428196332 100644 --- a/OsmAnd-java/src/main/java/net/osmand/router/TransportStopsRouteReader.java +++ b/OsmAnd-java/src/main/java/net/osmand/router/TransportStopsRouteReader.java @@ -8,6 +8,7 @@ import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import gnu.trove.iterator.TIntObjectIterator; import gnu.trove.list.array.TIntArrayList; @@ -15,6 +16,7 @@ import gnu.trove.map.hash.TIntObjectHashMap; import gnu.trove.map.hash.TLongObjectHashMap; import net.osmand.binary.BinaryMapIndexReader; import net.osmand.binary.BinaryMapIndexReader.SearchRequest; +import net.osmand.binary.BinaryMapTransportReaderAdapter.TransportIndex; import net.osmand.data.IncompleteTransportRoute; import net.osmand.data.LatLon; import net.osmand.data.TransportRoute; @@ -43,7 +45,6 @@ public class TransportStopsRouteReader { List stops = r.searchTransportIndex(sr); TIntObjectHashMap routesToLoad = mergeTransportStops(r, loadedTransportStops, stops); loadRoutes(r, routesToLoad); - for (TransportStop stop : stops) { // skip missing stops if (stop.isMissingStop()) { @@ -405,11 +406,4 @@ public class TransportStopsRouteReader { } return allRoutes; } - - - - - - - } diff --git a/OsmAnd-telegram/res/values-de/strings.xml b/OsmAnd-telegram/res/values-de/strings.xml index 2bf33bcca9..8c12570da5 100644 --- a/OsmAnd-telegram/res/values-de/strings.xml +++ b/OsmAnd-telegram/res/values-de/strings.xml @@ -180,7 +180,7 @@ Überwachung deaktiviert Zeit in Bewegung Durchschnittliche Höhe - Durchschnittliche Geschwindigkeit + Durchschnittsgeschwindigkeit In OsmAnd anzeigen Endzeit Startzeit diff --git a/OsmAnd/assets/bundled_assets.xml b/OsmAnd/assets/bundled_assets.xml index e27ff76cd7..30d1422d0f 100644 --- a/OsmAnd/assets/bundled_assets.xml +++ b/OsmAnd/assets/bundled_assets.xml @@ -50,6 +50,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OsmAnd/res/drawable-hdpi/map_track_point_finish.png b/OsmAnd/res/drawable-hdpi/map_track_point_finish.png new file mode 100644 index 0000000000..a8e9b15847 Binary files /dev/null and b/OsmAnd/res/drawable-hdpi/map_track_point_finish.png differ diff --git a/OsmAnd/res/drawable-hdpi/map_track_point_start.png b/OsmAnd/res/drawable-hdpi/map_track_point_start.png new file mode 100644 index 0000000000..da998f22e2 Binary files /dev/null and b/OsmAnd/res/drawable-hdpi/map_track_point_start.png differ diff --git a/OsmAnd/res/drawable-mdpi/map_track_point_finish.png b/OsmAnd/res/drawable-mdpi/map_track_point_finish.png new file mode 100644 index 0000000000..ecf9d612ea Binary files /dev/null and b/OsmAnd/res/drawable-mdpi/map_track_point_finish.png differ diff --git a/OsmAnd/res/drawable-mdpi/map_track_point_start.png b/OsmAnd/res/drawable-mdpi/map_track_point_start.png new file mode 100644 index 0000000000..e1dde0d633 Binary files /dev/null and b/OsmAnd/res/drawable-mdpi/map_track_point_start.png differ diff --git a/OsmAnd/res/drawable-xhdpi/map_track_point_finish.png b/OsmAnd/res/drawable-xhdpi/map_track_point_finish.png new file mode 100644 index 0000000000..d8f8a36d30 Binary files /dev/null and b/OsmAnd/res/drawable-xhdpi/map_track_point_finish.png differ diff --git a/OsmAnd/res/drawable-xhdpi/map_track_point_start.png b/OsmAnd/res/drawable-xhdpi/map_track_point_start.png new file mode 100644 index 0000000000..7718b5e03a Binary files /dev/null and b/OsmAnd/res/drawable-xhdpi/map_track_point_start.png differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_track_point_finish.png b/OsmAnd/res/drawable-xxhdpi/map_track_point_finish.png new file mode 100644 index 0000000000..81704f2ed4 Binary files /dev/null and b/OsmAnd/res/drawable-xxhdpi/map_track_point_finish.png differ diff --git a/OsmAnd/res/drawable-xxhdpi/map_track_point_start.png b/OsmAnd/res/drawable-xxhdpi/map_track_point_start.png new file mode 100644 index 0000000000..75d6bf5362 Binary files /dev/null and b/OsmAnd/res/drawable-xxhdpi/map_track_point_start.png differ diff --git a/OsmAnd/res/drawable-xxxhdpi/map_track_point_finish.png b/OsmAnd/res/drawable-xxxhdpi/map_track_point_finish.png new file mode 100644 index 0000000000..04691cc75e Binary files /dev/null and b/OsmAnd/res/drawable-xxxhdpi/map_track_point_finish.png differ diff --git a/OsmAnd/res/drawable-xxxhdpi/map_track_point_start.png b/OsmAnd/res/drawable-xxxhdpi/map_track_point_start.png new file mode 100644 index 0000000000..62145a8812 Binary files /dev/null and b/OsmAnd/res/drawable-xxxhdpi/map_track_point_start.png differ diff --git a/OsmAnd/res/drawable/ic_action_navigation_skip_destination.xml b/OsmAnd/res/drawable/ic_action_navigation_skip_destination.xml new file mode 100644 index 0000000000..144dfbbc0f --- /dev/null +++ b/OsmAnd/res/drawable/ic_action_navigation_skip_destination.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/OsmAnd/res/values-ar/strings.xml b/OsmAnd/res/values-ar/strings.xml index bf0a05f3ff..064a00bc8d 100644 --- a/OsmAnd/res/values-ar/strings.xml +++ b/OsmAnd/res/values-ar/strings.xml @@ -1898,7 +1898,7 @@ تعطيل 2-مرحلة التوجيه للملاحة بالسيارة. مقياس التنزه في جبال الألب (SAC) تقديم المسارات وفقاً لمقياس SAC. - طبقة رمز التسلق + كيفية اظهار رموز طبقة التسلق (الهايكنق) تقديم المسارات وفقاً لآثار OSMC. انقر فوق أي عنصر لمعرفة المزيد من التفاصيل، اضغط وواصل الضغط للتعطيل أو الحذف. البيانات الحالية على الجهاز (%1$s متاح): إعادة إعلان تعليمات الملاحة في فترات منتظمة. @@ -3797,4 +3797,6 @@ طول الحد هذا الجهاز لا يملك كاميرات السرعة. أحذية تزلج + تمكين التحكم في مستوى التكبير/التصغير بالخريطة باستخدام أزرار مستوى صوت الجهاز. + أزرار مستوى الصوت \ No newline at end of file diff --git a/OsmAnd/res/values-ca/strings.xml b/OsmAnd/res/values-ca/strings.xml index 4c7e5d959a..360d9eea91 100644 --- a/OsmAnd/res/values-ca/strings.xml +++ b/OsmAnd/res/values-ca/strings.xml @@ -3665,4 +3665,38 @@ Abasta l\'àrea: %1$s x %2$s Javanès Gujarati Trieu com desar les tessel·les baixades. + Desinstal·la les càmeres de radar + Informació legal + PDIs de càmeres de radar + En alguns països o regions, l\'ús d\'aplicacions que avisen de la proximitat de càmeres de radar està prohibit. +\n +\nCal que ho configureu segons la llei del vostre país. +\n +\nSeleccioneu %1$s i rebreu alertes i advertiments de les càmeres de radar. +\n +\nSeleccioneu %2$s. Totes les dades relatives a les càmeres de radar (alertes, notificacions, PDIs) desapareixeran fins que es reinstal·li completament OsmAnd . + Desinstal·la + Les alertes de proximitat a càmeres de radar estan prohibides en alguns països. + Mostra o amaga detalls addicionals del mapa + Mapa nocturn + Afegeix orígen en connexió + L\'aplicació d\'aquests canvis esborrarà les dades de la memòria cau per a aquesta font de tessel·les + Indiqueu l\'alçada del vaixell + Podeu indicar l\'alçada del vaixell per evitar ponts baixos. Penseu que si el pont és mòbil, li aplicarem l\'alçada de quan estigui obert. + Indiqueu l\'alçada del vaixell per evitar ponts baixos. Penseu que si el pont és mòbil, li aplicarem l\'alçada de quan estigui obert. + Indiqueu l\'amplada del vaixell per evitar ponts ajustats + Mostra/amaga Mapil·lary + Amaga Mapillary + Mostra Mapillary + Un commutador per mostrar o amagar la capa de Mapillary al mapa. + Especifiqueu la llargada del vehicle que han de permetre les vies. + Llargada màxima + Trajectòria + S\'ha esborrat %1$s + Cal reiniciar per esborrar totalment les dades de les càmeres de radar. + Desinstal·la i Reinicia + Aquest dispositiu no inclou les càmeres de radar. + Patins en línia + Activeu per controlar el nivell d\'ampliació del mapa amb els botons del volum del dispositiu. + Botons de volum pel zoom \ No newline at end of file diff --git a/OsmAnd/res/values-da/phrases.xml b/OsmAnd/res/values-da/phrases.xml index 09a2605ce2..15ef06fab4 100644 --- a/OsmAnd/res/values-da/phrases.xml +++ b/OsmAnd/res/values-da/phrases.xml @@ -3832,4 +3832,9 @@ Rør Lufttryk Pumpens tilstand: ingen håndtag + Ja + Ja + Vibration: nej + Pil + Vibration \ No newline at end of file diff --git a/OsmAnd/res/values-da/strings.xml b/OsmAnd/res/values-da/strings.xml index 4284a8caaf..4b878e8432 100644 --- a/OsmAnd/res/values-da/strings.xml +++ b/OsmAnd/res/values-da/strings.xml @@ -3700,4 +3700,14 @@ Repræsenterer område: %1$s x %2$s Slet alt\? toner meter + %1$s slettet + Afinstaller og genstart + Inline-rulleskøjter + Afinstaller + Vis eller skjul yderligere kort-detaljer + Natkort + Tilføj onlinekilde + Vis/skjul Mapillary + Skjul Mapillary + Vis Mapillary \ No newline at end of file diff --git a/OsmAnd/res/values-de/phrases.xml b/OsmAnd/res/values-de/phrases.xml index 437bb5d33a..c3fce991db 100644 --- a/OsmAnd/res/values-de/phrases.xml +++ b/OsmAnd/res/values-de/phrases.xml @@ -1648,8 +1648,8 @@ Elektronische Geldbörsen UTA UTA-Karten nicht akzeptiert - Bargeld - Bargeld nicht akzeptiert + Efectivo + Efectivo nicht akzeptiert Girokarte Girokarte nicht akzeptiert Discover-Karte @@ -2126,7 +2126,7 @@ Flüchtlingsunterkunft Wohngruppe Betreutes Wohnen - Freier Treff + Beratungsstelle Verpflegung Obdach Ambulante Pflege @@ -2162,7 +2162,7 @@ Treppenzustand: schlecht Steinhügel Fassadendekoration - Art: Kriegsgrab + Art: Kriegsgräberstätte Art: Hügelgrab Art: Felsgrab Art: Hypogäum @@ -3832,4 +3832,5 @@ kein Vibrieren Pfeil Vibrieren + Give box \ No newline at end of file diff --git a/OsmAnd/res/values-de/strings.xml b/OsmAnd/res/values-de/strings.xml index 1359f25b32..1cc7fdb88d 100644 --- a/OsmAnd/res/values-de/strings.xml +++ b/OsmAnd/res/values-de/strings.xml @@ -1812,7 +1812,7 @@ GPX-Datei mit Standorten. Anzeige der verbleibenden freien Downloads. Standort - Schummerungsebene deaktiviert + Reliefebene deaktiviert Bestätigen Standorte Verbergen @@ -2217,7 +2217,7 @@ Beendigungszeit Farbe Höchstgeschwindigkeit - Durchschnittliche Geschwindigkeit + Durchschnittsgeschwindigkeit Track Punkt(e) gelöscht. Es werden %1$d Punkt(e) gelöscht. Fortfahren? @@ -2416,7 +2416,7 @@ Schaltfläche zum Ein- oder Ausblenden von OSM-Notizen auf der Karte. Nach Entfernung sortiert In Favoriten suchen - Laden Sie die Schummerungskarte herunter, um vertikale Schattierungen anzuzeigen. + Laden Sie die Reliefkarte herunter, um vertikale Schattierungen anzuzeigen. Erweiterung Kaufen und installieren Sie die Erweiterung \'Höhenlinien\', um abgestufte vertikale Flächen anzuzeigen. Laden Sie die Höhenlinienkarte zu dieser Region herunter. @@ -2756,7 +2756,7 @@ Wikivoyage offline Unbegrenzte Downloads Wikipedia offline - Karten mit Höhenlinien und Schummerung + Karten mit Höhenlinien und Relief Alle OsmAnd-Funktionen freischalten Plan auswählen Laden Sie die Wikipedia-Artikel für %1$s herunter, um sie offline zu lesen. @@ -3275,7 +3275,7 @@ Aus anderem Profil kopieren Bildschirm einschalten Karte während Navigation - Gewicht, Höhe, Geschwindigkeit + Gewicht, Höhe, Länge, Geschwindigkeit Fahrzeugparameter Routenparameter Offener Standortcode (OLC) @@ -3341,7 +3341,7 @@ %1$s GB verwendet %1$s MB verwendet %1$s kB verwendet - Höhenlinien und Schummerung + Höhenlinien und Relief Unbefestigte Straßen bevorzugen Unbefestigte Straßen bevorzugen. Alle Karten aktualisieren @@ -3598,19 +3598,19 @@ Gelände einblenden Gelände ausblenden Gelände ein- / ausblenden - Schummerung + Relief Zoomstufen Transparenz Stellen Sie die minimale und maximale Zoomstufe ein, bei der die Ebene angezeigt wird. Gelände Hangneigungen - Aktivieren Sie diese Option, um die Schummerungs- oder Hangneigungskarte anzuzeigen. Weitere Informationen zu diesen Kartentypen finden Sie auf unserer Website. + Aktivieren Sie diese Option, um die Relief- oder Hangneigungskarte anzuzeigen. Weitere Informationen zu diesen Kartentypen finden Sie auf unserer Website. Legende Lesen Sie mehr über Hangneigungskarten in %1$s. Zusätzliche Karten sind erforderlich, um Hangneigungen auf der Karte anzuzeigen. - Für die Darstellung der Schummerung werden zusätzliche Karten benötigt. + Für die Darstellung des Reliefs werden zusätzliche Karten benötigt. Min - Schummerungskarte mit dunklen Schattierungen zur Darstellung von Hängen, Gipfeln und Ebenen. + Reliefkarte mit dunklen Schattierungen zur Darstellung von Hängen, Gipfeln und Ebenen. %1$s von %2$s Achteck Skitouren @@ -3775,7 +3775,7 @@ Geben Sie Ihre Fahrzeughöhe an, für hohe Fahrzeuge können einige Routenbeschränkungen gelten. Geben Sie Ihr Fahrzeuggewicht an, für schwere Fahrzeuge können einige Routenbeschränkungen gelten. Sie können Schnellaktionen mit Anwendungsprofilen exportieren oder importieren. - Alles Löschen\? + Alles löschen\? Möchten Sie %d Schnellaktionen wirklich unwiderruflich löschen\? Töne Meter @@ -3793,7 +3793,7 @@ Mapillary ausblenden Mapillary anzeigen Eine Umschaltfläche zum ein- oder ausblenden der Mapillary-Layer auf der Karte. - Blitzer Deinstallieren + Blitzer deinstallieren Rechtliches Blitzer-POIs Aktiviert lassen @@ -3803,11 +3803,17 @@ %1$s gelöscht Ein Neustart ist erforderlich, um Blitzerdaten vollständig zu löschen. Deinstallieren und neu starten - In einigen Ländern oder Regionen ist die Verwendung von Anwendungen zum Warnen vor Blitzern gesetzlich verboten. + In einigen Ländern oder Regionen ist die Verwendung von Blitzer-Warneinrichtungen gesetzlich verboten. \n -\nEs muss anhand der Gesetzeslage des Landes entschieden werden. +\nSie müssen anhand der Gesetzeslage des Landes entscheiden, ob Sie \n -\nDie Wahl %1$s sendet Warnungen und Hinweise zu Blitzern. +\n%1$s wählen und Warnungen und Hinweise zu Blitzern erhalten werden, \n -\nDie Wahl %2$s löscht alle Daten für Warnungen, Hinweise und POIs im Zusammenhang mit Blitzern, bis OsmAnd komplett neu installiert wird. +\n%2$s wählen, worauf alle Daten zu Blitzern (Warnungen, Hinweise und POIs) bis zu einer vollständigen Neuinstallation von OsmAnd gelöscht werden. + Geben Sie die Fahrzeuglänge an, die auf Routen erlaubt sein soll. + Längenbegrenzung + Dieses Gerät hat keine Blitzer. + Inline-Skates + Aktivieren Sie die Steuerung der Zoomstufe der Karte mit den Lautstärketasten des Geräts. + Lautstärketasten als Zoom \ No newline at end of file diff --git a/OsmAnd/res/values-eo/phrases.xml b/OsmAnd/res/values-eo/phrases.xml index 8c86ca29df..833f1e4da7 100644 --- a/OsmAnd/res/values-eo/phrases.xml +++ b/OsmAnd/res/values-eo/phrases.xml @@ -558,21 +558,21 @@ Infanmedicino Oficejo de firmao Asekurkompaniejo - Nemoveblaĵista oficejo - Leĝista oficejo + Oficejo de nemoveblaĵisto + Oficejo de leĝisto Telekomunikada oficejo - Oficejo de ne-registara organizaĵo + Oficejo de neregistara organizaĵo Dungoficejo Oficejo de esploroj - Inform-teĥnologia oficejo + Oficejo de inform-teĥnologia firmao Gazet-redaktejo - Arĥitekturistejo + Oficejo de arĥitekturisto Reklamistejo Oficejo de edukada institucio Studio Vetperistejo Kancelario religia - Oficejo de ne-profita organizaĵo + Oficejo de neprofit-cela organizaĵo Financa oficejo Oficejo de partio politika Kancelario de notario @@ -754,7 +754,7 @@ Interret-aliro: ne Interret-aliro: priservo Religia tereno - Vojaĝ-oficejo + Oficejo de vojaĝoj Funikularo Kampadejo Kampadveturil-parkumejo @@ -830,15 +830,15 @@ Trinkakvejo Rostilo Laborejo de agrokulturaj maŝinoj - Korb-laborejo + Laborejo de korbisto Abelistejo Forĝejo Bierfarejo Boat-konstruejo Librobindejo - Ĉarpentist-laborejo - Tapiŝ-metista laborejo - Manĝ-provizista oficejo + Laborejo de ĉarpentisto + Laborejo de tapiŝ-metisto + Oficejo de manĝ-provizisto Horloĝistejo Tajlorejo (inaj vestoj) Elektristejo @@ -848,19 +848,19 @@ Oficejo de isto pri hejtado, aerumado, klimatizado Poŝ-horloĝistejo Varmizolaĵistejo - Juvelista laborejo + Laborejo de juvelisto Seruristejo Ŝlosil-kopiistejo - Metal-konstruaĵista laborejo + Laborejo de metal-konstruaĵisto Okulvitristejo Farbistejo Pargetistejo Fotistejo - Fotista laborejo + Laborejo de fotisto Stukistejo Tubistejo Potfaristejo - Rigilarista laborejo + Laborejo de rigisto Tegmentistejo Selistejo Velfaristejo @@ -868,9 +868,9 @@ Skafaldistejo Skulptistejo Ŝuistejo - Oficejo de isto de stangoj, kioskoj + Oficejo de isto pri stangoj, kioskoj Ŝtontranĉistejo - Laborejo de isto de kontraŭsunaj ekranoj + Laborejo de isto pri kontraŭsunaj ekranoj Kamenpurigistejo Tajlorejo Kahelmetistejo @@ -900,7 +900,7 @@ Pag-terminalo Pruntedonantejo Lombardejo - Kontista oficejo + Oficejo de kontisto Bitmono akceptata Enirejo al kaverno Monto (pinto) @@ -3059,13 +3059,13 @@ Konstruaĵo: kupolo Konstruaĵo: maskita Fervojstacio vara - Ejo por samloka laborado + Oficejo por samloka laborado Manĝejo memserva jes Vino: jes Vino: vendado (boteloj) Vino: trinkado surloke - Oficejo de energi-provizanto + Oficejo de elektr-provizanto Maltrapasejo bongustaĵoj Riparo de elektronikaĵoj: komputiloj @@ -3822,4 +3822,7 @@ Vibrado: ne Sageto Vibrado + Kesto de senpaga interŝanĝo + Dombloko + Suburbo \ No newline at end of file diff --git a/OsmAnd/res/values-eo/strings.xml b/OsmAnd/res/values-eo/strings.xml index 6a0538c76a..c7479ee3d0 100644 --- a/OsmAnd/res/values-eo/strings.xml +++ b/OsmAnd/res/values-eo/strings.xml @@ -3807,4 +3807,6 @@ Limigo de longo Tiu ĉi aplikaĵo ne liveras informojn pri rapidkontrolliloj. Rulglitiloj + Skali per sonfortecaj butonoj + Uzi la butonojn de sonforteco por pli-/mal-grandigi la mapon. \ No newline at end of file diff --git a/OsmAnd/res/values-es-rAR/phrases.xml b/OsmAnd/res/values-es-rAR/phrases.xml index 1d68fd6573..e166cf6380 100644 --- a/OsmAnd/res/values-es-rAR/phrases.xml +++ b/OsmAnd/res/values-es-rAR/phrases.xml @@ -3836,4 +3836,5 @@ Vibración: no Flecha Vibración + Caja de regalo \ No newline at end of file diff --git a/OsmAnd/res/values-es-rAR/strings.xml b/OsmAnd/res/values-es-rAR/strings.xml index fc098eafa0..a1e219c038 100644 --- a/OsmAnd/res/values-es-rAR/strings.xml +++ b/OsmAnd/res/values-es-rAR/strings.xml @@ -3270,7 +3270,7 @@ Mapa durante la navegación Mapa durante la navegación Otros - Peso, altura, velocidad + Peso, altura, longitud, velocidad Parámetros del vehículo Los anuncios de voz solo se realizan durante la navegación. Instrucciones de navegación y anuncios @@ -3808,4 +3808,10 @@ Rumbo %1$s borrado Desinstalar y reiniciar + Indica la longitud permitida del vehículo en rutas. + Límite de longitud + Este dispositivo no tiene radares de velocidad. + Patines en línea + Permite controlar el nivel de zoom del mapa con los botones de volumen del dispositivo. + Botones de volumen como zoom \ No newline at end of file diff --git a/OsmAnd/res/values-es-rUS/phrases.xml b/OsmAnd/res/values-es-rUS/phrases.xml index b1d9c0bc6c..ceb20a440f 100644 --- a/OsmAnd/res/values-es-rUS/phrases.xml +++ b/OsmAnd/res/values-es-rUS/phrases.xml @@ -3836,4 +3836,5 @@ Vibración: no Flecha Vibración + Caja de regalo \ No newline at end of file diff --git a/OsmAnd/res/values-es-rUS/strings.xml b/OsmAnd/res/values-es-rUS/strings.xml index 556f34bc56..504a7a63d2 100644 --- a/OsmAnd/res/values-es-rUS/strings.xml +++ b/OsmAnd/res/values-es-rUS/strings.xml @@ -3270,7 +3270,7 @@ Mapa durante la navegación Mapa durante la navegación Otros - Peso, altura, velocidad + Peso, altura, longitud, velocidad Parámetros del vehículo Los anuncios de voz solo se realizan durante la navegación. Instrucciones de navegación y anuncios @@ -3805,4 +3805,10 @@ %1$s borrado Debes reiniciar para borrar completamente los datos de los radares de velocidad. Desinstalar y reiniciar + Indica la longitud permitida del vehículo en rutas. + Límite de longitud + Este dispositivo no tiene radares de velocidad. + Patines en línea + Permite controlar el nivel de zoom del mapa con los botones de volumen del dispositivo. + Botones de volumen como zoom \ No newline at end of file diff --git a/OsmAnd/res/values-es/phrases.xml b/OsmAnd/res/values-es/phrases.xml index 5c0238a49b..1e7b8c6fe8 100644 --- a/OsmAnd/res/values-es/phrases.xml +++ b/OsmAnd/res/values-es/phrases.xml @@ -3819,4 +3819,16 @@ Bicicleta blanca Presión SMS + Caja de regalo + + + Vibración: no + Estado de la bomba: falta la barra + Nivel del agua: flotante + Nivel del agua: inundaciones + Nivel de agua: cubre + Primitivo + Contrastado + Flecha + Vibración \ No newline at end of file diff --git a/OsmAnd/res/values-es/strings.xml b/OsmAnd/res/values-es/strings.xml index fe12d06b6c..c2036f284b 100644 --- a/OsmAnd/res/values-es/strings.xml +++ b/OsmAnd/res/values-es/strings.xml @@ -3748,4 +3748,67 @@ metros Controla la visibilidad de los detalles adicionales mostrados en el mapa Mapa nocturno + No pude analizar la geointención \"%s\". + División de grabación + Indica la dirección web con sintaxis de parámetros : lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}. + Recomendación: Un ajuste de 5 metros puede funcionar bien para ti si no necesitas capturar detalles más finos que eso, y no quieres capturar explícitamente los datos mientras estás en reposo. + Efectos secundarios: Los períodos de descanso no se registran en absoluto o sólo en un punto. Los pequeños movimientos (en el mundo real) (por ejemplo, de lado, para marcar un posible desvío en su viaje) pueden ser filtrados. Su archivo contiene menos información para el post-procesado, y tiene peores estadísticas al filtrar puntos obviamente redundantes en el tiempo de registro, mientras que potencialmente mantiene los artefactos causados por la mala recepción o los efectos del chipset del GPS. + Este filtro evita que se registren puntos duplicados cuando ha habido muy poco movimiento real, y da un aspecto espacial más agradable a las pistas sin post-procesado posterior. + Observación: Si el GPS hubiera estado apagado inmediatamente antes de una medida, el primer punto medido podría tener una precisión disminuida, por lo que en nuestro código podríamos querer esperar un segundo más o menos antes de grabar un punto (o grabar el mejor de 3 puntos consecutivos, etc.), pero esto aún no se ha implementado. + Recomendación: Es difícil predecir lo que se registrará y lo que no, puede ser mejor apagar este filtro. + Efecto secundario: Como resultado del filtrado por precisión, pueden faltar puntos, por ejemplo, debajo de puentes, bajo árboles, entre edificios altos o con ciertas condiciones climáticas. + Todos los datos de los %1$s son importados, puedes usar los botones de abajo para abrir la parte necesaria de la aplicación para gestionarla. + Personalización de la interfaz de usuario + Elementos debajo de este punto separados por un divisor. + Min del sur + Yoruba + Waray + Uzbeko + Urdu + Tayiko + Bávaro + Rastreador OsmAnd + La guía para la simbología del mapa. + Posiciones de estacionamiento + Deshabilitado. Requiere \'Mantener la pantalla encendida\' dentro de \'Tiempo de espera después de la activación\'. + Afecta a la pantalla cuando se usa como mapa o superposición / subyacente. +\n +\n%1$s: el mapa está limitado al rango de nivel de zoom seleccionado. +\n +\n%2$s son los niveles en los que las teselas originales serán visibles, fuera de estos valores se realizará un escalado. + Desinstalar las cámaras de velocidad + Legal + PDIs de cámaras de velocidad + En algunos países o regiones, el uso de aplicaciones de advertencia de cámaras de velocidad está prohibido por la ley. +\n +\nTienes que hacer una elección dependiendo de la ley de tu país. +\n +\nSelecciona %1$s y recibirás alertas y advertencias sobre las cámaras de velocidad. +\n +\nSelecciona %2$s. Todos los datos relacionados con las cámaras de velocidad: alertas, notificaciones, PDIs, se eliminarán hasta que OsmAnd se reinstale completamente. + Mantener activo + Desinstalar + Las alertas de cámaras de velocidad están prohibidas por la ley en algunos países. + Tiempo de espera de pantalla predeterminado + tonos + Añadir fuente en línea + Aplicando estos cambios se borrarán los datos almacenados para esta fuente de teselas + Fijar la altura del navío + Puedes establecer la altura del navío para evitar los puentes bajos. Ten en cuenta que si el puente es móvil, usaremos su altura en estado abierto. + Fija la altura del navío para evitar los puentes bajos. Ten en cuenta que si el puente es móvil, usaremos su altura en estado abierto. + Fija el ancho del navío para evitar puentes estrechos + Mostrar/ocultar Mapillary + Ocultar Mapillary + Mostrar Mapillary + Un conmutador para mostrar u ocultar la capa de Mapillary en el mapa. + Especifica la longitud del vehículo que se permitirá en las rutas. + Límite de longitud + Rumbo + %1$s eliminado + Es necesario reiniciar para eliminar completamente los datos de las cámaras de velocidad. + Desinstalar y reiniciar + Este dispositivo no tiene cámaras de velocidad. + Patines en línea + Permite controlar el nivel de zoom del mapa con los botones de volumen del dispositivo. + Botones de volumen como zoom \ No newline at end of file diff --git a/OsmAnd/res/values-fa/strings.xml b/OsmAnd/res/values-fa/strings.xml index 26b0b78063..55c3b83a71 100644 --- a/OsmAnd/res/values-fa/strings.xml +++ b/OsmAnd/res/values-fa/strings.xml @@ -1139,7 +1139,7 @@ آزادراه از آزادراه‌ها پرهیز می‌کند وزن مجاز - وزن مجاز خودرو در راه‌ها را مشخص کنید. + وزن مجاز خودرو در مسیرها را مشخص کنید. انتخاب فایل GPX… مقصد را تنظیم کنید انتخاب روی نقشه @@ -1612,7 +1612,7 @@ گذر از مرز از گذر از مرزهای ملی پرهیز می‌کند ارتفاع مجاز - ارتفاع مجاز خودرو در راه‌ها چقدر است. + ارتفاع مجاز خودرو در مسیرها را مشخص کنید. ویکی‌پدیا راه‌ها بر اساس درجه‌بندی SAC رسم شوند. لایهٔ نمادهای پیاده‌گردی @@ -3266,7 +3266,7 @@ تنظیمات OsmAnd کپی از پروفایل دیگر سایر - وزن، ارتفاع، سرعت + وزن، ارتفاع، طول، سرعت پارامترهای وسیله نقلیه پیکربندی پارامترهای مسیر پارامترهای مسیر @@ -3835,4 +3835,9 @@ \n \nبا انتخاب %2$s تا زمانی که OsmAnd را دوباره نصب کنید، تمام دادهٔ مربوط به دوربین‌های سرعت (هشدارها، اعلان‌ها، نقاط توجه) حذف می‌شود. قانونِ برخی از کشورها استفاده از هشداردهندهٔ دوربین سرعت را ممنوع کرده است. + با این گزینه می‌توانید با استفاده از دکمه‌های کم/زیاد صدای دستگاه سطح زوم را کنترل کنید. + زوم با دکمه‌های صدا + طول مجاز + طول مجاز خودرو در مسیرها را مشخص کنید. + این دستگاه دوربین‌های سرعت را ندارد. \ No newline at end of file diff --git a/OsmAnd/res/values-fr/phrases.xml b/OsmAnd/res/values-fr/phrases.xml index 7f290db577..b220d4eaf1 100644 --- a/OsmAnd/res/values-fr/phrases.xml +++ b/OsmAnd/res/values-fr/phrases.xml @@ -3818,7 +3818,7 @@ Remplissage d\'eau potable : non Réseau de remplissage d\'eau potable Uniquement si la marche est autorisée - Signal pour trouver le pôle + Signal pour trouver le poteau Pression Aspiration Pressurisé @@ -3829,4 +3829,5 @@ Vibration : non Flèche Vibration + Boîte à dons \ No newline at end of file diff --git a/OsmAnd/res/values-fr/strings.xml b/OsmAnd/res/values-fr/strings.xml index 2c218a9ad0..7b2f71ab93 100644 --- a/OsmAnd/res/values-fr/strings.xml +++ b/OsmAnd/res/values-fr/strings.xml @@ -3789,4 +3789,6 @@ Limite de longueur Cet appareil n\'a pas de radars. Patins à roulettes en ligne + Zoomer avec les boutons de volume + Activer pour contrôler le niveau de zoom de la carte avec les boutons de réglage du volume sonore. \ No newline at end of file diff --git a/OsmAnd/res/values-gl/strings.xml b/OsmAnd/res/values-gl/strings.xml index 0758e924f2..6c2608e370 100644 --- a/OsmAnd/res/values-gl/strings.xml +++ b/OsmAnd/res/values-gl/strings.xml @@ -2399,7 +2399,7 @@ Lon %2$s Ler o artigo completo Ler o artigo Tódolos puntos do grupo - Aberto a partires das + Aberto dende as Aberto até as Pecha ás Abre ás @@ -3834,4 +3834,6 @@ Lon %2$s Límite de lonxitude Este dispositivo non ten radares de velocidade. Patíns en liña + Activar para controlar o nivel de achegamento (zoom) do mapa cos botóns de volume do dispositivo. + Os botóns de volume mudan o achegamento \ No newline at end of file diff --git a/OsmAnd/res/values-he/strings.xml b/OsmAnd/res/values-he/strings.xml index 14cd11b21e..16a5f1030f 100644 --- a/OsmAnd/res/values-he/strings.xml +++ b/OsmAnd/res/values-he/strings.xml @@ -3778,7 +3778,7 @@ נא לציין את רוחב כלי הרכב שלך, יתכן שחלות מגבלות מעבר על כלי רכב רחבים. נא לציין את גובה כלי הרכב שלך, יתכן שחלות מגבלות מעבר על כלי רכב גבוהים. נא לציין את משקל כלי הרכב שלך, יתכן שחלות מגבלות מעבר על כלי רכב כבדים. - גוונים + טונות מטרים הצגה או הסתרה של פירוט נוסף על המפה מפת לילה @@ -3815,4 +3815,6 @@ נא לציין את אורך כלי הרכב כדי לבדוק מסלולים מורשים. מגבלת אורך למכשיר הזה אין מצלמות מהירות. + מאפשר לשלוח ברמת התקריב של המפה עם כפתורי עצמת השמע של המכשיר. + כפתורי עצמת שמע כתקריב \ No newline at end of file diff --git a/OsmAnd/res/values-hu/strings.xml b/OsmAnd/res/values-hu/strings.xml index b96f7cfbaf..9f026359bb 100644 --- a/OsmAnd/res/values-hu/strings.xml +++ b/OsmAnd/res/values-hu/strings.xml @@ -591,7 +591,7 @@ Régió kijelölése listából Keresztező utca kijelölése Legközelebbi hasznos létesítmények - Alapértelmezett + Térképböngészés Vezetés Kerékpározás Gyaloglás @@ -3732,4 +3732,28 @@ Hosszúság: %2$s Adja meg az útvonalakon a járművekre vonatkozó hosszkorlátozást. Hosszkorlátozás Az eszköz nem tartalmaz traffipax adatokat. + Az jelenlegi elemek lecserélésre kerülnek a fájlban lévőkre + Az importál elemek előtaggal kerünek hozzáadásra + Az OsmAnd már tartalmaz az importárttal megegyező nevű elemeket. +\n +\nVálasszon egy műveletet. + Néhány elem már létezik + Ez a bővítmény egy különálló alkalmazás, külön el kell távolítania, amennyiben a továbbiakban nem tervezi használni. +\n +\nA bővítmény a készüléken marad az OsmAnd eltávolítása után. + Légvonalban + Az alapértelmezés visszaállítása a sorrendet visszaállítja a telepítés utáni alapértelmezett állapotba. + A kisegítő lehetőségek a készülékén az Android rendszerben ki vannak kapcsolva. + Idő puffer + Naplózási időköz + Webcím + Adja meg a webcímet a következő paraméter szintaxissal: szélesség={0}, hosszúság={1}, időbélyeg={2}, pontosság={3}, magasság={4}, sebesség={5}, irány={6}. + Értesítés + Legkisebb sebesség + Legkisebb pontosság + Legkisebb elmozdulás + Bővítménybeállítások visszaállítása alapértelmezettre + Engedélyezésével a térkép nagyítási szintje az eszköz hangerőgombjaival állítható. + Hangerőgombok használata nagyításhoz + Görkorcsolya \ No newline at end of file diff --git a/OsmAnd/res/values-nl/phrases.xml b/OsmAnd/res/values-nl/phrases.xml index 8f2054e94b..2518eb0fe7 100644 --- a/OsmAnd/res/values-nl/phrases.xml +++ b/OsmAnd/res/values-nl/phrases.xml @@ -1239,7 +1239,7 @@ Ja Zonder blindengeleidestrook Ja - Nee + Geluid: nee Alleen als oversteken is toegestaan Reddingstation Verzorgingsplaats @@ -1391,8 +1391,8 @@ IJs IJs Brandstoftype (avia) - Internet verbinding type - Verkoop + Type Internettoegang + Verkooptype Fietsonderhoud Soort Soort @@ -1482,7 +1482,7 @@ Tankstation voor scheepvaart IJshockey Internettoegang - betaald - Internettoegang - gratis + Internettoegang: gratis Vrijmetselaarsloge Zeilclub Padvindersclub @@ -1526,7 +1526,7 @@ Eurowag Eurowag-kaarten niet geaccepteerd E-Z Pass - E-Z Pass niet geaccepteerd + E-ZPass niet geaccepteerd Bankoverschrijving Bankoverschrijving niet geaccepteerd Betaling via SMS @@ -1769,7 +1769,7 @@ Soort brug: enkele hangbrug Brugstructuur: balk Soort brug: enkele brug - "Soort brug: boogbrug" + Soort brug: boogbrug Soort brug: vlotbrug Soort brug: houten Soort brug: viaduct @@ -1874,7 +1874,7 @@ Uitgeverij Avgas UL 91 Avgas 100 LL - Autogas + LPG Jet A-1 fuel AdBlue Brandstof: hout @@ -2308,7 +2308,7 @@ Oppervlak: onverhard Oppervlak: verhard Oppervlak: kasseien - "Paarden " + Paarden Zoogdieren Historische steen Type: moordkruis @@ -2837,7 +2837,7 @@ Richting: tegen de klok in Richting: omhoog Richting: omlaag - "Richting: alle" + Richting: alle Klei Open Gesloten @@ -3198,8 +3198,8 @@ Voedingsmiddelenwinkel Verlichting Dierenvoederplaats - Soort: plank - Soort: telefooncel + Type: plank + Type: telefooncel Openingstijden op kerstdagen Kerstwinkel Watertank @@ -3222,8 +3222,8 @@ Slotenmaker Feestwinkel Sagardotegi - Soort: metaalkast - Soort: leesvak + Type: metalen kast + Type: leesvak Openbare boekenkast Kerstmis: locatie Kerstmis: opmerking @@ -3288,4 +3288,296 @@ Druk Pompstijl: moderne Pompsoort: zwaartekracht + Gemeenschap + Flessenwater + Watertank + Transport per watertruck + Bron (boorgat) + Pomp + Stromend water + Pijpleiding + Waterput + Aquatabs + Omgekeerde osmose + Chloor + Geen + Duurzaamheid van de waterplaats: noodgeval + Duurzaamheid van de waterplaats: duurzaam + Heeft onderhoud nodig + Defect + Beperkt + Zichtbaarheid: gebied + Zichtbaarheid: straat + Zichtbaarheid: huis + Locatie: ingang + Locatie: muur + Locatie: brug + Locatie: kiosk + Locatie: platform + Locatie: binnen + Locatie: buiten + Locatie: op het dak + Locatie: dak + Locatie: bovengronds + Locatie: ondergronds + DecoTurf + Tartan (kunststof) + Kloof + Wetgevende instelling + Ministerie van Financiën + Sociale zekerheid + Ministerie + Netwerk + Kano: ja + Kajaks: ja + Rubberboot: Ja + Zeilboten: ja + Jetski\'s: ja + Waterfietsen: ja + Woonboten: ja + Motorboten: ja + Reservering: alleen voor leden + Reservering: ja + Reservering: verplicht + Winterkamer: ja + Richting: ingang + Vrijlaten: ja + Adoptie: nee + Eigenaar + Dualsport + Choppers + Scooters + Motorkleding + Banden + Onderdelen + Reparatie + Verhuur + Verkoop: ja, tweedehands + Verkoop + Valkerij + Safaripark + Wildpark + Reddingsboei + Muziekschool + Reparatie van elektronica: tv + Reparatie van elektronica: computers + Coworking space + Constructie: schotel + Klif + Elektronica-winkel + Type: houten kast + Kerstmis: periode voor het evenement + Delegatie + Pijl + Trillen + Stopcontact: CEE-blauw (campingstekker) + Gezin + Meerdere gezinnen + Naam van de stroomversnelling + Pottenbakkerij + Vloerenwinkel + NEMA 5-20 + NEMA 5-15R + Tesla Roadster + Tesla Supercharger + Tesla-standaard + CHAdeMO + Type 3 + Type 2 combo + Type 2 + Type 1 combo + Type 1 + CEE-rood 125A + CEE-rood 64A + CEE-rood 32A + CEE-rood 16A + CEE-blauw + Coffeeshop + Scheepvaartwinkel + Open haarden-winkel + Landbouwwinkel + Diepvriesvoedsel + Type: weiland + Type: wisselbouw + Type: permacultuur + Type: landbouw + Diameter van de kroon + Omtrek + Klimroutes + Toplogboek: nee + Toplogboek: ja + Oriëntatie van de wand: NW + Oriëntatie van de wand: W + Oriëntatie van de wand: ZW + Oriëntatie van de wand: Z + Oriëntatie van de wand: ZO + Oriëntatie van de wand: O + Oriëntatie van de wand: NO + Oriëntatie van de wand: N + Vaste ankers: nee + Vaste ankers: ja + Klimkwaliteit: loszittend + Klimkwaliteit: vast + Klimrots: porfier + Klimrots: gneiss + Klimrots: kwartsiet + Klimrots: zandsteen + Klimrots: graniet + Klimrots: kalksteen + Maximale klimlengte + Minimale klimlengte + Klimlengte + Deep-water-soloing: nee + Deep-water-soloing: ja + Gemengd: nee + Gemengd: ja + IJs: nee + IJs: ja + Multi-pitch-routes: nee + Multi-pitch-routes: ja + Traditioneel: nee + Traditioneel: ja + Toprope: ja + Toprope: nee + Boulderen: nee + Boulderen: ja + Sport: nee + Sport: Ja + Postcode + Money transfer + Betalingscentrum + Appartement + Huisnummer + Straat + Privé-brievenbus + Depot + Kaartgrootte: plaats + Kaarttype: toposcoop + Kaarttype: schematisch + Kaarttype: straat + Kaarttype: topo + Vermogen van het laadstation + Stroomsterkte + Parkeergeld + Parkeergeld: nee + Parkeergeld: ja + Scooter: nee + Scooter: ja + Stopcontact: AS/NZS 3112: vermogen + Stopcontact: AS/NZS 3112: stroom + Stopcontact: AS/NZS 3112 + Stopcontact: BS 1363: vermogen + Stopcontact: BS 1363: stroom + Stopcontact: BS 1363 + Stopcontact: Schuko: vermogen + Stopcontact: Schuko: stroom + Stopcontact: Schuko + Stopcontact: NEMA 14-50: vermogen + Stopcontact: NEMA 14-50 + Stopcontact: NEMA 14-50: stroom + Stopcontact: NEMA 14-30: vermogen + Stopcontact: NEMA 14-30: stroom + Stopcontact: NEMA 14-30 + Stopcontact: NEMA 5-20: vermogen + Stopcontact: NEMA 5-20: stroom + Stopcontact: NEMA 5-20 + Stopcontact: NEMA 5-15R: vermogen + Stopcontact: NEMA 5-15R: stroom + Stopcontact: NEMA 5-15R + Stopcontact: Tesla Roadster: vermogen + Stopcontact: Tesla Roadster: stroom + Stopcontact: Tesla Roadster + Stopcontact: Tesla Supercharger: vermogen + Stopcontact: Tesla Supercharger: stroom + Stopcontact: Tesla Supercharger + Stopcontact: Tesla-standaard: vermogen + Stopcontact: Tesla-standaard: stroom + Stopcontact: Tesla-standaard + Stopcontact: CHAdeMO: vermogen + Stopcontact: CHAdeMO: stroom + Stopcontact: CHAdeMO + Stopcontact: Type 3: vermogen + Stopcontact: Type 3: stroom + Stopcontact: Type 3 + Stopcontact: Type 1 combo: vermogen + Stopcontact: Type 2 combo: vermogen + Stopcontact: Type 2 combo: stroom + Stopcontact: Type 2 combo + Stopcontact: Type 2: vermogen + Stopcontact: Type 2: stroom + Stopcontact: Type 2 + Stopcontact: Type 1 combo: stroom + Stopcontact: Type 1 combo + Stopcontact: Type 1: vermogen + Stopcontact: Type 1: stroom + Stopcontact: Type 1 + Stopcontact: CEE-rood 125A: vermogen + Stopcontact: CEE-rood 125A: stroom + Stopcontact: CEE-rood 125A + Stopcontact: CEE-rood 64A: vermogen + Stopcontact: CEE-rood 64A: stroom + Stopcontact: CEE-rood 64A + Stopcontact: CEE-rood 32A: vermogen + Stopcontact: CEE-rood 32A: stroom + Stopcontact: CEE-rood 32A + Stopcontact: CEE-rood 16A: vermogen + Stopcontact: CEE-rood 16A: stroom + Stopcontact: CEE-rood 16A + Stopcontact: CEE-blauw: vermogen + Stopcontact: CEE-blauw: stroom + Kinder + Academische + Religieuze + Antiquarische + Stripverhalen + Groothandel + Productie van snoepgoed + Veldverzameling + Inspectiemeter + Ventielgroep + Ventiel + Meting + Compressie + Compensatie + Omvormer + Spoorwegen + Overgang + Industrieel + Trafohuisje + Distributie + Transmissie + Alleen maar + Schoenmaker + Rijbewijzen + Rotsformatie + Winkel voor huishoudapparatuur + Waterleidingbedrijf + Notitieboek + Code + Stempelpunt + Wandelcontrolepost + Gemiddelde helling + Laagste punt + Hoogste punt + IJstong + Restant + Schelf + Rots + Kalvend + Hangend + Berg + Vallei + Getijdewater + Monding + Plateau + IJsveld + IJskap + Aantal kabels + Via ferrata + Tokkelbaan + Autoreparatie + Gamingcentrum voor volwassenen + Speelhal + Barbecue: ja + Pick-up punt \ No newline at end of file diff --git a/OsmAnd/res/values-nl/strings.xml b/OsmAnd/res/values-nl/strings.xml index 844e106bd4..f68a059d52 100644 --- a/OsmAnd/res/values-nl/strings.xml +++ b/OsmAnd/res/values-nl/strings.xml @@ -75,19 +75,19 @@ Toegankelijkheidsgerelateerde instellingen. Toegankelijkheid Niet genoeg werkgeheugen voor weergave van het geselecteerde gebied - Fluorescerende overlays - Gebruik fluorescerende kleuren voor de weergave van tracks and routes. + Fluorescerende extra lagen + Gebruik fluorescerende kleuren voor de weergave van tracks en routes. Offline bewerking Gebruik altijd offline bewerking. - Wijzigingen aan interessepunten hebben geen invloed op de gedownloade kaartbestanden, maar worden opgeslagen in een lokaal bestand. + Wijzigingen aan POI’s binnen de app hebben geen invloed op de gedownloade kaartbestanden, maar worden opgeslagen in een bestand op het apparaat. Uploaden… - "{0} Interessepunten/Opmerkingen zijn ge-upload" + {0} POI’s/opmerkingen zijn geüpload Upload alle Upload bewerking naar OSM Wis de bewerking OpenStreetMap asynchroon wijzigen: - Lokaal opgeslagen OSM-Interessepunten/Opmerkingen - Toon en beheer OSM-Interessepunten/Opmerkingen die lokaal zijn bewaard. + Op het apparaat opgeslagen OSM-POI’s/opmerkingen + Toon en beheer OSM-POI’s/opmerkingen die op het apparaat zijn opgeslagen. Specificeer interval voor online tracking. Interval voor online tracking Specificeer het webadres met parameters: lat={0}, lon={1}, timestamp={2}, hdop={3}, altitude={4}, speed={5}, bearing={6}. @@ -96,7 +96,7 @@ Toon huidige GPX-track Deze gratis versie van OsmAnd is beperkt tot %1$s downloads en ondersteunt geen offline Wikipedia artikelen. Gratis versie - Toon interessepunt-beschrijvingen. + Toon POI-beschrijving. Noord-Amerika Noord Amerika - Verenigde Staten Centraal Amerika @@ -143,7 +143,7 @@ Alleen automatisch volgen tijdens navigatie. Gebruikte kaartweergave centreren. Opties voor vectorkaarten - Bovenlaag / onderlaag + Extra kaartlaag / achtergrondlaag Kaartbron-instellingen Vectorkaart-instellingen %1$s verwijderen? @@ -157,11 +157,11 @@ Kan bestandsnaam niet wijzigen. Er bestaat al een bestand met die naam. Navigatie langs GPX-track - Meerdere gelijkaardige interessepunt-categorieën gevonden. - Download offline gegevens om naar interessepunten te zoeken. + Meerdere gerelateerde POI-categorieën gevonden. + Download offline gegevens om naar POI’s te zoeken. Zoek op naam - Het interessepuntenbestand \'%1$s\' is overbodig en kan worden verwijderd. - Lokaal bestand voor het bijhouden van wijzigingen van interessepunten niet gevonden en kan ook niet worden aangemaakt. + Het POI-bestand \'%1$s\' is overbodig en kan worden verwijderd. + Lokaal bestand voor het bijhouden van wijzigingen van POI’s niet gevonden en kon ook niet worden aangemaakt. Upgraden naar OsmAnd+ Op de server staan kaartbestanden die niet compatibel zijn met de huidige programmaversie. Je moet eerst OsmAnd updaten voordat je kaarten kan downloaden en gebruiken. Online (Nominatim) @@ -198,7 +198,7 @@ Kaarten installeren en beheren. Activeer Deactiveer - Interessepunt-gegevens + POI-gegevens Adresgegevens OV-gegevens Kaartgegevens @@ -207,7 +207,7 @@ Gesproken aanwijzingen (opgenomen) Online en opgeslagen tegelkaarten Normale kaarten (vector) - Interessepunt-gegevens + POI-gegevens Stemmen van spraaksynthese Nieuwe zoekactie Tekstgrootte voor namen op de kaart: @@ -225,23 +225,23 @@ Volg de gehele track Offline vectorkaart aanwezig voor deze locatie. \n\t\n\tOm deze te gebruiken, kies \'Menu\' → \'Kaart instellen\' → \'Kaartbron…\' → \'Offline vectorkaarten\'. - Audiokanaal stembegeleiding + Audiokanaal voor stembegeleiding Audiokanaal voor de stembegeleiding kiezen. Telefoonoproep-kanaal (onderbreekt Bluetooth autoradio) als melding Media/navigatie audiokanaal Kaartlaag %1$s kan niet worden gedownload. Probeer deze opnieuw te installeren. - Regel overlay-transparantie. - Overlay-transparantie + Regel de transparantie van extra kaartlagen. + Transparantie van extra kaartlaag Regel basiskaart-transparantie. Basiskaart-transparantie Wijzig transparantie (0 = transparant, 255 = volledig bedekt) - Underlay-kaart… - Underlay kaart - Kies underlay-kaart - Overlay kaart… - Overlay kaart - Kies overlay-kaart + Achtergrondkaart… + Achtergrondkaart + Kies achtergrondkaart + Extra kaartlaag… + Extra kaartlaag + Kies de extra kaartlaag Kaart is al geïnstalleerd, instellingen worden geactualiseerd. Kies (raster)kaarten om te installeren of te updaten. De benodigde internetverbinding voor deze actie is niet beschikbaar. @@ -294,15 +294,15 @@ Openbaar Vervoer Adres wordt geïndexeerd… Kaart wordt geïndexeerd… - Interessepunten worden geïndexeerd… + POI’s worden geïndexeerd… OV wordt geïndexeerd… km km/u m Verouderd kaartformaat \'\'{0}\'\' wordt niet ondersteund Auto hulp - Interessepunten in de buurt - Eigen filter + POI’s in de buurt + Aangepast filter Eten en drinken (winkel) Voor toeristen Brandstof @@ -333,7 +333,7 @@ Download {0} bestand(en) ({1} MB)? {0} item(s) geselecteerd Toon gedownloade - Snelle route + Snelste route Activeer voor de snelste route of deactiveer voor een zuinige route. Op zoom {0} omvat de download {1} kaartsegmenten ({2} MB) Download kaart @@ -366,8 +366,8 @@ Fout bij het lezen van GPX-gegevens. OsmAnd Offline vectorkaart Zoek Openbaar Vervoer bij halte - Wijzig Interessepunt - Verwijder Interessepunt + Wijzig POI + Verwijder POI Volgens kompas In beweegrichting Niet roteren (noorden boven) @@ -381,16 +381,16 @@ Fout tijdens laden van GPX. Stuur rapport Geen offline-gegevens voor regio gevonden op de SD kaart. Download regio\'s van het internet. - Type een zoekwoord om een interessepunt te vinden + Typ een zoekterm om een POI te vinden Alle Met dank aan Yandex voor de verkeersinformatie. Yandex Traffic Route OSM-Opmerkingen (online) - Interessepunt… + Kaartlaag met POI’s… Basiskaart… Kaartlagen - Zoek Interessepunt + Zoek naar POI Gebruik trackball om de kaart te verschuiven. Gebruik trackball Maximum wachttijd voor elke achtergrond positiebepaling. @@ -424,10 +424,10 @@ Bestand wordt uitgepakt… Sla rechtsaf en volg Sla scherp rechtsaf en volg - Sla licht rechtsaf en volg + Buig af naar rechts en volg Sla linksaf en volg Sla scherp linksaf en volg - Sla licht linksaf en volg + Buig linksaf en volg Keer om en volg Volg Ga door @@ -458,12 +458,12 @@ Toon Haltes Openbaar Vervoer op kaart. Toon Haltes Openbaar Vervoer Navigatieprogamma OsmAnd - Interessepunt-gegevens succesvol vernieuwd ({0} geladen) - Fout bij het vernieuwen van de interessepunten. + POI-gegevens zijn vernieuwd ({0} geladen) + Fout bij het vernieuwen van lokaal opgeslagen POI-gegevens. Fout bij het laden van gegevens van server. - Geen offline interessepunten beschikbaar voor dit gebied - Het vernieuwen van interessepunten is niet beschikbaar bij lage zoomniveaus - Interessepunt bijwerken + Geen POI-gegevens beschikbaar voor dit gebied + Zoom in on POI’s te kunnen bijwerken + POI bijwerken Lokale gegevens via internet bijwerken? Plaats: {0} Straat: {0}, {1} @@ -498,12 +498,12 @@ Start route begeleiding Soort vervoer: Kies eerst een bestemming - Routebeschrijving + Route Openingstijden Wijzigingsset openen… Wijzigingsset sluiten… Punt wordt vastgelegd… - Interessepunt wordt geladen… + POI wordt geladen… Authorisatie mislukt mislukt Converteer plaatselijke/Engelse namen… @@ -511,7 +511,7 @@ Postcodes worden geladen… Straten worden geladen… Steden worden geladen… - Interessepunt + POI Fout bij het opslaan van GPX-bestand. Fout bij routeberekening. Fout bij routeberekening. @@ -554,9 +554,9 @@ Toon kijkrichting Activeer 3D kaartbeeld. Kaartbeeld 3D - Toon laatst gebruikte interessepunten overlay. - Toon Interessepunten - Kies bron van online of opgeslagen kaartsegmenten + Toon laatst gebruikte POI-kaartlaag. + Toon POI-kaartlaag + Kies bron van online of gecachte kaartsegmenten. Kaartsegment bron Kaartbron Gebruik internet @@ -566,7 +566,7 @@ Navigatieprogramma Zoeken Zoeken - Kies Interessepunt + Kies POI Zoek meer Zoek plaats Zoek naar straatnaam @@ -594,7 +594,7 @@ Gebouw Zijstraat Kaart bijwerken - OSM-Interessepunt aanmaken + POI aanmaken Geef de favoriet een naam Favoriet Favoriet \'\'{0}\'\' is toegevoegd. @@ -606,11 +606,11 @@ Naam auteur Commentaar is toegevoegd Kon geen commentaar toevoegen. - Bewerk Interessepunt - OSM-Interessepunt aanmaken + POI wijzigen + POI aanmaken Punt niet gevonden of voorziening bestaat uit meerdere punten, wat nog niet ondersteund wordt. Verwijderen {0} (geef commentaar)? - Verwijder Interessepunt + POI verwijderen Verwijderd voeg toe wijzigen @@ -620,7 +620,7 @@ Info over punt niet geladen Openingstijden Commentaar - Interessepunt aangepast + POI gewijzigd Alle andere tags blijven bewaard Bevestigen Filter @@ -639,18 +639,18 @@ Gebruik online kaarten (download en bewaar deze op SD-kaart). Online kaarten Configureer online of bewaarde kaarttegels. - Geeft toegang tot vele soorten online (zogenaamde tegel of raster) kaarten, van vooraf gedefinieerde OpenStreetMap tegels (zoals Mapnik) tot satellietbeelden en lagen voor speciale doeleinden zoals weerkaarten, klimaatkaarten, geologische kaarten, reliëflagen, enz. + Geeft toegang tot vele soorten online (zogenaamde tile of raster) kaarten, van vooraf gedefinieerde OSM tiles (zoals Mapnik) tot satellietbeelden en lagen voor speciale doeleinden zoals weerkaarten, klimaatkaarten, geologische kaarten, reliëfschaduwlagen, enz. \n -\nAl deze kaarten kunnen worden gebruikt als de hoofd(basis)kaart, of als een extra laag of een achtergrondlaag bij een andere basiskaart (zoals de normale offline kaarten van OsmAnd). Om een achtergrondlaag beter te kunnen zien, kunt u elementen van de OsmAnd kaarten eenvoudig verbergen via het menu \'Kaart instellen\'. +\nAl deze kaarten kunnen worden gebruikt als de hoofd(basis)kaart, of als een extra laag of een achtergrondlaag bij een andere basiskaart (zoals de normale offline kaarten van OsmAnd). Om een achtergrondlaag beter te kunnen zien, kunt u elementen van de OsmAnd vectorkaarten eenvoudig verbergen via het menu \'Kaart instellen\'. \n -\nTegelkaarten zijn direct via online bronnen verkrijgbaar of kunnen voor offline gebruik gereedgemaakt worden (en handmatig gekopieerd naar de OsmAnd gegevensmap) als SQLite database door diverse hulpprogramma\'s van derden. +\nRasterkaarten zijn direct via online bronnen verkrijgbaar of kunnen voor offline gebruik gereedgemaakt worden (en handmatig gekopieerd naar de OsmAnd gegevensmap) als SQLite database door diverse hulpprogramma\'s van derden. Instellingen om tracking en navigatie te kunnen gebruiken met het scherm uit (schakelt de GPS periodiek in). Deze plug-in maakt de toegankelijkheids-opties van uw toestel beschikbaar in OsmAnd. Het vergemakkelijkt o.a. het aanpassen van de spreeksnelheid van tekst-naar-spraak stemmen, het configureren van D-pad scherm navigatie door gebruik van een trackbal voor zoomregeling of het gebruiken van tekst-naar-spraak opties voor het automatisch aankondigen van uw positie. Deze plug-in toont de instellingen voor ontwikkel- en debug-opties, zoals routetest en -simulatie, schermweergave-prestaties, en spraaksturing. Deze instellingen zijn bedoeld voor programmeurs die OsmAnd willen verbeteren en zijn niet nodig voor normaal gebruik. Plugins beheren Schakel plugins in voor speciale functies en extra instellingen. Plugin-manager - Gebruik deze plugin om bij te dragen aan OpenStreetMap (OSM), bijvoorbeeld door het aanmaken of wijzigen van OSM-interessepunten, aanmaken of becommentariëren van OSM-opmerkingen, en door GPX-tracks te uploaden. OSM is een wereldwijd community-driven project om een wereldwijde kaart te maken. Voor details zie https://openstreetmap.org. Actieve deelnemers zijn welkom, en bijdragen kunnen direct vanuit OsmAnd worden gemaakt, zodra uw OSM-aanmeldgegevens zijn ingevuld in de app. + Draag actief bij aan OSM, bijvoorbeeld door het aanmaken of wijzigen van OSM-POI-objecten, aanmaken of becommentariëren van OSM-opmerkingen, en door GPX-tracks te uploaden die met OsmAnd zijn opgenomen door uw gebruikersnaam en wachtwoord in te voeren. OpenStreetMap.org is een gemeenschappelijk public domain project om de wereld in kaart te brengen. noord-noordwest Positie zoeken… Huidige Positie (gevonden) @@ -659,7 +659,7 @@ Ongedefinieerd Navigatiedata Formaat - Zoek Interessepunt (POI) + Zoek POI (interessepunt) Adres zoeken Coördinaten Openbaar Vervoer zoeken @@ -707,7 +707,7 @@ Beschikbaar werkgeheugen %1$s MB (Android limiet %2$s MB, Dalvik %3$s MB). Beschikbaar werkgeheugen Werkgeheugen, gereserveerd door app %1$s MB (Dalvik %2$s MB, overig %3$s MB). -Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB). +\n Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB). Totaal werkgeheugen Snelheid van de routesimulatie: Uur @@ -744,7 +744,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).Start\nachtergrondmodus Stop\nachtergrondmodus email - Creëer interessepuntfilter + Creëer POI-filter Kies vervoerwijze: Zonsopgang: %1$s \nZonsondergang: %2$s Dag/nacht info @@ -752,44 +752,51 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).Kaartstijl Wereldwijde kaartweergave en navigatie voor offline en online OSM-kaarten OsmAnd is een open-source navigatiesysteem met online en offline kaarten - " OsmAnd (OSM Automated Navigation Directions) + OsmAnd (OSM Automated Navigation Directions) \n -\nOsmAnd is een open-source navigatie-applicatie die toegang geeft tot een uitgebreide variëteit aan wereldwijde OpenStreetMap (OSM) gegevens. Alle kaartgegevens (vector- of rasterkaarten) kunnen in het telefoongeheugen worden opgeslagen voor offline gebruik. OsmAnd biedt zowel offline als online route-aanwijzingen met stembegeleiding. +\n OsmAnd is een open-source navigatie-app die toegang geeft tot een grote variëteit aan wereldwijde OSM-gegevens. Alle kaartgegevens (vector- of rasterkaarten) kunnen in het telefoongeheugen worden opgeslagen voor offline gebruik. OsmAnd biedt ook zowel offline als online routeaanwijzingen, met stembegeleiding. \n -\n Enkele van de mogelijkheden: -\n - Volledig offline gebruik (met gedownloade vector- of rasterkaarten) +\n Enkele van de belangrijkste mogelijkheden: +\n - Volledig offline gebruik (gedownloade vector- of rasterkaarten worden opgeslagen op het apparaat) \n - Compacte offline vectorkaarten van de hele wereld zijn beschikbaar -\n - Kaarten van landen of regio\'s direct downloadbaar via de app -\n - Meerdere kaartlagen mogelijk, zoals GPX- of navigatietracks, interessepunten (points of interest), favorieten, hoogtelijnen, haltes openbaar vervoer, aanvullende kaarten met instelbare transparantie -\n - Offline zoeken naar adressen en plaatsen -\n - Offline route-aanwijzingen voor auto, fiets, en voetganger, keuze uit: -\n - optioneel automatische dag/nacht-weergave -\n - optioneel snelheidsafhankelijk inzoomen -\n - optionele kaartoriëntatie volgens kompas of bewegingsrichting -\n - optionele rijstrookinformatie, snelheidslimiet, opgenomen- en TTS-stemmen. +\n - Kaarten van landen of regio\'s zijn direct via de app te downloaden +\n - Meerdere extra kaartlagen mogelijk, zoals GPX- of navigatietracks, POI’s (points of interest), Favorieten, hoogtelijnen, OV-haltes, aanvullende kaarten met instelbare transparantie +\n - Offline zoeken naar adressen en plaatsen (POI’s) +\n - Offline routeberekening voor middellange afstanden +\n - Modus voor auto, fiets, en voetganger, met optioneel: +\n - Automatisch schakelen tussen dag- en nachtweergave +\n - Snelheidsafhankelijk in- en uitzoomen van de kaart +\n - Kaartoriëntatie volgens kompas of bewegingsrichting +\n - Rijstrookinformatie, snelheidslimiet, stembegeleiding met opgenomen- en TTS-stemmen \n -\n Beperkingen van de gratis versie van OsmAnd: +\n Beperkingen van deze gratis versie van OsmAnd: \n - Beperkt aantal kaartdownloads -\n - Geen toegang tot Wikipedia offline POI\'s. +\n - Geen toegang tot offline Wikipedia POI\'s. \n -\n OsmAnd wordt actief ontwikkeld en de verdere vooruitgang van het project is afhankelijk van financiële bijdragen om de ontwikkeling en toetsing van nieuwe functionaliteit te kunnen bekostigen. Wij verzoeken je om OsmAnd+ te kopen, of om een donatie over te maken via osmand.net. " - " OsmAnd+ (OSM Automated Navigation Directions) +\n OsmAnd wordt actief ontwikkeld en ons project en de verdere vooruitgang ervan is afhankelijk van +\nfinanciële bijdragen om de ontwikkeling en testen van nieuwe functionaliteit te kunnen bekostigen. +\nWij verzoeken je om OsmAnd+ te kopen, of om een donatie over te maken via https://osmand.net. + OsmAnd+ (OSM Automated Navigation Directions) +\n +\nOsmAnd+ is een open-source app voor navigatie die gebruikmaakt van de wereldwijde verzameling van OSM-gegevens. Alle kaartmateriaal (vector- en rasterkaarten) kunnen worden opgeslagen in het telefoongeheugen voor offline gebruik. De app biedt ook offline- en online-navigatie, met stembegeleiding. +\n +\n OsmAnd+ is de betaalde versie, door deze te kopen ondersteun je het project, betaal je mee aan nieuwe ontwikkelingen, en ontvang je de laatste updates. +\n +\n Een aantal van de belangrijkste eigenschappen: +\n - Complete functionaliteit zonder internetverbinding (vector- en rasterkaarten kunnen op het apparaat opgeslagen worden) +\n - Compacte offline vectorkaarten beschikbaar voor de hele wereld +\n - Onbeperkt downloaden van kaarten van landen of regio’s, rechtstreeks vanuit de app +\n - Offline Wikipedia functie (download Wikipedia-POI’s), geweldig voor sightseeing +\n - Meerdere extra kaartlagen beschikbaar, zoals GPX-tracks of routes, POI’s (interessepunten), Favorieten, hoogtelijnen en OV-haltes, met instelbare transparantie \n -\nOsmAnd is een open-source navigatie- en kaartsysteem dat gebruikmaakt van de grote verzameling OpenStreetMap-gegevens. Alle kaartgegevens kunnen worden opgeslagen in het telefoongeheugen voor offline gebruik. OsmAnd biedt zowel offline als online navigatie met stembegeleiding. -\n -\n OsmAnd+ is de betaalde versie. Door deze te kopen ondersteun je het project, betaal je mee aan nieuwe ontwikkelingen, en ontvang je de laatste updates. -\n -\n Belangrijke eigenschappen: -\n - Complete functionaliteit zonder internetverbinding -\n - Onbeperkt downloaden van offline-kaarten -\n - Compacte vectorkaarten voor de gehele wereld -\n - Download Wikipedia-interessepunten voor toerisme -\n - Offline zoeken naar adressen en plaatsen (POI) -\n - Offline routeberekening voor tot ca. 250 km -\n - Navigatie voor auto / fiets / voetganger -\n - Stembegeleiding, rijstrookindicatie en snelheidswaarschuwingen -\n - Meerdere kaartlagen voor POI, afgelegde weg, favorieten, hoogtelijnen, OV-haltes en extra kaarten -\n - Automatisch draaien en zoomen van de kaart " +\n - Offline zoeken naar adressen en plaatsen (POI’s) +\n - Offline routeberekening voor middellange afstanden +\n - Navigatie voor auto, fiets en voetganger met optioneel: +\n - Automatisch schakelen tussen dag- en nachtmodus +\n - Snelheidsafhankelijk in- en uitzoomen van de kaart +\n - Kaartoriëntatie op basis van kompas- of bewegingsrichting +\n - Rijstrookindicatie, snelheidswaarschuwingen en stembegeleiding met opgenomen- en TTS-stemmen +\n Geen snelwegen Positie op de weg uitlijnen tijdens navigatie. Positie op de weg uitlijnen @@ -818,7 +825,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).Registratiediensten Geen route Bestemming wissen - "Tussenpunt %1$s" + Tussenpunt %1$s Schakel GPS in via de instellingen Richting van de bestemming tonen Activeer de GPX-Track opnemen- Plugin om de afgelegde weg vast te leggen (GPX-track, online tracking) @@ -846,18 +853,18 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).Geen weergave van regio- en provinciegrenzen (grensniveaus 5-9). gedeelten Hoogtelijnen - Deze plug-in toont de hoogtelijnen en reliëflaag bovenop de normale kaart. Uitermate praktisch voor sporters, wandelaars, verre tochten, en iedereen die geïnteresseerd is in de hoogteverschillen van een landschap. (Een bijkomende download is noodzakelijk om deze te activeren.) + Deze plug-in toont hoogtelijnen en een reliëfschaduwlaag bovenop de normale OsmAnd-kaart. Uitermate praktisch voor sporters, wandelaars, trekkers, en iedereen die geïnteresseerd is in de hoogteverschillen van een landschap. \n -\nDe wereldwijde gegevens (van 70 graden noorderbreedte tot 70 graden zuiderbreedte) zijn gebaseerd op metingen door SRTM (Shuttle Radar Topography Mission) en ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), een beeldvormend instrument aan boord van de satelliet Terra, het vlaggeschip van NASA\'s Earth Observing System. ASTER is een samenwerkingsverband tussen NASA, het Japanse Ministerie van Economie, Handel en Industrie (METI), en het Japan Space Systems (J-spacesystems). +\nDe wereldwijde gegevens (van 70° noorderbreedte tot 70° zuiderbreedte) zijn gebaseerd op metingen door SRTM (Shuttle Radar Topography Mission) en ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), een beeldvormend instrument aan boord van de Terra-satelliet, het vlaggenschip van NASA\'s Earth Observing System. ASTER is een samenwerkingsverband tussen NASA, het Japanse Ministerie van Economie, Handel en Industrie (METI), en Japan Space Systems (J-spacesystems). Hoogtelijnen Andere kaarten Hoogtelijnen Maak audio-, foto-, video-notities tijdens een reis door gebruik te maken van een knop op de kaart of de locatie context menu. Audio-/videonotities OsmAnd-plugin voor offline hoogtelijnen - Deze plug-in toont de hoogtelijnen en reliëflaag bovenop de normale kaart. Uitermate praktisch voor sporters, wandelaars, verre tochten, en iedereen die geïnteresseerd is in de hoogteverschillen van een landschap. + Deze plug-in toont hoogtelijnen en een reliëfschaduwlaag bovenop de normale OsmAnd-kaart. Uitermate praktisch voor sporters, wandelaars, trekkers, en iedereen die geïnteresseerd is in de hoogteverschillen van een landschap. \n -\nDe wereldwijde gegevens (van 70 graden noorderbreedte tot 70 graden zuiderbreedte) zijn gebaseerd op metingen door SRTM (Shuttle Radar Topography Mission) en ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), een beeldvormend instrument aan boord van de satelliet Terra, het vlaggeschip van NASA\'s Earth Observing System. ASTER is een samenwerkingsverband tussen NASA, het Japanse Ministerie van Economie, Handel en Industrie (METI), en het Japan Space Systems (J-spacesystems). +\n De wereldwijde gegevens (van 70° noorderbreedte tot 70° zuiderbreedte) zijn gebaseerd op metingen door SRTM (Shuttle Radar Topography Mission) en ASTER (Advanced Spaceborne Thermal Emission and Reflection Radiometer), een beeldvormend instrument aan boord van de Terra-satelliet, het vlaggenschip van NASA\'s Earth Observing System. ASTER is een samenwerkingsverband tussen NASA, het Japanse Ministerie van Economie, Handel en Industrie (METI), en Japan Space Systems (J-spacesystems). Afstandsmeting Schakel \'locatie\' in om een notitie aan de locatie toe te voegen. Audionotities @@ -902,7 +909,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).Nauwkeurige routeberekening (alpha) Audio/video-gegevens Doe een donatie om OsmAnd uit te laten breiden met nieuwe functies. - Reliëfschaduwkaarten + Reliëfschaduwen Gebruik de systeemapplicatie voor foto\'s. Gebruik de camera-applicatie OpenMaps.eu @@ -915,7 +922,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).niet aangevinkt Aankomsttijd GPS info - Reliëfweergavelaag + Reliëfschaduwlaag OsmAnd Kaarten & Navigatie OsmAnd+ Kaarten & Navigatie Huisnummer @@ -988,8 +995,8 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).Wis Tussenpunten Bewaar Tussenpunten Er zijn al Tussenpunten gemaakt. - Routebeschrijving naar - Routebeschrijving vanaf + Route naar + Route vanaf Kaart: Naar: Via: @@ -1029,7 +1036,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).Zoom naar gemiddelde afstand Zoom naar grote afstand Gelieve eerst de route te berekenen - "Routesimulatie met de berekende route " + Routesimulatie met de berekende route Routesimulatie met een GPX-track Bent u zeker om %1$d OSM-wijzigingen te verwijderen\? Wandelsport @@ -1133,10 +1140,10 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).Deel route als GPX-bestand Route gedeeld via OsmAnd Ongeldig formaat: %s - Alleen handmatig (druk op de pijl) + Alleen handmatig (tik op de pijl) Herhaal de aanwijzingen regelmatig. - Herhaal de aanwijzingen - Aankondigen van de bestemming + Herhaal de routeaanwijzingen + Aankondiging van de bestemming Wanneer melden dat de bestemming bereikt is? Via OsmAnd gedeelde favorieten Bereken route tussen punten @@ -1168,7 +1175,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).Laad %1$s… Huidige tijd Instellen bestemmingen - Namen van interessepunten + Extra laag met namen van POI’s Routepunt \n\nLang drukken om op de kaart te bekijken Start navigatie automatisch @@ -1225,7 +1232,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).navigatie pauzeren Alpinewandelschaal (SAC) Paden volgens SAC-schaal kleuren. - Wandelroutes Kleuren + Extra laag met symbolen van wandelroutes Paden speciaal kleuren. Gebouwen kleuren per soort Vroegtijdig @@ -1242,7 +1249,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).Routepunt(en) Waarschuwingen Favorieten in de buurt - Interessepunt in de buurt + Dichtbij POI Alles Reizen GPX-track opnemen @@ -1358,8 +1365,8 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).Bewerk groep Om deze plugin te installeren is een internetverbinding nodig. Nautische kaartweergave - Om skikaarten te kunnen gebruiken, moet u de speciale offline skikaart downloaden - Om nautische kaarten te kunnen gebruiken, moet u de speciale offline nautische kaart downloaden + Download de speciale offline kaart om skifaciliteiten weer te geven. + Download de speciale offline kaart om nautische details weer te geven. Installeren Bekijk Ski-pistes @@ -1480,7 +1487,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).Routesimulatie Eenvoudige lijst Breedtegraad:\t%1$s -Lengtegraad:\t\t%2$s +\nLengtegraad: %2$s Veelgestelde vragen, recente wijzigingen en meer. Navigatie-instellingen Algemene instellingen @@ -1623,7 +1630,7 @@ Lengtegraad:\t\t%2$s Regio\'s Kaarten van regio\'s Wereldkaarten - Reliëfschaduw uitgeschakeld + Reliëfschaduwlaag uitgeschakeld Hoogtelijnen uitgeschakeld Categorie toevoegen Kies categorie @@ -1663,7 +1670,7 @@ Lengtegraad:\t\t%2$s De basis-wereldkaart ontbreekt of is verouderd. Download hem voor wereldwijd overzicht om lage zoomlevels. Update Upload - Interessepunt in OSM aangemaakt + OSM-POI aangemaakt Laat de app de volgende keer starten alsof deze net is geïnstalleerd. De instellingen blijven wel behouden. Simuleer eerste start van de app Overige @@ -1711,7 +1718,7 @@ Lengtegraad:\t\t%2$s Alles updaten (%1$s MB) Gebruikte gratis downloads Bekijk hoeveel gratis downloads er al gebruikt zijn. - "Kies waar kaarten en andere gegevens opgeslagen worden." + Kies waar kaarten en andere gegevens opgeslagen worden. \'Uit\' toont direct de kaart. Kies het land Nieuwe versie @@ -1871,7 +1878,8 @@ Lengtegraad:\t\t%2$s Niet actief Voer een geldig emailadres in Voer een Openbare Naam in - Bedankt voor je OSM Live Abonnement! Een herstart van OsmAnd is nodig. + Bedankt voor het steunen van OsmAnd! +\nOm toegang te krijgen tot alle nieuwe functies moet OsmAnd opnieuw gestart worden. Een gedeelte van je betaling gaat naar OSM-bijdragers in deze regio. Abonnementsgegevens Neem alsjeblieft eerst een abonnement op OsmAnd Live @@ -1953,7 +1961,7 @@ Lengtegraad:\t\t%2$s Volg ons Richting aangeven met geluid Geef de richting van de bestemming aan met geluid. - Richting aangeven met trilling + Richting aangeven met trillen Geef de richting van de bestemming aan met trillingen. Verplaats de kaart om de positie van de markering te wijzigen @@ -2005,7 +2013,7 @@ Lengtegraad:\t\t%2$s Vrije geheugenruimte Geef toestemming Toegang tot locatie toestaan - "Krijg routebeschrijvingen en ontdek nieuwe plaatsen, zonder Internetverbinding" + Krijg routeaanwijzingen en ontdek nieuwe plaatsen, zonder Internetverbinding Vind mijn positie Geen updates tonen Alle opgeslagen kaarttegels wissen @@ -2091,78 +2099,79 @@ Lengtegraad:\t\t%2$s Open Location Code (OLC) Ongeldige OLC - Ongeldige OLC + OLC te kort +\nGeef een volledige code Geldige volledige OLC -voor Gebied: %1$s x %2$s +\nBeslaat gebied: %1$s x %2$s Sneltoets - Actie %d + Sneltoets %d Scherm %d Markeervlaggetje toevoegen POI toevoegen - Kaartstijl wisselen + Kaartstijl wijzigen De kaartstijl is gewijzigd naar \"%s\". - Audio-notitie maken - Video-notitie maken - Maak foto - Voeg OSM-notitie toe - Stembegeleiding Aan/Uit - Stembegeleiding staat uit - Stembegeleiding staat aan - GPX-routepunt maken - Parkeerpositie instellen - Actie toevoegen - Actie bewerken + Audionotitie maken + Videonotitie maken + Fotonotitie maken + OSM-notitie toevoegen + Stembegeleiding aan/uit + Stembegeleiding aan + Stembegeleiding uit + GPX-routepunt toevoegen + Parkeerlocatie instellen + Sneltoets toevoegen + Sneltoets bewerken Favoriet toevoegen Actie toevoegen - Actie verwijderden - "Actie \"%s\" inderdaad verwijderen?" - Toon favorietenscherm + Sneltoets verwijderen + Weet je zeker dat je sneltoets \"%s\" wilt verwijderen\? + Toon Favorieten-scherm Naam voorstellen Een toets om een Markeervlaggetje toe te voegen in het midden van het scherm. Een knop om een GPX-routepunt toe te voegen in het midden van het scherm. - Een knop om een Audio-notitie toe te voegen in het midden van het scherm. - Een knop om een Video-notitie toe te voegen in het midden van het scherm. - Een knop om een Foto-notitie toe te voegen in het midden van het scherm. + Een knop om een audio-notitie toe te voegen in het midden van het scherm. + Een knop om een video-notitie toe te voegen in het midden van het scherm. + Een knop om een foto-notitie toe te voegen in het midden van het scherm. Een knop om een OSM-notitie toe te voegen in het midden van het scherm. - Een knop om een interessepunt toe te voegen in het midden van het scherm. + Een knop om een POI toe te voegen in het midden van het scherm. Een schakelknop om de stembegeleiding aan of uit te zetten tijdens navigatie. - Een knop om de parkeerpositie toe te voegen in het midden van het scherm. + Een knop om een parkeerlocatie toe te voegen in het midden van het scherm. Bewerkingsdialoog tonen " opgeslagen als " Plaats Sneltoetsnaam gewijzigd in %1$s om duplicaat te voorkomen. Sneltoets-duplicaat - Een schakelknop toont of verbergt de Favoriete punten op de kaart. - Een schakelknop toont of verbergt de interessepunten op de kaart. + Een schakelknop om Favorieten al dan niet te tonen op de kaart. + Een schakelknop om POI’s al dan niet op de kaart te tonen. Favorieten tonen /verbergen - Toon favorieten - Verberg favorieten - POI tonen/verbergen - Toon %1$s - Verberg %1$s + Favorieten tonen + Favorieten verbergen + POI’s tonen/verbergen + %1$s tonen + %1$s verbergen Categorie toevoegen Items aanmaken - Kaart-instellingen + Kaartinstellingen Navigatie - Leeg laten om automatisch adres of plaatsnaam te gebruiken. - Dit bericht wordt automatisch aangevuld in het commentaarveld. + Leeg laten om adres of plaatsnaam te gebruiken. + Dit bericht wordt automatisch ingevuld in het commentaarveld. Bericht Categorie om de Favoriet in op te slaan: - Kies een categorie (optie). + Kies een optionele categorie. POI-lijst - Je kunt één of meerdere POI-categorieën kiezen om weer te geven. + Je kunt één of meerdere POI-categorieën kiezen om te tonen op de kaart. Een knop om door de onderstaande lijst te bladeren. Kaartstijl toevoegen Alle parameters invullen Kaartstijlen - Overlay-kaart wijzigen - Overlay-kaarten - Overlay-kaart toevoegen - Overlay-kaart is gewijzigd naar \"%s\". - Underlay-kaart is gewijzigd naar \"%s\". - Underlay-kaart wijzigen - Underlay-kaarten - Underlay-kaart toevoegen + Extra kaartlaag wijzigen + Extra kaartlagen + Extra kaartlaag toevoegen + Extra kaartlaag gewijzigd naar \"%s\". + Achtergrondkaart is gewijzigd naar \"%s\". + Achtergrondkaart wijzigen + Achtergrondkaarten + Achtergrondkaart toevoegen Kaartbron wijzigen Kaartbronnen Kaartbron toevoegen @@ -2210,17 +2219,17 @@ voor Gebied: %1$s x %2$s Plaats kiezen Postcode zoeken Autozoom kaart aan/uit - Knop om de automatische kaartzoom volgens de snelheid aan of uit te zetten. + Knop om de snelheidsgebaseerde automatische zoom aan of uit te zetten. Autozoom aan Autozoom uit Bestemming instellen Bestemming vervangen - Eerste Tussenpunt toevoegen - Een druk op de sneltoets voegt het midden van het scherm toe als bestemming. De vorige bestemming wordt het laatste tussenpunt. - Een knop om de bestemming in het schermmidden te plaatsen waardoor de (eventuele) hiervoor geselecteerde bestemming wordt vervangen. + Eerste tussenpunt toevoegen + Een knop om het midden van het scherm in te stellen als bestemming, de vorige bestemming wordt het laatste tussenpunt. + Een knop om het midden van het scherm in te stellen als bestemming, waardoor de (eventueel) eerder ingestelde bestemming wordt vervangen. Een knop om het midden van het scherm als eerste tussenpunt toe te voegen. - Geen overlay - Geen underlay + Geen extra laag + Geen achtergrondlaag Foutmelding Abonneer op de mailinglijst voor aanbiedingen en ontvang 3 extra kaart-downloads! Zeedieptecontouren en zeemerkpunten. @@ -2254,12 +2263,12 @@ voor Gebied: %1$s x %2$s Punt(en) verwijderd. Wil u echt %1$d punt(en) verwijderen\? Afslagen op de route - Waypoints, interessepunten, benoemde belangrijke punten + Waypoints, POI’s, bekende plaatsen Selecteer hoogte-schommelingen In pauze Berbers - Download de Reliëfschaduw Overlaykaart om verticale schaduw te tonen. - Installeer de Hoogtelijnen-plugin om gegradueerde verticale gebieden te tonen. + Download ‘Reliëfschaduwkaarten’ om verticale schaduwen te tonen. + Installeer de ‘Hoogtelijnen’-plug-in om hoogteverschillen in het terrein te visualiseren. Verberg starten vanaf zoom-niveau Download de Hoogtelijnenkaart voor deze regio. Plugin @@ -2270,23 +2279,30 @@ voor Gebied: %1$s x %2$s Ga ook over privé-terreinen. Zoomniveau weergave: %1$s Voor grote afstanden: voeg tussenpunten toe als binnen de 10 minuten geen route berekend is. - "OsmAnd (OSM, Automated Navigation Directions) is een kaart- en navigatieprogramma dat de gratis, wereldwijde en gedetailleerde OpenStreetMap (OSM) data gebruikt. -\n -\nGebruikt visuele en gesproken navigatie, toont POI\'s (point of interest), maakt en volgt GPX-tracks, toont hoogtelijnen en hoogte informatie (via plug-in), kiest tussen auto, fiets, wandelen of andere, je kan de OSM-kaart bewerken en nog veel meer." - " - GPS-navigatie -• Offline (geen datakosten) of online (snellere) routeberekening -• Stap-voor-stap navigatie met opgenomen stem of gesproken straatnamen -• Route wordt herberekend wanneer u ervan afwijkt -• Rijstrookbegeleiding, straatnamen en verwachte aankomsttijd helpen u tijdens de reis -• Voor de veiligheid: automatische keuze van dag- of nachtweergave -• Toon maximum snelheid en waarschuw bij overschrijding -• Kaartgrootte past zich aan bij de snelheid -• Zoek bestemming op adres, soort (parkeerplaats, restaurant, brandstof, museum) of coördinaten -• Maak tussenpunten op een reis -• Neem uw reis op als GPX-spoor of volg een GPX-spoor - " - Kaart • Toon POI (Points Of Interest) • Draai in de bewegingsrichting (of kompasrichting) • Toont uw positie en waar u naar kijkt • Deel uw lokatie met vrienden • Bewaar belangrijke plaatsen in Favorieten • Toon namen in Engelse, lokale, of fonetische schrijfwijze • Toon extra informatie, zoals satellietfoto (van Bing), GPX-sporen, andere kaartstijlen en extra informatielagen + OsmAnd (OSM Automated Navigation Directions) is een kaart- en navigatie-app die gebruik maakt van de gratis, wereldwijde en hoogwaardige OSM-gegevens. +\n +\n Gebruik visuele en gesproken navigatie, toon POI\'s (point of interest), maak en volg GPX-tracks, toon hoogtelijnen en hoogte-informatie (via plug-in), kies tussen autorijden, fietsen of wandelen, bewerk de OSM-kaart en nog veel meer. + GPS-navigatie +\n • Offline (geen datakosten) of online (snellere) routeberekening +\n • Stap-voor-stap navigatie met opgenomen stem of gesproken straatnamen +\n • Route wordt herberekend wanneer u ervan afwijkt +\n • Rijstrookbegeleiding, straatnamen en verwachte aankomsttijd helpen u tijdens de reis +\n • Voor de veiligheid: automatische keuze van dag- of nachtweergave +\n • Toon maximumsnelheid en waarschuw bij overschrijding +\n • Kaartgrootte past zich aan bij de snelheid +\n • Zoek bestemming op adres, soort (parkeerplaats, restaurant, brandstof, museum) of coördinaten +\n • Maak tussenpunten op een reis +\n • Neem uw reis op als GPX-track of volg een GPX-track +\n + Kaart +\n • Toon POIs (Points Of Interest) in uw omgeving +\n • Draai de kaart in uw bewegingsrichting (of kompasrichting) +\n • Toon uw positie en waar u naar kijkt +\n • Deel uw lokatie met vrienden +\n • Bewaar belangrijke plaatsen in ‘Favorieten’ +\n • Toon namen in het Engels, de lokale taal, of fonetisch +\n • Toon extra online tiles, zoals een satellietfoto (van Bing), verschillende extra lagen zoals GPX-tracks voor navigatie e.d. met instelbare transparantie +\n Skiën \nMet de OsmAnd Ski plug-in ziet u pistes met hun moeilijkheidsgraad, en extra informatie zoals liften en andere faciliteiten. Fietsen @@ -2295,9 +2311,18 @@ voor Gebied: %1$s x %2$s \n• Bekijk uw snelheid en hoogte \n• De GPX opname optie stelt u in staat uw route op te slaan en deze te delen \n• Via een extra plugin kunt u hoogteverschillen weergeven als hoogtelijnen of reliëfschaduw - Wandelen • De kaart toont voetpaden, bergpaden, routes door parken • Wikipedia vertelt u meer over uw omgeving • OV-haltes (tram, bus, trein, metro), inclusief lijnnummers, helpen u te navigeren • Navigatie gebruikt voetpaden • Neem uw weg op als GPX-route of volg een gedownloade route + Lopen, wandelen, stadswandeling +\n • De kaart toont voetpaden en wandelpaden +\n • Wikipedia kan je veel vertellen tijdens een stadswandeling, in je eigen taal +\n • OV-haltes (tram, bus, trein, metro), inclusief lijnnummers, helpen je bij het reizen in een onbekende stad +\n • GPS-navigatie in voetgangermodus gebruikt voor het berekenen van de route voet- en wandelpaden +\n • Upload en volg een GPX-route of neem er zelf één op en deel deze. +\n + Draag bij aan OpenStreetMap (OSM) +\n • Meld fouten +\n • Upload GPX-tracks naar OSM, rechtstreeks vanuit de app +\n • Voeg POIs toe en upload deze direct naar OSM (of later in offline-modus) \n - Werk mee aan OpenStreetMap (OSM) • Meld fouten • Upload sporen naar OSM, direct vanuit de app • Voeg POI toe aan de kaart en upload deze OsmAnd is open-source en wordt steeds verder ontwikkeld. Iedereen kan helpen door bugs te melden, vertalingen te verbeteren of nieuwe functies te programmeren. Door deze interactie wordt het steeds beter. De ontwikkeling is mede afhankelijk van giften om programmeurs en testers, voor nieuwe functies, te betalen. \n \nIndicatie van compleetheid en kwaliteit van de kaart: @@ -2312,7 +2337,7 @@ voor Gebied: %1$s x %2$s \n • Afrika: ** \n • Antarctica: * \n Voor bijna elk land ter wereld kunt u een kaart downloaden. - Indicatie van compleetheid en kwaliteit van de kaart: + Indicatie van de volledigheid en kwaliteit van het kaartmateriaal: \n • West-Europa: **** \n • Oost-Europa: *** \n • Rusland: *** @@ -2322,14 +2347,15 @@ voor Gebied: %1$s x %2$s \n • Japan & Korea: *** \n • Midden-Oosten: ** \n • Afrika: ** -\n • Antarctica: * Van bijna alle landen is een kaart te downloaden: van Afghanistan tot Zimbabwe, Australië tot de VS, Nederland, Duitsland, Spanje, Japan, … +\n • Antarctica: * +\n Van bijna alle landen is een kaart te downloaden: van Afghanistan tot Zimbabwe, Australië tot de VS, Nederland, Duitsland, Spanje, Japan, … \n Naam bevat erg veel hoofdletters, toch doorgaan? Zoek in Favorieten - Toon of verberg OSM notities - Toon OSM notities - Verberg OSM notities - Knop om OSM notities te tonen of verbergen. + OSM-notities tonen of verbergen + OSM-notities tonen + OSM-notities verbergen + Knop om OSM-notities al dan niet te tonen. Gesorteerd op afstand Uw bestemming ligt in een gebied dat particulier eigendom is. Wilt u gebruik van particuliere wegen voor deze route toestaan\? Opnieuw zoeken @@ -2353,19 +2379,55 @@ voor Gebied: %1$s x %2$s Rechten Kan bestand niet importeren. Controleer of OsmAnd rechten heeft om het bestand te lezen. Gecorrigeerde afstand - OsmAnd+ (OSM Automated Navigation Directions) is een kaart- en navigatieprogramma dat de gratis, wereldwijde en uitgebreide OpenStreetMap (OSM) gegevens gebruikt. -\nMet akoestische en visuele navigatie, toont POI (points of interest), maakt en beheert GPX-sporen, gebruikt hoogtelijnen en hoogtegegevens, kiest tussen auto, fiets en wandelen, je kan OSM bewerken en veel meer. + OsmAnd+ (OSM Automated Navigation Directions) is een kaart- en navigatie-app die de gratis, wereldwijde en hoogwaardige OSM-gegevens gebruikt. +\n Gebruik gesproken en visuele navigatie, toon POI‘S (points of interest), maak en beheer GPX-tracks, toon hoogtelijnen en hoogtegegevens, kies tussen autorijden, fietsen en wandelen, bewerk OSM en nog veel meer. +\n +\n OsmAnd+ is de betaalde versie van de app. Met de aanschaf ondersteun je het project, het ontwikkelen van nieuwe functies, en ontvang je de laatste updates. +\n +\n Een paar van de belangrijkste functies: + " Navigatie +\n • Online (snel) of offline (zonder roamingkosten in het buitenland) +\n • Stap-voor-stap stembegeleiding (met opgenomen of TTS-stemmen) +\n • Optioneel met rijstrookindicatie, weergave van straatnamen en geschatte aankomsttijd +\n • Ondersteuning voor tussenstops op de route +\n • Automatische herberekening bij het afwijken van de route +\n • Zoek op adres, soort (bijv.: restaurant, hotel, benzinepomp, museum) of geografische coördinaten " + Kaartweergave +\n • Positie en richting tonen +\n • Kaart draaien in kompas- of bewegingsrichting +\n • Bewaar belangrijke plaatsen in ‘Favorieten’. +\n • Toon POI’s (points of interest) in de buurt +\n • Toon specifieke online tiles, satellietbeelden (van Bing), en extra lagen zoals GPX-tracks met rit-/routeinformatie e.d., met instelbare transparantie +\n • Toon plaatsnamen in het Engels, de lokale taal of fonetisch weergegeven +\n + Gebruik OSM- en Wikipedia-gegevens +\n • De beste gegevens van de beste wereldwijde samenwerkingsprojecten +\n • OSM-gegevens beschikbaar per land of regio +\n • Wikipedia-POIs, geweldig voor sightseeing +\n • Onbeperkte gratis downloads, rechtstreeks vanuit de app +\n • Compacte offline vectorkaarten die tenminste eens per maand worden bijgewerkt \n -\nOsmAnd+ is de betaalde versie van de app. Met de aanschaf ondersteunt u het project, het maken van nieuwe functies, en krijgt u de nieuwste functies. -\n -\nEen paar belangrijke functies: - " Navigatie • werkt online (snel) of offline (zonder roaming-kosten in het buitenalnd) • gesproken stap-voor-stap navigatie (met opgenomen of synthetische stem) • optioneel met rijstrookaanduiding, straatnamen und geschatte aankomsttijd • tussenstops op de route • automatische herberekening bij het verlaten van de route • zoek op adres, soort (bijv.: restaurant, hotel, benzinepomp, museum) of geografische coördinaten " - " kaart bekijken • positie en richting tonen • kaart richten volgens kompas of volgens beweging • bewaar plaatsen als favoriet • toon POIs (point of interest) in de buurt • toon specifieke online-kaarten, satellietbeelden (van Bing), overlays zoals GPX-sporen met rit-/routeinformatie und extra kaartlagen met instelbare transparantie • toon plaatsnamen in Engels, de taal van het land of phonetisch weergegeven " - " gebruik OSM- en Wikipedia-gegevens • de beste gegevens van de beste wereldwijde projecten • OSM-gegevens per land of regio • Wikipedia-POIs voor sightseeing • onbeperkte gratis downloads vanuit de app • compacte vectorkaarten, tenminste eens per maand bijgewerkt • keuze tussen volledige kaarten of alleen het stratennet (bijv: Japan compleet is 700 MB, de straten maar 200 MB) " - " veiligheidsfucties • kan automatisch tussen dag- en nachtweergave schakelen • kan maximum snelheid weergeven en waarschuwen bij overschrijding • kan kaartwegave aanpassen aan de snelheid • locatie doorgeven aan uw vrienden, zodat ze u kunnen vinden " - " functies voor fietsers en voetgangers • weergave van voetpaden, wandelroutes en fietspaden voor buitenactiviteiten • aangepaste weergave en routeberekening voor voetgangers en fietsers • weergave van OV-haltes (bus, tram, trein), inclusief zijnnummers • leg de afgelegde weg vast in een GPX-bestand op het apparaat of online • snelheids- en hoogteweergave • hoogtelijnen en reliëfschaduw weergeven (extra module) " - " bewerk OSM • meld verkeerde kaartgegevens • upload GPX-sporen naar OSM • voeg POIs toe en upload ze naar OSM • neem een GPX-spoor op met het apparaat in slaapstand -\n OsmAnd is open-source wordt actief ontwikkeld. iedereen kan bijdragen door bugs te melsen, de vertaling te verbeteren of nieuwe functies te programmeren. Het project wordt druk verbeterd door al deze vormen van interactie met gebruikers. Het project is tevens afhankelijk van financiële bijdragen om programmeer- en testwerk te kunnen bekostigen. " +\n • Keuze tussen volledige kaarten van een regio of alleen het wegennet (Voorbeeld: De volledige kaart van Japan is 700 MB, het wegennet 200 MB) + Veiligheidsfuncties +\n • Kan automatisch tussen dag- en nachtweergave omschakelen +\n • Kan de maximumsnelheid weergeven en waarschuwen bij overschrijding +\n • Kan het zoomniveau aanpassen op basis van de snelheid +\n • Locatie delen met vrienden, zodat ze u kunnen vinden +\n + Functies voor fietsers en voetgangers +\n • Weergave van voetpaden, wandelroutes en fietspaden, geweldig voor buitenactiviteiten +\n • Aangepaste weergave en routeberekening voor voetgangers en fietsers +\n • Optionele weergave van OV-haltes (bus, tram, trein), inclusief lijnnummers +\n • Optioneel vastleggen van de afgelegde weg in een GPX-bestand op het apparaat of online-dienst +\n • Optionele weergave van snelheid en hoogte +\n • Weergave van hoogtelijnen en reliëfschaduwen (via extra plugin) + Rechtstreeks bijdragen aan OSM +\n • Meld foutieve gegevens +\n • Upload GPX-tracks naar OSM, rechtstreeks vanuit de app +\n • Voeg POIs toe en upload ze direct naar OSM (of later in offline-modus) +\n • Kan een GPX-track opnemen op de achtergrond (als het apparaat in slaapstand staat) +\n OsmAnd is open-source en wordt actief ontwikkeld. Iedereen kan bijdragen door bugs te melden, de vertaling te verbeteren of nieuwe functies te ontwikkelen. Het project is ook afhankelijk van financiële bijdragen om ontwikkeling en tests van nieuwe functies te bekostigen. +\n Reset Opnieuw laden Verkeerde gebruikersnaam @@ -2399,7 +2461,7 @@ voor Gebied: %1$s x %2$s GPX bestandsnaam: Toon op kaart na opslaan Afstand meten - Start/stop navigatie + Navigatie starten/stoppen Gemiddeld %1$d van de %2$d Probeer opnieuw @@ -2480,7 +2542,7 @@ voor Gebied: %1$s x %2$s Bestand %1$s bevat geen waypoints. Importeren als een track? Verplaats punt Voeg toe aan GPX-track - "Filter afbeeldingen op gebruikersnaam, datum of type. Alleen actief wanneer ingezoomd." + Filter afbeeldingen op gebruikersnaam, datum of type. Alleen actief wanneer ingezoomd. Kaart weergeven Route berekend Lus @@ -2505,7 +2567,7 @@ voor Gebied: %1$s x %2$s Maak markeringen aan op de kaart! Twee Een - Kies hoeveel markeervlaggetjes getoond worden: + Kies hoeveel markeervlaggetjes getoond worden. Aantal decimalen Rechts Links @@ -2538,24 +2600,24 @@ voor Gebied: %1$s x %2$s Op type Meer Toon cijfertoetsenbord - "App herstarten " + App herstarten Afbeeldingen tonen - "U hebt het abonnement op OsmAnd Live opgezegd " + U hebt uw abonnement op OsmAnd Live opgezegd Vernieuw het abonnement om alle mogelijkheden te blijven gebruiken: Op basis van je bladwijzers, raden we je aan de volgende kaarten te downloaden: Kaarten die je nodig hebt OsmAnd-team - "Populaire bestemmingen " + Populaire bestemmingen Betaalde app Betaalde plug-in Nieuwe Wikivoyage-bestanden beschikbaar, updaten om deze te gebruiken. Download Wikivoyage-reisgidsen om artikelen te lezen over plaatsen wereldwijd, zonder internetverbinding. - "Update beschikbaar " - "Bestand downloaden " + Update beschikbaar + Bestand downloaden De gratis wereldwijde reisgids die iedereen kan bewerken. Reisgidsen zijn gebaseerd op Wikivoyage. Test gratis alle mogelijkheden tijdens de open beta-testfase. Hierna zijn de reisgidsen beschikbaar voor abonnees van OsmAnd Unlimited en OsmAnd+. Je kunt artikelen bewerken op Wikivoyage. Deel jouw kennis, ervaringen, talent en interesses. - "Begin met bewerken " + Begin met bewerken Krijg onbeperkte toegang Welkom bij de open beta Reisgids @@ -2578,34 +2640,35 @@ voor Gebied: %1$s x %2$s Doen Alleen met Wifi Afbeeldingen downloaden - Afbeeldingen bij de artikelen kunnen gedownload worden voor offline gebruik. Je kan deze instelling altijd wijzigen via Opties. + Afbeeldingen bij de artikelen kunnen gedownload worden voor offline gebruik. +\nAltijd beschikbaar in het menu ‘Verkennen’ → ‘Opties’. Alleen met Wifi Kies een reisgids - "Reisgids " + Reisgids Pagina is alleen online beschikbaar. Openen in webbrowser? Afbeeldingen-cache - "Zoekgeschiedenis wissen " - "Afbeeldingen downloaden " + Zoekgeschiedenis wissen + Afbeeldingen downloaden Reisgidsen Wikivoyage Artikel verwijderd Zoek: Land, Provincie, Stad - "Lezen " + Lezen Artikelen met bladwijzer - "Doorzoeken " - "Inhoud " - "Resultaat " - "Twee cijfers gebruiken voor lengtegraad (i.p.v. drie) " - "Reisgids " + Verkennen + Inhoud + Resultaat + Twee cijfers gebruiken voor lengtegraad + Reisgidsen Niets gevonden: Wis alle tussenpunten - "Groep verwijderd " + Groep verwijderd Wildwatersporten Het verste eerst Het dichtstbijzijnde eerst Lengtegraad invoeren - "Breedtegraad invoeren " - "Lengte- en breedtegraad invoeren " + Breedtegraad invoeren + Lengte- en breedtegraad invoeren DD°MM′SS″ GG.GGGGGG° GG.GGGGG° @@ -2615,12 +2678,12 @@ voor Gebied: %1$s x %2$s W Z N - "Naam (niet verplicht) " + Naam (niet verplicht) Nabije routes binnen Binnen Bestandsnaam invoeren. - "Fout bij kaartimport " - "Kaart geïmporteerd " + Fout bij kaartimport + Kaart geïmporteerd Instellen als startpunt Huidige Voeg een tussenstop toe @@ -2630,13 +2693,13 @@ voor Gebied: %1$s x %2$s OSM-opmerkingen op de kaart tonen/verbergen. GPX - geschikt voor export naar JOSM en andere OSM-editors. OSC - geschikt voor export naar OSM. - "GPX-bestand " + GPX-bestand OSC-bestand Kies bestandstype Exporteer als OSM-aantekeningen, POI of beide. - "Alle gegevens " + Alle gegevens OSM-aantekeningen - "Gaat morgen open om " + Gaat morgen open om POI-namen Zonder naam Wat is dit hier: @@ -2647,14 +2710,13 @@ voor Gebied: %1$s x %2$s Totaal Volledige beschrijving verbergen Volledige beschrijving tonen - Geschikt voor off-road gebruik in \'Topo\' stijl en voor gebruik met groene satellietbeelden als onderliggende kaart. Verminderde dikte van hoofdwegen, vergrootte dikte van landwegen, paden, fiets- en andere routes. + Geschikt voor off-road gebruik in \'Topo\'-stijl en voor gebruik met groene satellietbeelden als achtergrondlaag. Verminderde dikte van hoofdwegen, vergrootte dikte van veld- en boswegen, paden, fiets- en andere routes. Zeekaartstijl. Toont boeien, vuurtorens, rivieren, vaargeulen en -markeringen, havens, bakens, dieptelijnen. Skistijl. Toont pistes, skiliften en andere ski-gerelateerde elementen. Overige kaartelementen worden verduisterd. Eenvoudige stijl voor autonavigatie. Zachte nachtmodus, hoogtelijnen, contrasterende wegen in oranje stijl, verduistert overige kaartelementen. Voor wandelaars, trektochten en fietsenrs in de natuur. Buiten goed leesbaar. Contrasterende wegen en natuurlijke objecten, verschillende routetypen, geavanceerde hoogtelijn opties, extra details. Aanpassing van de oppervlakte-integriteit onderscheidt de kwaliteit van de weg. Geen nachtmodus. Oude \'Mapnik\'-standaardstijl. Kleuren vergelijkbaar met \'Mapnik\'. - Hoog contrast en maximaal detail, bevat alle opties van de standaardstijl van OsmAnd. Duidelijk onderscheid tussen wegtypes. -\nGeschikt voor dag, nacht en outdoor gebruik. + Stijl met hoog contrast en maximaal detail. Deze bevat alle opties van de standaardstijl van OsmAnd, met zoveel mogelijk details, specifiek wegen, paden en andere reismogelijkheden. Geen verschil tussen “wegenkaart”-wegtypes. Geschikt voor dag, nacht en outdoor gebruik. Universele stijl. Vereenvoudigde weergave dichtbevolkte steden. Hoogtelijnen, routes, oppervlakkwaliteit, toegangsrestricties, wegnummers, weergave van paden volgens de SAC-schaal, wildwatersportelementen. WIkipedia-link online openen De link wordt in een webbrowser geopend. @@ -2686,16 +2748,17 @@ voor Gebied: %1$s x %2$s Zoeken naar het bijbehorende wiki-artikel Artikel niet gevonden Hoe Wikipedia-artikelen te openen? - Wijzig acties + Wijzig sneltoetsen Bladwijzer - "Punt %1$s verwijderd" + Punt %1$s verwijderd Punt bewerken Punt toevoegen Je hebt %1$s punten toegevoegd. Geef een bestandsnaam en tik op \"Opslaan\". Stuur alsjeblieft een screenshot van deze melding naar support@osmand.net - "Dank voor feedback " + Dank voor uw feedback Knoop of weg kan niet worden gevonden. - Geef uw feedback + Geen zoekresultaten\? +\nGeef feedback Vergroot het zoekgebied tot %1$s Uw zoekterm wordt verstuurd naar: \"%1$s\", samen met uw locatie. \n @@ -2729,7 +2792,7 @@ voor Gebied: %1$s x %2$s \n \n • Ondersteuning voor het wijzigen van polygon-(non-faciliteits)voorwerpen \n - Druk op een knop en luister naar de bijhorende gesproken melding om ontbrekende of foutieve meldingen te identificeren. + Tik op een knop en luister naar de bijbehorende gesproken prompt om te horen of deze ontbreekt of incorrect is Abonnementen Mogelijk gemaakt door OsmAnd Tariefoverzicht @@ -2739,26 +2802,26 @@ voor Gebied: %1$s x %2$s %1$s / maand %1$.2f %2$s / maand Bespaar %1$s - "Uw huidige abonnement " + Uw huidige abonnement Wordt maandelijks verlengd - "Wordt per kwartaal verlengd " - "Wordt per jaar verlengd " + Wordt per kwartaal verlengd + Wordt per jaar verlengd %1$.2f %2$s Betaal-interval: Giften helpen OSM cartografie te financieren. Markeervlaggetje \'%s\' verwijderen\? - "Markeervlaggetje bewerken " + Markeervlaggetje bewerken App van derde partij Straatnaam zoeken Geef eerst stad/gemeente/localiteit op - "Herstellen " + Herstellen Vorige vlaggetjes op de kaart behouden Meerdere verbindingen beschikbaar vanaf deze halte. Geef OsmAnd toegang tot uw locatie om door te gaan. Markeervlaggetjes die als Favorieten of als GPX-track toegevoegd zijn, en afgehandeld zijn, blijven zichtbaar op de kaart. Als die groep niet meer actief is, zullen ze verdwijnen. Alleen 360°-foto\'s tonen Zwart - Kopieer locatie/interessepunt naam + Kopieer locatie/POI-naam Vermijd trams Geen bussen Vermijd bussen en trolleybussen @@ -2774,13 +2837,13 @@ voor Gebied: %1$s x %2$s Milliradialen Wijzig azimut eenheid. Selecteer de te vermijden openbaar vervoer opties: - %s modus + %smodus Vermijd transport types… Loop Verkort de lengte van \"%s\" tot minder dan 255 karakters. Lengte van waarde \"%s\" Lees meer op onze blog over hoe OsmAnd routes berekent. - Navigatie binnen openbaar vervoer is op dit moment in de beta testfase. Houd rekening met fouten en onnauwkeurigheden. + OV-navigatie is op dit moment in bèta-test, houd rekening met fouten en onnauwkeurigheden. Voeg tussenpunt toe Voeg vertrekpunt en bestemming toe Voeg vertrekpunt toe @@ -2818,7 +2881,7 @@ voor Gebied: %1$s x %2$s Straat Dienstweg Voetpad - Track + Veld- of bosweg Ruiterpad Treden Pad @@ -2829,14 +2892,14 @@ voor Gebied: %1$s x %2$s Huidige tijd Stap voor stap Weg types - Uitstappen op + Uitstappen bij Wissel Toon meer Getoonde tracks - Toon/Verberg GPX-tracks - Een knop om bepaalde GPX-tracks te tonen of verbergen op de kaart. - Verberg GPX-tracks - Toon GPX-tracks + GPX-tracks tonen/verbergen + Een knop om geselecteerde GPX-tracks al dan niet te tonen op de kaart. + GPX-tracks verbergen + GPX-tracks tonen Voeg a.u.b. eerst de Bestemming in Vorige route Thuisadres toevoegen @@ -2852,7 +2915,7 @@ voor Gebied: %1$s x %2$s Stel het vertrekpunt in Tussenpunt Te voet - Interessepunten (POI) + POI’s (interessepunten) Route berekenen… Openbaar vervoer Selecteer de weg die u wilt vermijden gedurende navigatie, of op de kaart of van de onderstaande lijst: @@ -2863,10 +2926,10 @@ voor Gebied: %1$s x %2$s Tussenbestemmingen Aankomst om %1$s Open - Tik deze knop om te wisselen tussen de OsmAnd dag en nacht modus. - Dag modus - Nacht modus - Wissel tussen dag/nacht modus + Een schakelknop om OsmAnd om te schakelen tussen dag- en nachtmodus. + Dagmodus + Nachtmodus + Wissel tussen dag-/nachtmodus Oppervlakte Kwaliteit wegdek Steilte @@ -2967,9 +3030,9 @@ voor Gebied: %1$s x %2$s Geef eerst een profielnaam op. Dubbele naam Er bestaat al een profiel met die naam - Basisprofielen van OsmAnd kun je niet verwijderen + Basisprofielen van OsmAnd kunnen niet verwijderd worden Wijzigingen opslaan - Sla wijzigingen aan het profiel eerst op + Sla wijzigingen van het profiel eerst op Profiel verwijderen Weet je zeker dat je profiel \"%s\" wilt verwijderen Selecteer een profiel om mee te starten @@ -2985,7 +3048,7 @@ voor Gebied: %1$s x %2$s Magenta Icoon Tik nogmaals om de kaartoriëntatie te wijzigen - Standaard snelheid + Standaardsnelheid Standaard snelheidsinstellingen aanpassen Min/max snelheid instellen Crash @@ -2996,8 +3059,8 @@ voor Gebied: %1$s x %2$s Selecteer scherminstellingen voor het profiel Selecteer navigatieinstellingen voor het profiel Maximaal aantal keer overstappen - Aantal aanpassingen - Scherm aanzetten bij een bocht + Aantal overstappen + Scherm aanzetten bij een afslag Gebruik nabijheidssensor Schakel minste één applicatieprofiel in om deze instelling te kunnen gebruiken. Winterweg @@ -3013,7 +3076,7 @@ voor Gebied: %1$s x %2$s Track %s is opgeslagen Caravan Toon lage emissiezones op de kaart. Heeft geen invloed op de navigatie. - Toon lage emissie zones + Toon milieuzones Houd rekening met tijdelijke beperkingen Standaard Dag @@ -3096,7 +3159,7 @@ voor Gebied: %1$s x %2$s Eenheden & formaten Kaartweergave App thema, eenheden, regio - Meldingen linksonder weergeven tijdens het navigeren. + Waarschuwingen linksonder weergeven tijdens het navigeren. Taal en output App profielen beheren… Effectief voor de gehele app @@ -3106,7 +3169,7 @@ voor Gebied: %1$s x %2$s Gesproken meldingen enkel tijdens het navigeren. Navigatie-instructies en aankondigingen Gesproken instructies - Meldingen + Visuele waarschuwingen Configureer routeparameters Routeparameters Profiel gewijzigd naar \"%s\" @@ -3115,7 +3178,7 @@ voor Gebied: %1$s x %2$s Herstel Wis %1$s\? Buiten de piste - Schat de aankomsttijd in voor onbekende wegtypes en beperkt maximum snelheid voor alle wegen (kan de route beïnvloeden) + Schat de aankomsttijd in voor onbekende wegtypes en beperkt de maximumsnelheid voor alle wegen (kan de route beïnvloeden) Toestand 1 Toestand 2 Toestand 3 @@ -3127,19 +3190,19 @@ voor Gebied: %1$s x %2$s Papegaai Mobilhome Standaard - naast elkaar + Naast elkaar Kaarten Knop om hoogtelijnen al dan niet te tonen op de kaart. - Toon de hoogtelijnen - Verberg de hoogtelijnen - Toon/verberg de hoogtelijnen - Knop om de reliëflaag al dan niet te tonen op de kaart. - Toon de reliëflaag - Verberg de reliëflaag - Toon/verberg de reliëflaag + Hoogtelijnen tonen + Hoogtelijnen verbergen + Hoogtelijnen tonen/verbergen + Knop om de reliëfschaduw al dan niet te tonen op de kaart. + Reliëfschaduw tonen + Reliëfschaduw verbergen + Reliëfschaduw tonen/verbergen Track opgeslagen Toon knooppunt van de fietsroutes - Hoogtelijnen en reliëflaag + Hoogtelijnen en reliëfschaduw Verzend log Kaarten verplaatsen Deel alstublieft uw terugkoppeling en waardeer ons werk op Google Play. @@ -3166,10 +3229,10 @@ voor Gebied: %1$s x %2$s Aangepast route profiel Speciale routering Third-party routering - Voeg tenminste één item toe aan de lijst in de \'Snelle acties\' instellingen + Voeg tenminste één item toe aan de lijst via de instelling \'Sneltoetsen\' Alpine/afdaling ski Hellingen voor alpine en bergafwaarts skiën en toegang tot skiliften. - Cross country/nordic ski + Cross country/langlaufen Sporen voor nordic of cross-country skiën. Ski tours Routes voor ski tours. @@ -3190,22 +3253,22 @@ voor Gebied: %1$s x %2$s Freeride en off-piste zijn officieuze routes en passages. Officieel meestal niet geprepareerd en onderhouden, en niet \'s avonds gecheckt. Op eigen risico betreden. Verzamelde data Laatste OsmAnd uitvoering gecrasht. Help ons alstublieft OsmAnd te verbeteren door de foutmelding te delen. - Persoonlijk vervoer + Personal transporter Offroad WunderLINQ Wegtype Track openen - Verbind de gaten + Verbind onderbrekingen Route: afstand %s, reistijd %s \nBerekening: %.1f sec, %d wegen, %d tegels) Occitaans Stationwagon Pick-up truck - Verkrijg %1$d %2$s met %3$s korting. + Nu %1$d %2$s met %3$s korting. %1$s voor de eerste %2$s %1$s voor de eerste %2$s daarna %1$s - Annuleer inschrijving + Abonnement beëindigen %1$s • Bespaar %2$s Analyse Scherm aan gedurende @@ -3221,7 +3284,7 @@ voor Gebied: %1$s x %2$s Verbinding Skitocht Bergafwaarts - Nordic + Langlaufen Type piste Beginner Makkelijk @@ -3242,7 +3305,7 @@ voor Gebied: %1$s x %2$s Sla tracks op in dagelijkse folders Sla tracks op in sub-folders per opname dag (zoals 2018-01-01). Simuleer uw positie door een opgenomen GPX track te gebruiken. - Een knop om het scherm te centreren op het vertrekpunt. Zal dan de bestemming vragen of de routeberekening starten. + Een knop om het midden van het scherm in te stellen als vertrekpunt. Hierna wordt de bestemming gevraagd of de routeberekening gestart. Dialoogvenster kaart downloads Dialogen en meldingen Bepaal popups, dialogen en meldingen. @@ -3370,9 +3433,9 @@ voor Gebied: %1$s x %2$s Kies een naam voor het profiel Open instellingen Plugin uitgeschakeld - "Deze plug-in is een afzonderlijke App, je zal die afzonderlijk dienen te verwijderen als je die niet meer nodig denkt te hebben. -\n -\nDe plug-in blijft op je toestel bij het verwijderen van OsmAnd." + Deze plug-in is een afzonderlijke app, die afzonderlijk verwijderd moet worden als je deze niet meer nodig denkt te hebben. +\n +\nDe plug-in blijft op het apparaat aanwezig na het verwijderen van OsmAnd. Menu %1$s — %2$s — %3$s Routering @@ -3389,9 +3452,9 @@ voor Gebied: %1$s x %2$s Een extra recht segment tussen mijn locatie en de berekende route zal getoond worden tot de route herberekend is Minimale hoek tussen mijn locatie en de route Voorbereiding - POI types + POI-types Niets geselecteerd - Snelle acties + Sneltoetsen Profielen De getoonde %1$s zijn in OsmAnd reeds beschikbaar. Huidige elementen worden vervangen door elementen uit het bestand @@ -3411,10 +3474,10 @@ voor Gebied: %1$s x %2$s Kan profiel niet back-uppen. %1$s of %2$s Hellingen - Toon/Verberg de omgeving - Verberg de omgeving - Toon de omgeving - Een knop om een laag op de kaart weer te geven of te verbergen. + Terrein tonen / verbergen + Terrein verbergen + Terrein tonen + Een knop om de terreinlaag al dan niet te tonen op de kaart. Verwijder een beschrijving Voeg een beschrijving toe Selecteer groep @@ -3425,16 +3488,218 @@ voor Gebied: %1$s x %2$s Combineer POI-types uit verschillende categorieën. Tik op \"Schakelen\" om alles te selecteren, tik op de linkerkant voor de categoriekeuze. Extra kaarten Niet ondersteunde actie %1$s - OsmAnd zoeker - OsmAnd & Mapillary - Snelle actie + OsmAnd tracker + OsmAnd + Mapillary + Sneltoets Radius liniaal Afstand meten Reizen (Wikivoyage en Wikipedia) Markeervlaggetjes Favorieten Abonnement - OsmAnd Live - OsmAnd aankopen - De gids voor de kaartsymbolen + OsmAnd-aankopen + Betekenis van de kaartsymbolen. Navigatieprofielen + Stel de breedte van het vaartuig in om smalle bruggen te vermijden + Stel de hoogte van het vaartuig in om lage bruggen te vermijden. Let op, als de brug beweegbaar is, gebruiken we de hoogte in geopende toestand. + Als \"%1$s\" is geactiveerd, is de actieve tijd hiervan afhankelijk. + Standaard schermtimeout + ton + meter + Toon/verberg extra kaartdetails + Nachtkaart + Voeg online bron toe + Het toepassen van deze wijzigingen wist de cache van deze tile-bron + Stel de hoogte van het vaartuig in + Stel de hoogte van het vaartuig in om lage bruggen te vermijden. Let op, als de brug beweegbaar is, gebruiken we de hoogte in geopende toestand. + Mapillary tonen/verbergen + Mapillary verbergen + Mapillary tonen + Een schakelknop om de Mapillary-laag al dan niet te tonen op de kaart. + Geef de toegestane voertuiglengte op voor routes. + Maximale lengte + Richting + %1$s verwijderd + Een herstart is noodzakelijk om de gegevens van snelheidscamera’s volledig te verwijderen. + Verwijderen en Herstarten + Dit apparaat bevat geen informatie over snelheidscamera’s. + Inline skates + Actief houden + Verwijder + Het waarschuwen voor snelheidscamera’s is in sommige landen in strijd met de wet. + Acties in het contextmenu + Belangrijkste acties + U kunt toegang krijgen tot deze acties door op de \"%1$s\" knop te tikken. + De betaling wordt na bevestiging van de aankoop in rekening gebracht op je Google Play-account. +\n +\n Het abonnement wordt automatisch verlengd, tenzij het wordt opgezegd vóór de verlengingsdatum. De betaling wordt alleen op de verlengingsdatum op uw account in rekening gebracht voor de verlengingsperiode (maand / drie maanden / jaar). +\n +\n Je kunt je abonnementen beheren en opzeggen via de Google Play-instellingen. + Kon de geo-intent \'%s\' niet verwerken. + Antarctica + Sorteer op categorie + Hervatten + Neveneffecten: Perioden zonder beweging worden helemaal niet geregistreerd of met slechts één punt per keer. Kleine bewegingen (in de echte wereld) (bijvoorbeeld zijwaarts, om een mogelijke afslag tijdens uw reis te markeren) kunnen worden uitgefilterd. Het bestand bevat minder informatie voor nabewerking, en heeft slechtere statistieken door het filteren van duidelijk overbodige punten tijdens de opname, terwijl artefacten die worden veroorzaakt door slechte ontvangst of GPS-chipseteffecten wel worden bewaard. + Dit filter voorkomt dat dubbele punten worden opgenomen als er te weinig daadwerkelijke beweging kan hebben plaatsgevonden, dit zorgt voor een mooiere weergave van tracks die later niet nabewerkt worden. + Opmerking: als GPS was uitgeschakeld vlak voor het begin van een opname, kan het eerste gemeten punt een verminderde nauwkeurigheid hebben, dus in onze software willen we misschien een seconde wachten voordat we een punt opnemen (of het beste van 3 opeenvolgende punten opnemen, enz.), maar dit is nog niet geïmplementeerd. + Aanbeveling: Het is moeilijk te voorspellen wat er wordt opgenomen en wat niet, het is misschien beter om dit filter uit te schakelen. + Neveneffect: Als gevolg van filteren op nauwkeurigheid, kunnen punten volledig ontbreken, b.v. onder bruggen, onder bomen, tussen hoge gebouwen of bij bepaalde weersomstandigheden. + Opmerking: snelheid > 0 controle: De meeste GPS-chipsets melden alleen een snelheid als het algoritme bepaalt dat u in beweging bent, en geen als u dat niet bent. Vandaar dat het gebruik van de ‘> 0’-instelling in dit filter in zekere zin gebruikmaakt van de bewegingsdetectie van de GPS-chipset. Maar zelfs als niet hier gefilterd wordt tijdens de opname, maken we nog steeds gebruik van deze functie in onze GPX-analyse om de afgelegde afstand te bepalen, dat wil zeggen dat de waarde die wordt weergegeven in dat veld, de afstand is die is opgenomen tijdens beweging. + Terrein + Helling gebruikt kleuren om de steilheid van het terrein te visualiseren. + Stel de minimale en maximale zoomniveaus in waarbij de laag wordt weergegeven. + Om Hellingen te tonen zijn extra kaarten nodig. + Meer over Hellingen in %1$s. + Transparantie + Zoomniveaus + Legenda + Alle gegevens uit de %1$s zijn geïmporteerd, open met de onderstaande knoppen het benodigde deel van de app om deze te beheren. + Import voltooid + Items toegevoegd + OsmAnd controleert %1$s op duplicaten met bestaande items in de app. +\n +\nDit kan even duren. + Bezig met importeren + Gegevens importeren uit %1$s + Weet je zeker dat je de opgenomen gegevens wil wissen\? + Route herberekenen in geval van afwijking + Selecteer de afstand waarbij de route wordt herberekend. + De route wordt herberekend als de afstand van de route tot de huidige locatie groter is dan de geselecteerde waarde. + Achthoek + Vierkant + Pas het aantal items aan in \'Map, \'Kaart configureren\' en \'Contextmenu\'. +\n +\nSchakel ongebruikte plug-ins uit om al hun besturingselementen te verbergen. %1$s. + Mappen, contextmenu + Aanpassing van de gebruikersinterface + Map + Herschik of verberg items uit de %1$s. + Scheidingslijn + Elementen na dit punt zijn gescheiden door een scheidingslijn. + Verborgen + Deze items worden niet getoond in het menu, maar de bijbehorende opties of plug-ins blijven werken. + Door instellingen te verbergen worden deze in hun oorspronkelijke staat hersteld. + Heeft maar vier knoppen. + U kunt items alleen binnen deze categorie verplaatsen. + Plug-in voor ontwikkelaars + Vervang een ander punt door dit punt. + Toerskiën + Sneeuwscooter + Aangepaste OsmAnd-plug-in + Items + Wijzigingen toegepast op het \'%1$s\'-profiel. + Kon niet lezen van \'%1$s\'. + Kon niet schrijven naar \'%1$s\'. + Kon niet importeren uit \'%1$s\'. + Selecteer track-bestand + Talen + Taal + Alle talen + Om Wikipedia-POI’s op de kaart te tonen zijn extra kaarten nodig. + Selecteer de talen voor Wikipedia-artikelen op de kaart. Tijdens het lezen van het artikel kan omgeschakeld worden naar een andere beschikbare taal. + Sommige Wikipedia-artikelen zijn mogelijk niet beschikbaar in de eigen taal. + Kantonees + Minnanyu + Yoruba + Waray-Waray + Oezbeeks + Urdu + Tataars + Tadzjieks + Schots + Siciliaans + Punjabi + Nepalees + Napolitaans + Birmaans + Mongools + Minangkabaus + Malagasi + Kirgizisch + Kazachs + Javaans + Gujarati + Tsjoevasjisch + Tsjetsjeens + Beiers + Bashkir + Aragonees + Lombardisch + Aangepaste kleur + %1$s / %2$s + POI-types zoeken + OV-informatie verbergen + OV-informatie tonen + OV-informatie tonen/verbergen + Knop om OV-informatie al dan niet te tonen op de kaart. + Favoriet toevoegen / bewerken + POI toevoegen / bewerken + Parkeerlocaties + Standaardvolgorde van de items herstellen + Terugkeren naar wijzigen + De sneltoets wisselt tussen de geselecteerde profielen. + Voeg profiel toe + Wijzig app-profiel + Wereldoverzichtskaart (gedetailleerd) + Niet ondersteund type + Geef de voertuigbreedte op, er zijn mogelijk routebeperkingen voor brede voertuigen. + Geef de voertuighoogte op, er zijn mogelijk routebeperkingen voor hoge voertuigen. + Geef het voertuiggewicht op, er zijn mogelijk routebeperkingen voor zwaar verkeer. + OsmAnd GPX is corrupt, neem contact op met het support team voor verder onderzoek. + Altijd + Scherminstellingen + Zet het scherm uit volgens de systeeminstelling van de schermtimeout. + Gebruik de schermtimeout van het systeem + Kies wanneer het scherm aangezet moet worden (OsmAnd moet in de voorgrond actief zijn als het apparaat vergrendeld wordt): + Scherm aanzetten bij elke routeaanwijzing. + Routeaanwijzingen + Uitgeschakeld. De instelling ‘Timeout na wakker worden’ moet ingesteld zijn op ‘Scherm aanlaten’. + Door op de aan/uit-knop te drukken gaat het scherm aan met OsmAnd op de voorgrond van het vergrendelscherm. + Aan/uit-knop + Nabijheidssensor + Selecteer de schermtimeout na wakker worden. (Kies “%1$s” om geen timeout te gebruiken.) + Scherm uitlaten + Scherm aanlaten + Pseudo-Mercatorprojectie + Eén beeldbestand per tile + SQLiteDB-bestand + Geef een naam voor de online kaartbron. + De URL van de onlinebron invoeren of plakken. + Bewerk onlinebron + Vervaldatum + Mercatorprojectie + Opslagformaat + Stel een minimum en maximum zoomniveau in om de online kaart te tonen of te laden. + Alles wissen\? + Sneltoetsen kunnen geëxporteerd of geïmporteerd worden met app-profielen. + Weet je zeker dat je %d sneltoetsen onherroepelijk wil verwijderen\? + In sommige landen of regio’s is het gebruik van toepassingen om te waarschuwen voor snelheidscamera’s in strijd met de wet. +\n +\nMaak een keuze op basis van de geldende wet. +\n +\nKies %1$s om meldingen en waarschuwingen te ontvangen over snelheidscamera’s. +\n +\nKies %2$s om alle gegevens over snelheidscamera’s te verwijderen: waarschuwingen, meldingen en POI’s worden verwijderd tot OsmAnd volledig opnieuw geïnstalleerd wordt. + Verwijder snelheidscamera’s + Legaal + Snelheidscamera’s als POI’s + De reliëfschaduwkaart maakt gebruik van donkere schaduwen om hellingen, bergtoppen en valleien te visualiseren. + Om Reliëfschaduw te tonen zijn extra kaarten nodig. + Reliëfschaduw + Selecteer deze optie om een reliëfschaduw- of hellingskaart te tonen. Op onze site staat meer informatie over deze kaarttypes. + Heeft invloed op de weergave bij gebruik als kaart of als extra kaartlaag/achtergrondlaag. +\n +\n%1$s: De kaart wordt alleen getoond binnen het geselecteerde zoombereik. +\n +\n%2$s zijn de niveau’s waarop de originele tiles zichtbaar zijn, buiten dit bereik wordt gebruik gemaakt van upscaling of downscaling. + Gecachte tiles worden na het opgegeven aantal minuten opnieuw gedownload. Laat dit veld leeg om tiles van deze bron nooit te vernieuwen. +\n +\nEen dag is 1440 minuten. +\nEen week is 10 080 minuten. +\nEen maand is 43 829 minuten. + Kies hoe gedownloade tiles worden opgeslagen. + Geen overeenkomende profielen gevonden. + Time-out van het scherm + Inschakelen om het zoomniveau van de kaart in te stellen met de volumeknoppen. + Gebruik volumeknoppen om in en uit te zoomen \ No newline at end of file diff --git a/OsmAnd/res/values-pt-rBR/phrases.xml b/OsmAnd/res/values-pt-rBR/phrases.xml index b15c965fcd..12dae4b911 100644 --- a/OsmAnd/res/values-pt-rBR/phrases.xml +++ b/OsmAnd/res/values-pt-rBR/phrases.xml @@ -3829,4 +3829,5 @@ Vibração: Não Seta Vibração + Caixa de distribuição \ No newline at end of file diff --git a/OsmAnd/res/values-pt-rBR/strings.xml b/OsmAnd/res/values-pt-rBR/strings.xml index 353195ce51..027e5e21c7 100644 --- a/OsmAnd/res/values-pt-rBR/strings.xml +++ b/OsmAnd/res/values-pt-rBR/strings.xml @@ -3793,4 +3793,7 @@ Pôr do Sol: %2$s Especifique o comprimento do veículo a ser permitido nas rotas. Limite de comprimento Este dispositivo não possui câmeras de velocidade. + Patins em linha + Ativar para controlar o nível de zoom do mapa com os botões de volume do dispositivo. + Botões de volume como zoom \ No newline at end of file diff --git a/OsmAnd/res/values-ru/strings.xml b/OsmAnd/res/values-ru/strings.xml index 1048b0b22c..19ebf6f420 100644 --- a/OsmAnd/res/values-ru/strings.xml +++ b/OsmAnd/res/values-ru/strings.xml @@ -3786,13 +3786,13 @@ Показать Mapillary Переключатель, чтобы показать или скрыть слой Mapillary на карте. Законодательство - В некоторых странах и регионах использование предупреждений о камерах контроля скорости запрещено законом. -\n -\nВам нужно сделать выбор в зависимости от законодательства вашей страны. -\n -\nВыберите \"%1$s\", чтобы получать предупреждения о камерах контроля скорости. -\n -\nВыберите \"%2$s\", чтобы удалить все данные, связанные с камерами контроля скорости (уведомления, предупреждения и POI), до полной переустановки OsmAnd. + В некоторых странах и регионах использование предупреждений о камерах контроля скорости запрещено законом. +\n +\nВам нужно сделать выбор в зависимости от законодательства вашей страны. +\n +\nВыберите «%1$s», чтобы получать предупреждения о камерах контроля скорости. +\n +\nВыберите «%2$s», чтобы удалить все данные, связанные с камерами контроля скорости (уведомления, предупреждения и POI), до полной переустановки OsmAnd. Оставить включёнными Удалить камеры контроля скорости POI камер контроля скорости @@ -3806,4 +3806,6 @@ Предельная длина В этом устройстве нет камер контроля скорости. Роликовые коньки + Управление уровнем масштабирования карты с помощью кнопок регулировки громкости устройства. + Масштабирование кнопками громкости \ No newline at end of file diff --git a/OsmAnd/res/values-sc/phrases.xml b/OsmAnd/res/values-sc/phrases.xml index e6d16782c5..3fde39d219 100644 --- a/OsmAnd/res/values-sc/phrases.xml +++ b/OsmAnd/res/values-sc/phrases.xml @@ -3825,4 +3825,5 @@ Vibratzione: nono Fritza Vibratzione + Iscàtula pro donos (give box) \ No newline at end of file diff --git a/OsmAnd/res/values-sc/strings.xml b/OsmAnd/res/values-sc/strings.xml index b42ad0c9df..2611a5d02a 100644 --- a/OsmAnd/res/values-sc/strings.xml +++ b/OsmAnd/res/values-sc/strings.xml @@ -3271,7 +3271,7 @@ Còpia dae un\'àteru profilu Mapa durante sa navigatzione Mapa durante sa navigatzione - Pesu, artària, lestresa + Pesu, artària, longària, lestresa Paràmetros de su veìculu Sos annùntzios vocales benint riproduidos petzi durante sa navigatzione. Istrutziones e annùntzios de navigatzione @@ -3805,4 +3805,10 @@ %1$s iscantzelladu Depes torrare a allùghere pro iscantzellare de su totu sos datos de sos autovelox. Disinstalla e torra a allùghere + Dillinda sa longària de su veìculu pro tènnere su permissu pro sas àndalas. + Lìmite de longària + Custu dispositivu non tenet autovelox. + Pàtinos in lìnia + Abìlita pro controllare su livellu de ismanniamentu cun sos butones de su volume de su dispositivu. + Butones de su volume pro s\'ismanniamentu \ No newline at end of file diff --git a/OsmAnd/res/values-sk/strings.xml b/OsmAnd/res/values-sk/strings.xml index bdbceb9033..c265bbf1e4 100644 --- a/OsmAnd/res/values-sk/strings.xml +++ b/OsmAnd/res/values-sk/strings.xml @@ -3805,4 +3805,6 @@ Limit dĺžky Toto zariadenie neobsahuje rýchlostné radary. Kolieskové korčule + Umožní ovládať priblíženie mapy tlačidlami hlasitosti zariadenia. + Tlačidlá hlasitosti na približovanie \ No newline at end of file diff --git a/OsmAnd/res/values-sr/phrases.xml b/OsmAnd/res/values-sr/phrases.xml index 11e046459a..2fa9363f13 100644 --- a/OsmAnd/res/values-sr/phrases.xml +++ b/OsmAnd/res/values-sr/phrases.xml @@ -1538,7 +1538,7 @@ Истраживачка канцеларија Новинарска канцеларија Канцеларија архитекта - Штампарија + Кладионица Канцеларија за религије Канцеларија удружења Финансијска канцеларија @@ -2765,4 +2765,11 @@ Реф. Реф. тунела Реф. моста + Академске + Дечије + Религијске + Антикварница + Стрип + Свеска + Тип: полица \ No newline at end of file diff --git a/OsmAnd/res/values-sr/strings.xml b/OsmAnd/res/values-sr/strings.xml index 8f8f55c5bf..b11bf427f9 100644 --- a/OsmAnd/res/values-sr/strings.xml +++ b/OsmAnd/res/values-sr/strings.xml @@ -1382,7 +1382,7 @@ Радње Ознака Стварајте или мењајте предмете ОСМ-а - Стварајте или мењајте ОСМ тачке од интереса, отворите или коментаришите на ОСМ белешке и доприносите снимањем GPX фајлова. + Стварајте или мењајте ОСМ тачке од интереса, отворите или коментаришите ОСМ белешке и доприносите снимањем GPX фајлова. Избрисано Уређено Додато @@ -3266,7 +3266,7 @@ Карта за време навођења Карта за време навођења Остало - Тежина, висина, брзина + Тежина, висина, дужина, брзина Параметри возика Гласовна обавештења су дешавају само за време навођења. Инструкције и обавештења приликом навођења @@ -3452,7 +3452,7 @@ Проверите и поделите детаљне записе апликације Не могу да расчланим гео намеру ’%s’. Потребне су дозволе за коришћење ове опције. - Ово је филтер за одсецање малих брзина који не бележи тачке испод одређене брзине. Овим снимљене стазе изгледају. + Ово је филтер за одсецање малих брзина који не бележи тачке испод одређене брзине. Овим снимљене стазе изгледају глаткије када се гледају на карти. Нуспојаве: Вашим стазама ће недостајати све секције где критеријум минимума брзине није био испуњен (нпр. где сте гурали бицикл узбрдо). Такође, неће бити информација о периодима мировања, као што су прављење пауза. Ово може да има ефекта на анализу или пост-процесирање, као што је одређивање укупне дужине пута, времена кретања, или просечне брзине. Препорука: Покушајте прво да користите детектор кретања преко филтера минималног помераја (B) прво, пошто може дати боље резултате и изгубићете мање података. Ако Ваше стазе остану пуне шума при малим брзинама, пробајте са не-нултим вредностима овде. Пазите да неки типови мерења неће уопште давати мерења брзине (неки методи преко мреже) у ком случају нећете снимити ништа. Опаска: провера брзине > 0: већина GPS чипова пријављује вредност брзине само ако алгоритам примети да сте у покрету и ништа уколико нисте. Коришћење поставке >0 у овом филтеру је заправо коришћење сензора покрета из GPS чипа. Чак иако се не филтрира овде за време снимања, ми и даље користимо ову функционалност у нашој GPX анализи да одредимо пређену удаљеност, тј. вредност коју приказујемо у том пољу је пређена удаљеност за време кретања. @@ -3482,8 +3482,8 @@ Доступно Додај произвољну категорију Прикажи само ноћу - Све поставке додатка враћене на подразумевано стање. - Све поставке профила враћене на подразумевано стање. + Све поставке додатка враћене на подразумевано. + Све поставке профила враћене на подразумевано. %1$s/%2$s Сунце залази у %1$s Сунце излази у %1$s @@ -3502,7 +3502,7 @@ Мени %1$s — %2$s — %3$s Укључи додатне податке - Увезени профил садржи додатне податке. Кликните на Увоз да увезете да увезете само профилне податке или одаберите које додатне податке увести. + Увезени профил садржи додатне податке. Кликните на Увоз да увезете само профилне податке или одаберите додатне податке. Поред профила, можете одабрати додатне податке за извоз. Антарктик Можете додати произвољне категорије, сакрити категорије које су Вам сувишне и променити им редослед у списку. Списак се може увести и извести са профилима. @@ -3536,7 +3536,7 @@ \nДодатак ће остати на уређају и после уклањања OsmAnd апликације. Рутирање Подразумевано у апликацију (%s) - Искључи прерачунавање + Без прерачунавања Минимална удаљеност за прерачунавање пута Пут ће бити прерачунат ако је удаљеност до пута већа од одабраног параметра Произвољни профил @@ -3565,7 +3565,7 @@ Поврати све поставке профила\? Чувам нови профил Не могу да направим резервну копију профила. - Прикажи/сакриј терен + Прикажи / сакриј терен Сакриј терен Прикажи терен Дугме да прикаже или сакрите слој терена на карти. @@ -3577,11 +3577,11 @@ Октагон Квадрат Мин - Замени другу тачку са овом + Замени другу тачку са овом. Сноумобил Произвољни OsmAnd додатак - Не могу да читам %1$s. - Не могу да увезем %1$s. + Не могу да читам из „%1$s”. + Не могу да увезем из „%1$s”. Не могу да пишем %1$s. Језици Језик @@ -3660,4 +3660,96 @@ Можете подесити висину пловила да избегнете ниске мостове. Имајте на уму да, уколико мост може да се помера, користићемо његову висину када је отворен. Подесите висину пловила да избегнете ниске мостове. Имајте на уму да, уколико мост може да се помера, користићемо његову висину када је отворен. Подесите ширину пловила и избегните уске мостове + Укључите да омогућите контролу нивоа увећања са дугмићима за јачину звука. + Дугмићи за јачину звука за зумирање + "Деинсталирај и поново покрени" + Овај уређај нема радаре. + Ролери + Поновно покретање је потребно да се потпуно избришу подаци о радарима. + %1$s обрисано + Лимит дужине + Курс + Прикажи или сакриј Mapillary слој на карти. + Одаберите дужину возика која је дозвољена на путевима. + У неким државама или областима, коришћење апликација за обавештавање о радарима на путу је забрањено законом. +\n +\nМорате направити избор овде, у зависности од закона Ваше државе. +\n +\nОдаберите %1$s и примажете обавештења и упозорења о радарима и камерама за брзину. +\n +\nОдаберите %2$s. Сви подаци везани за радере: упозорења, обавештења, тачке од интереса ће бити обрисане док се OsmAnd поново не инсталира. + Правно + Ако је „%1$s” укључен, време активности ће зависити од тога. + Избриши радаре + Радарске тачке од интереса + Држи активним + Избриши + Упозорења за радаре су законом забрањене у неким државама. + Прикажи/сакриј Mapillary + Сакриј Mapillary + Прикажи Mapillary + Јоруба + Варајски + Таџички + Узбечки + Урду + Татарски + Шкотски + Наполитански + Сицилијански + Панџаби + Непалски + Бурмански + Монголски + Минангкабајски + Малгашки + Киргиски + Казашки + Јавански + Гуџарати + Чувашки + Чеченски + Баварски + Башкирски + Арагонски + Ломбардијски + Произвољна боја + %1$s / %2$s + Претрага типова тачака од интереса + Комбинујте типове тачака од интереса из различитих категорија. Кликните прекидач да одабере све, кликните на леву страну да одаберете категорију. + Маркери на карти + Терен + Провидност + Нивои увећања + Легенда + Увоз завршен + Додате ставке + Увозим + Увозим податке из %1$s + Да ли сте сигурни да желите да очистите снимљене податке\? + Прерачунај пут у случају одступања + Одаберите удаљеност после које се пут прерачунава. + Пут ће бити прерачунат уколико је удаљеност тренутне позиције од пута већа од одабране вредности. + %1$s од %2$s + Прилагођавање корисничког интерфејса + Фиока + Преуреди или сакриј ставке са %1$s. + Разделник + Елементи испод ове тачке су одвојени разделником. + Сакривена + Иако су ове ставке сакривене са главног менија, опције или додаци које они представљају и даље раде. + Сакривање поставки их ресетује на оригинално стање. + Има само четири дугмета. + Главне радње + Можете приступити овим радњама кликтањем на дугме „%1$s”. + Можете померати ставке само унутар ове категорије. + Додатак за програмере + Ски туринг + Ставке + Измене примењене на ’%1$s’ профил. + За приказ Википедијиних тачака од интереса су потребне додатне карте. + Одаберите језик за Википедијине чланке на карти. Пребаците на било који други доступни језик док читате чланак. + Неки чланци са Википедија су можда доступни на Вашем језику. + Кантонски + Јужномински \ No newline at end of file diff --git a/OsmAnd/res/values-uk/strings.xml b/OsmAnd/res/values-uk/strings.xml index bc7c0887b1..8a5184b325 100644 --- a/OsmAnd/res/values-uk/strings.xml +++ b/OsmAnd/res/values-uk/strings.xml @@ -1533,7 +1533,7 @@ Не вдалося створити мапи у вказаній теці Не вдалося перемістити файли Зовнішнє сховище - Толочне сховище + Багатокористувацьке сховище Внутрішня пам’ять застосунку Вказано вручну Внутрішня пам’ять @@ -3802,4 +3802,6 @@ Обмеження довжини На цьому пристрої немає камер контролю швидкості. Роликові ковзани + Увімкнути для зміни масштабу мапи кнопками гучності пристрою. + Масштабування кнопками гучності \ No newline at end of file diff --git a/OsmAnd/res/values-zh-rTW/phrases.xml b/OsmAnd/res/values-zh-rTW/phrases.xml index df51f2a415..d3dc318221 100644 --- a/OsmAnd/res/values-zh-rTW/phrases.xml +++ b/OsmAnd/res/values-zh-rTW/phrases.xml @@ -3828,4 +3828,7 @@ 震動:無 箭頭 震動 + 禮物箱 + 街區 + 自治市鎮 \ No newline at end of file diff --git a/OsmAnd/res/values-zh-rTW/strings.xml b/OsmAnd/res/values-zh-rTW/strings.xml index b8e97f4c3d..c414d77e23 100644 --- a/OsmAnd/res/values-zh-rTW/strings.xml +++ b/OsmAnd/res/values-zh-rTW/strings.xml @@ -3802,4 +3802,6 @@ 長度限制 此裝置沒有測速照相機。 直排輪鞋 + 啟用裝置音量按鈕控制地圖縮放等級。 + 音量按鈕以縮放 \ No newline at end of file diff --git a/OsmAnd/res/values/phrases.xml b/OsmAnd/res/values/phrases.xml index d4dffcaa9b..1f9d2ee344 100644 --- a/OsmAnd/res/values/phrases.xml +++ b/OsmAnd/res/values/phrases.xml @@ -4237,4 +4237,8 @@ Give box + Borough + City block + + \ No newline at end of file diff --git a/OsmAnd/res/values/sizes.xml b/OsmAnd/res/values/sizes.xml index 087d69932b..42b38e8c4b 100644 --- a/OsmAnd/res/values/sizes.xml +++ b/OsmAnd/res/values/sizes.xml @@ -84,6 +84,7 @@ 142dp 13dp 9dp + 14dp 10dp 16dp diff --git a/OsmAnd/res/values/strings.xml b/OsmAnd/res/values/strings.xml index 4616f216ce..cd935d0e73 100644 --- a/OsmAnd/res/values/strings.xml +++ b/OsmAnd/res/values/strings.xml @@ -11,6 +11,8 @@ Thx - Hardy --> + Volume buttons as zoom + Enable to control the map zoom level with device volume buttons. Delete next destination point Inline skates This device doesn\'t have speed cameras. diff --git a/OsmAnd/res/xml/general_profile_settings.xml b/OsmAnd/res/xml/general_profile_settings.xml index e0c7ec3fa7..6a4148647e 100644 --- a/OsmAnd/res/xml/general_profile_settings.xml +++ b/OsmAnd/res/xml/general_profile_settings.xml @@ -82,6 +82,14 @@ android:layout="@layout/preference_category_with_descr" android:title="@string/shared_string_other" /> + + assetMapping(AssetManager assetManager) throws XmlPullParserException, IOException { - XmlPullParser xmlParser = XmlPullParserFactory.newInstance().newPullParser(); + + public static List getBundledAssets(AssetManager assetManager) throws XmlPullParserException, IOException { + XmlPullParser xmlParser = XmlPullParserFactory.newInstance().newPullParser(); InputStream isBundledAssetsXml = assetManager.open("bundled_assets.xml"); xmlParser.setInput(isBundledAssetsXml, "UTF-8"); - Map assets = new HashMap(); + List assets = new ArrayList<>(); int next = 0; while ((next = xmlParser.next()) != XmlPullParser.END_DOCUMENT) { if (next == XmlPullParser.START_TAG && xmlParser.getName().equals("asset")) { final String source = xmlParser.getAttributeValue(null, "source"); final String destination = xmlParser.getAttributeValue(null, "destination"); - assets.put(source, destination); + final String combinedMode = xmlParser.getAttributeValue(null, "mode"); + assets.add(new AssetEntry(source, destination, combinedMode)); } } isBundledAssetsXml.close(); return assets; } - + private static void listVoiceAssets(IndexFileList result, AssetManager amanager, PackageManager pm, OsmandSettings settings) { try { @@ -155,15 +156,15 @@ public class DownloadOsmandIndexesHelper { } catch (NameNotFoundException e) { //do nothing... } - Map mapping = assetMapping(amanager); - for (String key : mapping.keySet()) { - String target = mapping.get(key); - if (target.endsWith(IndexConstants.TTSVOICE_INDEX_EXT_JS) && target.startsWith("voice/")) { + List mapping = getBundledAssets(amanager); + for (AssetEntry asset : mapping) { + String target = asset.destination; + if (target.endsWith(IndexConstants.TTSVOICE_INDEX_EXT_JS) && target.startsWith("voice/") && target.contains("-tts")) { String lang = target.substring("voice/".length(), target.indexOf("-tts")); File destFile = new File(voicePath, target.substring("voice/".length(), target.indexOf("/", "voice/".length())) + "/" + lang + "_tts.js"); result.add(new AssetIndexItem(lang + "_" + IndexConstants.TTSVOICE_INDEX_EXT_JS, - "voice", date, dateModified, "0.1", destFile.length(), key, + "voice", date, dateModified, "0.1", destFile.length(), asset.source, destFile.getPath(), DownloadActivityType.VOICE_FILE)); } } @@ -262,6 +263,16 @@ public class DownloadOsmandIndexesHelper { return destFile; } } - - + + public static class AssetEntry { + public final String source; + public final String destination; + public final String combinedMode; + + public AssetEntry(String source, String destination, String combinedMode) { + this.source = source; + this.destination = destination; + this.combinedMode = combinedMode; + } + } } diff --git a/OsmAnd/src/net/osmand/plus/download/DownloadResources.java b/OsmAnd/src/net/osmand/plus/download/DownloadResources.java index 0628aefae3..8a5b37fffb 100644 --- a/OsmAnd/src/net/osmand/plus/download/DownloadResources.java +++ b/OsmAnd/src/net/osmand/plus/download/DownloadResources.java @@ -187,10 +187,11 @@ public class DownloadResources extends DownloadResourceGroup { outdated = true; } } else { - long itemSize = item.getContentSize(); long oldItemSize = 0; - if (item.getType() == DownloadActivityType.VOICE_FILE) { + if (parsed && item.getTimestamp() > item.getLocalTimestamp()) { + outdated = true; + } else if (item.getType() == DownloadActivityType.VOICE_FILE) { if (item instanceof AssetIndexItem) { File file = new File(((AssetIndexItem) item).getDestFile()); oldItemSize = file.length(); @@ -213,7 +214,7 @@ public class DownloadResources extends DownloadResourceGroup { } else { oldItemSize = app.getAppPath(item.getTargetFileName()).length(); } - if (itemSize != oldItemSize) { + if (!parsed && itemSize != oldItemSize) { outdated = true; } } diff --git a/OsmAnd/src/net/osmand/plus/download/IndexItem.java b/OsmAnd/src/net/osmand/plus/download/IndexItem.java index 52c738faaa..7173dfca66 100644 --- a/OsmAnd/src/net/osmand/plus/download/IndexItem.java +++ b/OsmAnd/src/net/osmand/plus/download/IndexItem.java @@ -202,8 +202,11 @@ public class IndexItem implements Comparable { public void setLocalTimestamp(long localTimestamp) { this.localTimestamp = localTimestamp; } - - + + public long getLocalTimestamp() { + return localTimestamp; + } + public boolean isDownloaded() { return downloaded; } diff --git a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java index 700d87908f..565331bd05 100644 --- a/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java +++ b/OsmAnd/src/net/osmand/plus/mapcontextmenu/editors/PointEditorFragmentNew.java @@ -380,7 +380,7 @@ public abstract class PointEditorFragmentNew extends BaseOsmAndFragment { private void createShapeSelector() { FlowLayout selectShape = view.findViewById(R.id.select_shape); for (BackgroundType backgroundType : BackgroundType.values()) { - if (backgroundType.getNameId() != -1) { + if (backgroundType.isSelected()) { selectShape.addView(createShapeItemView(backgroundType, selectShape), new FlowLayout.LayoutParams(0, 0)); } diff --git a/OsmAnd/src/net/osmand/plus/osmedit/BasicEditPoiFragment.java b/OsmAnd/src/net/osmand/plus/osmedit/BasicEditPoiFragment.java index d2d34785e0..cace1be261 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/BasicEditPoiFragment.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/BasicEditPoiFragment.java @@ -118,7 +118,9 @@ public class BasicEditPoiFragment extends BaseOsmAndFragment BasicOpeningHourRule rule = new BasicOpeningHourRule(); rule.setStartTime(9 * 60); rule.setEndTime(18 * 60); - rule.setDays(new boolean[]{true, true, true, true, true, false, false}); + if (mOpeningHoursAdapter.openingHours.getRules().isEmpty()){ + rule.setDays(new boolean[]{true, true, true, true, true, false, false}); + } OpeningHoursDaysDialogFragment fragment = OpeningHoursDaysDialogFragment.createInstance(rule, -1); fragment.show(getChildFragmentManager(), "OpenTimeDialogFragment"); } diff --git a/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java b/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java index 9421acb84d..5c76f40431 100644 --- a/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java +++ b/OsmAnd/src/net/osmand/plus/osmedit/OsmBugsLayer.java @@ -155,10 +155,11 @@ public class OsmBugsLayer extends OsmandMapLayer implements IContextMenuProvider iconId = R.drawable.mx_special_symbol_check_mark; backgroundColorRes = R.color.osm_bug_resolved_icon_color; } + BackgroundType backgroundType = BackgroundType.COMMENT; PointImageDrawable pointImageDrawable = PointImageDrawable.getOrCreate(activity, ContextCompat.getColor(activity, backgroundColorRes), true, false, iconId, - BackgroundType.COMMENT); - int offsetY = pointImageDrawable.getIntrinsicHeight() / 2; + backgroundType); + int offsetY = backgroundType.getOffsetY(activity, textScale); pointImageDrawable.drawPoint(canvas, x, y - offsetY, textScale, false); } this.fullObjectsLatLon = fullObjectsLatLon; diff --git a/OsmAnd/src/net/osmand/plus/poi/PoiUIFilter.java b/OsmAnd/src/net/osmand/plus/poi/PoiUIFilter.java index e23e0c3485..4b1471a396 100644 --- a/OsmAnd/src/net/osmand/plus/poi/PoiUIFilter.java +++ b/OsmAnd/src/net/osmand/plus/poi/PoiUIFilter.java @@ -834,12 +834,19 @@ public class PoiUIFilter implements SearchPoiTypeFilter, Comparable if (!poiTypes.isRegisteredType(type)) { type = poiTypes.getOtherPoiCategory(); } - LinkedHashSet acceptedTypesSet = acceptedTypes.get(type); - if (acceptedTypesSet != null && acceptedTypesSet.contains(subtype)) { - return true; + if (acceptedTypes.containsKey(type)) { + LinkedHashSet acceptedTypesSet = acceptedTypes.get(type); + if (acceptedTypesSet == null || acceptedTypesSet.contains(subtype)) { + return true; + } } - acceptedTypesSet = acceptedTypesOrigin.get(type); - return acceptedTypesSet != null && acceptedTypesSet.contains(subtype); + if (acceptedTypesOrigin.containsKey(type)) { + LinkedHashSet acceptedTypesSet = acceptedTypesOrigin.get(type); + if (acceptedTypesSet == null || acceptedTypesSet.contains(subtype)) { + return true; + } + } + return false; } @Override diff --git a/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java b/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java index e9077bb143..97ad08899d 100644 --- a/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java +++ b/OsmAnd/src/net/osmand/plus/poi/RearrangePoiFiltersFragment.java @@ -30,6 +30,7 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.google.android.material.appbar.AppBarLayout; +import com.google.android.material.snackbar.BaseTransientBottomBar; import com.google.android.material.snackbar.Snackbar; import net.osmand.AndroidUtils; @@ -106,7 +107,7 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { final OsmandApplication app = requireMyApplication(); - boolean nightMode = isNightMode(app, usedOnMap); + final boolean nightMode = isNightMode(app, usedOnMap); View mainView = UiUtilities.getInflater(app, nightMode).inflate(R.layout.edit_arrangement_list_fragment, container, false); createToolbar(mainView, nightMode); @@ -158,6 +159,39 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec updateItems(); } } + + @Override + public void onDeleteClicked(final int position) { + final ListItem item = items.get(position); + if (item.value instanceof PoiUIFilterDataObject) { + PoiUIFilterDataObject poiInfo = (PoiUIFilterDataObject) item.value; + final PoiUIFilter filter = app.getPoiFilters().getFilterById(poiInfo.filterId); + if (filter != null && app.getPoiFilters().removePoiFilter(filter)) { + filter.setDeleted(true); + filterDeleted = true; + } + items.remove(item); + adapter.notifyDataSetChanged(); + Snackbar snackbar = Snackbar.make(requireView(), + getString(R.string.item_deleted, poiInfo.name), Snackbar.LENGTH_LONG) + .setAction(R.string.shared_string_undo, new View.OnClickListener() { + @Override + public void onClick(View view) { + items.add(position, item); + adapter.notifyDataSetChanged(); + if (filter != null) { + filter.setDeleted(false); + app.getPoiFilters().createPoiFilter(filter, false); + } + } + }); + ViewCompat.setElevation(snackbar.getView(), 0f); + snackbar.setAnchorView(buttonsContainer); + snackbar.setAnimationMode(BaseTransientBottomBar.ANIMATION_MODE_FADE); + UiUtilities.setupSnackbar(snackbar, nightMode); + snackbar.show(); + } + } }); recyclerView.setAdapter(adapter); @@ -577,19 +611,23 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec @SuppressLint("ClickableViewAccessibility") @Override - public void onBindViewHolder(final @NonNull RecyclerView.ViewHolder holder, final int position) { - final ListItem item = items.get(position); - final boolean nightMode = isNightMode(app, usedOnMap); + public void onBindViewHolder(final @NonNull RecyclerView.ViewHolder holder, int position) { + ListItem item = items.get(position); + boolean nightMode = isNightMode(app, usedOnMap); int activeColorResId = nightMode ? R.color.active_color_primary_dark : R.color.active_color_primary_light; if (holder instanceof PoiViewHolder) { PoiViewHolder h = (PoiViewHolder) holder; - final PoiUIFilterDataObject poiInfo = (PoiUIFilterDataObject) item.value; + PoiUIFilterDataObject poiInfo = (PoiUIFilterDataObject) item.value; int osmandOrangeColorResId = nightMode ? R.color.osmand_orange_dark : R.color.osmand_orange; + boolean isActive = poiInfo.isActive; h.title.setText(poiInfo.name); + int padding = (int) getResources().getDimension(R.dimen.content_padding); + int paddingSmall = (int) getResources().getDimension(R.dimen.content_padding_small); + h.title.setPadding(isActive ? 0 : padding, paddingSmall, paddingSmall, padding); boolean userFilter = poiInfo.filterId.startsWith(USER_PREFIX); int iconRes = QuickSearchListItem.getCustomFilterIconRes(poiHelper.getFilterById(poiInfo.filterId)); h.icon.setImageDrawable(uiUtilities.getIcon(userFilter ? iconRes : poiInfo.iconRes, osmandOrangeColorResId)); - h.moveIcon.setVisibility(poiInfo.isActive ? View.VISIBLE : View.GONE); + h.moveIcon.setVisibility(isActive ? View.VISIBLE : View.GONE); h.actionIcon.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -599,7 +637,7 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec } } }); - if (poiInfo.isActive) { + if (isActive) { h.actionIcon.setImageDrawable(uiUtilities.getIcon(R.drawable.ic_action_remove, R.color.color_osm_edit_delete)); h.moveIcon.setOnTouchListener(new View.OnTouchListener() { @Override @@ -618,40 +656,10 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec h.actionDelete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - Snackbar snackbar = Snackbar.make(requireView(), - getString(R.string.item_deleted, poiInfo.name), Snackbar.LENGTH_LONG) - .setAction(R.string.shared_string_undo, new View.OnClickListener() { - @Override - public void onClick(View view) { - items.add(position, item); - notifyDataSetChanged(); - } - }) - .addCallback(new Snackbar.Callback() { - @Override - public void onShown(Snackbar sb) { - super.onShown(sb); - items.remove(item); - notifyDataSetChanged(); - } - - @Override - public void onDismissed(Snackbar transientBottomBar, int event) { - super.onDismissed(transientBottomBar, event); - if (DISMISS_EVENT_ACTION != event) { - PoiUIFilter filter = poiHelper.getFilterById(poiInfo.filterId); - if (filter != null && poiHelper.removePoiFilter(filter)) { - availableFiltersKeys.remove(poiInfo.filterId); - filter.setDeleted(true); - filterDeleted = true; - } - } - } - }); - ViewCompat.setElevation(snackbar.getView(), 0f); - snackbar.setAnchorView(buttonsContainer); - UiUtilities.setupSnackbar(snackbar, nightMode); - snackbar.show(); + int pos = holder.getAdapterPosition(); + if (listener != null && pos != RecyclerView.NO_POSITION) { + listener.onDeleteClicked(pos); + } } }); } else if (holder instanceof SpaceViewHolder) { @@ -864,7 +872,9 @@ public class RearrangePoiFiltersFragment extends DialogFragment implements Selec void onDragOrSwipeEnded(RecyclerView.ViewHolder holder); - void onButtonClicked(int view); + void onButtonClicked(int position); + + void onDeleteClicked(int position); } public interface OnApplyPoiFiltersState { diff --git a/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java b/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java index 07f0d4a9e3..220bfe767a 100644 --- a/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java +++ b/OsmAnd/src/net/osmand/plus/resources/ResourceManager.java @@ -39,6 +39,8 @@ import net.osmand.plus.OsmandApplication; import net.osmand.plus.OsmandPlugin; import net.osmand.plus.R; import net.osmand.plus.Version; +import net.osmand.plus.download.DownloadOsmandIndexesHelper; +import net.osmand.plus.download.DownloadOsmandIndexesHelper.AssetEntry; import net.osmand.plus.inapp.InAppPurchaseHelper; import net.osmand.plus.render.MapRenderRepositories; import net.osmand.plus.render.NativeOsmandLibrary; @@ -47,15 +49,12 @@ import net.osmand.plus.resources.AsyncLoadingThread.OnMapLoadedListener; import net.osmand.plus.resources.AsyncLoadingThread.TileLoadDownloadRequest; import net.osmand.plus.srtmplugin.SRTMPlugin; import net.osmand.plus.views.OsmandMapLayer.DrawSettings; -import net.osmand.router.TransportRoutePlanner.TransportRoutingContext; import net.osmand.router.TransportStopsRouteReader; import net.osmand.util.Algorithms; import net.osmand.util.MapUtils; import org.apache.commons.logging.Log; -import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; -import org.xmlpull.v1.XmlPullParserFactory; import java.io.File; import java.io.FileFilter; @@ -76,9 +75,8 @@ import java.util.Map.Entry; import java.util.TreeMap; import java.util.concurrent.ConcurrentHashMap; -import gnu.trove.map.hash.TLongObjectHashMap; -import static net.osmand.plus.download.DownloadOsmandIndexesHelper.assetMapping; +import static net.osmand.IndexConstants.VOICE_INDEX_DIR; /** * Resource manager is responsible to work with all resources @@ -405,8 +403,8 @@ public class ResourceManager { } - public List indexVoiceFiles(IProgress progress){ - File file = context.getAppPath(IndexConstants.VOICE_INDEX_DIR); + public List indexVoiceFiles(IProgress progress) { + File file = context.getAppPath(VOICE_INDEX_DIR); file.mkdirs(); List warnings = new ArrayList(); if (file.exists() && file.canRead()) { @@ -451,20 +449,20 @@ public class ResourceManager { public void copyMissingJSAssets() { try { - Map mapping = assetMapping(context.getAssets()); + List assets = DownloadOsmandIndexesHelper.getBundledAssets(context.getAssets()); File appPath = context.getAppPath(null); if (appPath.canWrite()) { - for (Entry entry : mapping.entrySet()) { - File jsFile = new File(appPath, entry.getValue()); - if (entry.getValue().contains("-tts") && entry.getValue() + for (AssetEntry asset : assets) { + File jsFile = new File(appPath, asset.destination); + if (asset.destination.contains("-tts") && asset.destination .endsWith(IndexConstants.TTSVOICE_INDEX_EXT_JS)) { - File oggFile = new File(appPath, entry.getValue().replace("-tts", "")); + File oggFile = new File(appPath, asset.destination.replace("-tts", "")); if (oggFile.getParentFile().exists() && !oggFile.exists()) { - copyAssets(context.getAssets(), entry.getKey(), oggFile); + copyAssets(context.getAssets(), asset.source, oggFile); } } if (jsFile.getParentFile().exists() && !jsFile.exists()) { - copyAssets(context.getAssets(), entry.getKey(), jsFile); + copyAssets(context.getAssets(), asset.source, jsFile); } } } @@ -542,54 +540,43 @@ public class ResourceManager { private final static String ASSET_COPY_MODE__alwaysOverwriteOrCopy = "alwaysOverwriteOrCopy"; private final static String ASSET_COPY_MODE__copyOnlyIfDoesNotExist = "copyOnlyIfDoesNotExist"; private void unpackBundledAssets(AssetManager assetManager, File appDataDir, IProgress progress, boolean isFirstInstall) throws IOException, XmlPullParserException { - XmlPullParser xmlParser = XmlPullParserFactory.newInstance().newPullParser(); - InputStream isBundledAssetsXml = assetManager.open("bundled_assets.xml"); - xmlParser.setInput(isBundledAssetsXml, "UTF-8"); - - int next = 0; - while ((next = xmlParser.next()) != XmlPullParser.END_DOCUMENT) { - if (next == XmlPullParser.START_TAG && xmlParser.getName().equals("asset")) { - final String source = xmlParser.getAttributeValue(null, "source"); - final String destination = xmlParser.getAttributeValue(null, "destination"); - final String combinedMode = xmlParser.getAttributeValue(null, "mode"); - - final String[] modes = combinedMode.split("\\|"); - if(modes.length == 0) { - log.error("Mode '" + combinedMode + "' is not valid"); - continue; - } - String installMode = null; - String copyMode = null; - for(String mode : modes) { - if(ASSET_INSTALL_MODE__alwaysCopyOnFirstInstall.equals(mode)) - installMode = mode; - else if(ASSET_COPY_MODE__overwriteOnlyIfExists.equals(mode) || - ASSET_COPY_MODE__alwaysOverwriteOrCopy.equals(mode) || - ASSET_COPY_MODE__copyOnlyIfDoesNotExist.equals(mode)) - copyMode = mode; - else - log.error("Mode '" + mode + "' is unknown"); - } - - final File destinationFile = new File(appDataDir, destination); - - boolean unconditional = false; - if(installMode != null) - unconditional = unconditional || (ASSET_INSTALL_MODE__alwaysCopyOnFirstInstall.equals(installMode) && isFirstInstall); - if(copyMode == null) - log.error("No copy mode was defined for " + source); - unconditional = unconditional || ASSET_COPY_MODE__alwaysOverwriteOrCopy.equals(copyMode); - - boolean shouldCopy = unconditional; - shouldCopy = shouldCopy || (ASSET_COPY_MODE__overwriteOnlyIfExists.equals(copyMode) && destinationFile.exists()); - shouldCopy = shouldCopy || (ASSET_COPY_MODE__copyOnlyIfDoesNotExist.equals(copyMode) && !destinationFile.exists()); - - if(shouldCopy) - copyAssets(assetManager, source, destinationFile); + List assetEntries = DownloadOsmandIndexesHelper.getBundledAssets(assetManager); + for (AssetEntry asset : assetEntries) { + final String[] modes = asset.combinedMode.split("\\|"); + if (modes.length == 0) { + log.error("Mode '" + asset.combinedMode + "' is not valid"); + continue; + } + String installMode = null; + String copyMode = null; + for (String mode : modes) { + if (ASSET_INSTALL_MODE__alwaysCopyOnFirstInstall.equals(mode)) + installMode = mode; + else if (ASSET_COPY_MODE__overwriteOnlyIfExists.equals(mode) || + ASSET_COPY_MODE__alwaysOverwriteOrCopy.equals(mode) || + ASSET_COPY_MODE__copyOnlyIfDoesNotExist.equals(mode)) + copyMode = mode; + else + log.error("Mode '" + mode + "' is unknown"); + } + + final File destinationFile = new File(appDataDir, asset.destination); + + boolean unconditional = false; + if (installMode != null) + unconditional = unconditional || (ASSET_INSTALL_MODE__alwaysCopyOnFirstInstall.equals(installMode) && isFirstInstall); + if (copyMode == null) + log.error("No copy mode was defined for " + asset.source); + unconditional = unconditional || ASSET_COPY_MODE__alwaysOverwriteOrCopy.equals(copyMode); + + boolean shouldCopy = unconditional; + shouldCopy = shouldCopy || (ASSET_COPY_MODE__overwriteOnlyIfExists.equals(copyMode) && destinationFile.exists()); + shouldCopy = shouldCopy || (ASSET_COPY_MODE__copyOnlyIfDoesNotExist.equals(copyMode) && !destinationFile.exists()); + + if (shouldCopy) { + copyAssets(assetManager, asset.source, destinationFile); } } - - isBundledAssetsXml.close(); } public static void copyAssets(AssetManager assetManager, String assetName, File file) throws IOException { diff --git a/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java b/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java index 07a4ebbfed..eb9308efa2 100644 --- a/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java +++ b/OsmAnd/src/net/osmand/plus/settings/backend/OsmandSettings.java @@ -1884,6 +1884,7 @@ public class OsmandSettings { // magnetic field doesn'torkmost of the time on some phones public final OsmandPreference USE_MAGNETIC_FIELD_SENSOR_COMPASS = new BooleanPreference("use_magnetic_field_sensor_compass", false).makeProfile().cache(); public final OsmandPreference USE_KALMAN_FILTER_FOR_COMPASS = new BooleanPreference("use_kalman_filter_compass", true).makeProfile().cache(); + public final OsmandPreference USE_VOLUME_BUTTONS_AS_ZOOM = new BooleanPreference("use_volume_buttons_as_zoom", false).makeProfile().cache(); public final OsmandPreference DO_NOT_SHOW_STARTUP_MESSAGES = new BooleanPreference("do_not_show_startup_messages", false).makeGlobal().cache(); public final OsmandPreference SHOW_DOWNLOAD_MAP_DIALOG = new BooleanPreference("show_download_map_dialog", true).makeGlobal().cache(); diff --git a/OsmAnd/src/net/osmand/plus/settings/fragments/GeneralProfileSettingsFragment.java b/OsmAnd/src/net/osmand/plus/settings/fragments/GeneralProfileSettingsFragment.java index 4ac4d78d32..80488797ec 100644 --- a/OsmAnd/src/net/osmand/plus/settings/fragments/GeneralProfileSettingsFragment.java +++ b/OsmAnd/src/net/osmand/plus/settings/fragments/GeneralProfileSettingsFragment.java @@ -54,6 +54,7 @@ public class GeneralProfileSettingsFragment extends BaseSettingsFragment impleme setupAngularUnitsPref(); setupSpeedSystemPref(); + setupVolumeButtonsAsZoom(); setupKalmanFilterPref(); setupMagneticFieldSensorPref(); setupMapEmptyStateAllowedPref(); @@ -224,6 +225,14 @@ public class GeneralProfileSettingsFragment extends BaseSettingsFragment impleme speedSystem.setIcon(getActiveIcon(R.drawable.ic_action_speed)); } + private void setupVolumeButtonsAsZoom() { + SwitchPreferenceEx volumeButtonsPref = (SwitchPreferenceEx) findPreference(settings.USE_VOLUME_BUTTONS_AS_ZOOM.getId()); + volumeButtonsPref.setTitle(getString(R.string.use_volume_buttons_as_zoom)); + volumeButtonsPref.setDescription(getString(R.string.use_volume_buttons_as_zoom_descr)); + Drawable icon = getPersistentPrefIcon(R.drawable.ic_action_zoom_volume_buttons); + volumeButtonsPref.setIcon(icon); + } + private void setupKalmanFilterPref() { SwitchPreferenceEx kalmanFilterPref = (SwitchPreferenceEx) findPreference(settings.USE_KALMAN_FILTER_FOR_COMPASS.getId()); kalmanFilterPref.setTitle(getString(R.string.use_kalman_filter_compass)); diff --git a/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java b/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java index 64e6073dc3..ea5cf50027 100644 --- a/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/ContextMenuLayer.java @@ -2,9 +2,7 @@ package net.osmand.plus.views; import android.Manifest; import android.content.Context; -import android.content.res.Resources; import android.graphics.Bitmap; -import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Paint; import android.graphics.PointF; @@ -225,16 +223,17 @@ public class ContextMenuLayer extends OsmandMapLayer { } } } - float scale = 1f; + float textScale = 1f; if (!pressedLatLonSmall.isEmpty() || !pressedLatLonFull.isEmpty()) { - scale = activity.getMyApplication().getSettings().TEXT_SCALE.get(); + textScale = activity.getMyApplication().getSettings().TEXT_SCALE.get(); } for (LatLon latLon : pressedLatLonSmall.keySet()) { int x = (int) box.getPixXFromLatLon(latLon.getLatitude(), latLon.getLongitude()); int y = (int) box.getPixYFromLatLon(latLon.getLatitude(), latLon.getLongitude()); - Bitmap pressedBitmapSmall = getBackground(pressedLatLonSmall.get(latLon), true); + BackgroundType background = pressedLatLonSmall.get(latLon); + Bitmap pressedBitmapSmall = background.getTouchBackground(activity, true); Rect destRect = getIconDestinationRect( - x, y, pressedBitmapSmall.getWidth(), pressedBitmapSmall.getHeight(), scale); + x, y, pressedBitmapSmall.getWidth(), pressedBitmapSmall.getHeight(), textScale); canvas.drawBitmap(pressedBitmapSmall, null, destRect, paint); } for (LatLon latLon : pressedLatLonFull.keySet()) { @@ -242,10 +241,10 @@ public class ContextMenuLayer extends OsmandMapLayer { int y = (int) box.getPixYFromLatLon(latLon.getLatitude(), latLon.getLongitude()); BackgroundType background = pressedLatLonFull.get(latLon); - Bitmap pressedBitmap = getBackground(background, false); - int offsetY = BackgroundType.COMMENT.equals(background) ? pressedBitmap.getHeight() / 2 : 0; + Bitmap pressedBitmap = background.getTouchBackground(activity, false); + int offsetY = background.getOffsetY(activity, textScale); Rect destRect = getIconDestinationRect( - x, y - offsetY, pressedBitmap.getWidth(), pressedBitmap.getHeight(), scale); + x, y - offsetY, pressedBitmap.getWidth(), pressedBitmap.getHeight(), textScale); canvas.drawBitmap(pressedBitmap, null, destRect, paint); } @@ -271,15 +270,6 @@ public class ContextMenuLayer extends OsmandMapLayer { } } - private Bitmap getBackground(BackgroundType backgroundType, boolean isSmall) { - Context ctx = view.getContext(); - Resources res = view.getResources(); - String iconName = res.getResourceEntryName(backgroundType.getIconId()); - String suffix = isSmall ? "_small" : ""; - return BitmapFactory.decodeResource(res, res.getIdentifier("ic_" + iconName + "_center" + suffix, - "drawable", ctx.getPackageName())); - } - public void setSelectOnMap(CallbackWithObject selectOnMap) { this.selectOnMap = selectOnMap; } @@ -927,9 +917,9 @@ public class ContextMenuLayer extends OsmandMapLayer { backgroundType = BackgroundType.getByTypeName( ((GPXUtilities.WptPt) o).getBackgroundType(), DEFAULT_BACKGROUND_TYPE); } - if (lt.isPresentInFullObjects(latLon) && !pressedLatLonFull.keySet().contains(latLon)) { + if (lt.isPresentInFullObjects(latLon) && !pressedLatLonFull.containsKey(latLon)) { pressedLatLonFull.put(latLon, backgroundType); - } else if (lt.isPresentInSmallObjects(latLon) && !pressedLatLonSmall.keySet().contains(latLon)) { + } else if (lt.isPresentInSmallObjects(latLon) && !pressedLatLonSmall.containsKey(latLon)) { pressedLatLonSmall.put(latLon, backgroundType); } } diff --git a/OsmAnd/src/net/osmand/plus/views/RouteLayer.java b/OsmAnd/src/net/osmand/plus/views/RouteLayer.java index b6e31416ab..8a31024608 100644 --- a/OsmAnd/src/net/osmand/plus/views/RouteLayer.java +++ b/OsmAnd/src/net/osmand/plus/views/RouteLayer.java @@ -294,10 +294,16 @@ public class RouteLayer extends OsmandMapLayer implements ContextMenuLayer.ICont // int len = (int) (distSegment / pxStep); float pdx = x - px; float pdy = y - py; + float scale = attrs.paint3.getStrokeWidth() / ( actionArrow.getWidth() / 2.25f); + float scaledWidth = actionArrow.getWidth(); matrix.reset(); matrix.postTranslate(0, -actionArrow.getHeight() / 2f); matrix.postRotate((float) angle, actionArrow.getWidth() / 2f, 0); - matrix.postTranslate(px + pdx - actionArrow.getWidth() / 2f, py + pdy); + if (scale > 1.0f) { + matrix.postScale(scale, scale); + scaledWidth *= scale; + } + matrix.postTranslate(px + pdx - scaledWidth/ 2f, py + pdy); canvas.drawBitmap(actionArrow, matrix, paintIconAction); } else { px = x;