Merge branch 'master' of ssh://github.com/osmandapp/Osmand
This commit is contained in:
commit
3baa09d434
25 changed files with 638 additions and 535 deletions
356
OsmAnd-java/src/net/osmand/util/GeoPointParserUtil.java
Normal file
356
OsmAnd-java/src/net/osmand/util/GeoPointParserUtil.java
Normal file
|
@ -0,0 +1,356 @@
|
||||||
|
package net.osmand.util;
|
||||||
|
|
||||||
|
import java.net.URI;
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
|
public class GeoPointParserUtil {
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
final double lat = 34.99, lon = -106.61;
|
||||||
|
final String name = "Treasure";
|
||||||
|
int z = GeoParsedPoint.NO_ZOOM;
|
||||||
|
String url;
|
||||||
|
|
||||||
|
// 0,0?q=34.99,-106.61(Treasure)
|
||||||
|
url = "geo:0,0?q=" + lat + "," + lon + "(" + name + ")";
|
||||||
|
System.out.println("url: " + url);
|
||||||
|
GeoParsedPoint actual = GeoPointParserUtil.parse("geo", url);
|
||||||
|
assertGeoPoint(actual, new GeoParsedPoint(lat, lon, z, name));
|
||||||
|
|
||||||
|
// geo:0,0?z=11&q=34.99,-106.61(Treasure)
|
||||||
|
z = 11;
|
||||||
|
url = "geo:0,0?z=" + z + "&q=" + lat + "," + lon + "(" + name + ")";
|
||||||
|
System.out.println("url: " + url);
|
||||||
|
actual = GeoPointParserUtil.parse("geo", url);
|
||||||
|
assertGeoPoint(actual, new GeoParsedPoint(lat, lon, z, name));
|
||||||
|
|
||||||
|
// geo:0,0?z=11&q=34.99,-106.61
|
||||||
|
z = 11;
|
||||||
|
url = "geo:0,0?z=" + z + "&q=" + lat + "," + lon;
|
||||||
|
System.out.println("url: " + url);
|
||||||
|
actual = GeoPointParserUtil.parse("geo", url);
|
||||||
|
assertGeoPoint(actual, new GeoParsedPoint(lat, lon, z));
|
||||||
|
|
||||||
|
// geo:34.99,-106.61
|
||||||
|
z = -1;
|
||||||
|
url = "geo:" + lat + "," + lon;
|
||||||
|
System.out.println("url: " + url);
|
||||||
|
actual = GeoPointParserUtil.parse("geo", url);
|
||||||
|
assertGeoPoint(actual, new GeoParsedPoint(lat, lon, z));
|
||||||
|
|
||||||
|
// geo:34.99,-106.61?z=11
|
||||||
|
z = 11;
|
||||||
|
url = "geo:" + lat + "," + lon + "?" + "z=" + z;
|
||||||
|
System.out.println("url: " + url);
|
||||||
|
actual = GeoPointParserUtil.parse("geo", url);
|
||||||
|
assertGeoPoint(actual, new GeoParsedPoint(lat, lon, z));
|
||||||
|
|
||||||
|
// geo:0,0?q=1600+Amphitheatre+Parkway,+CA
|
||||||
|
String qstr = "q=1600+Amphitheatre+Parkway,+CA";
|
||||||
|
url = "geo:0,0?" + qstr;
|
||||||
|
System.out.println("url: " + url);
|
||||||
|
actual = GeoPointParserUtil.parse("geo", url);
|
||||||
|
assertGeoPoint(actual, new GeoParsedPoint(qstr));
|
||||||
|
|
||||||
|
// geo:0,0?z=11&q=1600+Amphitheatre+Parkway,+CA
|
||||||
|
qstr = "q=1600+Amphitheatre+Parkway,+CA";
|
||||||
|
url = "geo:0,0?z=11&" + qstr;
|
||||||
|
System.out.println("url: " + url);
|
||||||
|
actual = GeoPointParserUtil.parse("geo", url);
|
||||||
|
assertGeoPoint(actual, new GeoParsedPoint(qstr));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void assertGeoPoint(GeoParsedPoint actual, GeoParsedPoint expected) {
|
||||||
|
if (expected.getQuery() != null) {
|
||||||
|
if (!expected.getQuery().equals(actual.getQuery()))
|
||||||
|
throw new RuntimeException("Query param not equal");
|
||||||
|
} else {
|
||||||
|
double aLat = actual.getLat(), eLat = expected.getLat(), aLon = actual.getLon(), eLon = expected.getLon();
|
||||||
|
int aZoom = actual.getZoom(), eZoom = expected.getZoom();
|
||||||
|
String aName = actual.getName(), eName = expected.getName();
|
||||||
|
if (eName != null) {
|
||||||
|
if (!aName.equals(eName)) {
|
||||||
|
throw new RuntimeException("Point name\\capture is not equal; actual=" + aName + ", expected="
|
||||||
|
+ eName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (eLat != aLat) {
|
||||||
|
throw new RuntimeException("Latitude is not equal; actual=" + aLat + ", expected=" + eLat);
|
||||||
|
}
|
||||||
|
if (eLon != aLon) {
|
||||||
|
throw new RuntimeException("Longitude is not equal; actual=" + aLon + ", expected=" + eLon);
|
||||||
|
}
|
||||||
|
if (eZoom != aZoom) {
|
||||||
|
throw new RuntimeException("Zoom is not equal; actual=" + aZoom + ", expected=" + aZoom);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println("Passed!");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getQueryParameter(final String param, URI data) {
|
||||||
|
final String query = data.getQuery();
|
||||||
|
String value = null;
|
||||||
|
if (query.contains(param)) {
|
||||||
|
String[] params = query.split("&");
|
||||||
|
for (String p : params) {
|
||||||
|
if (p.contains(param)) {
|
||||||
|
value = p.substring(p.indexOf("=") + 1, p.length());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Parses geo and map intents:
|
||||||
|
*
|
||||||
|
* @param scheme
|
||||||
|
* The intent scheme
|
||||||
|
* @param data
|
||||||
|
* The URI object
|
||||||
|
* @return {@link GeoParsedPoint}
|
||||||
|
*/
|
||||||
|
public static GeoParsedPoint parse(final String scheme, final String uri) {
|
||||||
|
final URI data = URI.create(uri.replaceAll("\\s+", ""));
|
||||||
|
if ("http".equals(scheme) || "https".equals(scheme)) {
|
||||||
|
|
||||||
|
final String schemeSpecific = data.getSchemeSpecificPart();
|
||||||
|
|
||||||
|
if (schemeSpecific == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
final String[] osmandNetSite = { "//download.osmand.net/go?" };
|
||||||
|
|
||||||
|
final String[] osmandNetPattern = { "lat=(-?\\d{1,3}.\\d+)&lon=(-?\\d{1,3}.\\d+)&z=(\\d{1,2})" };
|
||||||
|
|
||||||
|
final String[] openstreetmapOrgSite = { "//openstreetmap.org/", "//www.openstreetmap.org/" };
|
||||||
|
|
||||||
|
final String[] openstreetmapOrgPattern = { "(?:.*)(?:map=)(\\d{1,2})/(-?\\d{1,3}.\\d+)/(-?\\d{1,3}.\\d+)(?:.*)" };
|
||||||
|
|
||||||
|
final String[] openstreetmapDeSite = { "//openstreetmap.de/", "//www.openstreetmap.de/" };
|
||||||
|
|
||||||
|
final String[] openstreetmapDePattern = {
|
||||||
|
"(?:.*)zoom=(\\d{1,2})&lat=(-?\\d{1,3}.\\d+)&lon=(-?\\d{1,3}.\\d+)(?:.*)",
|
||||||
|
"(?:.*)lat=(-?\\d{1,3}.\\d+)&lon=(-?\\d{1,3}.\\d+)&z(?:oom)?=(\\d{1,2})(?:.*)" };
|
||||||
|
|
||||||
|
final String[] googleComSite = { "//www.google.com/maps/", "//maps.google.com/maps" };
|
||||||
|
|
||||||
|
final String[] googleComPattern = { "(?:.*)@(-?\\d{1,3}.\\d+),(-?\\d{1,3}.\\d+),(\\d{1,2})z(?:.*)",
|
||||||
|
"(?:.*)ll=(-?\\d{1,3}.\\d+),(-?\\d{1,3}.\\d+)(?:.+)z=(\\d{1,2})(?:.*)",
|
||||||
|
"(?:.*)q=([\\-+]?\\d{1,3}.\\d+),([\\-+]?\\d{1,3}.\\d+)(?:.*)&z=(\\d{1,2})",
|
||||||
|
"(?:.*)q=loc:(-?\\d{1,3}.\\d+),(-?\\d{1,3}.\\d+)&z=(\\d{1,2})(?:.*)" };
|
||||||
|
|
||||||
|
final String[] yandexRuSite = { "//maps.yandex.ru/" };
|
||||||
|
|
||||||
|
final String[] yandexRuPattern = { "(?:.*)ll=(-?\\d{1,3}.\\d+),(-?\\d{1,3}.\\d+)(?:.+)z=(\\d{1,2})(?:.*)" };
|
||||||
|
|
||||||
|
final String sites[][] = { osmandNetSite, openstreetmapOrgSite, openstreetmapDeSite, googleComSite,
|
||||||
|
yandexRuSite };
|
||||||
|
|
||||||
|
final String patterns[][] = { osmandNetPattern, openstreetmapOrgPattern, openstreetmapDePattern,
|
||||||
|
googleComPattern, yandexRuPattern };
|
||||||
|
|
||||||
|
for (int s = 0; s < sites.length; s++) {
|
||||||
|
for (int si = 0; si < sites[s].length; si++) {
|
||||||
|
if (schemeSpecific.startsWith(sites[s][si])) {
|
||||||
|
for (int p = 0; p < patterns[s].length; p++) {
|
||||||
|
String subString = schemeSpecific.substring(sites[s][si].length());
|
||||||
|
|
||||||
|
if (subString.equals("")) {
|
||||||
|
subString = data.getFragment();
|
||||||
|
}
|
||||||
|
|
||||||
|
final Matcher matcher = Pattern.compile(patterns[s][p]).matcher(subString);
|
||||||
|
|
||||||
|
if (matcher.matches()) {
|
||||||
|
try {
|
||||||
|
|
||||||
|
final double lat;
|
||||||
|
final double lon;
|
||||||
|
final int zoom;
|
||||||
|
|
||||||
|
// check sequence of values
|
||||||
|
if (!matcher.group(3).contains(".")) {
|
||||||
|
lat = Double.valueOf(matcher.group(1));
|
||||||
|
lon = Double.valueOf(matcher.group(2));
|
||||||
|
zoom = Integer.valueOf(matcher.group(3));
|
||||||
|
} else {
|
||||||
|
zoom = Integer.valueOf(matcher.group(1));
|
||||||
|
lat = Double.valueOf(matcher.group(2));
|
||||||
|
lon = Double.valueOf(matcher.group(3));
|
||||||
|
}
|
||||||
|
|
||||||
|
return new GeoParsedPoint(lat, lon, zoom);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String q = null;
|
||||||
|
String parameter = getQueryParameter("q", data);
|
||||||
|
if (parameter == null) {
|
||||||
|
parameter = getQueryParameter("daddr", data);
|
||||||
|
}
|
||||||
|
if (parameter != null) {
|
||||||
|
q = parameter.split(" ")[0];
|
||||||
|
}
|
||||||
|
if (q.indexOf(',') != -1) {
|
||||||
|
int i = q.indexOf(',');
|
||||||
|
String lat = q.substring(0, i);
|
||||||
|
String lon = q.substring(i + 1);
|
||||||
|
if (lat.indexOf(':') != -1) {
|
||||||
|
i = lat.indexOf(':');
|
||||||
|
lat = lat.substring(i + 1);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
double llat = Double.parseDouble(lat.trim());
|
||||||
|
double llon = Double.parseDouble(lon.trim());
|
||||||
|
return new GeoParsedPoint(llat, llon);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ("geo".equals(scheme) || "osmand.geo".equals(scheme)) {
|
||||||
|
final String schemeSpecific = data.getSchemeSpecificPart();
|
||||||
|
if (schemeSpecific == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
if (schemeSpecific.startsWith("0,0?")) {
|
||||||
|
// geo:0,0?q=34.99,-106.61(Treasure)
|
||||||
|
// geo:0,0?z=11&q=34.99,-106.61(Treasure)
|
||||||
|
String query = schemeSpecific.substring("0,0?".length());
|
||||||
|
final String pattern = "(?:z=([0-9]{1,2})?)?&?q=([\\-0-9\\.]+)?,([\\-0-9\\.]+)?\\s*(?:\\((.+?)\\))?";
|
||||||
|
final Matcher matcher = Pattern.compile(pattern).matcher(query);
|
||||||
|
if (matcher.matches()) {
|
||||||
|
final String z = matcher.group(1);
|
||||||
|
final String name = matcher.group(4);
|
||||||
|
final int zoom = z != null ? Integer.parseInt(z) : GeoParsedPoint.NO_ZOOM;
|
||||||
|
final double lat = Double.parseDouble(matcher.group(2));
|
||||||
|
final double lon = Double.parseDouble(matcher.group(3));
|
||||||
|
return new GeoParsedPoint(lat, lon, zoom, name);
|
||||||
|
} else {
|
||||||
|
// geo:0,0?q=1600+Amphitheatre+Parkway%2C+CA
|
||||||
|
// geo:0,0?z=11&q=1600+Amphitheatre+Parkway%2C+CA
|
||||||
|
// zoom parameter is not used in GeoAddressSearch
|
||||||
|
if (query.contains("z="))
|
||||||
|
query = query.substring(query.indexOf("&") + 1);
|
||||||
|
return new GeoParsedPoint(query);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// geo:47.6,-122.3
|
||||||
|
// geo:47.6,-122.3?z=11
|
||||||
|
// allow for http://tools.ietf.org/html/rfc5870 (geo uri) ,
|
||||||
|
// just
|
||||||
|
// ignore everything after ';'
|
||||||
|
final String pattern = "([\\-0-9.]+),([\\-0-9.]+)(?:,([\\-0-9.]+))?(?:\\?z=([0-9]+))?(?:;.*)?";
|
||||||
|
int indexQ = schemeSpecific.indexOf("&q");
|
||||||
|
final Matcher matcher;
|
||||||
|
if (indexQ != -1) {
|
||||||
|
final String schemeQ = schemeSpecific.substring(0, indexQ);
|
||||||
|
matcher = Pattern.compile(pattern).matcher(schemeQ);
|
||||||
|
} else {
|
||||||
|
matcher = Pattern.compile(pattern).matcher(schemeSpecific);
|
||||||
|
}
|
||||||
|
|
||||||
|
final String pattern2 = "([\\-0-9.]+),([\\-0-9.]+)(?:.*)"; // c:geo
|
||||||
|
final Matcher matcher2 = Pattern.compile(pattern2).matcher(schemeSpecific);
|
||||||
|
|
||||||
|
if (matcher.matches()) {
|
||||||
|
final double lat = Double.valueOf(matcher.group(1));
|
||||||
|
final double lon = Double.valueOf(matcher.group(2));
|
||||||
|
if (matcher.group(4) == null) {
|
||||||
|
return new GeoParsedPoint(lat, lon);
|
||||||
|
} else {
|
||||||
|
return new GeoParsedPoint(lat, lon, Integer.valueOf(matcher.group(4)));
|
||||||
|
}
|
||||||
|
} else if (matcher2.matches()) {
|
||||||
|
final double lat = Double.valueOf(matcher2.group(1));
|
||||||
|
final double lon = Double.valueOf(matcher2.group(2));
|
||||||
|
return new GeoParsedPoint(lat, lon);
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class GeoParsedPoint {
|
||||||
|
private static final int NO_ZOOM = -1;
|
||||||
|
|
||||||
|
private double lat;
|
||||||
|
private double lon;
|
||||||
|
private int zoom = NO_ZOOM;
|
||||||
|
private String name;
|
||||||
|
private String query;
|
||||||
|
private boolean geoPoint;
|
||||||
|
private boolean geoAddress;
|
||||||
|
|
||||||
|
public GeoParsedPoint(double lat, double lon) {
|
||||||
|
super();
|
||||||
|
this.lat = lat;
|
||||||
|
this.lon = lon;
|
||||||
|
this.geoPoint = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GeoParsedPoint(double lat, double lon, String name) {
|
||||||
|
this(lat, lon);
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GeoParsedPoint(double lat, double lon, int zoom) {
|
||||||
|
this(lat, lon);
|
||||||
|
this.zoom = zoom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GeoParsedPoint(double lat, double lon, int zoom, String name) {
|
||||||
|
this(lat, lon, zoom);
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public GeoParsedPoint(String query) {
|
||||||
|
super();
|
||||||
|
this.query = query;
|
||||||
|
this.geoAddress = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getLat() {
|
||||||
|
return lat;
|
||||||
|
}
|
||||||
|
|
||||||
|
public double getLon() {
|
||||||
|
return lon;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getZoom() {
|
||||||
|
return zoom;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getQuery() {
|
||||||
|
return query;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isGeoPoint() {
|
||||||
|
return geoPoint;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isGeoAddress() {
|
||||||
|
return geoAddress;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,10 +1,10 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<classpath>
|
<classpath>
|
||||||
<classpathentry kind="src" path="src"/>
|
|
||||||
<classpathentry excluding="net/osmand/LogUtil.java|net/osmand/PlatformUtil.java" kind="src" path="use"/>
|
<classpathentry excluding="net/osmand/LogUtil.java|net/osmand/PlatformUtil.java" kind="src" path="use"/>
|
||||||
<classpathentry kind="src" path="gen"/>
|
|
||||||
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
|
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
|
||||||
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
|
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
|
||||||
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
|
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
|
||||||
|
<classpathentry kind="src" path="src"/>
|
||||||
|
<classpathentry kind="src" path="gen"/>
|
||||||
<classpathentry kind="output" path="bin/classes"/>
|
<classpathentry kind="output" path="bin/classes"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources><string name="auto_zoom_none">Без аўтаматычнага масштабіраваньня</string>
|
<resources><string name="auto_zoom_none">Без аўтаматычнага масштабіраваньня</string>
|
||||||
<string name="auto_zoom_close">Зачыніць</string>
|
<string name="auto_zoom_close">Зачыніць</string>
|
||||||
<string name="auto_zoom_far">Для сярэдняга масштаба</string>
|
<string name="auto_zoom_far">Для сярэдняга масштаба</string>
|
||||||
|
@ -261,7 +261,7 @@
|
||||||
<string name="safe_mode_description">Працаваць у бясьпечным рэжыме (трохі павольней але бяз свойскіх бібліятэк).</string>
|
<string name="safe_mode_description">Працаваць у бясьпечным рэжыме (трохі павольней але бяз свойскіх бібліятэк).</string>
|
||||||
<string name="safe_mode">Бясьпечны рэжым</string>
|
<string name="safe_mode">Бясьпечны рэжым</string>
|
||||||
<string name="native_library_not_running">Праграма працуе ў бясьпечным рэжыме (адключыць яго ў наладах).</string>
|
<string name="native_library_not_running">Праграма працуе ў бясьпечным рэжыме (адключыць яго ў наладах).</string>
|
||||||
<string name="background_service_is_enabled_question">Спячы рэжым OsmAnd па-ранейшаму працуе. Вы хочаце выключыць яго?</string>
|
<string name="background_service_is_enabled_question">Спячы рэжым OsmAnd па-ранейшаму працуе. Вы хочаце прыпыніць яго?</string>
|
||||||
<string name="tip_recent_changes_1_0_0_t">Змены ў версіі 1.0.0:
|
<string name="tip_recent_changes_1_0_0_t">Змены ў версіі 1.0.0:
|
||||||
\n\t* Палепшана маршрутызацыя: хутчэй, дакладней, да 250 км
|
\n\t* Палепшана маршрутызацыя: хутчэй, дакладней, да 250 км
|
||||||
\n\t* Уведзены карты дарог
|
\n\t* Уведзены карты дарог
|
||||||
|
@ -1054,8 +1054,7 @@ OsmAnd мае адкрыты зыходны код і актыўна разві
|
||||||
\n\nВакенца маркера хаваецца доўгім націсканнем на яго. ↵
|
\n\nВакенца маркера хаваецца доўгім націсканнем на яго. ↵
|
||||||
</string>
|
</string>
|
||||||
<string name="tip_initial">Дапамога і хітрасьці</string>
|
<string name="tip_initial">Дапамога і хітрасьці</string>
|
||||||
<string name="tip_initial_t">"OsmAnd - навігацыйная праграма з вялікімі магчымасьцямі. ↵
|
<string name="tip_initial_t">"OsmAnd - навігацыйная праграма з вялікімі магчымасьцямі.\n\nПачатковыя зьвесткі, парады па выкарыстаньні і разгорнуты дапаможнік знаходзяцца ў \'Меню\' → \'Дапамога\'. "</string>
|
||||||
\n\nПачатковыя зьвесткі, парады па выкарыстаньні і разгорнуты дапаможнік знаходзяцца ў \'Меню\' → \'Дапамога\'. "</string>
|
|
||||||
<string name="next_button">Далей</string>
|
<string name="next_button">Далей</string>
|
||||||
<string name="previous_button">Назад</string>
|
<string name="previous_button">Назад</string>
|
||||||
<string name="unit_of_length_descr">Зьмяніць адзінкі адлегласьці й хуткасьці</string>
|
<string name="unit_of_length_descr">Зьмяніць адзінкі адлегласьці й хуткасьці</string>
|
||||||
|
@ -1884,7 +1883,7 @@ OsmAnd мае адкрыты зыходны код і актыўна разві
|
||||||
<string name="rendering_attr_showSurfaceGrade_name">Адлюстроўваць якасць дарог</string>
|
<string name="rendering_attr_showSurfaceGrade_name">Адлюстроўваць якасць дарог</string>
|
||||||
<string name="rendering_attr_showSurfaces_name">Адлюстроўваць тып пакрыцьця</string>
|
<string name="rendering_attr_showSurfaces_name">Адлюстроўваць тып пакрыцьця</string>
|
||||||
<string name="rendering_attr_showCycleRoutes_name">Паказаць веламаршруты</string>
|
<string name="rendering_attr_showCycleRoutes_name">Паказаць веламаршруты</string>
|
||||||
<string name="stop_navigation_service">Спыніць</string>
|
<string name="stop_navigation_service">Прыпыніць</string>
|
||||||
<string name="enable_sleep_mode">Уключыць рэжым сну GPS</string>
|
<string name="enable_sleep_mode">Уключыць рэжым сну GPS</string>
|
||||||
<string name="gps_wake_up_timer">Iнтэрвал абуджэньня GPS</string>
|
<string name="gps_wake_up_timer">Iнтэрвал абуджэньня GPS</string>
|
||||||
<string name="lang_sw">суахілі</string>
|
<string name="lang_sw">суахілі</string>
|
||||||
|
@ -1892,7 +1891,7 @@ OsmAnd мае адкрыты зыходны код і актыўна разві
|
||||||
<string name="gpx_monitoring_start">Пачаць запіс GPX</string>
|
<string name="gpx_monitoring_start">Пачаць запіс GPX</string>
|
||||||
<string name="gpx_start_new_segment">Пачаць новы адрэзак</string>
|
<string name="gpx_start_new_segment">Пачаць новы адрэзак</string>
|
||||||
<string name="lang_fa">пэрсійдзкая</string>
|
<string name="lang_fa">пэрсійдзкая</string>
|
||||||
<string name="sleep_mode_stop_dialog">Спыніць рэжым сну GPS?</string>
|
<string name="sleep_mode_stop_dialog">Прыпыніць рэжым сну GPS?</string>
|
||||||
<string name="map_preferred_locale_descr">Пажаданая мова надпісаў на мапе (калі не даступна, то будуць выкарыстны ангельскія ці мясцовыя назвы)</string>
|
<string name="map_preferred_locale_descr">Пажаданая мова надпісаў на мапе (калі не даступна, то будуць выкарыстны ангельскія ці мясцовыя назвы)</string>
|
||||||
<string name="map_preferred_locale">Пажаданая мова мапы</string>
|
<string name="map_preferred_locale">Пажаданая мова мапы</string>
|
||||||
<string name="local_map_names">Мясцовыя назвы</string>
|
<string name="local_map_names">Мясцовыя назвы</string>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources><string name="show_warnings_title">Mostra els missatges d\'avís…</string>
|
<resources><string name="show_warnings_title">Mostra els missatges d\'avís…</string>
|
||||||
<string name="map_widget_fluorescent">Rutes amb fluorescència</string>
|
<string name="map_widget_fluorescent">Rutes amb fluorescència</string>
|
||||||
<string name="map_widget_show_ruler">Mostra el regle</string>
|
<string name="map_widget_show_ruler">Mostra el regle</string>
|
||||||
|
@ -1046,7 +1046,7 @@
|
||||||
<string name="download_roads_only_maps">Mapes de només carreteres</string>
|
<string name="download_roads_only_maps">Mapes de només carreteres</string>
|
||||||
|
|
||||||
<string name="safe_mode">Mode segur</string>
|
<string name="safe_mode">Mode segur</string>
|
||||||
<string name="background_service_is_enabled_question">El mode en segon pla encara està executant-se. Voleu cancel·lar-lo?</string>
|
<string name="background_service_is_enabled_question">El mode en segon pla encara s\'està executant. També el voleu interrompre?</string>
|
||||||
<string name="close_changeset">Tanca el conjunt de canvis</string>
|
<string name="close_changeset">Tanca el conjunt de canvis</string>
|
||||||
<string name="native_library_not_running">L\'aplicació encara s\'està executant en mode segur(desactiveu-lo a «Preferències»).</string>
|
<string name="native_library_not_running">L\'aplicació encara s\'està executant en mode segur(desactiveu-lo a «Preferències»).</string>
|
||||||
<string name="rendering_attr_showRoadMaps_name">Mapes amb només carreteres</string>
|
<string name="rendering_attr_showRoadMaps_name">Mapes amb només carreteres</string>
|
||||||
|
@ -1833,10 +1833,10 @@ La llista de països inclosos (bàsicament tot el món!): Afganistan, Albània,
|
||||||
<string name="gpx_start_new_segment">Inicia un segment nou</string>
|
<string name="gpx_start_new_segment">Inicia un segment nou</string>
|
||||||
<string name="lang_fa">Persa</string>
|
<string name="lang_fa">Persa</string>
|
||||||
<string name="keep_navigation_service">Mantén</string>
|
<string name="keep_navigation_service">Mantén</string>
|
||||||
<string name="stop_navigation_service">Atura</string>
|
<string name="stop_navigation_service">Interromp</string>
|
||||||
<string name="enable_sleep_mode">Activa el mode en segon pla del GPS</string>
|
<string name="enable_sleep_mode">Activa el mode en segon pla del GPS</string>
|
||||||
<string name="gps_wake_up_timer">Interval d\'activació del GPS</string>
|
<string name="gps_wake_up_timer">Interval d\'activació del GPS</string>
|
||||||
<string name="sleep_mode_stop_dialog">Voleu aturar el mode en segon pla del GPS?</string>
|
<string name="sleep_mode_stop_dialog">Voleu interrompre el mode en segon pla del GPS?</string>
|
||||||
<string name="lang_al">Albanès</string>
|
<string name="lang_al">Albanès</string>
|
||||||
<string name="lang_ar">Àrab</string>
|
<string name="lang_ar">Àrab</string>
|
||||||
<string name="lang_sc">Sard</string>
|
<string name="lang_sc">Sard</string>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources><string name="switch_to_raster_map_to_see">Vektorové mapy toto místo neobsahují. Mapová data můžete stáhnout v Nastaveních (Spravovat mapové soubory), nebo se přepněte na online mapy.</string>
|
<resources><string name="switch_to_raster_map_to_see">Vektorové mapy toto místo neobsahují. Mapová data můžete stáhnout v Nastaveních (Spravovat mapové soubory), nebo se přepněte na online mapy.</string>
|
||||||
<string name="tip_recent_changes_0_7_2_t">"Změny ve verzi 0.7.2 :
|
<string name="tip_recent_changes_0_7_2_t">"Změny ve verzi 0.7.2 :
|
||||||
\n\t- Native rendering pro všechna zařízení
|
\n\t- Native rendering pro všechna zařízení
|
||||||
|
|
|
@ -85,7 +85,7 @@
|
||||||
<string name="safe_mode_description">Kør program i fejlsikret tilstand (for langsommere Android i stedet for oprindelige kode).</string>
|
<string name="safe_mode_description">Kør program i fejlsikret tilstand (for langsommere Android i stedet for oprindelige kode).</string>
|
||||||
<string name="safe_mode">Fejlsikret tilstand</string>
|
<string name="safe_mode">Fejlsikret tilstand</string>
|
||||||
<string name="native_library_not_running">Programmet kører i fejlsikret tilstand (deaktiver i indstillinger).</string>
|
<string name="native_library_not_running">Programmet kører i fejlsikret tilstand (deaktiver i indstillinger).</string>
|
||||||
<string name="background_service_is_enabled_question">Baggrundstjenesten kører stadig. Skal den afbrydes?</string>
|
<string name="background_service_is_enabled_question">OsmAnd dvaletilstand tjeneste kører stadig. Skal den også afbrydes?</string>
|
||||||
<string name="tip_recent_changes_1_0_0_t">Ændringer i 1.0.0:
|
<string name="tip_recent_changes_1_0_0_t">Ændringer i 1.0.0:
|
||||||
\n* Forbedret ruteplanlægning: hurtigere, mere præcis, op til 250 km
|
\n* Forbedret ruteplanlægning: hurtigere, mere præcis, op til 250 km
|
||||||
\n* Introducere kort kun med veje
|
\n* Introducere kort kun med veje
|
||||||
|
@ -1925,10 +1925,10 @@ Afghanistan, Albanien, Algeriet, Andorra, Angola, Anguilla, Antigua og Barbuda,
|
||||||
<string name="lang_fa">Persisk</string>
|
<string name="lang_fa">Persisk</string>
|
||||||
<string name="map_preferred_locale_descr">Foretrukket sprog for etiketter på kortet (hvis sprog ikke findes skiftes til engelsk eller lokale navne)</string>
|
<string name="map_preferred_locale_descr">Foretrukket sprog for etiketter på kortet (hvis sprog ikke findes skiftes til engelsk eller lokale navne)</string>
|
||||||
<string name="map_preferred_locale">Foretrukket sprog på kort</string>
|
<string name="map_preferred_locale">Foretrukket sprog på kort</string>
|
||||||
<string name="stop_navigation_service">Stop</string>
|
<string name="stop_navigation_service">Afbryd</string>
|
||||||
<string name="enable_sleep_mode">Aktiver GPS dvaletilstand</string>
|
<string name="enable_sleep_mode">Aktiver GPS dvaletilstand</string>
|
||||||
<string name="gps_wake_up_timer">GPS vågn-op interval</string>
|
<string name="gps_wake_up_timer">GPS vågn-op interval</string>
|
||||||
<string name="sleep_mode_stop_dialog">Stop GPS dvaletilstand?</string>
|
<string name="sleep_mode_stop_dialog">Afbryd GPS dvaletilstand?</string>
|
||||||
<string name="keep_navigation_service">Hold</string>
|
<string name="keep_navigation_service">Hold</string>
|
||||||
<string name="lang_al">Albansk</string>
|
<string name="lang_al">Albansk</string>
|
||||||
<string name="lang_ar">Arabisk</string>
|
<string name="lang_ar">Arabisk</string>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<string name="save_global_track_interval_descr">Aufzeichnungs-Intervall für die generelle Positionsaufzeichnung (via Schaltfläche \'GPX-Aufnahme\' auf dem Kartenbildschirm)</string>
|
<string name="save_global_track_interval_descr">Aufzeichnungs-Intervall für die generelle Positionsaufzeichnung (via Schaltfläche \'GPX-Aufnahme\' auf dem Kartenbildschirm)</string>
|
||||||
<string name="save_global_track_interval">Generelles Aufzeichnungs-Intervall</string>
|
<string name="save_global_track_interval">Generelles Aufzeichnungs-Intervall</string>
|
||||||
<string name="enable_sleep_mode">GPS-Hintergrunddienst aktivieren</string>
|
<string name="enable_sleep_mode">GPS-Hintergrunddienst aktivieren</string>
|
||||||
<string name="sleep_mode_stop_dialog">GPS-Hintergrunddienst stoppen?</string>
|
<string name="sleep_mode_stop_dialog">GPS-Hintergrunddienst unterbrechen?</string>
|
||||||
<string name="bg_service_sleep_mode_off">Hintergrunddienst\n einschalten</string>
|
<string name="bg_service_sleep_mode_off">Hintergrunddienst\n einschalten</string>
|
||||||
<string name="bg_service_sleep_mode_on">Hintergrunddienst\n ausschalten</string>
|
<string name="bg_service_sleep_mode_on">Hintergrunddienst\n ausschalten</string>
|
||||||
<string name="background_router_service_descr">Aktiviere OsmAnd Hintergrunddienst für Funktionalitäten bei ausgeschalteter Anzeige</string>
|
<string name="background_router_service_descr">Aktiviere OsmAnd Hintergrunddienst für Funktionalitäten bei ausgeschalteter Anzeige</string>
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
<string name="continue_navigation">Navigation fortsetzen</string>
|
<string name="continue_navigation">Navigation fortsetzen</string>
|
||||||
<string name="pause_navigation">Navigation pausieren</string>
|
<string name="pause_navigation">Navigation pausieren</string>
|
||||||
<string name="keep_navigation_service">Aktiv lassen</string>
|
<string name="keep_navigation_service">Aktiv lassen</string>
|
||||||
<string name="stop_navigation_service">Anhalten</string>
|
<string name="stop_navigation_service">Unterbrechen</string>
|
||||||
<string name="rendering_attr_alpineHiking_name">Alpine Tourenskala (SAC)</string>
|
<string name="rendering_attr_alpineHiking_name">Alpine Tourenskala (SAC)</string>
|
||||||
<string name="rendering_attr_alpineHiking_description">Wege entsprechend der SAC-Wanderskala darstellen</string>
|
<string name="rendering_attr_alpineHiking_description">Wege entsprechend der SAC-Wanderskala darstellen</string>
|
||||||
<string name="rendering_attr_osmcTraces_name">Wandersymbole anzeigen</string>
|
<string name="rendering_attr_osmcTraces_name">Wandersymbole anzeigen</string>
|
||||||
|
@ -85,7 +85,7 @@
|
||||||
<string name="safe_mode_description">Anwendung läuft im abgesicherten Modus (Verwendung für langsamere Android-Versionen).</string>
|
<string name="safe_mode_description">Anwendung läuft im abgesicherten Modus (Verwendung für langsamere Android-Versionen).</string>
|
||||||
<string name="safe_mode">Abgesicherter Modus</string>
|
<string name="safe_mode">Abgesicherter Modus</string>
|
||||||
<string name="native_library_not_running">Die Anwendung läuft im abgesicherten Modus (kann in den Einstellungen deaktiviert werden).</string>
|
<string name="native_library_not_running">Die Anwendung läuft im abgesicherten Modus (kann in den Einstellungen deaktiviert werden).</string>
|
||||||
<string name="background_service_is_enabled_question">Der Hintergrunddienst läuft noch, soll er beendet werden?</string>
|
<string name="background_service_is_enabled_question">Der Hintergrunddienst läuft noch, soll er auch unterbrochen werden?</string>
|
||||||
<string name="rendering_attr_roadColors_description">Auswahl eines Straßenfarbschemas:</string>
|
<string name="rendering_attr_roadColors_description">Auswahl eines Straßenfarbschemas:</string>
|
||||||
<string name="rendering_attr_roadColors_name">Straßenfarbschema</string>
|
<string name="rendering_attr_roadColors_name">Straßenfarbschema</string>
|
||||||
<string name="show_warnings_title">Warnungen anzeigen…</string>
|
<string name="show_warnings_title">Warnungen anzeigen…</string>
|
||||||
|
|
|
@ -408,7 +408,7 @@
|
||||||
<string name="user_name_descr">Απαιτείται για υποβολές στο openstreetmap.org</string>
|
<string name="user_name_descr">Απαιτείται για υποβολές στο openstreetmap.org</string>
|
||||||
<string name="user_password">Κωδικός OSM</string>
|
<string name="user_password">Κωδικός OSM</string>
|
||||||
<string name="user_password_descr">Απαιτείται για υποβολές στο openstreetmap.org</string>
|
<string name="user_password_descr">Απαιτείται για υποβολές στο openstreetmap.org</string>
|
||||||
<string name="osmand_service">Λειτουργία νάρκης</string>
|
<string name="osmand_service">Κατάσταση νάρκης</string>
|
||||||
<string name="osmand_service_descr">Χρησιμοποιήστε το για να εκτελείται ο OsmAnd ενώ η οθόνη είναι απενεργοποιημένη</string>
|
<string name="osmand_service_descr">Χρησιμοποιήστε το για να εκτελείται ο OsmAnd ενώ η οθόνη είναι απενεργοποιημένη</string>
|
||||||
<string name="tip_rotation_switching">Προσανατολισμός Χάρτη</string>
|
<string name="tip_rotation_switching">Προσανατολισμός Χάρτη</string>
|
||||||
<string name="tip_rotation_switching_t_v2">Μπορείτε να αλλάξετε το πότε και το πως ο χάρτης θα περιστρέφεται με επαναλαμβανόμενα κλικ στο εικονίδιο της πυξίδας στην οθόνη χάρτη.
|
<string name="tip_rotation_switching_t_v2">Μπορείτε να αλλάξετε το πότε και το πως ο χάρτης θα περιστρέφεται με επαναλαμβανόμενα κλικ στο εικονίδιο της πυξίδας στην οθόνη χάρτη.
|
||||||
|
@ -1129,7 +1129,7 @@
|
||||||
<string name="safe_mode_description">Εκτέλεση της εφαρμογής σε ασφαλή λειτουργία (χρησιμοποιώντας πιο αργό Android αντί του εγγενούς κώδικα).</string>
|
<string name="safe_mode_description">Εκτέλεση της εφαρμογής σε ασφαλή λειτουργία (χρησιμοποιώντας πιο αργό Android αντί του εγγενούς κώδικα).</string>
|
||||||
<string name="safe_mode">Ασφαλής λειτουργία</string>
|
<string name="safe_mode">Ασφαλής λειτουργία</string>
|
||||||
<string name="native_library_not_running">Η εφαρμογή εκτελείται σε ασφαλή λειτουργία (απενεργοποίηση από τις Ρυθμίσεις).</string>
|
<string name="native_library_not_running">Η εφαρμογή εκτελείται σε ασφαλή λειτουργία (απενεργοποίηση από τις Ρυθμίσεις).</string>
|
||||||
<string name="background_service_is_enabled_question">Η υπηρεσία κατάστασης νάρκης του OsmAnd εκτελείται ακόμη. Θέλετε να την κλείσετε;</string>
|
<string name="background_service_is_enabled_question">Η υπηρεσία κατάστασης νάρκης του OsmAnd εκτελείται ακόμη. Θέλετε να την διακόψετε;</string>
|
||||||
<string name="tip_recent_changes_1_0_0_t">Αλλαγές στην 1.0.0:
|
<string name="tip_recent_changes_1_0_0_t">Αλλαγές στην 1.0.0:
|
||||||
\n\t* Βελτιωμένη δρομολόγηση: γρηγορότερη, με καλύτερη ακρίβεια, μέχρι 250 χλμ
|
\n\t* Βελτιωμένη δρομολόγηση: γρηγορότερη, με καλύτερη ακρίβεια, μέχρι 250 χλμ
|
||||||
\n\t* Εισαγωγή οδικών-μόνο χαρτών\n\t* Ο χάρτης δεν χάνει το κλείδωμα θέσης μετά από διακοπές
|
\n\t* Εισαγωγή οδικών-μόνο χαρτών\n\t* Ο χάρτης δεν χάνει το κλείδωμα θέσης μετά από διακοπές
|
||||||
|
@ -1606,11 +1606,11 @@
|
||||||
<string name="rendering_attr_hideBuildings_name">Απόκρυψη κτιρίων</string>
|
<string name="rendering_attr_hideBuildings_name">Απόκρυψη κτιρίων</string>
|
||||||
<string name="rendering_attr_hideText_name">Απόκρυψη κειμένου</string>
|
<string name="rendering_attr_hideText_name">Απόκρυψη κειμένου</string>
|
||||||
<string name="rendering_attr_hideWoodScrubs_name">Απόκρυψη δασών και θάμνων</string>
|
<string name="rendering_attr_hideWoodScrubs_name">Απόκρυψη δασών και θάμνων</string>
|
||||||
<string name="rendering_attr_moreDetailed_name">Πιο αναλυτικά</string>
|
<string name="rendering_attr_moreDetailed_name">Περισσότερες λεπτομέρειες</string>
|
||||||
<string name="rendering_attr_lessDetailed_name">Λιγότερο αναλυτικά</string>
|
<string name="rendering_attr_lessDetailed_name">Λιγότερες λεπτομέρειες</string>
|
||||||
<string name="rendering_attr_hideAccess_name">Απόκρυψη του είδους πρόσβασης</string>
|
<string name="rendering_attr_hideAccess_name">Απόκρυψη περιορισμών πρόσβασης</string>
|
||||||
<string name="rendering_attr_showAccess_name">Εμφάνιση του είδους πρόσβασης</string>
|
<string name="rendering_attr_showAccess_name">Εμφάνιση περιορισμών πρόσβασης</string>
|
||||||
<string name="rendering_attr_showSurfaceGrade_name">Εμφάνιση της ποιότητας των δρόμων</string>
|
<string name="rendering_attr_showSurfaceGrade_name">Εμφάνιση ποιότητας των δρόμων</string>
|
||||||
<string name="osmo_auth_error_short">Αποτυχία εξουσιοδότησης</string>
|
<string name="osmo_auth_error_short">Αποτυχία εξουσιοδότησης</string>
|
||||||
<string name="rendering_attr_coloredBuildings_name">Έγχρωμα κτίρια</string>
|
<string name="rendering_attr_coloredBuildings_name">Έγχρωμα κτίρια</string>
|
||||||
<string name="osmo_invite">Προσκαλέστε…</string>
|
<string name="osmo_invite">Προσκαλέστε…</string>
|
||||||
|
@ -1666,4 +1666,5 @@
|
||||||
<string name="save_track_to_gpx_globally_descr">Η γενική καταγραφή θέσης σε αρχείο GPX μπορεί να ενεργοποιηθεί και να απενεργοποιηθεί χρησιμοποιώντας το γραφικό στοιχείο GPX στην οθόνη χάρτη</string>
|
<string name="save_track_to_gpx_globally_descr">Η γενική καταγραφή θέσης σε αρχείο GPX μπορεί να ενεργοποιηθεί και να απενεργοποιηθεί χρησιμοποιώντας το γραφικό στοιχείο GPX στην οθόνη χάρτη</string>
|
||||||
<string name="save_track_interval_globally">Διάστημα καταγραφής</string>
|
<string name="save_track_interval_globally">Διάστημα καταγραφής</string>
|
||||||
<string name="rendering_attr_publicTransportMode_name">Λειτουργία δημόσιων μεταφορών</string>
|
<string name="rendering_attr_publicTransportMode_name">Λειτουργία δημόσιων μεταφορών</string>
|
||||||
|
<string name="confirm_every_run">Πάντα ερώτηση</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
||||||
<string name="layer_map_appearance">Configura pantalla</string>
|
<string name="layer_map_appearance">Configura pantalla</string>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources><string name="offline_edition">Modifications hors-ligne</string>
|
<resources><string name="offline_edition">Modifications hors-ligne</string>
|
||||||
<string name="offline_edition_descr">Toujours utiliser l\'édition hors-ligne</string>
|
<string name="offline_edition_descr">Toujours utiliser l\'édition hors-ligne</string>
|
||||||
<string name="tip_recent_changes_0_7_1_t">"Changements en 0.7.1 :
|
<string name="tip_recent_changes_0_7_1_t">"Changements en 0.7.1 :
|
||||||
|
@ -1073,7 +1073,7 @@
|
||||||
<string name="rendering_attr_roadColors_name">Thème de couleurs pour les routes</string>
|
<string name="rendering_attr_roadColors_name">Thème de couleurs pour les routes</string>
|
||||||
<string name="zxing_barcode_scanner_not_found">L\'appplication ZXing Barcode Scanner n\'est pas installée. La chercher dans Market ?</string>
|
<string name="zxing_barcode_scanner_not_found">L\'appplication ZXing Barcode Scanner n\'est pas installée. La chercher dans Market ?</string>
|
||||||
<string name="close_changeset">Clôturer les modifications</string>
|
<string name="close_changeset">Clôturer les modifications</string>
|
||||||
<string name="background_service_is_enabled_question">Le service OsmAnd tourne toujours en tâche de fond. Voulez-vous l\'arrêter ?</string>
|
<string name="background_service_is_enabled_question">Le service de veille OsmAnd tourne toujours en tâche de fond. Voulez-vous l\'arrêter également ?</string>
|
||||||
<string name="tip_recent_changes_1_0_0_t">"Changements en 1.0 :\n\t* Amélioration de la navigation, plus rapide et plus précise (jusqu\'à 250 km)\n\t* Cartographie des routes\n\t* La carte ne perd plus la position courante après les interruptions\n\t* Active le service d\'arrière-plan pendant la navigation"
|
<string name="tip_recent_changes_1_0_0_t">"Changements en 1.0 :\n\t* Amélioration de la navigation, plus rapide et plus précise (jusqu\'à 250 km)\n\t* Cartographie des routes\n\t* La carte ne perd plus la position courante après les interruptions\n\t* Active le service d\'arrière-plan pendant la navigation"
|
||||||
</string>
|
</string>
|
||||||
<string name="safe_mode_description">Exécuter l\'application dans le mode sûr (ne pas utiliser de code natif).</string>
|
<string name="safe_mode_description">Exécuter l\'application dans le mode sûr (ne pas utiliser de code natif).</string>
|
||||||
|
@ -1737,10 +1737,10 @@ Afghanistan, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua-et
|
||||||
<string name="osmo_auth_error_short">Échec de l\'autorisation</string>
|
<string name="osmo_auth_error_short">Échec de l\'autorisation</string>
|
||||||
<string name="osmo_auth_error">Erreur d\\\'autorisation OsMo : %1$s.\n Le service est momentanément inutilisable ou votre inscription a expiré.\n Voulez-vous procéder à une nouvelle inscription ?</string>
|
<string name="osmo_auth_error">Erreur d\\\'autorisation OsMo : %1$s.\n Le service est momentanément inutilisable ou votre inscription a expiré.\n Voulez-vous procéder à une nouvelle inscription ?</string>
|
||||||
<string name="keep_navigation_service">Garder</string>
|
<string name="keep_navigation_service">Garder</string>
|
||||||
<string name="stop_navigation_service">Stop</string>
|
<string name="stop_navigation_service">Interrompre</string>
|
||||||
<string name="enable_sleep_mode">Activer le mode veille du GPS</string>
|
<string name="enable_sleep_mode">Activer le mode veille du GPS</string>
|
||||||
<string name="gps_wake_up_timer">Intervalle de réveil du GPS</string>
|
<string name="gps_wake_up_timer">Intervalle de réveil du GPS</string>
|
||||||
<string name="sleep_mode_stop_dialog">Arrêter le mode veille du GPS ?</string>
|
<string name="sleep_mode_stop_dialog">Interrompre le mode veille du GPS ?</string>
|
||||||
<string name="map_preferred_locale_descr">Langue préférée pour les étiquettes sur la carte (noms anglais ou locaux en cas d\\\'indisponibilité)</string>
|
<string name="map_preferred_locale_descr">Langue préférée pour les étiquettes sur la carte (noms anglais ou locaux en cas d\\\'indisponibilité)</string>
|
||||||
<string name="map_preferred_locale">Langue préférée pour la carte</string>
|
<string name="map_preferred_locale">Langue préférée pour la carte</string>
|
||||||
<string name="local_map_names">Noms locaux</string>
|
<string name="local_map_names">Noms locaux</string>
|
||||||
|
|
|
@ -479,7 +479,7 @@
|
||||||
<string name="int_seconds">secondi</string>
|
<string name="int_seconds">secondi</string>
|
||||||
<string name="int_min">min.</string>
|
<string name="int_min">min.</string>
|
||||||
<string name="background_service_int_descr">Scegli l\'intervallo di tempo di risveglio usato dal servizio modo quiescente</string>
|
<string name="background_service_int_descr">Scegli l\'intervallo di tempo di risveglio usato dal servizio modo quiescente</string>
|
||||||
<string name="background_service_int">Intervallo di risveglio</string>
|
<string name="background_service_int">Intervallo di risveglio GPS</string>
|
||||||
<string name="background_service_provider_descr">Scegli il fornitore di posizione finché si sta usando il modo background</string>
|
<string name="background_service_provider_descr">Scegli il fornitore di posizione finché si sta usando il modo background</string>
|
||||||
<string name="background_service_provider">Fornitore di posizionamento</string>
|
<string name="background_service_provider">Fornitore di posizionamento</string>
|
||||||
<string name="background_router_service_descr">Lancia il servizio in background di OsmAnd per il tracking della posizione mentre lo schermo è spento</string>
|
<string name="background_router_service_descr">Lancia il servizio in background di OsmAnd per il tracking della posizione mentre lo schermo è spento</string>
|
||||||
|
@ -490,7 +490,7 @@
|
||||||
<string name="search_poi_filter">Filtro</string>
|
<string name="search_poi_filter">Filtro</string>
|
||||||
<string name="menu_mute_off">L\'audio è attivato</string>
|
<string name="menu_mute_off">L\'audio è attivato</string>
|
||||||
<string name="menu_mute_on">Audio disattivato</string>
|
<string name="menu_mute_on">Audio disattivato</string>
|
||||||
<string name="voice_provider_descr">Scegli la voce da utilizzare per la navigazione (per i codici delle lingue vedi ISO 639-1)</string>
|
<string name="voice_provider_descr">Scegli la voce da utilizzare per la navigazione</string>
|
||||||
<string name="voice_provider">Guida vocale</string>
|
<string name="voice_provider">Guida vocale</string>
|
||||||
<string name="voice_data_initializing">File voce in preparazione…</string>
|
<string name="voice_data_initializing">File voce in preparazione…</string>
|
||||||
<string name="voice_data_not_supported">Versione di dati vocali non supportata</string>
|
<string name="voice_data_not_supported">Versione di dati vocali non supportata</string>
|
||||||
|
@ -633,10 +633,10 @@
|
||||||
<string name="settings">Impostazioni</string>
|
<string name="settings">Impostazioni</string>
|
||||||
<string name="save_current_track_descr">Salva adesso la traccia corrente nella scheda SD</string>
|
<string name="save_current_track_descr">Salva adesso la traccia corrente nella scheda SD</string>
|
||||||
<string name="save_current_track">Salva la traccia corrente</string>
|
<string name="save_current_track">Salva la traccia corrente</string>
|
||||||
<string name="save_track_interval_descr">Scegli l\'intervallo di posizionamento per le tracce</string>
|
<string name="save_track_interval_descr">Scegli l\'intervallo di registrazione per la traccia durante la navigazione</string>
|
||||||
<string name="save_track_interval">Intervallo di salvataggio</string>
|
<string name="save_track_interval">Intervallo di registrazione durante la navigazione</string>
|
||||||
<string name="save_track_to_gpx_descrp">Le tracce saranno salvate nella cartella tracce raggruppate per giorno</string>
|
<string name="save_track_to_gpx_descrp">Le tracce saranno salvate durante la navigazione nella cartella tracce</string>
|
||||||
<string name="save_track_to_gpx">Salva traccia in GPX</string>
|
<string name="save_track_to_gpx">Durante la navigazione salva la traccia in un file GPX</string>
|
||||||
<string name="update_tile">Aggiorna mappa</string>
|
<string name="update_tile">Aggiorna mappa</string>
|
||||||
<string name="reload_tile">Ricarica tasselli</string>
|
<string name="reload_tile">Ricarica tasselli</string>
|
||||||
<string name="mark_point">Obiettivo</string>
|
<string name="mark_point">Obiettivo</string>
|
||||||
|
@ -1449,8 +1449,8 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
|
||||||
\n\t* Impostazioni aggiuntive per la stabilizzazione della bussola
|
\n\t* Impostazioni aggiuntive per la stabilizzazione della bussola
|
||||||
\n\t* Il pulsante in alto a sinistra nella schermata della vista mappa sostituisce il pulsante Menu
|
\n\t* Il pulsante in alto a sinistra nella schermata della vista mappa sostituisce il pulsante Menu
|
||||||
</string>
|
</string>
|
||||||
<string name="monitoring_settings">Servizi di registrazione</string>
|
<string name="monitoring_settings">Registrazione viaggio</string>
|
||||||
<string name="monitoring_settings_descr">Configura come registrare i viaggi</string>
|
<string name="monitoring_settings_descr">Configura come registrare i tuoi viaggi</string>
|
||||||
<string name="osmand_monitoring_plugin_description">Attivare il monitoraggio e la navigazione nella modalità quiescente (schermo spento) attraverso periodici risvegli del dispositivo GPS. Mostra le impostazioni che facilitano la registrazione dei vostri viaggi in file GPX locali o online usando un servizio web.</string>
|
<string name="osmand_monitoring_plugin_description">Attivare il monitoraggio e la navigazione nella modalità quiescente (schermo spento) attraverso periodici risvegli del dispositivo GPS. Mostra le impostazioni che facilitano la registrazione dei vostri viaggi in file GPX locali o online usando un servizio web.</string>
|
||||||
<string name="osmand_monitoring_plugin_name">Servizi di registrazione</string>
|
<string name="osmand_monitoring_plugin_name">Servizi di registrazione</string>
|
||||||
<string name="choose_osmand_theme_descr">Scegli il tema dell\'applicazione</string>
|
<string name="choose_osmand_theme_descr">Scegli il tema dell\'applicazione</string>
|
||||||
|
@ -1928,10 +1928,10 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
|
||||||
<string name="lang_fa">Persiano</string>
|
<string name="lang_fa">Persiano</string>
|
||||||
<string name="lang_he">Ebraico</string>
|
<string name="lang_he">Ebraico</string>
|
||||||
<string name="keep_navigation_service">Mantieni</string>
|
<string name="keep_navigation_service">Mantieni</string>
|
||||||
<string name="stop_navigation_service">Ferma</string>
|
<string name="stop_navigation_service">Interrompi</string>
|
||||||
<string name="enable_sleep_mode">Abilita la modalità quiescente</string>
|
<string name="enable_sleep_mode">Abilita la modalità GPS quiescente</string>
|
||||||
<string name="gps_wake_up_timer">Intervallo risveglio GPS</string>
|
<string name="gps_wake_up_timer">Intervallo risveglio GPS</string>
|
||||||
<string name="sleep_mode_stop_dialog">Tenere il GPS acceso?</string>
|
<string name="sleep_mode_stop_dialog">Interrompere la modalità GPS quiescente?</string>
|
||||||
<string name="lang_al">Albanese</string>
|
<string name="lang_al">Albanese</string>
|
||||||
<string name="lang_ar">Arabo</string>
|
<string name="lang_ar">Arabo</string>
|
||||||
<string name="lang_sc">Sardo</string>
|
<string name="lang_sc">Sardo</string>
|
||||||
|
@ -1966,13 +1966,13 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
|
||||||
<string name="download_additional_maps">Download mappe mancanti %1$s (%2$d MB)?</string>
|
<string name="download_additional_maps">Download mappe mancanti %1$s (%2$d MB)?</string>
|
||||||
<string name="flat_list_waypoitns">Tutti</string>
|
<string name="flat_list_waypoitns">Tutti</string>
|
||||||
<string name="waypoints">Punti intermedi</string>
|
<string name="waypoints">Punti intermedi</string>
|
||||||
<string name="targets">Obiettivi</string>
|
<string name="targets">Destinazioni</string>
|
||||||
<string name="way_alarms">Ostacoli</string>
|
<string name="way_alarms">Ostacoli</string>
|
||||||
<string name="speak_favorites">Annuncia Preferiti</string>
|
<string name="speak_favorites">Annuncia Preferiti</string>
|
||||||
<string name="speak_poi">Annuncia PDI</string>
|
<string name="speak_poi">Annuncia PDI</string>
|
||||||
<string name="index_tours">Itinerari</string>
|
<string name="index_tours">Itinerari</string>
|
||||||
<string name="flat_list_waypoints">Tutto</string>
|
<string name="flat_list_waypoints">Tutto</string>
|
||||||
<string name="record_plugin_description">Registrate le vostre tracce con il pulsante dedicato nello schermo della mappa. Mostra le impostazioni che facilitano la registrazione dei vostri viaggi in file GPX localmente o online utilizzando un servizio web.</string>
|
<string name="record_plugin_description">Registrate le vostre tracce con il pulsante dedicato nello schermo della mappa. Mostra le impostazioni per la registrazione dei vostri viaggi in file GPX localmente o online utilizzando un servizio web.</string>
|
||||||
<string name="record_plugin_name">Registra i tuoi viaggi</string>
|
<string name="record_plugin_name">Registra i tuoi viaggi</string>
|
||||||
<string name="int_hour">h</string>
|
<string name="int_hour">h</string>
|
||||||
<string name="duration">Durata</string>
|
<string name="duration">Durata</string>
|
||||||
|
@ -1981,4 +1981,7 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
|
||||||
<string name="save_track_to_gpx_globally_descr">La registrazione della posizione in un file GPX può essere accesa o spenta dal widget registrazione GPX sulla schermata della mappa</string>
|
<string name="save_track_to_gpx_globally_descr">La registrazione della posizione in un file GPX può essere accesa o spenta dal widget registrazione GPX sulla schermata della mappa</string>
|
||||||
<string name="save_track_interval_globally">Intervallo registrazione</string>
|
<string name="save_track_interval_globally">Intervallo registrazione</string>
|
||||||
<string name="rendering_attr_publicTransportMode_name">Modo trasporto pubblico</string>
|
<string name="rendering_attr_publicTransportMode_name">Modo trasporto pubblico</string>
|
||||||
|
<string name="confirm_every_run">Chiedi sempre</string>
|
||||||
|
<string name="save_global_track_interval_descr">Scegli l\'intervallo di tempo generale per la registrazione del percorso (abilitata attraverso il widget registrazione GPX sulla mappa)</string>
|
||||||
|
<string name="save_global_track_interval">Intervallo generale di registrazione</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources><string name="installing_new_resources">新しいデータを展開中…</string>
|
<resources><string name="installing_new_resources">新しいデータを展開中…</string>
|
||||||
<string name="internet_connection_required_for_online_route">オンライン経路案内を使用しようとしていますが
|
<string name="internet_connection_required_for_online_route">オンライン経路案内を使用しようとしていますが
|
||||||
インターネット接続されていません。</string>
|
インターネット接続されていません。</string>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources><string name="vector_maps_may_display_faster_on_some_devices">벡터 맵이 더욱 빠르게 표시됩니다. 하지만, 어떤 기기에서는 잘 작동하지 않을 수 있습니다.</string>
|
<resources><string name="vector_maps_may_display_faster_on_some_devices">벡터 맵이 더욱 빠르게 표시됩니다. 하지만, 어떤 기기에서는 잘 작동하지 않을 수 있습니다.</string>
|
||||||
|
|
||||||
<string name="play_commands_of_currently_selected_voice">현재 선택된 음성 명령을 재생합니다</string>
|
<string name="play_commands_of_currently_selected_voice">현재 선택된 음성 명령을 재생합니다</string>
|
||||||
|
@ -619,7 +619,7 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
|
||||||
<string name="int_seconds">초</string>
|
<string name="int_seconds">초</string>
|
||||||
<string name="int_min">분.</string>
|
<string name="int_min">분.</string>
|
||||||
<string name="background_service_int_descr">절전모드 서비스를 위해 위치를 찾는 주기를 선택합니다</string>
|
<string name="background_service_int_descr">절전모드 서비스를 위해 위치를 찾는 주기를 선택합니다</string>
|
||||||
<string name="background_service_int">GPS 위치탐색 주기</string>
|
<string name="background_service_int">GPS 위치탐색 간격</string>
|
||||||
<string name="background_service_provider_descr">백그라운드 서비스를 위한 위치 제공자를 선택합니다</string>
|
<string name="background_service_provider_descr">백그라운드 서비스를 위한 위치 제공자를 선택합니다</string>
|
||||||
<string name="background_service_provider">위치 제공자</string>
|
<string name="background_service_provider">위치 제공자</string>
|
||||||
<string name="background_router_service_descr">오랫동안 위치를 추적하기 위해 백그라운드 서비스를 활성화합니다</string>
|
<string name="background_router_service_descr">오랫동안 위치를 추적하기 위해 백그라운드 서비스를 활성화합니다</string>
|
||||||
|
@ -2100,6 +2100,6 @@ Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Z
|
||||||
<string name="save_track_to_gpx_globally_descr">GPX 파일에 기록하는 일반적인 위치는 지도 화면에 GPX 기록 위젯을 사용하여 켜거나 끌 수 있습니다</string>
|
<string name="save_track_to_gpx_globally_descr">GPX 파일에 기록하는 일반적인 위치는 지도 화면에 GPX 기록 위젯을 사용하여 켜거나 끌 수 있습니다</string>
|
||||||
<string name="save_track_interval_globally">로깅 간격</string>
|
<string name="save_track_interval_globally">로깅 간격</string>
|
||||||
<string name="confirm_every_run">항상 요청</string>
|
<string name="confirm_every_run">항상 요청</string>
|
||||||
<string name="save_global_track_interval_descr">(지도에 GPX 레코딩 위젯을 통해 사용 가능) 일반 트랙 레코딩에 대한 로깅 간격을 선택합니다</string>
|
<string name="save_global_track_interval_descr">일반 트랙 레코딩에 대한 로깅 간격을 선택합니다 (지도에 GPX 레코딩 위젯을 통해 사용 가능)</string>
|
||||||
<string name="save_global_track_interval">일반 로깅 간격</string>
|
<string name="save_global_track_interval">일반 로깅 간격</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -1149,7 +1149,7 @@ OsmAnd yra aktyviai tobulinama ir mūsų projektas bei jo tolesnis progresas pri
|
||||||
<string name="safe_mode_description">Vykdyti programą saugiu režimu (naudoti Android kodą vietoje aparatinio).</string>
|
<string name="safe_mode_description">Vykdyti programą saugiu režimu (naudoti Android kodą vietoje aparatinio).</string>
|
||||||
<string name="safe_mode">Saugus režimas</string>
|
<string name="safe_mode">Saugus režimas</string>
|
||||||
<string name="native_library_not_running">Programa veikia saugiu eržimu (išjunkite jį Nustatymuose).</string>
|
<string name="native_library_not_running">Programa veikia saugiu eržimu (išjunkite jį Nustatymuose).</string>
|
||||||
<string name="background_service_is_enabled_question">Foninis režimas vis dar veikia. Ar norite jį nutraukti?</string>
|
<string name="background_service_is_enabled_question">OsmAnd miego režimas vis dar veikia. Ar norite ir jį nutraukti?</string>
|
||||||
<string name="tip_recent_changes_1_0_0_t">Pakeitimai 1.0 versijoje :
|
<string name="tip_recent_changes_1_0_0_t">Pakeitimai 1.0 versijoje :
|
||||||
\n\t* Patobulintas maršruto skaičiavimas dabar greitesnis ir tikslesnis (iki 250 km)
|
\n\t* Patobulintas maršruto skaičiavimas dabar greitesnis ir tikslesnis (iki 250 km)
|
||||||
\n\t* Sukurti vien kelių žemėlapiai
|
\n\t* Sukurti vien kelių žemėlapiai
|
||||||
|
@ -1762,10 +1762,10 @@ OsmAnd yra aktyviai tobulinama ir mūsų projektas bei jo tolesnis progresas pri
|
||||||
<string name="rendering_attr_showSurfaces_name">Rodyti kelių paviršiaus tipą</string>
|
<string name="rendering_attr_showSurfaces_name">Rodyti kelių paviršiaus tipą</string>
|
||||||
<string name="rendering_attr_showCycleRoutes_name">Rodyti dviračių maršrutus</string>
|
<string name="rendering_attr_showCycleRoutes_name">Rodyti dviračių maršrutus</string>
|
||||||
<string name="keep_navigation_service">Išlaikyti</string>
|
<string name="keep_navigation_service">Išlaikyti</string>
|
||||||
<string name="stop_navigation_service">Stabdyti</string>
|
<string name="stop_navigation_service">Nutraukti</string>
|
||||||
<string name="enable_sleep_mode">Įjungti GPS miego režimą</string>
|
<string name="enable_sleep_mode">Įjungti GPS miego režimą</string>
|
||||||
<string name="gps_wake_up_timer">GPS prabudimo intervalas</string>
|
<string name="gps_wake_up_timer">GPS prabudimo intervalas</string>
|
||||||
<string name="sleep_mode_stop_dialog">Išjungti GPS miego režimą?</string>
|
<string name="sleep_mode_stop_dialog">Nutraukti GPS miego režimą?</string>
|
||||||
<string name="map_preferred_locale_descr">Pageidaujama kalba užrašams ant žemėlapio (jei jos nėra, užrašai bus rodomi anglų arba vietine kalba)</string>
|
<string name="map_preferred_locale_descr">Pageidaujama kalba užrašams ant žemėlapio (jei jos nėra, užrašai bus rodomi anglų arba vietine kalba)</string>
|
||||||
<string name="map_preferred_locale">Pageidaujama žemėlapio kalba</string>
|
<string name="map_preferred_locale">Pageidaujama žemėlapio kalba</string>
|
||||||
<string name="local_map_names">Vietiniai pavadinimai</string>
|
<string name="local_map_names">Vietiniai pavadinimai</string>
|
||||||
|
|
|
@ -404,8 +404,7 @@ Kies daarna om er heen te navigeren, op de kaart te tonen, aan een route of de f
|
||||||
\n\tEen markering kan worden gesloten door er lang op te drukken.
|
\n\tEen markering kan worden gesloten door er lang op te drukken.
|
||||||
</string>
|
</string>
|
||||||
<string name="tip_initial">Help</string>
|
<string name="tip_initial">Help</string>
|
||||||
<string name="tip_initial_t">"OsmAnd is een navigatieprogramma met vele mogelijkheden.
|
<string name="tip_initial_t">"OsmAnd is een navigatieprogramma met vele mogelijkheden.\n\nEen inleiding, tips en uitgebreide hulp zijn te vinden onder \'Menu\' → \'Help\', in het kaartscherm. "</string>
|
||||||
\n\nInleiding, gebruikstips en uitgebreide hulp is te vinden onder \'Menu\' → \'Help\' vanuit het kaartscherm. "</string>
|
|
||||||
<string name="next_button">Volgende</string>
|
<string name="next_button">Volgende</string>
|
||||||
<string name="previous_button">Vorige</string>
|
<string name="previous_button">Vorige</string>
|
||||||
<string name="unit_of_length_descr">Wijzig eenheden van afstand en snelheid</string>
|
<string name="unit_of_length_descr">Wijzig eenheden van afstand en snelheid</string>
|
||||||
|
@ -576,7 +575,7 @@ Kies daarna om er heen te navigeren, op de kaart te tonen, aan een route of de f
|
||||||
<string name="int_seconds">seconden</string>
|
<string name="int_seconds">seconden</string>
|
||||||
<string name="int_min">min.</string>
|
<string name="int_min">min.</string>
|
||||||
<string name="background_service_int_descr">Stel interval in voor plaatsbepaling door achtergrondservice</string>
|
<string name="background_service_int_descr">Stel interval in voor plaatsbepaling door achtergrondservice</string>
|
||||||
<string name="background_service_int">Plaatsbepaling-interval</string>
|
<string name="background_service_int">GPS ontwaak-interval</string>
|
||||||
<string name="background_service_provider_descr">Kies achtergrondservice-provider</string>
|
<string name="background_service_provider_descr">Kies achtergrondservice-provider</string>
|
||||||
<string name="background_service_provider">Achtergrondservice-provider</string>
|
<string name="background_service_provider">Achtergrondservice-provider</string>
|
||||||
<string name="background_router_service_descr">Gebruikt een achtergrondservice voor plaatsbepaling als het scherm uit is</string>
|
<string name="background_router_service_descr">Gebruikt een achtergrondservice voor plaatsbepaling als het scherm uit is</string>
|
||||||
|
@ -793,19 +792,19 @@ Kies daarna om er heen te navigeren, op de kaart te tonen, aan een route of de f
|
||||||
<string name="navigate_point_format_DMS">GGG MM SS.SS</string>
|
<string name="navigate_point_format_DMS">GGG MM SS.SS</string>
|
||||||
<string name="search_shown_on_map">Toon op kaart</string>
|
<string name="search_shown_on_map">Toon op kaart</string>
|
||||||
<string name="navigate_point_cancel">Annuleer</string>
|
<string name="navigate_point_cancel">Annuleer</string>
|
||||||
<string name="search_address_top_text">Selecteer adres</string>
|
<string name="search_address_top_text">Adres kiezen</string>
|
||||||
<string name="search_address_region">Regio</string>
|
<string name="search_address_region">Regio</string>
|
||||||
<string name="search_address_city">Stad</string>
|
<string name="search_address_city">Stad</string>
|
||||||
<string name="search_address_street">Straat</string>
|
<string name="search_address_street">Straat</string>
|
||||||
<string name="search_address_building">Gebouw</string>
|
<string name="search_address_building">Huisnummer</string>
|
||||||
<string name="search_address_building_option">Gebouwen</string>
|
<string name="search_address_building_option">Gebouw</string>
|
||||||
<string name="search_address_street_option">Zijstraat</string>
|
<string name="search_address_street_option">Zijstraat</string>
|
||||||
<string name="search_tabs_location">Locatie</string>
|
<string name="search_tabs_location">Locatie</string>
|
||||||
|
|
||||||
<string name="context_menu_item_add_favorite">Voeg toe aan favorieten</string>
|
<string name="context_menu_item_add_favorite">Voeg toe aan favorieten</string>
|
||||||
<string name="context_menu_item_update_map">Kaart bijwerken</string>
|
<string name="context_menu_item_update_map">Kaart bijwerken</string>
|
||||||
<string name="context_menu_item_open_bug">Meld fout in OpenStreetMap</string>
|
<string name="context_menu_item_open_bug">Meld fout in OpenStreetMap</string>
|
||||||
<string name="context_menu_item_create_poi">Maak interessepunt</string>
|
<string name="context_menu_item_create_poi">Maak interessepunt in OSM</string>
|
||||||
<string name="default_buttons_yes">Ja</string>
|
<string name="default_buttons_yes">Ja</string>
|
||||||
<string name="default_buttons_cancel">Annuleer</string>
|
<string name="default_buttons_cancel">Annuleer</string>
|
||||||
<string name="default_buttons_apply">Toepassen</string>
|
<string name="default_buttons_apply">Toepassen</string>
|
||||||
|
@ -1140,7 +1139,7 @@ Kies daarna om er heen te navigeren, op de kaart te tonen, aan een route of de f
|
||||||
<string name="safe_mode_description">Gebruik OsmAnd in veilige modus (gebruikt langzamere Android-code in plaats van native code).</string>
|
<string name="safe_mode_description">Gebruik OsmAnd in veilige modus (gebruikt langzamere Android-code in plaats van native code).</string>
|
||||||
<string name="safe_mode">Veilige modus</string>
|
<string name="safe_mode">Veilige modus</string>
|
||||||
<string name="native_library_not_running">Het programma werkt in veilige modus (uitzetten via Instellingen).</string>
|
<string name="native_library_not_running">Het programma werkt in veilige modus (uitzetten via Instellingen).</string>
|
||||||
<string name="background_service_is_enabled_question">De achtergrond-service staat nog aan. Deze uitschakelen?</string>
|
<string name="background_service_is_enabled_question">OsmAnd achtergrond-service staat nog aan. Deze ook uitschakelen?</string>
|
||||||
<string name="tip_recent_changes_1_0_0_t">Wijzigingen in 1.0.0:
|
<string name="tip_recent_changes_1_0_0_t">Wijzigingen in 1.0.0:
|
||||||
\n\t* Verbeterde routeberekening, sneller en nauwkeuriger (tot 250 km)
|
\n\t* Verbeterde routeberekening, sneller en nauwkeuriger (tot 250 km)
|
||||||
\n\t* Wegenkaarten (bevatten uitsluitend wegen)
|
\n\t* Wegenkaarten (bevatten uitsluitend wegen)
|
||||||
|
@ -1554,7 +1553,7 @@ Afghanistan, Albanie, Algerije, Andorra, Angola, Anguilla, Antigua en Barbuda, A
|
||||||
<string name="edit_tilesource_expiration_time">Verlopen (minuten)</string>
|
<string name="edit_tilesource_expiration_time">Verlopen (minuten)</string>
|
||||||
<string name="edit_tilesource_minzoom">Min zoomniveau</string>
|
<string name="edit_tilesource_minzoom">Min zoomniveau</string>
|
||||||
<string name="edit_tilesource_url_to_load">URL</string>
|
<string name="edit_tilesource_url_to_load">URL</string>
|
||||||
<string name="edit_tilesource_choose_existing">Selecteer bestaand…</string>
|
<string name="edit_tilesource_choose_existing">Kies een bestaande…</string>
|
||||||
<string name="edit_tilesource_name">Naam</string>
|
<string name="edit_tilesource_name">Naam</string>
|
||||||
<string name="maps_define_edit">Definieer/bewerk…</string>
|
<string name="maps_define_edit">Definieer/bewerk…</string>
|
||||||
<string name="tip_recent_changes_1_6_t">Veranderingen in 1.6:
|
<string name="tip_recent_changes_1_6_t">Veranderingen in 1.6:
|
||||||
|
@ -1640,8 +1639,8 @@ Afghanistan, Albanie, Algerije, Andorra, Angola, Anguilla, Antigua en Barbuda, A
|
||||||
<string name="routing_attr_avoid_motorway_description">Vermijd autowegen</string>
|
<string name="routing_attr_avoid_motorway_description">Vermijd autowegen</string>
|
||||||
<string name="routing_attr_weight_description">Geef het maximum gewicht van een voertuig</string>
|
<string name="routing_attr_weight_description">Geef het maximum gewicht van een voertuig</string>
|
||||||
<string name="routing_attr_weight_name">Maximum gewicht</string>
|
<string name="routing_attr_weight_name">Maximum gewicht</string>
|
||||||
<string name="select_gpx">Selecteer GPX…</string>
|
<string name="select_gpx">GPX-bestand kiezen …</string>
|
||||||
<string name="route_descr_select_destination">Selecteer bestemming</string>
|
<string name="route_descr_select_destination">Bestemming kiezen</string>
|
||||||
<string name="route_descr_select_on_map">Kies op de kaart…</string>
|
<string name="route_descr_select_on_map">Kies op de kaart…</string>
|
||||||
<string name="route_descr_favorite">Favoriet…</string>
|
<string name="route_descr_favorite">Favoriet…</string>
|
||||||
<string name="route_preferences">Route-voorkeuren</string>
|
<string name="route_preferences">Route-voorkeuren</string>
|
||||||
|
@ -1852,7 +1851,7 @@ Afghanistan, Albanie, Algerije, Andorra, Angola, Anguilla, Antigua en Barbuda, A
|
||||||
<string name="save_as_favorites_points">Bewaar als groep van favorieten</string>
|
<string name="save_as_favorites_points">Bewaar als groep van favorieten</string>
|
||||||
<string name="loading_smth">Laad %1$s …</string>
|
<string name="loading_smth">Laad %1$s …</string>
|
||||||
<string name="map_widget_plain_time">Huidige tijd</string>
|
<string name="map_widget_plain_time">Huidige tijd</string>
|
||||||
<string name="select_destination_and_intermediate_points">Selecteer routepunten</string>
|
<string name="select_destination_and_intermediate_points">Routepunten kiezen</string>
|
||||||
<string name="layer_amenity_label">Namen van interessepunten</string>
|
<string name="layer_amenity_label">Namen van interessepunten</string>
|
||||||
<string name="gpx_wpt">Routepunt</string>
|
<string name="gpx_wpt">Routepunt</string>
|
||||||
<string name="selected_gpx_info_show">\n\nLang drukken om op de kaart te bekijken</string>
|
<string name="selected_gpx_info_show">\n\nLang drukken om op de kaart te bekijken</string>
|
||||||
|
@ -1908,10 +1907,10 @@ Afghanistan, Albanie, Algerije, Andorra, Angola, Anguilla, Antigua en Barbuda, A
|
||||||
<string name="gpx_monitoring_stop">Stop GPX opname</string>
|
<string name="gpx_monitoring_stop">Stop GPX opname</string>
|
||||||
<string name="gpx_start_new_segment">Start nieuw segment</string>
|
<string name="gpx_start_new_segment">Start nieuw segment</string>
|
||||||
<string name="keep_navigation_service">Houden</string>
|
<string name="keep_navigation_service">Houden</string>
|
||||||
<string name="stop_navigation_service">Stop</string>
|
<string name="stop_navigation_service">Onderbreek</string>
|
||||||
<string name="enable_sleep_mode">GPS Slaapstand inschakelen</string>
|
<string name="enable_sleep_mode">GPS Slaapstand inschakelen</string>
|
||||||
<string name="gps_wake_up_timer">GPS ontwaak interval</string>
|
<string name="gps_wake_up_timer">GPS ontwaak-interval</string>
|
||||||
<string name="sleep_mode_stop_dialog">Stop GPS slaapstand?</string>
|
<string name="sleep_mode_stop_dialog">Onderbreek GPS slaapstand?</string>
|
||||||
<string name="lang_fa">Perzisch</string>
|
<string name="lang_fa">Perzisch</string>
|
||||||
<string name="lang_al">Albanees</string>
|
<string name="lang_al">Albanees</string>
|
||||||
<string name="lang_ar">Arabisch</string>
|
<string name="lang_ar">Arabisch</string>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources><string name="tip_recent_changes_0_6_9_t">"Zmiany w 0.6.9: \n\t- poprawiono renderowanie map offline \n\t- szybkie renderowanie natywne (wersja eksperymentalna - może nie działać na niektórych urządzeniach) \n\t- poprawki w interfejsie \n\t- dodano wyświetlanie informacji o wysokości (altitude) \n\t- nowe tłumaczenia (polskie, wietnamskie) \n\t- inne, mniejsze poprawki "</string>
|
<resources><string name="tip_recent_changes_0_6_9_t">"Zmiany w 0.6.9: \n\t- poprawiono renderowanie map offline \n\t- szybkie renderowanie natywne (wersja eksperymentalna - może nie działać na niektórych urządzeniach) \n\t- poprawki w interfejsie \n\t- dodano wyświetlanie informacji o wysokości (altitude) \n\t- nowe tłumaczenia (polskie, wietnamskie) \n\t- inne, mniejsze poprawki "</string>
|
||||||
|
|
||||||
<string name="use_transparent_map_theme">Przezroczysty styl</string>
|
<string name="use_transparent_map_theme">Przezroczysty styl</string>
|
||||||
|
|
|
@ -68,7 +68,7 @@
|
||||||
<string name="safe_mode_description">Запустить приложение в безопасном режиме (замедляет работу приложения, используя только Android функции).</string>
|
<string name="safe_mode_description">Запустить приложение в безопасном режиме (замедляет работу приложения, используя только Android функции).</string>
|
||||||
<string name="safe_mode">Безопасный режим</string>
|
<string name="safe_mode">Безопасный режим</string>
|
||||||
<string name="native_library_not_running">Приложение запущено в безопасном режиме (отключите в Настройках).</string>
|
<string name="native_library_not_running">Приложение запущено в безопасном режиме (отключите в Настройках).</string>
|
||||||
<string name="background_service_is_enabled_question">Фоновый режим все еще запущен. Вы хотите отменить его?</string>
|
<string name="background_service_is_enabled_question">Фоновый режим все еще запущен. Вы хотите прервать его тоже?</string>
|
||||||
<string name="tip_recent_changes_1_0_0_t">Изменения в 1.0.0:
|
<string name="tip_recent_changes_1_0_0_t">Изменения в 1.0.0:
|
||||||
\n\t* Улучшенная навигация: быстрее и расчёт до 250 км
|
\n\t* Улучшенная навигация: быстрее и расчёт до 250 км
|
||||||
\n\t* Новые компактные карты (исключительно дороги)
|
\n\t* Новые компактные карты (исключительно дороги)
|
||||||
|
@ -1745,9 +1745,9 @@ OsmAnd - открытый источник и активно развается.
|
||||||
<string name="gpx_monitoring_start">Начать запись GPX</string>
|
<string name="gpx_monitoring_start">Начать запись GPX</string>
|
||||||
<string name="gpx_monitoring_stop">Остановить запись GPX</string>
|
<string name="gpx_monitoring_stop">Остановить запись GPX</string>
|
||||||
<string name="gpx_start_new_segment">Начать новый сегмент</string>
|
<string name="gpx_start_new_segment">Начать новый сегмент</string>
|
||||||
<string name="enable_sleep_mode">Включить режим сна GPS</string>
|
<string name="enable_sleep_mode">Включить фоновый режим GPS</string>
|
||||||
<string name="gps_wake_up_timer">Интервал пробуждения GPS</string>
|
<string name="gps_wake_up_timer">Интервал пробуждения GPS</string>
|
||||||
<string name="sleep_mode_stop_dialog">Выключить режим сна GPS?</string>
|
<string name="sleep_mode_stop_dialog">Выключить фоновый режим GPS?</string>
|
||||||
<string name="stop_navigation_service">Выключить</string>
|
<string name="stop_navigation_service">Выключить</string>
|
||||||
<string name="keep_navigation_service">Оставить</string>
|
<string name="keep_navigation_service">Оставить</string>
|
||||||
<string name="live_monitoring_m_descr">Отправлять отслеживание на указанный веб-сервис, если включена запись GPX.</string>
|
<string name="live_monitoring_m_descr">Отправлять отслеживание на указанный веб-сервис, если включена запись GPX.</string>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources><string name="always_center_position_on_map">Ammustra sa positzione semper a su tzentru</string>
|
<resources><string name="always_center_position_on_map">Ammustra sa positzione semper a su tzentru</string>
|
||||||
<string name="voice_pref_title">Boghe</string>
|
<string name="voice_pref_title">Boghe</string>
|
||||||
<string name="misc_pref_title">Mistura</string>
|
<string name="misc_pref_title">Mistura</string>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources><string name="screen_is_locked">För att låsa upp skärmen tryck på låsikonen</string>
|
<resources><string name="screen_is_locked">För att låsa upp skärmen tryck på låsikonen</string>
|
||||||
<string name="ChooseCountry">Välj land</string>
|
<string name="ChooseCountry">Välj land</string>
|
||||||
<string name="choose_city">Välj stad</string>
|
<string name="choose_city">Välj stad</string>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources><string name="tip_recent_changes_0_8_1_t">Зміни в 0.8.1:
|
<resources><string name="tip_recent_changes_0_8_1_t">Зміни в 0.8.1:
|
||||||
\n\t* Більш точні маршрути (трохи повільніше)
|
\n\t* Більш точні маршрути (трохи повільніше)
|
||||||
\n\t* Розумний і швидкий перерахунок маршруту
|
\n\t* Розумний і швидкий перерахунок маршруту
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources><string name="email">電子郵件</string>
|
<resources><string name="email">電子郵件</string>
|
||||||
<string name="poi_dialog_name">名稱</string>
|
<string name="poi_dialog_name">名稱</string>
|
||||||
<string name="poi_dialog_opening_hours">打開</string>
|
<string name="poi_dialog_opening_hours">打開</string>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<?xml version='1.0' encoding='utf-8'?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources><string name="rendering_attr_roadColors_description">選擇道路的色彩調配:</string>
|
<resources><string name="rendering_attr_roadColors_description">選擇道路的色彩調配:</string>
|
||||||
<string name="rendering_attr_roadColors_name">道路的色彩調配</string>
|
<string name="rendering_attr_roadColors_name">道路的色彩調配</string>
|
||||||
<string name="map_widget_show_destination_arrow">顯示目的地方向</string>
|
<string name="map_widget_show_destination_arrow">顯示目的地方向</string>
|
||||||
|
@ -1193,7 +1193,7 @@
|
||||||
<string name="safe_mode_description">應用程式執行在安全模式下(使用較慢的 Android 而非原生碼)。</string>
|
<string name="safe_mode_description">應用程式執行在安全模式下(使用較慢的 Android 而非原生碼)。</string>
|
||||||
<string name="safe_mode">安全模式</string>
|
<string name="safe_mode">安全模式</string>
|
||||||
<string name="native_library_not_running">應用程式在安全模式中執行(在設定裡停用它)。</string>
|
<string name="native_library_not_running">應用程式在安全模式中執行(在設定裡停用它)。</string>
|
||||||
<string name="background_service_is_enabled_question">OsmAnd 休眠模式服務仍在執行。您想要關閉它嗎?</string>
|
<string name="background_service_is_enabled_question">OsmAnd 休眠模式服務仍在執行,您想要中斷嗎?</string>
|
||||||
<string name="osmand_play_title_30_chars">OsmAnd 地圖和導航</string>
|
<string name="osmand_play_title_30_chars">OsmAnd 地圖和導航</string>
|
||||||
<string name="osmand_plus_play_title_30_chars">OsmAnd+ 地圖和導航</string>
|
<string name="osmand_plus_play_title_30_chars">OsmAnd+ 地圖和導航</string>
|
||||||
<string name="native_app_allocated_memory_descr">原生記憶體總計由應用程式 %1$s MB (Dalvik %2$s MB,其它 %3$s MB) 。Proportional memory %4$s MB (Android 限制 %5$s MB,Dalvik %6$s MB)分配佔用。</string>
|
<string name="native_app_allocated_memory_descr">原生記憶體總計由應用程式 %1$s MB (Dalvik %2$s MB,其它 %3$s MB) 。Proportional memory %4$s MB (Android 限制 %5$s MB,Dalvik %6$s MB)分配佔用。</string>
|
||||||
|
@ -1769,10 +1769,10 @@
|
||||||
<string name="map_preferred_locale_descr">在地圖標簽上優先的語言(如果優先的語言無法使用,將會切換成英文或本地名稱)</string>
|
<string name="map_preferred_locale_descr">在地圖標簽上優先的語言(如果優先的語言無法使用,將會切換成英文或本地名稱)</string>
|
||||||
<string name="live_monitoring_m_descr">如果已啟用了 GPX 記錄,發送軌跡到指定的 web 服務。</string>
|
<string name="live_monitoring_m_descr">如果已啟用了 GPX 記錄,發送軌跡到指定的 web 服務。</string>
|
||||||
<string name="keep_navigation_service">保持</string>
|
<string name="keep_navigation_service">保持</string>
|
||||||
<string name="stop_navigation_service">停止</string>
|
<string name="stop_navigation_service">中斷</string>
|
||||||
<string name="enable_sleep_mode">啟用 GPS 休眠模式</string>
|
<string name="enable_sleep_mode">啟用 GPS 休眠模式</string>
|
||||||
<string name="gps_wake_up_timer">GPS 喚醒間隔</string>
|
<string name="gps_wake_up_timer">GPS 喚醒間隔</string>
|
||||||
<string name="sleep_mode_stop_dialog">停止 GPS 休眠模式嗎?</string>
|
<string name="sleep_mode_stop_dialog">要中斷 GPS 休眠模式嗎?</string>
|
||||||
<string name="lang_al">阿爾巴尼亞</string>
|
<string name="lang_al">阿爾巴尼亞</string>
|
||||||
<string name="lang_ar">阿拉伯</string>
|
<string name="lang_ar">阿拉伯</string>
|
||||||
<string name="lang_sc">薩丁尼亞島</string>
|
<string name="lang_sc">薩丁尼亞島</string>
|
||||||
|
|
|
@ -9,12 +9,14 @@
|
||||||
3. All your modified/created strings are in the top of the file (to make easier find what\'s translated).
|
3. All your modified/created strings are in the top of the file (to make easier find what\'s translated).
|
||||||
PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy
|
PLEASE: Have a look at http://code.google.com/p/osmand/wiki/UIConsistency, it may really improve your and our work :-) Thx - Hardy
|
||||||
-->
|
-->
|
||||||
|
<string name="background_service_is_enabled_question">OsmAnd sleep mode service is still running. Do you want to interrupt it, too?</string>
|
||||||
|
<string name="sleep_mode_stop_dialog">Interrupt GPS sleep mode?</string>
|
||||||
|
<string name="stop_navigation_service">Interrupt</string>
|
||||||
<string name="confirm_every_run">Always ask</string>
|
<string name="confirm_every_run">Always ask</string>
|
||||||
<string name="save_global_track_interval_descr">Choose logging interval for the general track recording (enabled via the GPX recording widget on the map)</string>
|
<string name="save_global_track_interval_descr">Choose logging interval for the general track recording (enabled via the GPX recording widget on the map)</string>
|
||||||
<string name="save_global_track_interval">General logging interval</string>
|
<string name="save_global_track_interval">General logging interval</string>
|
||||||
<string name="background_service_int">GPS Wake-up interval</string>
|
<string name="background_service_int">GPS Wake-up interval</string>
|
||||||
<string name="enable_sleep_mode">Enable GPS sleep mode</string>
|
<string name="enable_sleep_mode">Enable GPS sleep mode</string>
|
||||||
<string name="sleep_mode_stop_dialog">Stop GPS sleep mode?</string>
|
|
||||||
<string name="save_track_to_gpx_globally">Log track to GPX file</string>
|
<string name="save_track_to_gpx_globally">Log track to GPX file</string>
|
||||||
<string name="save_track_to_gpx_globally_descr">General position logging to a GPX file can be turned on or off using the GPX recording widget on the map screen</string>
|
<string name="save_track_to_gpx_globally_descr">General position logging to a GPX file can be turned on or off using the GPX recording widget on the map screen</string>
|
||||||
<string name="save_current_track_descr">Save current track to SD now</string>
|
<string name="save_current_track_descr">Save current track to SD now</string>
|
||||||
|
@ -62,7 +64,6 @@
|
||||||
<string name="pause_navigation">Pause Navigation</string>
|
<string name="pause_navigation">Pause Navigation</string>
|
||||||
<string name="rendering_attr_subwayMode_name">Subway mode</string>
|
<string name="rendering_attr_subwayMode_name">Subway mode</string>
|
||||||
<string name="keep_navigation_service">Keep</string>
|
<string name="keep_navigation_service">Keep</string>
|
||||||
<string name="stop_navigation_service">Stop</string>
|
|
||||||
<string name="gps_wake_up_timer">GPS wake-up interval</string>
|
<string name="gps_wake_up_timer">GPS wake-up interval</string>
|
||||||
<string name="map_preferred_locale_descr">Preferred language for labels on the map (if it is not available will switch to English or to local names)</string>
|
<string name="map_preferred_locale_descr">Preferred language for labels on the map (if it is not available will switch to English or to local names)</string>
|
||||||
<string name="map_preferred_locale">Map preferred language</string>
|
<string name="map_preferred_locale">Map preferred language</string>
|
||||||
|
@ -675,7 +676,6 @@
|
||||||
<string name="safe_mode_description">Run the application in safe mode (using slower Android instead of native code).</string>
|
<string name="safe_mode_description">Run the application in safe mode (using slower Android instead of native code).</string>
|
||||||
<string name="safe_mode">Safe mode</string>
|
<string name="safe_mode">Safe mode</string>
|
||||||
<string name="native_library_not_running">The application is running in safe mode (disable it in the Settings).</string>
|
<string name="native_library_not_running">The application is running in safe mode (disable it in the Settings).</string>
|
||||||
<string name="background_service_is_enabled_question">OsmAnd sleep mode service is still running. Do you want to turn it off?</string>
|
|
||||||
<string name="tip_recent_changes_1_0_0_t">Changes in 1.0.0:
|
<string name="tip_recent_changes_1_0_0_t">Changes in 1.0.0:
|
||||||
\n\t* Improved routing: faster, more precise, up to 250 km
|
\n\t* Improved routing: faster, more precise, up to 250 km
|
||||||
\n\t* Introduce roads-only maps
|
\n\t* Introduce roads-only maps
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package net.osmand.plus.activities.search;
|
package net.osmand.plus.activities.search;
|
||||||
|
|
||||||
import android.os.AsyncTask;
|
|
||||||
import gnu.trove.map.hash.TLongObjectHashMap;
|
import gnu.trove.map.hash.TLongObjectHashMap;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -8,8 +7,6 @@ import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
import net.osmand.ResultMatcher;
|
import net.osmand.ResultMatcher;
|
||||||
import net.osmand.access.AccessibleToast;
|
import net.osmand.access.AccessibleToast;
|
||||||
|
@ -27,6 +24,7 @@ import net.osmand.plus.activities.MapActivity;
|
||||||
import net.osmand.plus.activities.OsmandListActivity;
|
import net.osmand.plus.activities.OsmandListActivity;
|
||||||
import net.osmand.plus.resources.RegionAddressRepository;
|
import net.osmand.plus.resources.RegionAddressRepository;
|
||||||
import net.osmand.plus.resources.ResourceManager;
|
import net.osmand.plus.resources.ResourceManager;
|
||||||
|
import net.osmand.util.GeoPointParserUtil;
|
||||||
import net.osmand.util.MapUtils;
|
import net.osmand.util.MapUtils;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.app.ProgressDialog;
|
import android.app.ProgressDialog;
|
||||||
|
@ -34,6 +32,7 @@ import android.content.DialogInterface;
|
||||||
import android.content.DialogInterface.OnCancelListener;
|
import android.content.DialogInterface.OnCancelListener;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
import android.os.AsyncTask;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
@ -45,125 +44,102 @@ import android.widget.Toast;
|
||||||
|
|
||||||
public class GeoIntentActivity extends OsmandListActivity {
|
public class GeoIntentActivity extends OsmandListActivity {
|
||||||
|
|
||||||
private ProgressDialog progressDlg;
|
private ProgressDialog progressDlg;
|
||||||
private LatLon location;
|
private LatLon location;
|
||||||
private ProgressDialog startProgressDialog;
|
private ProgressDialog startProgressDialog;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState)
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
{
|
super.onCreate(savedInstanceState);
|
||||||
super.onCreate(savedInstanceState);
|
setContentView(R.layout.search_address_offline);
|
||||||
setContentView(R.layout.search_address_offline);
|
getSupportActionBar().setTitle(R.string.search_osm_offline);
|
||||||
getSupportActionBar().setTitle(R.string.search_osm_offline);
|
startProgressDialog = new ProgressDialog(this);
|
||||||
startProgressDialog = new ProgressDialog(this);
|
getMyApplication().checkApplicationIsBeingInitialized(this, startProgressDialog);
|
||||||
getMyApplication().checkApplicationIsBeingInitialized(this, startProgressDialog);
|
location = getMyApplication().getSettings().getLastKnownMapLocation();
|
||||||
location = getMyApplication().getSettings().getLastKnownMapLocation();
|
|
||||||
|
|
||||||
final Intent intent = getIntent();
|
final Intent intent = getIntent();
|
||||||
if (intent != null)
|
if (intent != null) {
|
||||||
{
|
final ProgressDialog progress = ProgressDialog.show(GeoIntentActivity.this, getString(R.string.searching),
|
||||||
final ProgressDialog progress = ProgressDialog.show(GeoIntentActivity.this, getString(R.string.searching), getString(R.string.searching_address));
|
getString(R.string.searching_address));
|
||||||
final GeoIntentTask task = new GeoIntentTask(progress, intent);
|
final GeoIntentTask task = new GeoIntentTask(progress, intent);
|
||||||
|
|
||||||
progress.setOnCancelListener(new OnCancelListener()
|
progress.setOnCancelListener(new OnCancelListener() {
|
||||||
{
|
@Override
|
||||||
@Override
|
public void onCancel(DialogInterface dialog) {
|
||||||
public void onCancel(DialogInterface dialog)
|
task.cancel(true);
|
||||||
{
|
}
|
||||||
task.cancel(true);
|
});
|
||||||
}
|
progress.setCancelable(true);
|
||||||
});
|
|
||||||
progress.setCancelable(true);
|
|
||||||
|
|
||||||
task.execute();
|
task.execute();
|
||||||
setIntent(null);
|
setIntent(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class GeoIntentTask extends AsyncTask<Void,Void, ExecutionResult>
|
private class GeoIntentTask extends AsyncTask<Void, Void, ExecutionResult> {
|
||||||
{
|
private final ProgressDialog progress;
|
||||||
private final ProgressDialog progress;
|
private final Intent intent;
|
||||||
private final Intent intent;
|
|
||||||
|
|
||||||
private GeoIntentTask(final ProgressDialog progress, final Intent intent)
|
private GeoIntentTask(final ProgressDialog progress, final Intent intent) {
|
||||||
{
|
this.progress = progress;
|
||||||
this.progress = progress;
|
this.intent = intent;
|
||||||
this.intent = intent;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPreExecute()
|
protected void onPreExecute() {
|
||||||
{
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected ExecutionResult doInBackground(Void... nothing)
|
protected ExecutionResult doInBackground(Void... nothing) {
|
||||||
{
|
try {
|
||||||
try
|
while (getMyApplication().isApplicationInitializing()) {
|
||||||
{
|
Thread.sleep(200);
|
||||||
while (getMyApplication().isApplicationInitializing())
|
}
|
||||||
{
|
return extract(intent.getScheme(), intent.getData()).execute();
|
||||||
Thread.sleep(200);
|
} catch (Exception e) {
|
||||||
}
|
return null;
|
||||||
return extract(intent.getScheme(), intent.getData()).execute();
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPostExecute(ExecutionResult result)
|
protected void onPostExecute(ExecutionResult result) {
|
||||||
{
|
progress.dismiss();
|
||||||
progress.dismiss();
|
if (result != null) {
|
||||||
if (result != null)
|
if (result.isEmpty()) {
|
||||||
{
|
AccessibleToast.makeText(GeoIntentActivity.this, getString(R.string.search_nothing_found),
|
||||||
if (result.isEmpty())
|
Toast.LENGTH_LONG).show();
|
||||||
{
|
} else {
|
||||||
AccessibleToast.makeText(GeoIntentActivity.this, getString(R.string.search_nothing_found), Toast.LENGTH_LONG).show();
|
if (result.hasZoom()) {
|
||||||
}
|
getMyApplication().getSettings().setLastKnownMapZoom(result.getZoom());
|
||||||
else
|
}
|
||||||
{
|
|
||||||
if (result.hasZoom())
|
|
||||||
{
|
|
||||||
getMyApplication().getSettings().setLastKnownMapZoom(result.getZoom());
|
|
||||||
}
|
|
||||||
|
|
||||||
final List<MapObject> places = new ArrayList<MapObject>(result.getMapObjects());
|
final List<MapObject> places = new ArrayList<MapObject>(result.getMapObjects());
|
||||||
setListAdapter(new MapObjectAdapter(places));
|
setListAdapter(new MapObjectAdapter(places));
|
||||||
if (places.size() == 1)
|
if (places.size() == 1) {
|
||||||
{
|
onListItemClick(getListView(), getListAdapter().getView(0, null, null), 0, getListAdapter()
|
||||||
onListItemClick(
|
.getItemId(0));
|
||||||
getListView(),
|
}
|
||||||
getListAdapter().getView(0, null, null),
|
}
|
||||||
0,
|
} else {
|
||||||
getListAdapter().getItemId(0)
|
AccessibleToast.makeText(GeoIntentActivity.this,
|
||||||
);
|
getString(R.string.search_offline_geo_error, intent.getData()), Toast.LENGTH_LONG).show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
AccessibleToast.makeText(GeoIntentActivity.this, getString(R.string.search_offline_geo_error, intent.getData()), Toast.LENGTH_LONG).show();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Dialog onCreateDialog(int id) {
|
protected Dialog onCreateDialog(int id) {
|
||||||
if(id == OsmandApplication.PROGRESS_DIALOG){
|
if (id == OsmandApplication.PROGRESS_DIALOG) {
|
||||||
return startProgressDialog;
|
return startProgressDialog;
|
||||||
}
|
}
|
||||||
return super.onCreateDialog(id);
|
return super.onCreateDialog(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
private class MapObjectAdapter extends ArrayAdapter<MapObject> {
|
private class MapObjectAdapter extends ArrayAdapter<MapObject> {
|
||||||
|
|
||||||
public MapObjectAdapter(List<MapObject> places) {
|
public MapObjectAdapter(List<MapObject> places) {
|
||||||
super(GeoIntentActivity.this,
|
super(GeoIntentActivity.this, R.layout.search_address_offline_list_item, places);
|
||||||
R.layout.search_address_offline_list_item, places);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -171,19 +147,15 @@ public class GeoIntentActivity extends OsmandListActivity {
|
||||||
View row = convertView;
|
View row = convertView;
|
||||||
if (row == null) {
|
if (row == null) {
|
||||||
LayoutInflater inflater = getLayoutInflater();
|
LayoutInflater inflater = getLayoutInflater();
|
||||||
row = inflater.inflate(
|
row = inflater.inflate(R.layout.search_address_offline_list_item, parent, false);
|
||||||
R.layout.search_address_offline_list_item, parent,
|
|
||||||
false);
|
|
||||||
}
|
}
|
||||||
MapObject model = getItem(position);
|
MapObject model = getItem(position);
|
||||||
TextView label = (TextView) row.findViewById(R.id.label);
|
TextView label = (TextView) row.findViewById(R.id.label);
|
||||||
TextView distanceLabel = (TextView) row
|
TextView distanceLabel = (TextView) row.findViewById(R.id.distance_label);
|
||||||
.findViewById(R.id.distance_label);
|
|
||||||
if (location != null) {
|
if (location != null) {
|
||||||
int dist = (int) (MapUtils.getDistance(location, model
|
int dist = (int) (MapUtils.getDistance(location, model.getLocation().getLatitude(), model.getLocation()
|
||||||
.getLocation().getLatitude(), model.getLocation()
|
|
||||||
.getLongitude()));
|
.getLongitude()));
|
||||||
distanceLabel.setText(OsmAndFormatter.getFormattedDistance(dist,(OsmandApplication) getApplication()));
|
distanceLabel.setText(OsmAndFormatter.getFormattedDistance(dist, (OsmandApplication) getApplication()));
|
||||||
} else {
|
} else {
|
||||||
distanceLabel.setText(""); //$NON-NLS-1$
|
distanceLabel.setText(""); //$NON-NLS-1$
|
||||||
}
|
}
|
||||||
|
@ -191,12 +163,12 @@ public class GeoIntentActivity extends OsmandListActivity {
|
||||||
return row;
|
return row;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getString(MapObject o){
|
private String getString(MapObject o) {
|
||||||
if(o instanceof Amenity) {
|
if (o instanceof Amenity) {
|
||||||
return OsmAndFormatter.getPoiSimpleFormat((Amenity) o, getMyApplication(), false);
|
return OsmAndFormatter.getPoiSimpleFormat((Amenity) o, getMyApplication(), false);
|
||||||
}
|
}
|
||||||
if(o instanceof Street) {
|
if (o instanceof Street) {
|
||||||
return getString(R.string.address) + " " + ((Street) o).getCity().getName() + " " + o.getName();
|
return getString(R.string.address) + " " + ((Street) o).getCity().getName() + " " + o.getName();
|
||||||
}
|
}
|
||||||
return getString(R.string.address) + " : " + o.toString();
|
return getString(R.string.address) + " : " + o.toString();
|
||||||
|
@ -207,7 +179,7 @@ public class GeoIntentActivity extends OsmandListActivity {
|
||||||
super.onListItemClick(l, v, position, id);
|
super.onListItemClick(l, v, position, id);
|
||||||
MapObject item = ((MapObjectAdapter) getListAdapter()).getItem(position);
|
MapObject item = ((MapObjectAdapter) getListAdapter()).getItem(position);
|
||||||
OsmandSettings settings = getMyApplication().getSettings();
|
OsmandSettings settings = getMyApplication().getSettings();
|
||||||
settings.setMapLocationToShow(item.getLocation().getLatitude(), item.getLocation().getLongitude(),
|
settings.setMapLocationToShow(item.getLocation().getLatitude(), item.getLocation().getLongitude(),
|
||||||
settings.getLastKnownMapZoom(), getString(item)); //$NON-NLS-1$
|
settings.getLastKnownMapZoom(), getString(item)); //$NON-NLS-1$
|
||||||
MapActivity.launchMapActivityMoveToTop(this);
|
MapActivity.launchMapActivityMoveToTop(this);
|
||||||
}
|
}
|
||||||
|
@ -226,301 +198,90 @@ public class GeoIntentActivity extends OsmandListActivity {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extracts information from geo and map intents:
|
* Extracts information from geo and map intents:
|
||||||
*
|
*
|
||||||
* geo:47.6,-122.3<br/>
|
* geo:47.6,-122.3<br/>
|
||||||
* geo:47.6,-122.3?z=11<br/>
|
* geo:47.6,-122.3?z=11<br/>
|
||||||
* geo:0,0?q=34.99,-106.61(Treasure)<br/>
|
* geo:0,0?q=34.99,-106.61(Treasure)<br/>
|
||||||
* geo:0,0?q=1600+Amphitheatre+Parkway%2C+CA<br/>
|
* geo:0,0?q=1600+Amphitheatre+Parkway%2C+CA<br/>
|
||||||
*
|
*
|
||||||
* @param scheme The intent scheme
|
* @param scheme
|
||||||
* @param data The intent uri
|
* The intent scheme
|
||||||
|
* @param data
|
||||||
|
* The intent uri
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private MyService extract(final String scheme, final Uri data)
|
private MyService extract(final String scheme, final Uri data) {
|
||||||
{
|
GeoPointParserUtil.GeoParsedPoint p = GeoPointParserUtil.parse(scheme, data.toString());
|
||||||
if ("http".equals(scheme) || "https".equals(scheme)) {
|
if (p.isGeoPoint()) {
|
||||||
|
if (p.getName() != null) {
|
||||||
|
return new GeoPointSearch(p.getLat(), p.getLon(), p.getName(), p.getZoom());
|
||||||
|
}
|
||||||
|
return new GeoPointSearch(p.getLat(), p.getLon(), p.getZoom());
|
||||||
|
} else {
|
||||||
|
return new GeoAddressSearch(p.getQuery());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
final String schemeSpecific = data.getSchemeSpecificPart();
|
private final class GeoAddressSearch implements MyService {
|
||||||
|
|
||||||
if (schemeSpecific == null) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
final String[] osmandNetSite = {
|
|
||||||
"//download.osmand.net/go?"
|
|
||||||
};
|
|
||||||
|
|
||||||
final String[] osmandNetPattern = {
|
|
||||||
"lat=(-?\\d{1,3}.\\d+)&lon=(-?\\d{1,3}.\\d+)&z=(\\d{1,2})"
|
|
||||||
};
|
|
||||||
|
|
||||||
final String[] openstreetmapOrgSite = {
|
|
||||||
"//openstreetmap.org/",
|
|
||||||
"//www.openstreetmap.org/"
|
|
||||||
};
|
|
||||||
|
|
||||||
final String[] openstreetmapOrgPattern = {
|
|
||||||
"(?:.*)(?:map=)(\\d{1,2})/(-?\\d{1,3}.\\d+)/(-?\\d{1,3}.\\d+)(?:.*)"
|
|
||||||
};
|
|
||||||
|
|
||||||
final String[] openstreetmapDeSite = {
|
|
||||||
"//openstreetmap.de/",
|
|
||||||
"//www.openstreetmap.de/"
|
|
||||||
};
|
|
||||||
|
|
||||||
final String[] openstreetmapDePattern = {
|
|
||||||
"(?:.*)zoom=(\\d{1,2})&lat=(-?\\d{1,3}.\\d+)&lon=(-?\\d{1,3}.\\d+)(?:.*)",
|
|
||||||
"(?:.*)lat=(-?\\d{1,3}.\\d+)&lon=(-?\\d{1,3}.\\d+)&z(?:oom)?=(\\d{1,2})(?:.*)"
|
|
||||||
};
|
|
||||||
|
|
||||||
final String[] googleComSite = {
|
|
||||||
"//www.google.com/maps/",
|
|
||||||
"//maps.google.com/maps"
|
|
||||||
};
|
|
||||||
|
|
||||||
final String[] googleComPattern = {
|
|
||||||
"(?:.*)@(-?\\d{1,3}.\\d+),(-?\\d{1,3}.\\d+),(\\d{1,2})z(?:.*)",
|
|
||||||
"(?:.*)ll=(-?\\d{1,3}.\\d+),(-?\\d{1,3}.\\d+)(?:.+)z=(\\d{1,2})(?:.*)",
|
|
||||||
"(?:.*)q=([\\-+]?\\d{1,3}.\\d+),([\\-+]?\\d{1,3}.\\d+)(?:.*)&z=(\\d{1,2})",
|
|
||||||
"(?:.*)q=loc:(-?\\d{1,3}.\\d+),(-?\\d{1,3}.\\d+)&z=(\\d{1,2})(?:.*)"
|
|
||||||
};
|
|
||||||
|
|
||||||
final String[] yandexRuSite = {
|
|
||||||
"//maps.yandex.ru/"
|
|
||||||
};
|
|
||||||
|
|
||||||
final String[] yandexRuPattern = {
|
|
||||||
"(?:.*)ll=(-?\\d{1,3}.\\d+),(-?\\d{1,3}.\\d+)(?:.+)z=(\\d{1,2})(?:.*)"
|
|
||||||
};
|
|
||||||
|
|
||||||
final String sites[][] = {
|
|
||||||
osmandNetSite,
|
|
||||||
openstreetmapOrgSite,
|
|
||||||
openstreetmapDeSite,
|
|
||||||
googleComSite,
|
|
||||||
yandexRuSite
|
|
||||||
};
|
|
||||||
|
|
||||||
final String patterns[][] = {
|
|
||||||
osmandNetPattern,
|
|
||||||
openstreetmapOrgPattern,
|
|
||||||
openstreetmapDePattern,
|
|
||||||
googleComPattern,
|
|
||||||
yandexRuPattern
|
|
||||||
};
|
|
||||||
|
|
||||||
for (int s = 0; s < sites.length; s++)
|
|
||||||
{
|
|
||||||
for (int si = 0; si < sites[s].length; si++)
|
|
||||||
{
|
|
||||||
if (schemeSpecific.startsWith(sites[s][si])) {
|
|
||||||
for (int p = 0; p < patterns[s].length; p++)
|
|
||||||
{
|
|
||||||
String subString = schemeSpecific.substring(sites[s][si].length());
|
|
||||||
|
|
||||||
if (subString.equals(""))
|
|
||||||
{
|
|
||||||
subString = data.getFragment();
|
|
||||||
}
|
|
||||||
|
|
||||||
final Matcher matcher = Pattern.compile(patterns[s][p]).matcher(subString);
|
|
||||||
|
|
||||||
if (matcher.matches()) {
|
|
||||||
try {
|
|
||||||
|
|
||||||
final double lat;
|
|
||||||
final double lon;
|
|
||||||
final int zoom;
|
|
||||||
|
|
||||||
//check sequence of values
|
|
||||||
if (!matcher.group(3).contains("."))
|
|
||||||
{
|
|
||||||
lat = Double.valueOf(matcher.group(1));
|
|
||||||
lon = Double.valueOf(matcher.group(2));
|
|
||||||
zoom = Integer.valueOf(matcher.group(3));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
zoom = Integer.valueOf(matcher.group(1));
|
|
||||||
lat = Double.valueOf(matcher.group(2));
|
|
||||||
lon = Double.valueOf(matcher.group(3));
|
|
||||||
}
|
|
||||||
|
|
||||||
return new GeoPointSearch(lat, lon, zoom);
|
|
||||||
}
|
|
||||||
catch (NumberFormatException e)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
String q = null;
|
|
||||||
String parameter = data.getQueryParameter("q");
|
|
||||||
if (parameter == null)
|
|
||||||
{
|
|
||||||
parameter = data.getQueryParameter("daddr");
|
|
||||||
}
|
|
||||||
if (parameter != null)
|
|
||||||
{
|
|
||||||
q = parameter.split(" ")[0];
|
|
||||||
}
|
|
||||||
if (q.indexOf(',') != -1)
|
|
||||||
{
|
|
||||||
int i = q.indexOf(',');
|
|
||||||
String lat = q.substring(0, i);
|
|
||||||
String lon = q.substring(i + 1);
|
|
||||||
if (lat.indexOf(':') != -1)
|
|
||||||
{
|
|
||||||
i = lat.indexOf(':');
|
|
||||||
lat = lat.substring(i + 1);
|
|
||||||
}
|
|
||||||
try
|
|
||||||
{
|
|
||||||
double llat = Double.parseDouble(lat.trim());
|
|
||||||
double llon = Double.parseDouble(lon.trim());
|
|
||||||
return new GeoPointSearch(llat, llon);
|
|
||||||
}
|
|
||||||
catch (NumberFormatException e)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ("geo".equals(scheme) || "osmand.geo".equals(scheme))
|
|
||||||
{
|
|
||||||
//geo:
|
|
||||||
final String schemeSpecific = data.getSchemeSpecificPart();
|
|
||||||
if (schemeSpecific == null)
|
|
||||||
{
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
if (schemeSpecific.startsWith("0,0?q="))
|
|
||||||
{
|
|
||||||
//geo:0,0?q=34.99,-106.61(Treasure)
|
|
||||||
//geo:0,0?q=1600+Amphitheatre+Parkway%2C+CA
|
|
||||||
final String query = schemeSpecific.substring("0,0?q=".length());
|
|
||||||
|
|
||||||
final Matcher matcher = Pattern.compile("([\\-0-9.]+),([\\-0-9.]+)(?:,[\\-0-9.]+)?\\((.+?)\\)").matcher(query);
|
|
||||||
if (matcher.matches())
|
|
||||||
{
|
|
||||||
final double lat = Double.valueOf(matcher.group(1));
|
|
||||||
final double lon = Double.valueOf(matcher.group(2));
|
|
||||||
final String name = matcher.group(3);
|
|
||||||
|
|
||||||
return new GeoPointSearch(lat, lon, name);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//we suppose it's a search
|
|
||||||
return new GeoAddressSearch(query);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//geo:47.6,-122.3
|
|
||||||
//geo:47.6,-122.3?z=11
|
|
||||||
//allow for http://tools.ietf.org/html/rfc5870 (geo uri) , just ignore everything after ';'
|
|
||||||
final String pattern = "([\\-0-9.]+),([\\-0-9.]+)(?:,([\\-0-9.]+))?(?:\\?z=([0-9]+))?(?:;.*)?";
|
|
||||||
int indexQ = schemeSpecific.indexOf("&q");
|
|
||||||
final Matcher matcher;
|
|
||||||
if (indexQ != -1){
|
|
||||||
final String schemeQ = schemeSpecific.substring(0,indexQ);
|
|
||||||
matcher = Pattern.compile(pattern).matcher(schemeQ);
|
|
||||||
} else {
|
|
||||||
matcher = Pattern.compile(pattern).matcher(schemeSpecific);
|
|
||||||
}
|
|
||||||
|
|
||||||
final String pattern2 = "([\\-0-9.]+),([\\-0-9.]+)(?:.*)"; //c:geo
|
|
||||||
final Matcher matcher2 = Pattern.compile(pattern2).matcher(schemeSpecific);
|
|
||||||
|
|
||||||
if (matcher.matches())
|
|
||||||
{
|
|
||||||
final double lat = Double.valueOf(matcher.group(1));
|
|
||||||
final double lon = Double.valueOf(matcher.group(2));
|
|
||||||
if (matcher.group(4) == null)
|
|
||||||
{
|
|
||||||
return new GeoPointSearch(lat, lon);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return new GeoPointSearch(lat, lon, Integer.valueOf(matcher.group(4)));
|
|
||||||
}
|
|
||||||
} else if (matcher2.matches()) {
|
|
||||||
final double lat = Double.valueOf(matcher2.group(1));
|
|
||||||
final double lon = Double.valueOf(matcher2.group(2));
|
|
||||||
return new GeoPointSearch(lat, lon);
|
|
||||||
} else {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private final class GeoAddressSearch implements MyService {
|
|
||||||
private List<String> elements;
|
private List<String> elements;
|
||||||
|
|
||||||
public GeoAddressSearch(String query) {
|
public GeoAddressSearch(String query) {
|
||||||
query = query.replaceAll("%20", ",").replaceAll("%0A",",")
|
query = query.replaceAll("%20", ",").replaceAll("%0A", ",").replaceAll("\n", ",").replaceAll("\t", ",")
|
||||||
.replaceAll("\n",",").replaceAll("\t",",")
|
|
||||||
.replaceAll(" ", ",");
|
.replaceAll(" ", ",");
|
||||||
System.out.println(query);
|
System.out.println(query);
|
||||||
//String is split on each comma
|
// String is split on each comma
|
||||||
String[] s = query.split(",");
|
String[] s = query.substring(query.indexOf("q=") + 2).split(",");
|
||||||
|
|
||||||
elements = new ArrayList<String>();
|
elements = new ArrayList<String>();
|
||||||
for (int i = 0; i<s.length; i++) {
|
for (int i = 0; i < s.length; i++) {
|
||||||
|
if (s[i].isEmpty()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
elements.add(s[i].replace('+', ' ').trim());
|
elements.add(s[i].replace('+', ' ').trim());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public MapObject checkGeoPoint() {
|
public MapObject checkGeoPoint() {
|
||||||
double lat = Double.NaN;
|
double lat = Double.NaN;
|
||||||
double lon = Double.NaN;
|
double lon = Double.NaN;
|
||||||
for(String e : elements) {
|
for (String e : elements) {
|
||||||
if(e.startsWith("S") || e.startsWith("N")) {
|
if (e.startsWith("S") || e.startsWith("N")) {
|
||||||
try {
|
try {
|
||||||
lat = Double.parseDouble(e.substring(1));
|
lat = Double.parseDouble(e.substring(1));
|
||||||
if(e.startsWith("S")) {
|
if (e.startsWith("S")) {
|
||||||
lat = -lat;
|
lat = -lat;
|
||||||
}
|
}
|
||||||
} catch(NumberFormatException es) {}
|
} catch (NumberFormatException es) {
|
||||||
} else if(e.startsWith("E") || e.startsWith("W")) {
|
}
|
||||||
|
} else if (e.startsWith("E") || e.startsWith("W")) {
|
||||||
try {
|
try {
|
||||||
lon = Double.parseDouble(e.substring(1));
|
lon = Double.parseDouble(e.substring(1));
|
||||||
if(e.startsWith("W")) {
|
if (e.startsWith("W")) {
|
||||||
lon = -lon;
|
lon = -lon;
|
||||||
}
|
}
|
||||||
} catch(NumberFormatException es) {}
|
} catch (NumberFormatException es) {
|
||||||
} else if(e.contains(".")) {
|
}
|
||||||
|
} else if (e.contains(".")) {
|
||||||
try {
|
try {
|
||||||
double n = Double.parseDouble(e);
|
double n = Double.parseDouble(e);
|
||||||
if(Double.isNaN(lat)) {
|
if (Double.isNaN(lat)) {
|
||||||
lat = n;
|
lat = n;
|
||||||
} else {
|
} else {
|
||||||
lon =n;
|
lon = n;
|
||||||
}
|
}
|
||||||
} catch(NumberFormatException es) {}
|
} catch (NumberFormatException es) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if(Double.isNaN(lat) || Double.isNaN(lon)) {
|
if (Double.isNaN(lat) || Double.isNaN(lon)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Amenity point = new Amenity();
|
Amenity point = new Amenity();
|
||||||
((Amenity)point).setType(AmenityType.USER_DEFINED);
|
((Amenity) point).setType(AmenityType.USER_DEFINED);
|
||||||
((Amenity)point).setSubType("");
|
((Amenity) point).setSubType("");
|
||||||
point.setLocation(lat, lon);
|
point.setLocation(lat, lon);
|
||||||
point.setName("Lat: " + lat + ",Lon:" + lon);
|
point.setName("Lat: " + lat + ",Lon:" + lon);
|
||||||
return point;
|
return point;
|
||||||
|
@ -533,7 +294,7 @@ public class GeoIntentActivity extends OsmandListActivity {
|
||||||
}
|
}
|
||||||
List<String> q = new ArrayList<String>(elements);
|
List<String> q = new ArrayList<String>(elements);
|
||||||
MapObject geo = checkGeoPoint();
|
MapObject geo = checkGeoPoint();
|
||||||
if(geo != null) {
|
if (geo != null) {
|
||||||
return new ExecutionResult(Collections.singleton(geo));
|
return new ExecutionResult(Collections.singleton(geo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -565,29 +326,29 @@ public class GeoIntentActivity extends OsmandListActivity {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(cityIds.isEmpty()) {
|
if (cityIds.isEmpty()) {
|
||||||
return new ExecutionResult(allStreets);
|
return new ExecutionResult(allStreets);
|
||||||
}
|
}
|
||||||
final List<MapObject> connectedStreets = new ArrayList<MapObject>();
|
final List<MapObject> connectedStreets = new ArrayList<MapObject>();
|
||||||
Iterator<Street> p = allStreets.iterator();
|
Iterator<Street> p = allStreets.iterator();
|
||||||
while(p.hasNext()) {
|
while (p.hasNext()) {
|
||||||
Street s = p.next();
|
Street s = p.next();
|
||||||
if(cityIds.contains(s.getCity().getId())) {
|
if (cityIds.contains(s.getCity().getId())) {
|
||||||
connectedStreets.add(s);
|
connectedStreets.add(s);
|
||||||
} else {
|
} else {
|
||||||
boolean tooFar = true;
|
boolean tooFar = true;
|
||||||
for(City c : cityIds.valueCollection()) {
|
for (City c : cityIds.valueCollection()) {
|
||||||
if(MapUtils.getDistance(c.getLocation(), s.getLocation()) < 50000) {
|
if (MapUtils.getDistance(c.getLocation(), s.getLocation()) < 50000) {
|
||||||
tooFar = false;
|
tooFar = false;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(tooFar) {
|
if (tooFar) {
|
||||||
p.remove();
|
p.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(connectedStreets.isEmpty()) {
|
if (connectedStreets.isEmpty()) {
|
||||||
List<MapObject> all = new ArrayList<MapObject>();
|
List<MapObject> all = new ArrayList<MapObject>();
|
||||||
all.addAll(cityIds.valueCollection());
|
all.addAll(cityIds.valueCollection());
|
||||||
all.addAll(allStreets);
|
all.addAll(allStreets);
|
||||||
|
@ -604,7 +365,7 @@ public class GeoIntentActivity extends OsmandListActivity {
|
||||||
List<RegionAddressRepository> foundCountries = new ArrayList<RegionAddressRepository>();
|
List<RegionAddressRepository> foundCountries = new ArrayList<RegionAddressRepository>();
|
||||||
RegionAddressRepository country;
|
RegionAddressRepository country;
|
||||||
Iterator<String> it = q.iterator();
|
Iterator<String> it = q.iterator();
|
||||||
while(it.hasNext()) {
|
while (it.hasNext()) {
|
||||||
String maybeCountry = it.next();
|
String maybeCountry = it.next();
|
||||||
country = resourceManager.getRegionRepository(maybeCountry);
|
country = resourceManager.getRegionRepository(maybeCountry);
|
||||||
if (country != null) {
|
if (country != null) {
|
||||||
|
@ -620,41 +381,37 @@ public class GeoIntentActivity extends OsmandListActivity {
|
||||||
return countriesToSearch;
|
return countriesToSearch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class GeoPointSearch implements MyService {
|
@SuppressWarnings("unused")
|
||||||
private final MapObject point;
|
private static class GeoPointSearch implements MyService {
|
||||||
private final int zoom;
|
private final MapObject point;
|
||||||
|
private final int zoom;
|
||||||
|
|
||||||
public GeoPointSearch(double lat , double lon)
|
public GeoPointSearch(double lat, double lon) {
|
||||||
{
|
this(lat, lon, ExecutionResult.NO_ZOOM);
|
||||||
this(lat, lon, ExecutionResult.NO_ZOOM);
|
|
||||||
}
|
|
||||||
|
|
||||||
public GeoPointSearch(double lat , double lon, int zoom)
|
|
||||||
{
|
|
||||||
this(lat, lon, "Lat: " + lat + ",Lon: " + lon, zoom);
|
|
||||||
}
|
|
||||||
|
|
||||||
public GeoPointSearch(double lat , double lon, String name )
|
|
||||||
{
|
|
||||||
this(lat, lon, name,ExecutionResult.NO_ZOOM);
|
|
||||||
}
|
|
||||||
|
|
||||||
public GeoPointSearch(double lat , double lon, String name, int zoom )
|
|
||||||
{
|
|
||||||
final Amenity amenity = new Amenity();
|
|
||||||
amenity.setLocation(lat, lon);
|
|
||||||
amenity.setName(name);
|
|
||||||
amenity.setType(AmenityType.USER_DEFINED);
|
|
||||||
amenity.setSubType("");
|
|
||||||
|
|
||||||
this.point = amenity;
|
|
||||||
this.zoom = zoom;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
public GeoPointSearch(double lat, double lon, int zoom) {
|
||||||
|
this(lat, lon, "Lat: " + lat + ",Lon: " + lon, zoom);
|
||||||
|
}
|
||||||
|
|
||||||
|
public GeoPointSearch(double lat, double lon, String name) {
|
||||||
|
this(lat, lon, name, ExecutionResult.NO_ZOOM);
|
||||||
|
}
|
||||||
|
|
||||||
|
public GeoPointSearch(double lat, double lon, String name, int zoom) {
|
||||||
|
final Amenity amenity = new Amenity();
|
||||||
|
amenity.setLocation(lat, lon);
|
||||||
|
amenity.setName(name);
|
||||||
|
amenity.setType(AmenityType.USER_DEFINED);
|
||||||
|
amenity.setSubType("");
|
||||||
|
|
||||||
|
this.point = amenity;
|
||||||
|
this.zoom = zoom;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public ExecutionResult execute() {
|
public ExecutionResult execute() {
|
||||||
if (point != null) {
|
if (point != null) {
|
||||||
return new ExecutionResult(Collections.singletonList(point), zoom);
|
return new ExecutionResult(Collections.singletonList(point), zoom);
|
||||||
|
@ -665,57 +422,45 @@ public class GeoIntentActivity extends OsmandListActivity {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static class ExecutionResult
|
private static class ExecutionResult {
|
||||||
{
|
public static final int NO_ZOOM = -1;
|
||||||
public static final int NO_ZOOM = -1;
|
public static final ExecutionResult EMPTY = new ExecutionResult(new ArrayList<MapObject>(), NO_ZOOM);
|
||||||
public static final ExecutionResult EMPTY = new ExecutionResult(new ArrayList<MapObject>(), NO_ZOOM);
|
|
||||||
|
|
||||||
private final Collection<? extends MapObject> mapObjects;
|
private final Collection<? extends MapObject> mapObjects;
|
||||||
private final int zoom;
|
private final int zoom;
|
||||||
|
|
||||||
public ExecutionResult(final Collection<? extends MapObject> mapObjects)
|
public ExecutionResult(final Collection<? extends MapObject> mapObjects) {
|
||||||
{
|
this(mapObjects, NO_ZOOM);
|
||||||
this(mapObjects, NO_ZOOM);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public ExecutionResult(final Collection<? extends MapObject> mapObjects, final int zoom)
|
public ExecutionResult(final Collection<? extends MapObject> mapObjects, final int zoom) {
|
||||||
{
|
this.mapObjects = mapObjects;
|
||||||
this.mapObjects = mapObjects;
|
this.zoom = zoom;
|
||||||
this.zoom = zoom;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isEmpty()
|
public boolean isEmpty() {
|
||||||
{
|
return mapObjects.isEmpty();
|
||||||
return mapObjects.isEmpty();
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public boolean hasZoom()
|
public boolean hasZoom() {
|
||||||
{
|
return zoom != NO_ZOOM;
|
||||||
return zoom != NO_ZOOM;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public Collection<? extends MapObject> getMapObjects()
|
public Collection<? extends MapObject> getMapObjects() {
|
||||||
{
|
return mapObjects;
|
||||||
return mapObjects;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public int getZoom()
|
public int getZoom() {
|
||||||
{
|
return zoom;
|
||||||
return zoom;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString()
|
public String toString() {
|
||||||
{
|
return "ExecutionResult{" + "mapObjects=" + mapObjects + ", zoom=" + zoom + '}';
|
||||||
return "ExecutionResult{" +
|
}
|
||||||
"mapObjects=" + mapObjects +
|
}
|
||||||
", zoom=" + zoom +
|
|
||||||
'}';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static interface MyService
|
private static interface MyService {
|
||||||
{
|
|
||||||
public ExecutionResult execute();
|
public ExecutionResult execute();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<classpath>
|
<classpath>
|
||||||
<classpathentry kind="src" path="src"/>
|
|
||||||
<classpathentry kind="src" path="gen"/>
|
|
||||||
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
|
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
|
||||||
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
|
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
|
||||||
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
|
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
|
||||||
|
<classpathentry kind="src" path="src"/>
|
||||||
|
<classpathentry kind="src" path="gen"/>
|
||||||
<classpathentry kind="output" path="bin/classes"/>
|
<classpathentry kind="output" path="bin/classes"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
Loading…
Reference in a new issue