Merge branch 'master' into WikipediaSearchBanner
This commit is contained in:
commit
15a964f4bd
25 changed files with 528 additions and 235 deletions
|
@ -2655,6 +2655,7 @@ public class BinaryMapIndexReader {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
public TLongObjectHashMap<IncompleteTransportRoute> 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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -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<net.osmand.data.IncompleteTransportRoute> incompleteRoutes) throws IOException {
|
||||
public void readIncompleteRoutesList(TLongObjectHashMap<net.osmand.data.IncompleteTransportRoute> 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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -370,10 +370,10 @@ public class BinaryRoutePlanner {
|
|||
|
||||
public void printDebugMemoryInformation(RoutingContext ctx, PriorityQueue<RouteSegment> graphDirectSegments, PriorityQueue<RouteSegment> graphReverseSegments,
|
||||
TLongObjectHashMap<RouteSegment> visitedDirectSegments,TLongObjectHashMap<RouteSegment> 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;
|
||||
|
|
|
@ -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<RouteRegion, Map<IntHolder, Float>> ch = evalCache[attr.ordinal()];
|
||||
if (USE_CACHE) {
|
||||
Map<IntHolder, Float> 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 {
|
||||
|
|
|
@ -32,10 +32,6 @@ public class RoutePlannerFrontEnd {
|
|||
protected static final double GPS_POSSIBLE_ERROR = 7;
|
||||
public boolean useSmartRouteRecalculation = true;
|
||||
|
||||
public static double AVERAGE_SPLIT_DISTANCE_GPX = 1500;
|
||||
public static double MINIMUM_POINT_APPROXIMATION = 50;
|
||||
public static double MINIMUM_STRAIGHT_STEP_APPROXIMATION = 50;
|
||||
|
||||
|
||||
public RoutePlannerFrontEnd() {
|
||||
}
|
||||
|
@ -46,14 +42,29 @@ public class RoutePlannerFrontEnd {
|
|||
COMPLEX
|
||||
}
|
||||
|
||||
public static class GpxApproximationResult {
|
||||
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<RouteSegmentResult> res = new ArrayList<RouteSegmentResult>();
|
||||
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",
|
||||
|
@ -192,91 +203,152 @@ public class RoutePlannerFrontEnd {
|
|||
}
|
||||
|
||||
|
||||
// TODO add missing turns for straight lines
|
||||
// TODO smoothness is not correct for car routing
|
||||
// TODO native crash
|
||||
// TODO big gaps when there is no match
|
||||
// TODO not correct bicycle-> pedestrian
|
||||
// TODO slow - too many findRouteSegment
|
||||
// TODO fix progress / timings routing /
|
||||
// TODO smoothen straight line Douglas-Peucker (remove noise)
|
||||
public GpxApproximationResult searchGpxRoute(final RoutingContext ctx, List<LatLon> points) throws IOException, InterruptedException {
|
||||
GpxApproximationResult gctx = new GpxApproximationResult();
|
||||
// TODO last segment not correct (cut) before end point and point of straight line
|
||||
|
||||
// TODO add missing turns for straight lines (compare code)
|
||||
// TODO native matches less roads
|
||||
|
||||
// TODO fix progress - next iteration
|
||||
// TODO fix timings and remove logging every iteration
|
||||
public GpxRouteApproximation searchGpxRoute(GpxRouteApproximation gctx, List<LatLon> points) throws IOException, InterruptedException {
|
||||
gctx.ctx.timeToCalculate = System.nanoTime();
|
||||
if (gctx.ctx.calculationProgress == null) {
|
||||
gctx.ctx.calculationProgress = new RouteCalculationProgress();
|
||||
}
|
||||
List<GpxPoint> gpxPoints = generageGpxPoints(points, gctx);
|
||||
GpxPoint start = gpxPoints.size() > 0 ? gpxPoints.get(0) : null;
|
||||
|
||||
boolean prevRouteFound = false;
|
||||
while (start != null) {
|
||||
double routeDist = AVERAGE_SPLIT_DISTANCE_GPX;
|
||||
double routeDist = gctx.MAXIMUM_STEP_APPROXIMATION;
|
||||
GpxPoint next = findNextGpxPointWithin(gctx, gpxPoints, start, routeDist);
|
||||
boolean routeFound = false;
|
||||
if (next != null && initRoutingPoint(start, gctx, ctx, MINIMUM_POINT_APPROXIMATION)) {
|
||||
boolean firstAttempt = true;
|
||||
while ((firstAttempt || next.cumDist - start.cumDist > MINIMUM_POINT_APPROXIMATION) && !routeFound) {
|
||||
firstAttempt = false;
|
||||
routeFound = initRoutingPoint(next, gctx, ctx, MINIMUM_POINT_APPROXIMATION);
|
||||
|
||||
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(ctx, gctx, gpxPoints, start, next);
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (routeFound) {
|
||||
// route is found, cut the end of the route and move to next iteration
|
||||
start = next;
|
||||
} else {
|
||||
// route is not found skip segment and keep it as straight line on display
|
||||
if (!routeFound) {
|
||||
// route is not found, move start point by
|
||||
start = findNextGpxPointWithin(gctx, gpxPoints, start, MINIMUM_STRAIGHT_STEP_APPROXIMATION);
|
||||
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(ctx, gctx, gpxPoints);
|
||||
|
||||
calculateGpxRoute(gctx, gpxPoints);
|
||||
|
||||
if (!gctx.res.isEmpty()) {
|
||||
new RouteResultPreparation().printResults(ctx, points.get(0), points.get(points.size() - 1), gctx.res);
|
||||
new RouteResultPreparation().printResults(gctx.ctx, points.get(0), points.get(points.size() - 1), gctx.res);
|
||||
System.out.println(gctx);
|
||||
}
|
||||
return gctx;
|
||||
}
|
||||
|
||||
private void calculateGpxRoute(final RoutingContext ctx, GpxApproximationResult gctx, List<GpxPoint> gpxPoints) {
|
||||
private boolean stepBackAndFindPrevPointInRoute(GpxRouteApproximation gctx,
|
||||
List<GpxPoint> 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<GpxPoint> gpxPoints) {
|
||||
RouteRegion reg = new RouteRegion();
|
||||
reg.initRouteEncodingRule(0, "highway", "unmatched");
|
||||
TIntArrayList lastStraightLine = null;
|
||||
List<LatLon> 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(MapUtils.get31TileNumberX(startPoint.getLongitude()));
|
||||
lastStraightLine.add(MapUtils.get31TileNumberY(startPoint.getLatitude()));
|
||||
lastStraightLine.add(startPoint);
|
||||
addStraightLine(gctx.res, lastStraightLine, reg, gctx);
|
||||
lastStraightLine = null;
|
||||
}
|
||||
// TODO
|
||||
double distLastPnt = gctx.distFromLastPoint(pnt.routeToTarget.get(0).getStartPoint());
|
||||
double gpxDistPnt = gctx.distFromLastPoint(pnt.loc);
|
||||
if (distLastPnt > MINIMUM_POINT_APPROXIMATION / 5 || gpxDistPnt > MINIMUM_POINT_APPROXIMATION / 5) {
|
||||
System.out.println(String.format("????? routePnt - prevPnt = %f, gpxPoint - prevPnt = %f ",
|
||||
distLastPnt, gpxDistPnt));
|
||||
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 TIntArrayList();
|
||||
lastStraightLine = new ArrayList<LatLon>();
|
||||
// make smooth connection
|
||||
if(gctx.distFromLastPoint(pnt.loc) > 1) {
|
||||
lastStraightLine.add(MapUtils.get31TileNumberX(gctx.getLastPoint().getLongitude()));
|
||||
lastStraightLine.add(MapUtils.get31TileNumberY(gctx.getLastPoint().getLatitude()));
|
||||
lastStraightLine.add(gctx.getLastPoint());
|
||||
}
|
||||
}
|
||||
lastStraightLine.add(MapUtils.get31TileNumberX(pnt.loc.getLongitude()));
|
||||
lastStraightLine.add(MapUtils.get31TileNumberY(pnt.loc.getLatitude()));
|
||||
lastStraightLine.add(pnt.loc);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
@ -285,10 +357,10 @@ public class RoutePlannerFrontEnd {
|
|||
lastStraightLine = null;
|
||||
}
|
||||
// clean turns to recaculate them
|
||||
cleanupResultAndAddTurns(ctx, gctx);
|
||||
cleanupResultAndAddTurns(gctx);
|
||||
}
|
||||
|
||||
private List<GpxPoint> generageGpxPoints(List<LatLon> points, GpxApproximationResult gctx) {
|
||||
private List<GpxPoint> generageGpxPoints(List<LatLon> points, GpxRouteApproximation gctx) {
|
||||
List<GpxPoint> gpxPoints = new ArrayList<>(points.size());
|
||||
GpxPoint prev = null;
|
||||
for(int i = 0; i < points.size(); i++) {
|
||||
|
@ -305,7 +377,7 @@ public class RoutePlannerFrontEnd {
|
|||
return gpxPoints;
|
||||
}
|
||||
|
||||
private void cleanupResultAndAddTurns(final RoutingContext ctx, GpxApproximationResult gctx) {
|
||||
private void cleanupResultAndAddTurns(GpxRouteApproximation gctx) {
|
||||
// cleanup double joints
|
||||
int LOOK_AHEAD = 4;
|
||||
for(int i = 0; i < gctx.res.size(); i++) {
|
||||
|
@ -325,71 +397,119 @@ public class RoutePlannerFrontEnd {
|
|||
r.setTurnType(null);
|
||||
r.setDescription("");
|
||||
}
|
||||
preparation.prepareTurnResults(ctx, gctx.res);
|
||||
preparation.prepareTurnResults(gctx.ctx, gctx.res);
|
||||
}
|
||||
|
||||
private void addStraightLine(List<RouteSegmentResult> res, TIntArrayList lastStraightLine, RouteRegion reg, GpxApproximationResult gctx) {
|
||||
private void addStraightLine(List<RouteSegmentResult> res, List<LatLon> lastStraightLine, RouteRegion reg, GpxRouteApproximation gctx) {
|
||||
RouteDataObject rdo = new RouteDataObject(reg);
|
||||
int l = lastStraightLine.size() / 2;
|
||||
rdo.pointsX = new int[l];
|
||||
rdo.pointsY = new int[l];
|
||||
rdo.types = new int[] { 0 } ;
|
||||
rdo.id = -1;
|
||||
for (int i = 0; i < l; i++) {
|
||||
rdo.pointsX[i] = lastStraightLine.get(i * 2);
|
||||
rdo.pointsY[i] = lastStraightLine.get(i * 2 + 1);
|
||||
if(i > 0) {
|
||||
double dist = MapUtils.squareRootDist31(rdo.pointsX[i], rdo.pointsY[i], rdo.pointsX[i-1], rdo.pointsY[i-1]);
|
||||
gctx.routeDistanceUnmatched += dist;
|
||||
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 boolean initRoutingPoint(GpxPoint start, GpxApproximationResult gctx, RoutingContext ctx, double distThreshold) throws IOException {
|
||||
|
||||
private void simplifyDouglasPeucker(List<LatLon> 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(), ctx, null, false);
|
||||
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 start != null && start.pnt != null;
|
||||
return false;
|
||||
}
|
||||
|
||||
private GpxPoint findNextGpxPointWithin(GpxApproximationResult gctx, List<GpxPoint> gpxPoints,
|
||||
private GpxPoint findNextGpxPointWithin(GpxRouteApproximation gctx, List<GpxPoint> gpxPoints,
|
||||
GpxPoint start, double dist) {
|
||||
int targetInd = start.ind + 1;
|
||||
// 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()) {
|
||||
while (targetInd < gpxPoints.size() && targetInd >= 0) {
|
||||
target = gpxPoints.get(targetInd);
|
||||
if (target.cumDist - start.cumDist > dist) {
|
||||
if (Math.abs(target.cumDist - start.cumDist) > Math.abs(dist)) {
|
||||
break;
|
||||
}
|
||||
targetInd++;
|
||||
targetInd = targetInd + plus;
|
||||
}
|
||||
return target;
|
||||
}
|
||||
|
||||
private boolean findGpxRouteSegment(final RoutingContext ctx, GpxApproximationResult gctx, List<GpxPoint> gpxPoints,
|
||||
GpxPoint start, GpxPoint target) throws IOException, InterruptedException {
|
||||
private boolean findGpxRouteSegment(GpxRouteApproximation gctx, List<GpxPoint> gpxPoints,
|
||||
GpxPoint start, GpxPoint target, boolean prevRouteCalculated) throws IOException, InterruptedException {
|
||||
List<RouteSegmentResult> 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(ctx, start.pnt, target.pnt, null);
|
||||
res = searchRouteInternalPrepare(gctx.ctx, start.pnt, target.pnt, null);
|
||||
routeIsCorrect = res != null && !res.isEmpty();
|
||||
if (routeIsCorrect) {
|
||||
makeStartEndPointsPrecise(res, start.pnt.getPreciseLatLon(), target.pnt.getPreciseLatLon(), null);
|
||||
}
|
||||
for (int k = start.ind + 1; routeIsCorrect && k < target.ind; k++) {
|
||||
GpxPoint ipoint = gpxPoints.get(k);
|
||||
if (!pointCloseEnough(ipoint, res)) {
|
||||
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;
|
||||
}
|
||||
|
@ -397,10 +517,11 @@ public class RoutePlannerFrontEnd {
|
|||
return routeIsCorrect;
|
||||
}
|
||||
|
||||
private boolean pointCloseEnough(GpxPoint ipoint, List<RouteSegmentResult> res) {
|
||||
private boolean pointCloseEnough(GpxRouteApproximation gctx, GpxPoint ipoint, List<RouteSegmentResult> res) {
|
||||
int px = MapUtils.get31TileNumberX(ipoint.loc.getLongitude());
|
||||
int py = MapUtils.get31TileNumberY(ipoint.loc.getLatitude());
|
||||
double SQR = MINIMUM_POINT_APPROXIMATION * MINIMUM_POINT_APPROXIMATION * 4;
|
||||
double SQR = gctx.MINIMUM_POINT_APPROXIMATION;
|
||||
SQR = SQR * SQR;
|
||||
for (RouteSegmentResult sr : res) {
|
||||
int start = sr.getStartPointIndex();
|
||||
int end = sr.getEndPointIndex();
|
||||
|
@ -525,8 +646,8 @@ public class RoutePlannerFrontEnd {
|
|||
|
||||
protected void makeStartEndPointsPrecise(List<RouteSegmentResult> res, LatLon start, LatLon end, List<LatLon> 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);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -540,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();
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
|
|
|
@ -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<TransportStop> stops = r.searchTransportIndex(sr);
|
||||
TIntObjectHashMap<TransportRoute> 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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -1898,7 +1898,7 @@
|
|||
<string name="disable_complex_routing_descr">تعطيل 2-مرحلة التوجيه للملاحة بالسيارة.</string>
|
||||
<string name="rendering_attr_alpineHiking_name">مقياس التنزه في جبال الألب (SAC)</string>
|
||||
<string name="rendering_attr_alpineHiking_description">تقديم المسارات وفقاً لمقياس SAC.</string>
|
||||
<string name="rendering_attr_hikingRoutesOSMC_name">طبقة رمز التسلق</string>
|
||||
<string name="rendering_attr_hikingRoutesOSMC_name">كيفية اظهار رموز طبقة التسلق (الهايكنق)</string>
|
||||
<string name="rendering_attr_hikingRoutesOSMC_description">تقديم المسارات وفقاً لآثار OSMC.</string>
|
||||
<string name="local_index_description">انقر فوق أي عنصر لمعرفة المزيد من التفاصيل، اضغط وواصل الضغط للتعطيل أو الحذف. البيانات الحالية على الجهاز (%1$s متاح):</string>
|
||||
<string name="keep_informing_descr">إعادة إعلان تعليمات الملاحة في فترات منتظمة.</string>
|
||||
|
@ -3797,4 +3797,6 @@
|
|||
<string name="routing_attr_length_name">طول الحد</string>
|
||||
<string name="speed_cameras_removed_descr">هذا الجهاز لا يملك كاميرات السرعة.</string>
|
||||
<string name="app_mode_inline_skates">أحذية تزلج</string>
|
||||
<string name="use_volume_buttons_as_zoom_descr">تمكين التحكم في مستوى التكبير/التصغير بالخريطة باستخدام أزرار مستوى صوت الجهاز.</string>
|
||||
<string name="use_volume_buttons_as_zoom">أزرار مستوى الصوت</string>
|
||||
</resources>
|
|
@ -3665,4 +3665,38 @@ Abasta l\'àrea: %1$s x %2$s</string>
|
|||
<string name="lang_jv">Javanès</string>
|
||||
<string name="lang_gu">Gujarati</string>
|
||||
<string name="tiles_storage_descr">Trieu com desar les tessel·les baixades.</string>
|
||||
<string name="uninstall_speed_cameras">Desinstal·la les càmeres de radar</string>
|
||||
<string name="shared_string_legal">Informació legal</string>
|
||||
<string name="speed_camera_pois">PDIs de càmeres de radar</string>
|
||||
<string name="speed_cameras_legal_descr">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 .</string>
|
||||
<string name="shared_string_uninstall">Desinstal·la</string>
|
||||
<string name="speed_cameras_alert">Les alertes de proximitat a càmeres de radar estan prohibides en alguns països.</string>
|
||||
<string name="details_dialog_decr">Mostra o amaga detalls addicionals del mapa</string>
|
||||
<string name="shared_string_night_map">Mapa nocturn</string>
|
||||
<string name="add_online_source">Afegeix orígen en connexió</string>
|
||||
<string name="clear_tiles_warning">L\'aplicació d\'aquests canvis esborrarà les dades de la memòria cau per a aquesta font de tessel·les</string>
|
||||
<string name="vessel_height_warning_link">Indiqueu l\'alçada del vaixell</string>
|
||||
<string name="vessel_height_warning">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.</string>
|
||||
<string name="vessel_height_limit_description">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.</string>
|
||||
<string name="vessel_width_limit_description">Indiqueu l\'amplada del vaixell per evitar ponts ajustats</string>
|
||||
<string name="quick_action_showhide_mapillary_title">Mostra/amaga Mapil·lary</string>
|
||||
<string name="quick_action_mapillary_hide">Amaga Mapillary</string>
|
||||
<string name="quick_action_mapillary_show">Mostra Mapillary</string>
|
||||
<string name="quick_action_showhide_mapillary_descr">Un commutador per mostrar o amagar la capa de Mapillary al mapa.</string>
|
||||
<string name="routing_attr_length_description">Especifiqueu la llargada del vehicle que han de permetre les vies.</string>
|
||||
<string name="routing_attr_length_name">Llargada màxima</string>
|
||||
<string name="shared_string_bearing">Trajectòria</string>
|
||||
<string name="item_deleted">S\'ha esborrat %1$s</string>
|
||||
<string name="speed_cameras_restart_descr">Cal reiniciar per esborrar totalment les dades de les càmeres de radar.</string>
|
||||
<string name="shared_string_uninstall_and_restart">Desinstal·la i Reinicia</string>
|
||||
<string name="speed_cameras_removed_descr">Aquest dispositiu no inclou les càmeres de radar.</string>
|
||||
<string name="app_mode_inline_skates">Patins en línia</string>
|
||||
<string name="use_volume_buttons_as_zoom_descr">Activeu per controlar el nivell d\'ampliació del mapa amb els botons del volum del dispositiu.</string>
|
||||
<string name="use_volume_buttons_as_zoom">Botons de volum pel zoom</string>
|
||||
</resources>
|
|
@ -1648,8 +1648,8 @@
|
|||
<string name="poi_payment_electronic_purses_yes">Elektronische Geldbörsen</string>
|
||||
<string name="poi_payment_uta_yes">UTA</string>
|
||||
<string name="poi_payment_uta_no">UTA-Karten nicht akzeptiert</string>
|
||||
<string name="poi_payment_efectivo_yes">Bargeld</string>
|
||||
<string name="poi_payment_efectivo_no">Bargeld nicht akzeptiert</string>
|
||||
<string name="poi_payment_efectivo_yes">Efectivo</string>
|
||||
<string name="poi_payment_efectivo_no">Efectivo nicht akzeptiert</string>
|
||||
<string name="poi_payment_girocard_yes">Girokarte</string>
|
||||
<string name="poi_payment_girocard_no">Girokarte nicht akzeptiert</string>
|
||||
<string name="poi_payment_discover_card_yes">Discover-Karte</string>
|
||||
|
|
|
@ -3775,7 +3775,7 @@
|
|||
<string name="height_limit_description">Geben Sie Ihre Fahrzeughöhe an, für hohe Fahrzeuge können einige Routenbeschränkungen gelten.</string>
|
||||
<string name="weight_limit_description">Geben Sie Ihr Fahrzeuggewicht an, für schwere Fahrzeuge können einige Routenbeschränkungen gelten.</string>
|
||||
<string name="export_import_quick_actions_with_profiles_promo">Sie können Schnellaktionen mit Anwendungsprofilen exportieren oder importieren.</string>
|
||||
<string name="shared_string_delete_all_q">Alles Löschen\?</string>
|
||||
<string name="shared_string_delete_all_q">Alles löschen\?</string>
|
||||
<string name="delete_all_actions_message_q">Möchten Sie %d Schnellaktionen wirklich unwiderruflich löschen\?</string>
|
||||
<string name="shared_string_tones">Töne</string>
|
||||
<string name="shared_string_meters">Meter</string>
|
||||
|
@ -3793,7 +3793,7 @@
|
|||
<string name="quick_action_mapillary_hide">Mapillary ausblenden</string>
|
||||
<string name="quick_action_mapillary_show">Mapillary anzeigen</string>
|
||||
<string name="quick_action_showhide_mapillary_descr">Eine Umschaltfläche zum ein- oder ausblenden der Mapillary-Layer auf der Karte.</string>
|
||||
<string name="uninstall_speed_cameras">Blitzer Deinstallieren</string>
|
||||
<string name="uninstall_speed_cameras">Blitzer deinstallieren</string>
|
||||
<string name="shared_string_legal">Rechtliches</string>
|
||||
<string name="speed_camera_pois">Blitzer-POIs</string>
|
||||
<string name="keep_active">Aktiviert lassen</string>
|
||||
|
|
|
@ -3823,4 +3823,6 @@
|
|||
<string name="poi_traffic_signals_arrow">Sageto</string>
|
||||
<string name="poi_traffic_signals_vibration">Vibrado</string>
|
||||
<string name="poi_give_box">Kesto de senpaga interŝanĝo</string>
|
||||
<string name="poi_city_block">Dombloko</string>
|
||||
<string name="poi_borough">Suburbo</string>
|
||||
</resources>
|
|
@ -3818,7 +3818,7 @@
|
|||
<string name="poi_drinking_water_refill_no">Remplissage d\'eau potable : non</string>
|
||||
<string name="poi_drinking_water_refill_network">Réseau de remplissage d\'eau potable</string>
|
||||
<string name="poi_traffic_signals_sound_locate">Uniquement si la marche est autorisée</string>
|
||||
<string name="poi_internet_access_fee_customers">Signal pour trouver le pôle</string>
|
||||
<string name="poi_internet_access_fee_customers">Signal pour trouver le poteau</string>
|
||||
<string name="poi_fire_hydrant_pressure_filter">Pression</string>
|
||||
<string name="poi_osmand_fire_hydrant_pressure_suction">Aspiration</string>
|
||||
<string name="poi_osmand_fire_hydrant_pressure_pressurized">Pressurisé</string>
|
||||
|
@ -3829,4 +3829,5 @@
|
|||
<string name="poi_traffic_signals_vibration_no">Vibration : non</string>
|
||||
<string name="poi_traffic_signals_arrow">Flèche</string>
|
||||
<string name="poi_traffic_signals_vibration">Vibration</string>
|
||||
<string name="poi_give_box">Boîte à dons</string>
|
||||
</resources>
|
|
@ -3834,4 +3834,6 @@ Lon %2$s</string>
|
|||
<string name="routing_attr_length_name">Límite de lonxitude</string>
|
||||
<string name="speed_cameras_removed_descr">Este dispositivo non ten radares de velocidade.</string>
|
||||
<string name="app_mode_inline_skates">Patíns en liña</string>
|
||||
<string name="use_volume_buttons_as_zoom_descr">Activar para controlar o nivel de achegamento (zoom) do mapa cos botóns de volume do dispositivo.</string>
|
||||
<string name="use_volume_buttons_as_zoom">Os botóns de volume mudan o achegamento</string>
|
||||
</resources>
|
|
@ -3778,7 +3778,7 @@
|
|||
<string name="width_limit_description">נא לציין את רוחב כלי הרכב שלך, יתכן שחלות מגבלות מעבר על כלי רכב רחבים.</string>
|
||||
<string name="height_limit_description">נא לציין את גובה כלי הרכב שלך, יתכן שחלות מגבלות מעבר על כלי רכב גבוהים.</string>
|
||||
<string name="weight_limit_description">נא לציין את משקל כלי הרכב שלך, יתכן שחלות מגבלות מעבר על כלי רכב כבדים.</string>
|
||||
<string name="shared_string_tones">גוונים</string>
|
||||
<string name="shared_string_tones">טונות</string>
|
||||
<string name="shared_string_meters">מטרים</string>
|
||||
<string name="details_dialog_decr">הצגה או הסתרה של פירוט נוסף על המפה</string>
|
||||
<string name="shared_string_night_map">מפת לילה</string>
|
||||
|
|
|
@ -591,7 +591,7 @@
|
|||
<string name="choose_available_region">Régió kijelölése listából</string>
|
||||
<string name="choose_intersected_street">Keresztező utca kijelölése</string>
|
||||
<string name="Closest_Amenities">Legközelebbi hasznos létesítmények</string>
|
||||
<string name="app_mode_default">Alapértelmezett</string>
|
||||
<string name="app_mode_default">Térképböngészés</string>
|
||||
<string name="app_mode_car">Vezetés</string>
|
||||
<string name="app_mode_bicycle">Kerékpározás</string>
|
||||
<string name="app_mode_pedestrian">Gyaloglás</string>
|
||||
|
@ -3755,4 +3755,5 @@ Hosszúság: %2$s</string>
|
|||
<string name="reset_plugin_to_default">Bővítménybeállítások visszaállítása alapértelmezettre</string>
|
||||
<string name="use_volume_buttons_as_zoom_descr">Engedélyezésével a térkép nagyítási szintje az eszköz hangerőgombjaival állítható.</string>
|
||||
<string name="use_volume_buttons_as_zoom">Hangerőgombok használata nagyításhoz</string>
|
||||
<string name="app_mode_inline_skates">Görkorcsolya</string>
|
||||
</resources>
|
|
@ -1239,7 +1239,7 @@
|
|||
<string name="poi_tactile_paving_yes">Ja</string>
|
||||
<string name="poi_tactile_paving_no">Zonder blindengeleidestrook</string>
|
||||
<string name="poi_traffic_signals_sound_yes">Ja</string>
|
||||
<string name="poi_traffic_signals_sound_no">Nee</string>
|
||||
<string name="poi_traffic_signals_sound_no">Geluid: nee</string>
|
||||
<string name="poi_traffic_signals_sound_walk">Alleen als oversteken is toegestaan</string>
|
||||
<string name="poi_rescue_station">Reddingstation</string>
|
||||
<string name="poi_services">Verzorgingsplaats</string>
|
||||
|
@ -1391,8 +1391,8 @@
|
|||
<string name="poi_vending_ice_cream">IJs</string>
|
||||
<string name="poi_cuisine_ice_cream">IJs</string>
|
||||
<string name="poi_fuel_avia_type">Brandstoftype (avia)</string>
|
||||
<string name="poi_internet_access_type">Internet verbinding type</string>
|
||||
<string name="poi_vending_type">Verkoop</string>
|
||||
<string name="poi_internet_access_type">Type Internettoegang</string>
|
||||
<string name="poi_vending_type">Verkooptype</string>
|
||||
<string name="poi_bicycle_service">Fietsonderhoud</string>
|
||||
<string name="poi_clothes_type">Soort</string>
|
||||
<string name="poi_shoes_type">Soort</string>
|
||||
|
@ -1482,7 +1482,7 @@
|
|||
<string name="poi_waterway_fuel">Tankstation voor scheepvaart</string>
|
||||
<string name="poi_ice_hockey">IJshockey</string>
|
||||
<string name="poi_internet_access_fee_yes">Internettoegang - betaald</string>
|
||||
<string name="poi_internet_access_fee_no">Internettoegang - gratis</string>
|
||||
<string name="poi_internet_access_fee_no">Internettoegang: gratis</string>
|
||||
<string name="poi_club_freemasonry">Vrijmetselaarsloge</string>
|
||||
<string name="poi_club_sailing">Zeilclub</string>
|
||||
<string name="poi_club_scout">Padvindersclub</string>
|
||||
|
@ -1526,7 +1526,7 @@
|
|||
<string name="poi_payment_eurowag_yes">Eurowag</string>
|
||||
<string name="poi_payment_eurowag_no">Eurowag-kaarten niet geaccepteerd</string>
|
||||
<string name="poi_payment_e_zpass_yes">E-Z Pass</string>
|
||||
<string name="poi_payment_e_zpass_no">E-Z Pass niet geaccepteerd</string>
|
||||
<string name="poi_payment_e_zpass_no">E-ZPass niet geaccepteerd</string>
|
||||
<string name="poi_payment_wire_transfer_yes">Bankoverschrijving</string>
|
||||
<string name="poi_payment_wire_transfer_no">Bankoverschrijving niet geaccepteerd</string>
|
||||
<string name="poi_payment_sms_yes">Betaling via SMS</string>
|
||||
|
@ -1769,7 +1769,7 @@
|
|||
<string name="poi_bridge_structure_simple_suspension">Soort brug: enkele hangbrug</string>
|
||||
<string name="poi_bridge_structure_beam">Brugstructuur: balk</string>
|
||||
<string name="poi_bridge_structure_suspension">Soort brug: enkele brug</string>
|
||||
<string name="poi_bridge_structure_arch">"Soort brug: boogbrug"</string>
|
||||
<string name="poi_bridge_structure_arch">Soort brug: boogbrug</string>
|
||||
<string name="poi_bridge_structure_floating">Soort brug: vlotbrug</string>
|
||||
<string name="poi_bridge_structure_simple_wooden">Soort brug: houten</string>
|
||||
<string name="poi_bridge_structure_viaduct">Soort brug: viaduct</string>
|
||||
|
@ -1874,7 +1874,7 @@
|
|||
<string name="poi_publisher">Uitgeverij</string>
|
||||
<string name="poi_fuel_91ul">Avgas UL 91</string>
|
||||
<string name="poi_fuel_100ll">Avgas 100 LL</string>
|
||||
<string name="poi_fuel_autogas">Autogas</string>
|
||||
<string name="poi_fuel_autogas">LPG</string>
|
||||
<string name="poi_fuel_jeta1">Jet A-1 fuel</string>
|
||||
<string name="poi_fuel_adblue">AdBlue</string>
|
||||
<string name="poi_fuel_wood">Brandstof: hout</string>
|
||||
|
@ -2308,7 +2308,7 @@
|
|||
<string name="poi_surface_unpaved">Oppervlak: onverhard</string>
|
||||
<string name="poi_surface_paved">Oppervlak: verhard</string>
|
||||
<string name="poi_surface_sett">Oppervlak: kasseien</string>
|
||||
<string name="poi_animal_shelter_horse">"Paarden "</string>
|
||||
<string name="poi_animal_shelter_horse">Paarden</string>
|
||||
<string name="poi_animal_shelter_mammal">Zoogdieren</string>
|
||||
<string name="poi_historic_stone">Historische steen</string>
|
||||
<string name="poi_stone_type_conciliation_cross">Type: moordkruis</string>
|
||||
|
@ -2837,7 +2837,7 @@
|
|||
<string name="poi_direction_anticlockwise">Richting: tegen de klok in</string>
|
||||
<string name="poi_direction_up">Richting: omhoog</string>
|
||||
<string name="poi_direction_down">Richting: omlaag</string>
|
||||
<string name="poi_direction_all">"Richting: alle"</string>
|
||||
<string name="poi_direction_all">Richting: alle</string>
|
||||
<string name="poi_surface_clay">Klei</string>
|
||||
<string name="poi_operational_status_open">Open</string>
|
||||
<string name="poi_operational_status_closed">Gesloten</string>
|
||||
|
@ -3198,8 +3198,8 @@
|
|||
<string name="poi_nutrition_supplements">Voedingsmiddelenwinkel</string>
|
||||
<string name="poi_lighting">Verlichting</string>
|
||||
<string name="poi_feeding_place">Dierenvoederplaats</string>
|
||||
<string name="poi_public_bookcase_type_shelf">Soort: plank</string>
|
||||
<string name="poi_public_bookcase_type_phone_box">Soort: telefooncel</string>
|
||||
<string name="poi_public_bookcase_type_shelf">Type: plank</string>
|
||||
<string name="poi_public_bookcase_type_phone_box">Type: telefooncel</string>
|
||||
<string name="poi_xmas_opening_hours">Openingstijden op kerstdagen</string>
|
||||
<string name="poi_xmas_shop">Kerstwinkel</string>
|
||||
<string name="poi_water_tank">Watertank</string>
|
||||
|
@ -3222,8 +3222,8 @@
|
|||
<string name="poi_locksmith">Slotenmaker</string>
|
||||
<string name="poi_party">Feestwinkel</string>
|
||||
<string name="poi_cuisine_sagardotegia">Sagardotegi</string>
|
||||
<string name="poi_public_bookcase_type_metal_cabinet">Soort: metaalkast</string>
|
||||
<string name="poi_public_bookcase_type_reading_box">Soort: leesvak</string>
|
||||
<string name="poi_public_bookcase_type_metal_cabinet">Type: metalen kast</string>
|
||||
<string name="poi_public_bookcase_type_reading_box">Type: leesvak</string>
|
||||
<string name="poi_public_bookcase">Openbare boekenkast</string>
|
||||
<string name="poi_xmas_location">Kerstmis: locatie</string>
|
||||
<string name="poi_xmas_note">Kerstmis: opmerking</string>
|
||||
|
@ -3525,4 +3525,59 @@
|
|||
<string name="poi_socket_cee_red_16a">Stopcontact: CEE-rood 16A</string>
|
||||
<string name="poi_socket_cee_blue_output">Stopcontact: CEE-blauw: vermogen</string>
|
||||
<string name="poi_socket_cee_blue_current">Stopcontact: CEE-blauw: stroom</string>
|
||||
<string name="poi_books_children">Kinder</string>
|
||||
<string name="poi_books_academic">Academische</string>
|
||||
<string name="poi_books_religion">Religieuze</string>
|
||||
<string name="poi_books_antiquarian">Antiquarische</string>
|
||||
<string name="poi_books_comic">Stripverhalen</string>
|
||||
<string name="poi_shop_wholesale">Groothandel</string>
|
||||
<string name="poi_craft_confectionery">Productie van snoepgoed</string>
|
||||
<string name="poi_substation_field_gathering">Veldverzameling</string>
|
||||
<string name="poi_substation_inspection_gauge">Inspectiemeter</string>
|
||||
<string name="poi_substation_valve_group">Ventielgroep</string>
|
||||
<string name="poi_substation_valve">Ventiel</string>
|
||||
<string name="poi_substation_measurement">Meting</string>
|
||||
<string name="poi_substation_compression">Compressie</string>
|
||||
<string name="poi_substation_compensation">Compensatie</string>
|
||||
<string name="poi_substation_converter">Omvormer</string>
|
||||
<string name="poi_substation_traction">Spoorwegen</string>
|
||||
<string name="poi_substation_transition">Overgang</string>
|
||||
<string name="poi_substation_industrial">Industrieel</string>
|
||||
<string name="poi_substation_minor_distribution">Trafohuisje</string>
|
||||
<string name="poi_substation_distribution">Distributie</string>
|
||||
<string name="poi_substation_transmission">Transmissie</string>
|
||||
<string name="poi_bulk_purchase_only">Alleen maar</string>
|
||||
<string name="poi_shoe_repair">Schoenmaker</string>
|
||||
<string name="poi_license_classes">Rijbewijzen</string>
|
||||
<string name="poi_outcrop">Rotsformatie</string>
|
||||
<string name="poi_appliance">Winkel voor huishoudapparatuur</string>
|
||||
<string name="poi_water_utility">Waterleidingbedrijf</string>
|
||||
<string name="poi_checkpoint_type_notebook">Notitieboek</string>
|
||||
<string name="poi_checkpoint_type_code">Code</string>
|
||||
<string name="poi_checkpoint_type_stamp">Stempelpunt</string>
|
||||
<string name="poi_checkpoint_hiking">Wandelcontrolepost</string>
|
||||
<string name="poi_glacier_slope">Gemiddelde helling</string>
|
||||
<string name="poi_glacier_ele_bottom">Laagste punt</string>
|
||||
<string name="poi_glacier_ele_top">Hoogste punt</string>
|
||||
<string name="poi_glacier_type_ice_tongue">IJstong</string>
|
||||
<string name="poi_glacier_type_remnant">Restant</string>
|
||||
<string name="poi_glacier_type_shelf">Schelf</string>
|
||||
<string name="poi_glacier_type_rock">Rots</string>
|
||||
<string name="poi_glacier_type_icefall">Kalvend</string>
|
||||
<string name="poi_glacier_type_hanging">Hangend</string>
|
||||
<string name="poi_glacier_type_mountain">Berg</string>
|
||||
<string name="poi_glacier_type_valley">Vallei</string>
|
||||
<string name="poi_glacier_type_tidewater">Getijdewater</string>
|
||||
<string name="poi_glacier_type_outlet">Monding</string>
|
||||
<string name="poi_glacier_type_plateau">Plateau</string>
|
||||
<string name="poi_glacier_type_icefield">IJsveld</string>
|
||||
<string name="poi_glacier_type_icecap">IJskap</string>
|
||||
<string name="poi_cable_number">Aantal kabels</string>
|
||||
<string name="poi_via_ferrata">Via ferrata</string>
|
||||
<string name="poi_aerialway_zip_line">Tokkelbaan</string>
|
||||
<string name="poi_service_vehicle_car_repair_yes">Autoreparatie</string>
|
||||
<string name="poi_adult_gaming_centre">Gamingcentrum voor volwassenen</string>
|
||||
<string name="poi_amusement_arcade">Speelhal</string>
|
||||
<string name="poi_barbecue_grill">Barbecue: ja</string>
|
||||
<string name="poi_outpost">Pick-up punt</string>
|
||||
</resources>
|
|
@ -498,7 +498,7 @@
|
|||
<string name="follow">Start route begeleiding</string>
|
||||
<string name="recalculate_route_to_your_location">Soort vervoer:</string>
|
||||
<string name="mark_final_location_first">Kies eerst een bestemming</string>
|
||||
<string name="get_directions">Routebeschrijving</string>
|
||||
<string name="get_directions">Route</string>
|
||||
<string name="opening_hours">Openingstijden</string>
|
||||
<string name="opening_changeset">Wijzigingsset openen…</string>
|
||||
<string name="closing_changeset">Wijzigingsset sluiten…</string>
|
||||
|
@ -556,7 +556,7 @@
|
|||
<string name="map_view_3d">Kaartbeeld 3D</string>
|
||||
<string name="show_poi_over_map_description">Toon laatst gebruikte POI-kaartlaag.</string>
|
||||
<string name="show_poi_over_map">Toon POI-kaartlaag</string>
|
||||
<string name="map_tile_source_descr">Kies bron van online of opgeslagen kaartsegmenten</string>
|
||||
<string name="map_tile_source_descr">Kies bron van online of gecachte kaartsegmenten.</string>
|
||||
<string name="map_tile_source">Kaartsegment bron</string>
|
||||
<string name="map_source">Kaartbron</string>
|
||||
<string name="use_internet">Gebruik internet</string>
|
||||
|
@ -707,7 +707,7 @@
|
|||
<string name="global_app_allocated_memory_descr">Beschikbaar werkgeheugen %1$s MB (Android limiet %2$s MB, Dalvik %3$s MB).</string>
|
||||
<string name="global_app_allocated_memory">Beschikbaar werkgeheugen</string>
|
||||
<string name="native_app_allocated_memory_descr">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).</string>
|
||||
\n Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</string>
|
||||
<string name="native_app_allocated_memory">Totaal werkgeheugen</string>
|
||||
<string name="select_animate_speedup">Snelheid van de routesimulatie:</string>
|
||||
<string name="osmand_parking_hours">Uur</string>
|
||||
|
@ -754,7 +754,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="osmand_plus_short_description_80_chars">OsmAnd is een open-source navigatiesysteem met online en offline kaarten</string>
|
||||
<string name="osmand_long_description_1000_chars">OsmAnd (OSM Automated Navigation Directions)
|
||||
\n
|
||||
\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 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 belangrijkste mogelijkheden:
|
||||
\n - Volledig offline gebruik (gedownloade vector- of rasterkaarten worden opgeslagen op het apparaat)
|
||||
|
@ -995,8 +995,8 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="clear_intermediate_points">Wis Tussenpunten</string>
|
||||
<string name="keep_intermediate_points">Bewaar Tussenpunten</string>
|
||||
<string name="new_directions_point_dialog">Er zijn al Tussenpunten gemaakt.</string>
|
||||
<string name="context_menu_item_directions_to">Routebeschrijving naar</string>
|
||||
<string name="context_menu_item_directions_from">Routebeschrijving vanaf</string>
|
||||
<string name="context_menu_item_directions_to">Route naar</string>
|
||||
<string name="context_menu_item_directions_from">Route vanaf</string>
|
||||
<string name="route_descr_map_location">Kaart: </string>
|
||||
<string name="route_to">Naar:</string>
|
||||
<string name="route_via">Via:</string>
|
||||
|
@ -1365,8 +1365,8 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="edit_group">Bewerk groep</string>
|
||||
<string name="plugin_install_needs_network">Om deze plugin te installeren is een internetverbinding nodig.</string>
|
||||
<string name="plugin_nautical_name">Nautische kaartweergave</string>
|
||||
<string name="world_ski_missing">Om skikaarten te kunnen gebruiken, moet u de speciale offline skikaart downloaden</string>
|
||||
<string name="nautical_maps_missing">Om nautische kaarten te kunnen gebruiken, moet u de speciale offline nautische kaart downloaden</string>
|
||||
<string name="world_ski_missing">Download de speciale offline kaart om skifaciliteiten weer te geven.</string>
|
||||
<string name="nautical_maps_missing">Download de speciale offline kaart om nautische details weer te geven.</string>
|
||||
<string name="get_plugin">Installeren</string>
|
||||
<string name="watch">Bekijk</string>
|
||||
<string name="rendering_attr_pisteRoutes_name">Ski-pistes</string>
|
||||
|
@ -1718,7 +1718,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="update_all">Alles updaten (%1$s MB)</string>
|
||||
<string name="free_downloads_used">Gebruikte gratis downloads</string>
|
||||
<string name="free_downloads_used_description">Bekijk hoeveel gratis downloads er al gebruikt zijn.</string>
|
||||
<string name="application_dir_description">"Kies waar kaarten en andere gegevens opgeslagen worden."</string>
|
||||
<string name="application_dir_description">Kies waar kaarten en andere gegevens opgeslagen worden.</string>
|
||||
<string name="show_on_start_description">\'Uit\' toont direct de kaart.</string>
|
||||
<string name="enter_country_name">Kies het land</string>
|
||||
<string name="new_version">Nieuwe versie</string>
|
||||
|
@ -1961,7 +1961,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="follow_us">Volg ons</string>
|
||||
<string name="access_direction_audio_feedback">Richting aangeven met geluid</string>
|
||||
<string name="access_direction_audio_feedback_descr">Geef de richting van de bestemming aan met geluid.</string>
|
||||
<string name="access_direction_haptic_feedback">Richting aangeven met trilling</string>
|
||||
<string name="access_direction_haptic_feedback">Richting aangeven met trillen</string>
|
||||
<string name="access_direction_haptic_feedback_descr">Geef de richting van de bestemming aan met trillingen.</string>
|
||||
<string name="move_marker_bottom_sheet_title">Verplaats de kaart om de positie van de markering te wijzigen</string>
|
||||
<!-- string name="lat_lon_pattern">Lat: %1$.5f Lon: %2$.5f</string -->
|
||||
|
@ -2104,62 +2104,62 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="navigate_point_olc_info_area">Geldige volledige OLC
|
||||
\nBeslaat gebied: %1$s x %2$s</string>
|
||||
<string name="configure_screen_quick_action">Sneltoets</string>
|
||||
<string name="quick_action_item_action">Actie %d</string>
|
||||
<string name="quick_action_item_action">Sneltoets %d</string>
|
||||
<string name="quick_action_item_screen">Scherm %d</string>
|
||||
<string name="quick_action_add_marker">Markeervlaggetje toevoegen</string>
|
||||
<string name="quick_action_add_poi">POI toevoegen</string>
|
||||
<string name="quick_action_map_style">Kaartstijl wisselen</string>
|
||||
<string name="quick_action_map_style">Kaartstijl wijzigen</string>
|
||||
<string name="quick_action_map_style_switch">De kaartstijl is gewijzigd naar \"%s\".</string>
|
||||
<string name="quick_action_take_audio_note">Audio-notitie maken</string>
|
||||
<string name="quick_action_take_video_note">Video-notitie maken</string>
|
||||
<string name="quick_action_take_photo_note">Maak foto</string>
|
||||
<string name="quick_action_add_osm_bug">Voeg OSM-notitie toe</string>
|
||||
<string name="quick_action_navigation_voice">Stembegeleiding Aan/Uit</string>
|
||||
<string name="quick_action_navigation_voice_off">Stembegeleiding staat uit</string>
|
||||
<string name="quick_action_navigation_voice_on">Stembegeleiding staat aan</string>
|
||||
<string name="quick_action_add_gpx">GPX-routepunt maken</string>
|
||||
<string name="quick_action_add_parking">Parkeerpositie instellen</string>
|
||||
<string name="quick_action_new_action">Actie toevoegen</string>
|
||||
<string name="quick_action_edit_action">Actie bewerken</string>
|
||||
<string name="quick_action_take_audio_note">Audionotitie maken</string>
|
||||
<string name="quick_action_take_video_note">Videonotitie maken</string>
|
||||
<string name="quick_action_take_photo_note">Fotonotitie maken</string>
|
||||
<string name="quick_action_add_osm_bug">OSM-notitie toevoegen</string>
|
||||
<string name="quick_action_navigation_voice">Stembegeleiding aan/uit</string>
|
||||
<string name="quick_action_navigation_voice_off">Stembegeleiding aan</string>
|
||||
<string name="quick_action_navigation_voice_on">Stembegeleiding uit</string>
|
||||
<string name="quick_action_add_gpx">GPX-routepunt toevoegen</string>
|
||||
<string name="quick_action_add_parking">Parkeerlocatie instellen</string>
|
||||
<string name="quick_action_new_action">Sneltoets toevoegen</string>
|
||||
<string name="quick_action_edit_action">Sneltoets bewerken</string>
|
||||
<string name="quick_action_add_favorite">Favoriet toevoegen</string>
|
||||
<string name="dialog_add_action_title">Actie toevoegen</string>
|
||||
<string name="quick_actions_delete">Actie verwijderden</string>
|
||||
<string name="quick_actions_delete_text">"Actie \"%s\" inderdaad verwijderen?"</string>
|
||||
<string name="quick_favorites_show_favorites_dialog">Toon favorietenscherm</string>
|
||||
<string name="quick_actions_delete">Sneltoets verwijderen</string>
|
||||
<string name="quick_actions_delete_text">Weet je zeker dat je sneltoets \"%s\" wilt verwijderen\?</string>
|
||||
<string name="quick_favorites_show_favorites_dialog">Toon Favorieten-scherm</string>
|
||||
<string name="quick_favorites_name_preset">Naam voorstellen</string>
|
||||
<string name="quick_action_add_marker_descr">Een toets om een Markeervlaggetje toe te voegen in het midden van het scherm.</string>
|
||||
<string name="quick_action_add_gpx_descr">Een knop om een GPX-routepunt toe te voegen in het midden van het scherm.</string>
|
||||
<string name="quick_action_take_audio_note_descr">Een knop om een Audio-notitie toe te voegen in het midden van het scherm.</string>
|
||||
<string name="quick_action_take_video_note_descr">Een knop om een Video-notitie toe te voegen in het midden van het scherm.</string>
|
||||
<string name="quick_action_take_photo_note_descr">Een knop om een Foto-notitie toe te voegen in het midden van het scherm.</string>
|
||||
<string name="quick_action_take_audio_note_descr">Een knop om een audio-notitie toe te voegen in het midden van het scherm.</string>
|
||||
<string name="quick_action_take_video_note_descr">Een knop om een video-notitie toe te voegen in het midden van het scherm.</string>
|
||||
<string name="quick_action_take_photo_note_descr">Een knop om een foto-notitie toe te voegen in het midden van het scherm.</string>
|
||||
<string name="quick_action_add_osm_bug_descr">Een knop om een OSM-notitie toe te voegen in het midden van het scherm.</string>
|
||||
<string name="quick_action_add_poi_descr">Een knop om een POI toe te voegen in het midden van het scherm.</string>
|
||||
<string name="quick_action_navigation_voice_descr">Een schakelknop om de stembegeleiding aan of uit te zetten tijdens navigatie.</string>
|
||||
<string name="quick_action_add_parking_descr">Een knop om de parkeerpositie toe te voegen in het midden van het scherm.</string>
|
||||
<string name="quick_action_add_parking_descr">Een knop om een parkeerlocatie toe te voegen in het midden van het scherm.</string>
|
||||
<string name="quick_action_interim_dialog">Bewerkingsdialoog tonen</string>
|
||||
<string name="favorite_autofill_toast_text">" opgeslagen als "</string>
|
||||
<string name="favorite_empty_place_name">Plaats</string>
|
||||
<string name="quick_action_duplicates">Sneltoetsnaam gewijzigd in %1$s om duplicaat te voorkomen.</string>
|
||||
<string name="quick_action_duplicate">Sneltoets-duplicaat</string>
|
||||
<string name="quick_action_showhide_favorites_descr">Een schakelknop toont of verbergt de Favoriete punten op de kaart.</string>
|
||||
<string name="quick_action_showhide_poi_descr">Een schakelknop om POI’s op de kaart te tonen of te verbergen.</string>
|
||||
<string name="quick_action_showhide_favorites_descr">Een schakelknop om Favorieten al dan niet te tonen op de kaart.</string>
|
||||
<string name="quick_action_showhide_poi_descr">Een schakelknop om POI’s al dan niet op de kaart te tonen.</string>
|
||||
<string name="quick_action_showhide_favorites_title">Favorieten tonen /verbergen</string>
|
||||
<string name="quick_action_favorites_show">Toon favorieten</string>
|
||||
<string name="quick_action_favorites_hide">Verberg favorieten</string>
|
||||
<string name="quick_action_showhide_poi_title">POI tonen/verbergen</string>
|
||||
<string name="quick_action_poi_show">Toon %1$s</string>
|
||||
<string name="quick_action_poi_hide">Verberg %1$s</string>
|
||||
<string name="quick_action_favorites_show">Favorieten tonen</string>
|
||||
<string name="quick_action_favorites_hide">Favorieten verbergen</string>
|
||||
<string name="quick_action_showhide_poi_title">POI’s tonen/verbergen</string>
|
||||
<string name="quick_action_poi_show">%1$s tonen</string>
|
||||
<string name="quick_action_poi_hide">%1$s verbergen</string>
|
||||
<string name="quick_action_add_category">Categorie toevoegen</string>
|
||||
<string name="quick_action_add_create_items">Items aanmaken</string>
|
||||
<string name="quick_action_add_configure_map">Kaart-instellingen</string>
|
||||
<string name="quick_action_add_configure_map">Kaartinstellingen</string>
|
||||
<string name="quick_action_add_navigation">Navigatie</string>
|
||||
<string name="quick_action_fav_name_descr">Leeg laten om automatisch adres of plaatsnaam te gebruiken.</string>
|
||||
<string name="quick_action_bug_descr">Dit bericht wordt automatisch aangevuld in het commentaarveld.</string>
|
||||
<string name="quick_action_fav_name_descr">Leeg laten om adres of plaatsnaam te gebruiken.</string>
|
||||
<string name="quick_action_bug_descr">Dit bericht wordt automatisch ingevuld in het commentaarveld.</string>
|
||||
<string name="quick_action_bug_message">Bericht</string>
|
||||
<string name="quick_action_category_descr">Categorie om de Favoriet in op te slaan:</string>
|
||||
<string name="quick_action_gpx_category_descr">Kies een categorie (optie).</string>
|
||||
<string name="quick_action_gpx_category_descr">Kies een optionele categorie.</string>
|
||||
<string name="quick_action_poi_list">POI-lijst</string>
|
||||
<string name="quick_action_sh_poi_descr">Je kunt één of meerdere POI-categorieën kiezen om weer te geven.</string>
|
||||
<string name="quick_action_sh_poi_descr">Je kunt één of meerdere POI-categorieën kiezen om te tonen op de kaart.</string>
|
||||
<string name="quick_action_page_list_descr">Een knop om door de onderstaande lijst te bladeren.</string>
|
||||
<string name="quick_action_map_style_action">Kaartstijl toevoegen</string>
|
||||
<string name="quick_action_empty_param_error">Alle parameters invullen</string>
|
||||
|
@ -2219,14 +2219,14 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="select_city">Plaats kiezen</string>
|
||||
<string name="select_postcode">Postcode zoeken</string>
|
||||
<string name="quick_action_auto_zoom">Autozoom kaart aan/uit</string>
|
||||
<string name="quick_action_auto_zoom_desc">Knop om de automatische kaartzoom volgens de snelheid aan of uit te zetten.</string>
|
||||
<string name="quick_action_auto_zoom_desc">Knop om de snelheidsgebaseerde automatische zoom aan of uit te zetten.</string>
|
||||
<string name="quick_action_auto_zoom_on">Autozoom aan</string>
|
||||
<string name="quick_action_auto_zoom_off">Autozoom uit</string>
|
||||
<string name="quick_action_add_destination">Bestemming instellen</string>
|
||||
<string name="quick_action_replace_destination">Bestemming vervangen</string>
|
||||
<string name="quick_action_add_first_intermediate">Eerste Tussenpunt toevoegen</string>
|
||||
<string name="quick_action_add_destination_desc">Een druk op de sneltoets voegt het midden van het scherm toe als bestemming. De vorige bestemming wordt het laatste tussenpunt.</string>
|
||||
<string name="quick_action_replace_destination_desc">Een knop om de bestemming in het schermmidden te plaatsen waardoor de (eventuele) hiervoor geselecteerde bestemming wordt vervangen.</string>
|
||||
<string name="quick_action_add_first_intermediate">Eerste tussenpunt toevoegen</string>
|
||||
<string name="quick_action_add_destination_desc">Een knop om het midden van het scherm in te stellen als bestemming, de vorige bestemming wordt het laatste tussenpunt.</string>
|
||||
<string name="quick_action_replace_destination_desc">Een knop om het midden van het scherm in te stellen als bestemming, waardoor de (eventueel) eerder ingestelde bestemming wordt vervangen.</string>
|
||||
<string name="quick_action_add_first_intermediate_desc">Een knop om het midden van het scherm als eerste tussenpunt toe te voegen.</string>
|
||||
<string name="no_overlay">Geen extra laag</string>
|
||||
<string name="no_underlay">Geen achtergrondlaag</string>
|
||||
|
@ -2279,9 +2279,9 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="routing_attr_allow_private_description">Ga ook over privé-terreinen.</string>
|
||||
<string name="display_zoom_level">Zoomniveau weergave: %1$s</string>
|
||||
<string name="route_is_too_long_v2">Voor grote afstanden: voeg tussenpunten toe als binnen de 10 minuten geen route berekend is.</string>
|
||||
<string name="osmand_extended_description_part1">"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."</string>
|
||||
<string name="osmand_extended_description_part1">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.</string>
|
||||
<string name="osmand_extended_description_part2">GPS-navigatie
|
||||
\n • Offline (geen datakosten) of online (snellere) routeberekening
|
||||
\n • Stap-voor-stap navigatie met opgenomen stem of gesproken straatnamen
|
||||
|
@ -2311,7 +2311,12 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
\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</string>
|
||||
<string name="osmand_extended_description_part6">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
|
||||
<string name="osmand_extended_description_part6">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</string>
|
||||
<string name="osmand_extended_description_part7">Draag bij aan OpenStreetMap (OSM)
|
||||
\n • Meld fouten
|
||||
|
@ -2332,7 +2337,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
\n • Afrika: **
|
||||
\n • Antarctica: *
|
||||
\n Voor bijna elk land ter wereld kunt u een kaart downloaden.</string>
|
||||
<string name="osmand_plus_extended_description_part8">Indicatie van compleetheid en kwaliteit van de kaart:
|
||||
<string name="osmand_plus_extended_description_part8">Indicatie van de volledigheid en kwaliteit van het kaartmateriaal:
|
||||
\n • West-Europa: ****
|
||||
\n • Oost-Europa: ***
|
||||
\n • Rusland: ***
|
||||
|
@ -2342,14 +2347,15 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
\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</string>
|
||||
<string name="save_poi_too_many_uppercase">Naam bevat erg veel hoofdletters, toch doorgaan?</string>
|
||||
<string name="search_favorites">Zoek in Favorieten</string>
|
||||
<string name="quick_action_showhide_osmbugs_title">Toon of verberg OSM notities</string>
|
||||
<string name="quick_action_osmbugs_show">Toon OSM notities</string>
|
||||
<string name="quick_action_osmbugs_hide">Verberg OSM notities</string>
|
||||
<string name="quick_action_showhide_osmbugs_descr">Knop om OSM notities te tonen of verbergen.</string>
|
||||
<string name="quick_action_showhide_osmbugs_title">OSM-notities tonen of verbergen</string>
|
||||
<string name="quick_action_osmbugs_show">OSM-notities tonen</string>
|
||||
<string name="quick_action_osmbugs_hide">OSM-notities verbergen</string>
|
||||
<string name="quick_action_showhide_osmbugs_descr">Knop om OSM-notities al dan niet te tonen.</string>
|
||||
<string name="sorted_by_distance">Gesorteerd op afstand</string>
|
||||
<string name="private_access_routing_req">Uw bestemming ligt in een gebied dat particulier eigendom is. Wilt u gebruik van particuliere wegen voor deze route toestaan\?</string>
|
||||
<string name="restart_search">Opnieuw zoeken</string>
|
||||
|
@ -2373,13 +2379,19 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="shared_string_permissions">Rechten</string>
|
||||
<string name="import_gpx_failed_descr">Kan bestand niet importeren. Controleer of OsmAnd rechten heeft om het bestand te lezen.</string>
|
||||
<string name="distance_moving">Gecorrigeerde afstand</string>
|
||||
<string name="osmand_plus_extended_description_part1">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.
|
||||
\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:</string>
|
||||
<string name="osmand_plus_extended_description_part2">" 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 "</string>
|
||||
<string name="osmand_plus_extended_description_part1">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:</string>
|
||||
<string name="osmand_plus_extended_description_part2">" 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 "</string>
|
||||
<string name="osmand_plus_extended_description_part3">Kaartweergave
|
||||
\n • Positie en richting tonen
|
||||
\n • Kaart draaien in kompas- of bewegingsrichting
|
||||
|
@ -2449,7 +2461,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="enter_gpx_name">GPX bestandsnaam:</string>
|
||||
<string name="show_on_map_after_saving">Toon op kaart na opslaan</string>
|
||||
<string name="measurement_tool">Afstand meten</string>
|
||||
<string name="quick_action_start_stop_navigation">Start/stop navigatie</string>
|
||||
<string name="quick_action_start_stop_navigation">Navigatie starten/stoppen</string>
|
||||
<string name="average">Gemiddeld</string>
|
||||
<string name="of">%1$d van de %2$d</string>
|
||||
<string name="retry">Probeer opnieuw</string>
|
||||
|
@ -2555,7 +2567,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="empty_state_markers_active">Maak markeringen aan op de kaart!</string>
|
||||
<string name="shared_string_two">Twee</string>
|
||||
<string name="shared_string_one">Een</string>
|
||||
<string name="active_markers_descr">Kies hoeveel markeervlaggetjes getoond worden:</string>
|
||||
<string name="active_markers_descr">Kies hoeveel markeervlaggetjes getoond worden.</string>
|
||||
<string name="digits_quantity">Aantal decimalen</string>
|
||||
<string name="shared_string_right">Rechts</string>
|
||||
<string name="shared_string_left">Links</string>
|
||||
|
@ -2736,7 +2748,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="wiki_article_search_text">Zoeken naar het bijbehorende wiki-artikel</string>
|
||||
<string name="wiki_article_not_found">Artikel niet gevonden</string>
|
||||
<string name="how_to_open_wiki_title">Hoe Wikipedia-artikelen te openen?</string>
|
||||
<string name="quick_action_edit_actions">Wijzig acties</string>
|
||||
<string name="quick_action_edit_actions">Wijzig sneltoetsen</string>
|
||||
<string name="shared_string_bookmark">Bladwijzer</string>
|
||||
<string name="point_deleted">Punt %1$s verwijderd</string>
|
||||
<string name="coord_input_edit_point">Punt bewerken</string>
|
||||
|
@ -2780,7 +2792,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
\n
|
||||
\n • Ondersteuning voor het wijzigen van polygon-(non-faciliteits)voorwerpen
|
||||
\n</string>
|
||||
<string name="test_voice_desrc">Druk op een knop en luister naar de bijhorende gesproken melding om ontbrekende of foutieve meldingen te identificeren.</string>
|
||||
<string name="test_voice_desrc">Tik op een knop en luister naar de bijbehorende gesproken prompt om te horen of deze ontbreekt of incorrect is</string>
|
||||
<string name="osm_live_subscriptions">Abonnementen</string>
|
||||
<string name="powered_by_osmand">Mogelijk gemaakt door OsmAnd</string>
|
||||
<string name="osm_live_plan_pricing">Tariefoverzicht</string>
|
||||
|
@ -2825,7 +2837,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="shared_string_milliradians">Milliradialen</string>
|
||||
<string name="angular_measeurement_descr">Wijzig azimut eenheid.</string>
|
||||
<string name="avoid_pt_types_descr">Selecteer de te vermijden openbaar vervoer opties:</string>
|
||||
<string name="quick_action_day_night_mode">%s modus</string>
|
||||
<string name="quick_action_day_night_mode">%smodus</string>
|
||||
<string name="avoid_pt_types">Vermijd transport types…</string>
|
||||
<string name="shared_string_walk">Loop</string>
|
||||
<string name="save_poi_value_exceed_length">Verkort de lengte van \"%s\" tot minder dan 255 karakters.</string>
|
||||
|
@ -2884,10 +2896,10 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="shared_string_swap">Wissel</string>
|
||||
<string name="show_more">Toon meer</string>
|
||||
<string name="tracks_on_map">Getoonde tracks</string>
|
||||
<string name="quick_action_show_hide_gpx_tracks">Toon/Verberg GPX-tracks</string>
|
||||
<string name="quick_action_show_hide_gpx_tracks_descr">Een knop om bepaalde GPX-tracks te tonen of verbergen op de kaart.</string>
|
||||
<string name="quick_action_gpx_tracks_hide">Verberg GPX-tracks</string>
|
||||
<string name="quick_action_gpx_tracks_show">Toon GPX-tracks</string>
|
||||
<string name="quick_action_show_hide_gpx_tracks">GPX-tracks tonen/verbergen</string>
|
||||
<string name="quick_action_show_hide_gpx_tracks_descr">Een knop om geselecteerde GPX-tracks al dan niet te tonen op de kaart.</string>
|
||||
<string name="quick_action_gpx_tracks_hide">GPX-tracks verbergen</string>
|
||||
<string name="quick_action_gpx_tracks_show">GPX-tracks tonen</string>
|
||||
<string name="add_destination_query">Voeg a.u.b. eerst de Bestemming in</string>
|
||||
<string name="previous_route">Vorige route</string>
|
||||
<string name="add_home">Thuisadres toevoegen</string>
|
||||
|
@ -2914,10 +2926,10 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="intermediate_destinations">Tussenbestemmingen</string>
|
||||
<string name="arrive_at_time">Aankomst om %1$s</string>
|
||||
<string name="shared_string_launch">Open</string>
|
||||
<string name="quick_action_switch_day_night_descr">Tik deze knop om te wisselen tussen de OsmAnd dag en nacht modus.</string>
|
||||
<string name="quick_action_switch_day_mode">Dag modus</string>
|
||||
<string name="quick_action_switch_night_mode">Nacht modus</string>
|
||||
<string name="quick_action_day_night_switch_mode">Wissel tussen dag/nacht modus</string>
|
||||
<string name="quick_action_switch_day_night_descr">Een schakelknop om OsmAnd om te schakelen tussen dag- en nachtmodus.</string>
|
||||
<string name="quick_action_switch_day_mode">Dagmodus</string>
|
||||
<string name="quick_action_switch_night_mode">Nachtmodus</string>
|
||||
<string name="quick_action_day_night_switch_mode">Wissel tussen dag-/nachtmodus</string>
|
||||
<string name="routeInfo_surface_name">Oppervlakte</string>
|
||||
<string name="routeInfo_smoothness_name">Kwaliteit wegdek</string>
|
||||
<string name="routeInfo_steepness_name">Steilte</string>
|
||||
|
@ -3181,13 +3193,13 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="app_mode_utv">Naast elkaar</string>
|
||||
<string name="shared_string_maps">Kaarten</string>
|
||||
<string name="quick_action_contour_lines_descr">Knop om hoogtelijnen al dan niet te tonen op de kaart.</string>
|
||||
<string name="quick_action_contour_lines_show">Toon de hoogtelijnen</string>
|
||||
<string name="quick_action_contour_lines_hide">Verberg de hoogtelijnen</string>
|
||||
<string name="quick_action_show_hide_contour_lines">Toon/verberg de hoogtelijnen</string>
|
||||
<string name="quick_action_contour_lines_show">Hoogtelijnen tonen</string>
|
||||
<string name="quick_action_contour_lines_hide">Hoogtelijnen verbergen</string>
|
||||
<string name="quick_action_show_hide_contour_lines">Hoogtelijnen tonen/verbergen</string>
|
||||
<string name="quick_action_hillshade_descr">Knop om de reliëfschaduw al dan niet te tonen op de kaart.</string>
|
||||
<string name="quick_action_hillshade_show">Toon reliëfschaduw</string>
|
||||
<string name="quick_action_hillshade_hide">Verberg reliëfschaduw</string>
|
||||
<string name="quick_action_show_hide_hillshade">Toon/verberg reliëfschaduw</string>
|
||||
<string name="quick_action_hillshade_show">Reliëfschaduw tonen</string>
|
||||
<string name="quick_action_hillshade_hide">Reliëfschaduw verbergen</string>
|
||||
<string name="quick_action_show_hide_hillshade">Reliëfschaduw tonen/verbergen</string>
|
||||
<string name="track_saved">Track opgeslagen</string>
|
||||
<string name="rendering_attr_showCycleNodeNetworkRoutes_name">Toon knooppunt van de fietsroutes</string>
|
||||
<string name="contour_lines_and_hillshade">Hoogtelijnen en reliëfschaduw</string>
|
||||
|
@ -3293,7 +3305,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="store_tracks_in_daily_directories">Sla tracks op in dagelijkse folders</string>
|
||||
<string name="store_tracks_in_daily_directories_descrp">Sla tracks op in sub-folders per opname dag (zoals 2018-01-01).</string>
|
||||
<string name="simulate_your_location_gpx_descr">Simuleer uw positie door een opgenomen GPX track te gebruiken.</string>
|
||||
<string name="quick_action_directions_from_desc">Een knop om het scherm te centreren op het vertrekpunt. Zal dan de bestemming vragen of de routeberekening starten.</string>
|
||||
<string name="quick_action_directions_from_desc">Een knop om het midden van het scherm in te stellen als vertrekpunt. Hierna wordt de bestemming gevraagd of de routeberekening gestart.</string>
|
||||
<string name="download_map_dialog">Dialoogvenster kaart downloads</string>
|
||||
<string name="dialogs_and_notifications_title">Dialogen en meldingen</string>
|
||||
<string name="dialogs_and_notifications_descr">Bepaal popups, dialogen en meldingen.</string>
|
||||
|
@ -3462,10 +3474,10 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="profile_backup_failed">Kan profiel niet back-uppen.</string>
|
||||
<string name="n_items_of_z">%1$s of %2$s</string>
|
||||
<string name="download_slope_maps">Hellingen</string>
|
||||
<string name="quick_action_show_hide_terrain">Toon/Verberg de omgeving</string>
|
||||
<string name="quick_action_terrain_hide">Verberg de omgeving</string>
|
||||
<string name="quick_action_terrain_show">Toon de omgeving</string>
|
||||
<string name="quick_action_terrain_descr">Een knop om een laag op de kaart weer te geven of te verbergen.</string>
|
||||
<string name="quick_action_show_hide_terrain">Terrein tonen / verbergen</string>
|
||||
<string name="quick_action_terrain_hide">Terrein verbergen</string>
|
||||
<string name="quick_action_terrain_show">Terrein tonen</string>
|
||||
<string name="quick_action_terrain_descr">Een knop om de terreinlaag al dan niet te tonen op de kaart.</string>
|
||||
<string name="delete_description">Verwijder een beschrijving</string>
|
||||
<string name="add_description">Voeg een beschrijving toe</string>
|
||||
<string name="select_group">Selecteer groep</string>
|
||||
|
@ -3492,7 +3504,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="vessel_height_limit_description">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.</string>
|
||||
<string name="screen_timeout_descr">Als \"%1$s\" is geactiveerd, is de actieve tijd hiervan afhankelijk.</string>
|
||||
<string name="default_screen_timeout">Standaard schermtimeout</string>
|
||||
<string name="shared_string_tones">tonen</string>
|
||||
<string name="shared_string_tones">ton</string>
|
||||
<string name="shared_string_meters">meter</string>
|
||||
<string name="details_dialog_decr">Toon/verberg extra kaartdetails</string>
|
||||
<string name="shared_string_night_map">Nachtkaart</string>
|
||||
|
@ -3500,10 +3512,10 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="clear_tiles_warning">Het toepassen van deze wijzigingen wist de cache van deze tile-bron</string>
|
||||
<string name="vessel_height_warning_link">Stel de hoogte van het vaartuig in</string>
|
||||
<string name="vessel_height_warning">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.</string>
|
||||
<string name="quick_action_showhide_mapillary_title">Toon/verberg Mapillary</string>
|
||||
<string name="quick_action_mapillary_hide">Verberg Mapillary</string>
|
||||
<string name="quick_action_mapillary_show">Toon Mapillary</string>
|
||||
<string name="quick_action_showhide_mapillary_descr">Toon/verberg de Mapillary-laag op de kaart.</string>
|
||||
<string name="quick_action_showhide_mapillary_title">Mapillary tonen/verbergen</string>
|
||||
<string name="quick_action_mapillary_hide">Mapillary verbergen</string>
|
||||
<string name="quick_action_mapillary_show">Mapillary tonen</string>
|
||||
<string name="quick_action_showhide_mapillary_descr">Een schakelknop om de Mapillary-laag al dan niet te tonen op de kaart.</string>
|
||||
<string name="routing_attr_length_description">Geef de toegestane voertuiglengte op voor routes.</string>
|
||||
<string name="routing_attr_length_name">Maximale lengte</string>
|
||||
<string name="shared_string_bearing">Richting</string>
|
||||
|
@ -3619,7 +3631,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="quick_action_transport_hide">OV-informatie verbergen</string>
|
||||
<string name="quick_action_transport_show">OV-informatie tonen</string>
|
||||
<string name="quick_action_show_hide_transport">OV-informatie tonen/verbergen</string>
|
||||
<string name="quick_action_transport_descr">Knop om OV-informatie op de kaart te tonen of verbergen.</string>
|
||||
<string name="quick_action_transport_descr">Knop om OV-informatie al dan niet te tonen op de kaart.</string>
|
||||
<string name="add_edit_favorite">Favoriet toevoegen / bewerken</string>
|
||||
<string name="create_edit_poi">POI toevoegen / bewerken</string>
|
||||
<string name="parking_positions">Parkeerlocaties</string>
|
||||
|
@ -3632,7 +3644,7 @@ Proportioneel werkgeheugen %4$s MB (Android limiet %5$s MB, Dalvik %6$s MB).</st
|
|||
<string name="unsupported_type_error">Niet ondersteund type</string>
|
||||
<string name="width_limit_description">Geef de voertuigbreedte op, er zijn mogelijk routebeperkingen voor brede voertuigen.</string>
|
||||
<string name="height_limit_description">Geef de voertuighoogte op, er zijn mogelijk routebeperkingen voor hoge voertuigen.</string>
|
||||
<string name="weight_limit_description">Geef het voertuiggewicht op, er zijn mogelijk routbeperkingen voor zwaar verkeer.</string>
|
||||
<string name="weight_limit_description">Geef het voertuiggewicht op, er zijn mogelijk routebeperkingen voor zwaar verkeer.</string>
|
||||
<string name="gpx_parse_error">OsmAnd GPX is corrupt, neem contact op met het support team voor verder onderzoek.</string>
|
||||
<string name="shared_string_always">Altijd</string>
|
||||
<string name="screen_control">Scherminstellingen</string>
|
||||
|
|
|
@ -1538,7 +1538,7 @@
|
|||
<string name="poi_research">Истраживачка канцеларија</string>
|
||||
<string name="poi_newspaper">Новинарска канцеларија</string>
|
||||
<string name="poi_architect">Канцеларија архитекта</string>
|
||||
<string name="poi_bookmaker">Штампарија</string>
|
||||
<string name="poi_bookmaker">Кладионица</string>
|
||||
<string name="poi_office_religion">Канцеларија за религије</string>
|
||||
<string name="poi_association">Канцеларија удружења</string>
|
||||
<string name="poi_financial">Финансијска канцеларија</string>
|
||||
|
@ -2765,4 +2765,11 @@
|
|||
<string name="poi_ref">Реф.</string>
|
||||
<string name="poi_tunnel_ref">Реф. тунела</string>
|
||||
<string name="poi_bridge_ref">Реф. моста</string>
|
||||
<string name="poi_books_academic">Академске</string>
|
||||
<string name="poi_books_children">Дечије</string>
|
||||
<string name="poi_books_religion">Религијске</string>
|
||||
<string name="poi_books_antiquarian">Антикварница</string>
|
||||
<string name="poi_books_comic">Стрип</string>
|
||||
<string name="poi_checkpoint_type_notebook">Свеска</string>
|
||||
<string name="poi_public_bookcase_type_shelf">Тип: полица</string>
|
||||
</resources>
|
|
@ -1382,7 +1382,7 @@
|
|||
<string name="shared_string_actions">Радње</string>
|
||||
<string name="shared_string_marker">Ознака</string>
|
||||
<string name="empty_state_osm_edits">Стварајте или мењајте предмете ОСМ-а</string>
|
||||
<string name="empty_state_osm_edits_descr">Стварајте или мењајте ОСМ тачке од интереса, отворите или коментаришите на ОСМ белешке и доприносите снимањем GPX фајлова.</string>
|
||||
<string name="empty_state_osm_edits_descr">Стварајте или мењајте ОСМ тачке од интереса, отворите или коментаришите ОСМ белешке и доприносите снимањем GPX фајлова.</string>
|
||||
<string name="shared_string_deleted">Избрисано</string>
|
||||
<string name="shared_string_edited">Уређено</string>
|
||||
<string name="shared_string_added">Додато</string>
|
||||
|
@ -3482,8 +3482,8 @@
|
|||
<string name="shared_string_available">Доступно</string>
|
||||
<string name="add_custom_category">Додај произвољну категорију</string>
|
||||
<string name="rendering_attr_streetLightingNight_name">Прикажи само ноћу</string>
|
||||
<string name="plugin_prefs_reset_successful">Све поставке додатка враћене на подразумевано стање.</string>
|
||||
<string name="profile_prefs_reset_successful">Све поставке профила враћене на подразумевано стање.</string>
|
||||
<string name="plugin_prefs_reset_successful">Све поставке додатка враћене на подразумевано.</string>
|
||||
<string name="profile_prefs_reset_successful">Све поставке профила враћене на подразумевано.</string>
|
||||
<string name="ltr_or_rtl_combine_via_slash">%1$s/%2$s</string>
|
||||
<string name="sunset_at">Сунце залази у %1$s</string>
|
||||
<string name="sunrise_at">Сунце излази у %1$s</string>
|
||||
|
@ -3502,7 +3502,7 @@
|
|||
<string name="shared_string_menu">Мени</string>
|
||||
<string name="ltr_or_rtl_triple_combine_via_dash">%1$s — %2$s — %3$s</string>
|
||||
<string name="shared_string_include_data">Укључи додатне податке</string>
|
||||
<string name="import_profile_dialog_description">Увезени профил садржи додатне податке. Кликните на Увоз да увезете да увезете само профилне податке или одаберите које додатне податке увести.</string>
|
||||
<string name="import_profile_dialog_description">Увезени профил садржи додатне податке. Кликните на Увоз да увезете само профилне податке или одаберите додатне податке.</string>
|
||||
<string name="export_profile_dialog_description">Поред профила, можете одабрати додатне податке за извоз.</string>
|
||||
<string name="index_name_antarctica">Антарктик</string>
|
||||
<string name="create_custom_categories_list_promo">Можете додати произвољне категорије, сакрити категорије које су Вам сувишне и променити им редослед у списку. Списак се може увести и извести са профилима.</string>
|
||||
|
@ -3536,7 +3536,7 @@
|
|||
\nДодатак ће остати на уређају и после уклањања OsmAnd апликације.</string>
|
||||
<string name="shared_string_routing">Рутирање</string>
|
||||
<string name="shared_string_app_default_w_val">Подразумевано у апликацију (%s)</string>
|
||||
<string name="no_recalculation_setting">Искључи прерачунавање</string>
|
||||
<string name="no_recalculation_setting">Без прерачунавања</string>
|
||||
<string name="route_recalculation_dist_title">Минимална удаљеност за прерачунавање пута</string>
|
||||
<string name="route_recalculation_dist_descr">Пут ће бити прерачунат ако је удаљеност до пута већа од одабраног параметра</string>
|
||||
<string name="profile_type_custom_string">Произвољни профил</string>
|
||||
|
@ -3565,7 +3565,7 @@
|
|||
<string name="restore_all_profile_settings">Поврати све поставке профила\?</string>
|
||||
<string name="saving_new_profile">Чувам нови профил</string>
|
||||
<string name="profile_backup_failed">Не могу да направим резервну копију профила.</string>
|
||||
<string name="quick_action_show_hide_terrain">Прикажи/сакриј терен</string>
|
||||
<string name="quick_action_show_hide_terrain">Прикажи / сакриј терен</string>
|
||||
<string name="quick_action_terrain_hide">Сакриј терен</string>
|
||||
<string name="quick_action_terrain_show">Прикажи терен</string>
|
||||
<string name="quick_action_terrain_descr">Дугме да прикаже или сакрите слој терена на карти.</string>
|
||||
|
@ -3577,11 +3577,11 @@
|
|||
<string name="shared_string_octagon">Октагон</string>
|
||||
<string name="shared_string_square">Квадрат</string>
|
||||
<string name="shared_string_min">Мин</string>
|
||||
<string name="replace_point_descr">Замени другу тачку са овом</string>
|
||||
<string name="replace_point_descr">Замени другу тачку са овом.</string>
|
||||
<string name="app_mode_ski_snowmobile">Сноумобил</string>
|
||||
<string name="custom_osmand_plugin">Произвољни OsmAnd додатак</string>
|
||||
<string name="settings_item_read_error">Не могу да читам %1$s.</string>
|
||||
<string name="settings_item_import_error">Не могу да увезем %1$s.</string>
|
||||
<string name="settings_item_read_error">Не могу да читам из „%1$s”.</string>
|
||||
<string name="settings_item_import_error">Не могу да увезем из „%1$s”.</string>
|
||||
<string name="settings_item_write_error">Не могу да пишем %1$s.</string>
|
||||
<string name="shared_string_languages">Језици</string>
|
||||
<string name="shared_string_language">Језик</string>
|
||||
|
@ -3718,4 +3718,38 @@
|
|||
<string name="search_poi_types">Претрага типова тачака од интереса</string>
|
||||
<string name="search_poi_types_descr">Комбинујте типове тачака од интереса из различитих категорија. Кликните прекидач да одабере све, кликните на леву страну да одаберете категорију.</string>
|
||||
<string name="map_markers_item">Маркери на карти</string>
|
||||
<string name="shared_string_terrain">Терен</string>
|
||||
<string name="shared_string_transparency">Провидност</string>
|
||||
<string name="shared_string_zoom_levels">Нивои увећања</string>
|
||||
<string name="shared_string_legend">Легенда</string>
|
||||
<string name="shared_string_import_complete">Увоз завршен</string>
|
||||
<string name="items_added">Додате ставке</string>
|
||||
<string name="shared_string_importing">Увозим</string>
|
||||
<string name="importing_from">Увозим податке из %1$s</string>
|
||||
<string name="clear_recorded_data_warning">Да ли сте сигурни да желите да очистите снимљене податке\?</string>
|
||||
<string name="recalculate_route_in_deviation">Прерачунај пут у случају одступања</string>
|
||||
<string name="select_distance_route_will_recalc">Одаберите удаљеност после које се пут прерачунава.</string>
|
||||
<string name="recalculate_route_distance_promo">Пут ће бити прерачунат уколико је удаљеност тренутне позиције од пута већа од одабране вредности.</string>
|
||||
<string name="n_items_of_z">%1$s од %2$s</string>
|
||||
<string name="ui_customization">Прилагођавање корисничког интерфејса</string>
|
||||
<string name="shared_string_drawer">Фиока</string>
|
||||
<string name="reorder_or_hide_from">Преуреди или сакриј ставке са %1$s.</string>
|
||||
<string name="shared_string_divider">Разделник</string>
|
||||
<string name="divider_descr">Елементи испод ове тачке су одвојени разделником.</string>
|
||||
<string name="shared_string_hidden">Сакривена</string>
|
||||
<string name="hidden_items_descr">Иако су ове ставке сакривене са главног менија, опције или додаци које они представљају и даље раде.</string>
|
||||
<string name="reset_items_descr">Сакривање поставки их ресетује на оригинално стање.</string>
|
||||
<string name="main_actions_descr">Има само четири дугмета.</string>
|
||||
<string name="main_actions">Главне радње</string>
|
||||
<string name="additional_actions_descr">Можете приступити овим радњама кликтањем на дугме „%1$s”.</string>
|
||||
<string name="move_inside_category">Можете померати ставке само унутар ове категорије.</string>
|
||||
<string name="developer_plugin">Додатак за програмере</string>
|
||||
<string name="app_mode_ski_touring">Ски туринг</string>
|
||||
<string name="shared_string_items">Ставке</string>
|
||||
<string name="changes_applied_to_profile">Измене примењене на ’%1$s’ профил.</string>
|
||||
<string name="wiki_menu_download_descr">За приказ Википедијиних тачака од интереса су потребне додатне карте.</string>
|
||||
<string name="select_wikipedia_article_langs">Одаберите језик за Википедијине чланке на карти. Пребаците на било који други доступни језик док читате чланак.</string>
|
||||
<string name="some_articles_may_not_available_in_lang">Неки чланци са Википедија су можда доступни на Вашем језику.</string>
|
||||
<string name="lang_zhyue">Кантонски</string>
|
||||
<string name="lang_zhminnan">Јужномински</string>
|
||||
</resources>
|
|
@ -1533,7 +1533,7 @@
|
|||
<string name="specified_directiory_not_writeable">Не вдалося створити мапи у вказаній теці</string>
|
||||
<string name="copying_osmand_file_failed">Не вдалося перемістити файли</string>
|
||||
<string name="storage_directory_external">Зовнішнє сховище</string>
|
||||
<string name="storage_directory_multiuser">Толочне сховище</string>
|
||||
<string name="storage_directory_multiuser">Багатокористувацьке сховище</string>
|
||||
<string name="storage_directory_internal_app">Внутрішня пам’ять застосунку</string>
|
||||
<string name="storage_directory_manual">Вказано вручну</string>
|
||||
<string name="storage_directory_default">Внутрішня пам’ять</string>
|
||||
|
|
|
@ -3829,4 +3829,6 @@
|
|||
<string name="poi_traffic_signals_arrow">箭頭</string>
|
||||
<string name="poi_traffic_signals_vibration">震動</string>
|
||||
<string name="poi_give_box">禮物箱</string>
|
||||
<string name="poi_city_block">街區</string>
|
||||
<string name="poi_borough">自治市鎮</string>
|
||||
</resources>
|
|
@ -4237,4 +4237,8 @@
|
|||
|
||||
<string name="poi_give_box">Give box</string>
|
||||
|
||||
<string name="poi_borough">Borough</string>
|
||||
<string name="poi_city_block">City block</string>
|
||||
|
||||
|
||||
</resources>
|
|
@ -834,12 +834,19 @@ public class PoiUIFilter implements SearchPoiTypeFilter, Comparable<PoiUIFilter>
|
|||
if (!poiTypes.isRegisteredType(type)) {
|
||||
type = poiTypes.getOtherPoiCategory();
|
||||
}
|
||||
LinkedHashSet<String> acceptedTypesSet = acceptedTypes.get(type);
|
||||
if (acceptedTypesSet != null && acceptedTypesSet.contains(subtype)) {
|
||||
return true;
|
||||
if (acceptedTypes.containsKey(type)) {
|
||||
LinkedHashSet<String> 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<String> acceptedTypesSet = acceptedTypesOrigin.get(type);
|
||||
if (acceptedTypesSet == null || acceptedTypesSet.contains(subtype)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Reference in a new issue