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"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<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 exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
|
||||
<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"/>
|
||||
</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>
|
||||
<string name="auto_zoom_close">Зачыніць</string>
|
||||
<string name="auto_zoom_far">Для сярэдняга масштаба</string>
|
||||
|
@ -261,7 +261,7 @@
|
|||
<string name="safe_mode_description">Працаваць у бясьпечным рэжыме (трохі павольней але бяз свойскіх бібліятэк).</string>
|
||||
<string name="safe_mode">Бясьпечны рэжым</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:
|
||||
\n\t* Палепшана маршрутызацыя: хутчэй, дакладней, да 250 км
|
||||
\n\t* Уведзены карты дарог
|
||||
|
@ -1054,8 +1054,7 @@ OsmAnd мае адкрыты зыходны код і актыўна разві
|
|||
\n\nВакенца маркера хаваецца доўгім націсканнем на яго. ↵
|
||||
</string>
|
||||
<string name="tip_initial">Дапамога і хітрасьці</string>
|
||||
<string name="tip_initial_t">"OsmAnd - навігацыйная праграма з вялікімі магчымасьцямі. ↵
|
||||
\n\nПачатковыя зьвесткі, парады па выкарыстаньні і разгорнуты дапаможнік знаходзяцца ў \'Меню\' → \'Дапамога\'. "</string>
|
||||
<string name="tip_initial_t">"OsmAnd - навігацыйная праграма з вялікімі магчымасьцямі.\n\nПачатковыя зьвесткі, парады па выкарыстаньні і разгорнуты дапаможнік знаходзяцца ў \'Меню\' → \'Дапамога\'. "</string>
|
||||
<string name="next_button">Далей</string>
|
||||
<string name="previous_button">Назад</string>
|
||||
<string name="unit_of_length_descr">Зьмяніць адзінкі адлегласьці й хуткасьці</string>
|
||||
|
@ -1884,7 +1883,7 @@ OsmAnd мае адкрыты зыходны код і актыўна разві
|
|||
<string name="rendering_attr_showSurfaceGrade_name">Адлюстроўваць якасць дарог</string>
|
||||
<string name="rendering_attr_showSurfaces_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="gps_wake_up_timer">Iнтэрвал абуджэньня GPS</string>
|
||||
<string name="lang_sw">суахілі</string>
|
||||
|
@ -1892,7 +1891,7 @@ OsmAnd мае адкрыты зыходны код і актыўна разві
|
|||
<string name="gpx_monitoring_start">Пачаць запіс GPX</string>
|
||||
<string name="gpx_start_new_segment">Пачаць новы адрэзак</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">Пажаданая мова мапы</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>
|
||||
<string name="map_widget_fluorescent">Rutes amb fluorescència</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="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="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>
|
||||
|
@ -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="lang_fa">Persa</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="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_ar">Àrab</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>
|
||||
<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í
|
||||
|
|
|
@ -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">Fejlsikret tilstand</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:
|
||||
\n* Forbedret ruteplanlægning: hurtigere, mere præcis, op til 250 km
|
||||
\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="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="stop_navigation_service">Stop</string>
|
||||
<string name="stop_navigation_service">Afbryd</string>
|
||||
<string name="enable_sleep_mode">Aktiver GPS dvaletilstand</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="lang_al">Albansk</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">Generelles Aufzeichnungs-Intervall</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_on">Hintergrunddienst\n ausschalten</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="pause_navigation">Navigation pausieren</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_description">Wege entsprechend der SAC-Wanderskala darstellen</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">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="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_name">Straßenfarbschema</string>
|
||||
<string name="show_warnings_title">Warnungen anzeigen…</string>
|
||||
|
|
|
@ -408,7 +408,7 @@
|
|||
<string name="user_name_descr">Απαιτείται για υποβολές στο openstreetmap.org</string>
|
||||
<string name="user_password">Κωδικός OSM</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="tip_rotation_switching">Προσανατολισμός Χάρτη</string>
|
||||
<string name="tip_rotation_switching_t_v2">Μπορείτε να αλλάξετε το πότε και το πως ο χάρτης θα περιστρέφεται με επαναλαμβανόμενα κλικ στο εικονίδιο της πυξίδας στην οθόνη χάρτη.
|
||||
|
@ -1129,7 +1129,7 @@
|
|||
<string name="safe_mode_description">Εκτέλεση της εφαρμογής σε ασφαλή λειτουργία (χρησιμοποιώντας πιο αργό Android αντί του εγγενούς κώδικα).</string>
|
||||
<string name="safe_mode">Ασφαλής λειτουργία</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:
|
||||
\n\t* Βελτιωμένη δρομολόγηση: γρηγορότερη, με καλύτερη ακρίβεια, μέχρι 250 χλμ
|
||||
\n\t* Εισαγωγή οδικών-μόνο χαρτών\n\t* Ο χάρτης δεν χάνει το κλείδωμα θέσης μετά από διακοπές
|
||||
|
@ -1606,11 +1606,11 @@
|
|||
<string name="rendering_attr_hideBuildings_name">Απόκρυψη κτιρίων</string>
|
||||
<string name="rendering_attr_hideText_name">Απόκρυψη κειμένου</string>
|
||||
<string name="rendering_attr_hideWoodScrubs_name">Απόκρυψη δασών και θάμνων</string>
|
||||
<string name="rendering_attr_moreDetailed_name">Πιο αναλυτικά</string>
|
||||
<string name="rendering_attr_lessDetailed_name">Λιγότερο αναλυτικά</string>
|
||||
<string name="rendering_attr_hideAccess_name">Απόκρυψη του είδους πρόσβασης</string>
|
||||
<string name="rendering_attr_showAccess_name">Εμφάνιση του είδους πρόσβασης</string>
|
||||
<string name="rendering_attr_showSurfaceGrade_name">Εμφάνιση της ποιότητας των δρόμων</string>
|
||||
<string name="rendering_attr_moreDetailed_name">Περισσότερες λεπτομέρειες</string>
|
||||
<string name="rendering_attr_lessDetailed_name">Λιγότερες λεπτομέρειες</string>
|
||||
<string name="rendering_attr_hideAccess_name">Απόκρυψη περιορισμών πρόσβασης</string>
|
||||
<string name="rendering_attr_showAccess_name">Εμφάνιση περιορισμών πρόσβασης</string>
|
||||
<string name="rendering_attr_showSurfaceGrade_name">Εμφάνιση ποιότητας των δρόμων</string>
|
||||
<string name="osmo_auth_error_short">Αποτυχία εξουσιοδότησης</string>
|
||||
<string name="rendering_attr_coloredBuildings_name">Έγχρωμα κτίρια</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_interval_globally">Διάστημα καταγραφής</string>
|
||||
<string name="rendering_attr_publicTransportMode_name">Λειτουργία δημόσιων μεταφορών</string>
|
||||
<string name="confirm_every_run">Πάντα ερώτηση</string>
|
||||
</resources>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<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>
|
||||
<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 :
|
||||
|
@ -1073,7 +1073,7 @@
|
|||
<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="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>
|
||||
<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">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="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="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">Langue préférée pour la carte</string>
|
||||
<string name="local_map_names">Noms locaux</string>
|
||||
|
|
|
@ -479,7 +479,7 @@
|
|||
<string name="int_seconds">secondi</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">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">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>
|
||||
|
@ -490,7 +490,7 @@
|
|||
<string name="search_poi_filter">Filtro</string>
|
||||
<string name="menu_mute_off">L\'audio è attivato</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_data_initializing">File voce in preparazione…</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="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_track_interval_descr">Scegli l\'intervallo di posizionamento per le tracce</string>
|
||||
<string name="save_track_interval">Intervallo di salvataggio</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">Salva traccia in GPX</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 registrazione durante la navigazione</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">Durante la navigazione salva la traccia in un file GPX</string>
|
||||
<string name="update_tile">Aggiorna mappa</string>
|
||||
<string name="reload_tile">Ricarica tasselli</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* Il pulsante in alto a sinistra nella schermata della vista mappa sostituisce il pulsante Menu
|
||||
</string>
|
||||
<string name="monitoring_settings">Servizi di registrazione</string>
|
||||
<string name="monitoring_settings_descr">Configura come registrare i viaggi</string>
|
||||
<string name="monitoring_settings">Registrazione viaggio</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_name">Servizi di registrazione</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_he">Ebraico</string>
|
||||
<string name="keep_navigation_service">Mantieni</string>
|
||||
<string name="stop_navigation_service">Ferma</string>
|
||||
<string name="enable_sleep_mode">Abilita la modalità quiescente</string>
|
||||
<string name="stop_navigation_service">Interrompi</string>
|
||||
<string name="enable_sleep_mode">Abilita la modalità GPS quiescente</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_ar">Arabo</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="flat_list_waypoitns">Tutti</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="speak_favorites">Annuncia Preferiti</string>
|
||||
<string name="speak_poi">Annuncia PDI</string>
|
||||
<string name="index_tours">Itinerari</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="int_hour">h</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_interval_globally">Intervallo registrazione</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>
|
||||
|
|
|
@ -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>
|
||||
<string name="internet_connection_required_for_online_route">オンライン経路案内を使用しようとしていますが
|
||||
インターネット接続されていません。</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>
|
||||
|
||||
<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_min">분.</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">위치 제공자</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_interval_globally">로깅 간격</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>
|
||||
</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">Saugus režimas</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 :
|
||||
\n\t* Patobulintas maršruto skaičiavimas dabar greitesnis ir tikslesnis (iki 250 km)
|
||||
\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_showCycleRoutes_name">Rodyti dviračių maršrutus</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="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">Pageidaujama žemėlapio kalba</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.
|
||||
</string>
|
||||
<string name="tip_initial">Help</string>
|
||||
<string name="tip_initial_t">"OsmAnd is een navigatieprogramma met vele mogelijkheden.
|
||||
\n\nInleiding, gebruikstips en uitgebreide hulp is te vinden onder \'Menu\' → \'Help\' vanuit het kaartscherm. "</string>
|
||||
<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>
|
||||
<string name="next_button">Volgende</string>
|
||||
<string name="previous_button">Vorige</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_min">min.</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">Achtergrondservice-provider</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="search_shown_on_map">Toon op kaart</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_city">Stad</string>
|
||||
<string name="search_address_street">Straat</string>
|
||||
<string name="search_address_building">Gebouw</string>
|
||||
<string name="search_address_building_option">Gebouwen</string>
|
||||
<string name="search_address_building">Huisnummer</string>
|
||||
<string name="search_address_building_option">Gebouw</string>
|
||||
<string name="search_address_street_option">Zijstraat</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_update_map">Kaart bijwerken</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_cancel">Annuleer</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">Veilige modus</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:
|
||||
\n\t* Verbeterde routeberekening, sneller en nauwkeuriger (tot 250 km)
|
||||
\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_minzoom">Min zoomniveau</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="maps_define_edit">Definieer/bewerk…</string>
|
||||
<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_weight_description">Geef het maximum gewicht van een voertuig</string>
|
||||
<string name="routing_attr_weight_name">Maximum gewicht</string>
|
||||
<string name="select_gpx">Selecteer GPX…</string>
|
||||
<string name="route_descr_select_destination">Selecteer bestemming</string>
|
||||
<string name="select_gpx">GPX-bestand kiezen …</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_favorite">Favoriet…</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="loading_smth">Laad %1$s …</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="gpx_wpt">Routepunt</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_start_new_segment">Start nieuw segment</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="gps_wake_up_timer">GPS ontwaak interval</string>
|
||||
<string name="sleep_mode_stop_dialog">Stop GPS slaapstand?</string>
|
||||
<string name="gps_wake_up_timer">GPS ontwaak-interval</string>
|
||||
<string name="sleep_mode_stop_dialog">Onderbreek GPS slaapstand?</string>
|
||||
<string name="lang_fa">Perzisch</string>
|
||||
<string name="lang_al">Albanees</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>
|
||||
|
||||
<string name="use_transparent_map_theme">Przezroczysty styl</string>
|
||||
|
|
|
@ -68,7 +68,7 @@
|
|||
<string name="safe_mode_description">Запустить приложение в безопасном режиме (замедляет работу приложения, используя только Android функции).</string>
|
||||
<string name="safe_mode">Безопасный режим</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:
|
||||
\n\t* Улучшенная навигация: быстрее и расчёт до 250 км
|
||||
\n\t* Новые компактные карты (исключительно дороги)
|
||||
|
@ -1745,9 +1745,9 @@ OsmAnd - открытый источник и активно развается.
|
|||
<string name="gpx_monitoring_start">Начать запись GPX</string>
|
||||
<string name="gpx_monitoring_stop">Остановить запись GPX</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="sleep_mode_stop_dialog">Выключить режим сна GPS?</string>
|
||||
<string name="sleep_mode_stop_dialog">Выключить фоновый режим GPS?</string>
|
||||
<string name="stop_navigation_service">Выключить</string>
|
||||
<string name="keep_navigation_service">Оставить</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>
|
||||
<string name="voice_pref_title">Boghe</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>
|
||||
<string name="ChooseCountry">Välj land</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:
|
||||
\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>
|
||||
<string name="poi_dialog_name">名稱</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>
|
||||
<string name="rendering_attr_roadColors_name">道路的色彩調配</string>
|
||||
<string name="map_widget_show_destination_arrow">顯示目的地方向</string>
|
||||
|
@ -1193,7 +1193,7 @@
|
|||
<string name="safe_mode_description">應用程式執行在安全模式下(使用較慢的 Android 而非原生碼)。</string>
|
||||
<string name="safe_mode">安全模式</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_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>
|
||||
|
@ -1769,10 +1769,10 @@
|
|||
<string name="map_preferred_locale_descr">在地圖標簽上優先的語言(如果優先的語言無法使用,將會切換成英文或本地名稱)</string>
|
||||
<string name="live_monitoring_m_descr">如果已啟用了 GPX 記錄,發送軌跡到指定的 web 服務。</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="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_ar">阿拉伯</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).
|
||||
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="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="background_service_int">GPS Wake-up interval</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_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>
|
||||
|
@ -62,7 +64,6 @@
|
|||
<string name="pause_navigation">Pause Navigation</string>
|
||||
<string name="rendering_attr_subwayMode_name">Subway mode</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="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>
|
||||
|
@ -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">Safe mode</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:
|
||||
\n\t* Improved routing: faster, more precise, up to 250 km
|
||||
\n\t* Introduce roads-only maps
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
package net.osmand.plus.activities.search;
|
||||
|
||||
import android.os.AsyncTask;
|
||||
import gnu.trove.map.hash.TLongObjectHashMap;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -8,8 +7,6 @@ import java.util.Collection;
|
|||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import net.osmand.ResultMatcher;
|
||||
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.resources.RegionAddressRepository;
|
||||
import net.osmand.plus.resources.ResourceManager;
|
||||
import net.osmand.util.GeoPointParserUtil;
|
||||
import net.osmand.util.MapUtils;
|
||||
import android.app.Dialog;
|
||||
import android.app.ProgressDialog;
|
||||
|
@ -34,6 +32,7 @@ import android.content.DialogInterface;
|
|||
import android.content.DialogInterface.OnCancelListener;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
|
@ -45,115 +44,93 @@ import android.widget.Toast;
|
|||
|
||||
public class GeoIntentActivity extends OsmandListActivity {
|
||||
|
||||
private ProgressDialog progressDlg;
|
||||
private ProgressDialog progressDlg;
|
||||
private LatLon location;
|
||||
private ProgressDialog startProgressDialog;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState)
|
||||
{
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.search_address_offline);
|
||||
getSupportActionBar().setTitle(R.string.search_osm_offline);
|
||||
startProgressDialog = new ProgressDialog(this);
|
||||
getMyApplication().checkApplicationIsBeingInitialized(this, startProgressDialog);
|
||||
location = getMyApplication().getSettings().getLastKnownMapLocation();
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.search_address_offline);
|
||||
getSupportActionBar().setTitle(R.string.search_osm_offline);
|
||||
startProgressDialog = new ProgressDialog(this);
|
||||
getMyApplication().checkApplicationIsBeingInitialized(this, startProgressDialog);
|
||||
location = getMyApplication().getSettings().getLastKnownMapLocation();
|
||||
|
||||
final Intent intent = getIntent();
|
||||
if (intent != null)
|
||||
{
|
||||
final ProgressDialog progress = ProgressDialog.show(GeoIntentActivity.this, getString(R.string.searching), getString(R.string.searching_address));
|
||||
final GeoIntentTask task = new GeoIntentTask(progress, intent);
|
||||
final Intent intent = getIntent();
|
||||
if (intent != null) {
|
||||
final ProgressDialog progress = ProgressDialog.show(GeoIntentActivity.this, getString(R.string.searching),
|
||||
getString(R.string.searching_address));
|
||||
final GeoIntentTask task = new GeoIntentTask(progress, intent);
|
||||
|
||||
progress.setOnCancelListener(new OnCancelListener()
|
||||
{
|
||||
@Override
|
||||
public void onCancel(DialogInterface dialog)
|
||||
{
|
||||
task.cancel(true);
|
||||
}
|
||||
});
|
||||
progress.setCancelable(true);
|
||||
progress.setOnCancelListener(new OnCancelListener() {
|
||||
@Override
|
||||
public void onCancel(DialogInterface dialog) {
|
||||
task.cancel(true);
|
||||
}
|
||||
});
|
||||
progress.setCancelable(true);
|
||||
|
||||
task.execute();
|
||||
task.execute();
|
||||
setIntent(null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class GeoIntentTask extends AsyncTask<Void,Void, ExecutionResult>
|
||||
{
|
||||
private final ProgressDialog progress;
|
||||
private final Intent intent;
|
||||
private class GeoIntentTask extends AsyncTask<Void, Void, ExecutionResult> {
|
||||
private final ProgressDialog progress;
|
||||
private final Intent intent;
|
||||
|
||||
private GeoIntentTask(final ProgressDialog progress, final Intent intent)
|
||||
{
|
||||
this.progress = progress;
|
||||
this.intent = intent;
|
||||
}
|
||||
private GeoIntentTask(final ProgressDialog progress, final Intent intent) {
|
||||
this.progress = progress;
|
||||
this.intent = intent;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPreExecute()
|
||||
{
|
||||
}
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ExecutionResult doInBackground(Void... nothing)
|
||||
{
|
||||
try
|
||||
{
|
||||
while (getMyApplication().isApplicationInitializing())
|
||||
{
|
||||
Thread.sleep(200);
|
||||
}
|
||||
return extract(intent.getScheme(), intent.getData()).execute();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@Override
|
||||
protected ExecutionResult doInBackground(Void... nothing) {
|
||||
try {
|
||||
while (getMyApplication().isApplicationInitializing()) {
|
||||
Thread.sleep(200);
|
||||
}
|
||||
return extract(intent.getScheme(), intent.getData()).execute();
|
||||
} catch (Exception e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(ExecutionResult result)
|
||||
{
|
||||
progress.dismiss();
|
||||
if (result != null)
|
||||
{
|
||||
if (result.isEmpty())
|
||||
{
|
||||
AccessibleToast.makeText(GeoIntentActivity.this, getString(R.string.search_nothing_found), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (result.hasZoom())
|
||||
{
|
||||
getMyApplication().getSettings().setLastKnownMapZoom(result.getZoom());
|
||||
}
|
||||
@Override
|
||||
protected void onPostExecute(ExecutionResult result) {
|
||||
progress.dismiss();
|
||||
if (result != null) {
|
||||
if (result.isEmpty()) {
|
||||
AccessibleToast.makeText(GeoIntentActivity.this, getString(R.string.search_nothing_found),
|
||||
Toast.LENGTH_LONG).show();
|
||||
} 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));
|
||||
if (places.size() == 1)
|
||||
{
|
||||
onListItemClick(
|
||||
getListView(),
|
||||
getListAdapter().getView(0, null, null),
|
||||
0,
|
||||
getListAdapter().getItemId(0)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
AccessibleToast.makeText(GeoIntentActivity.this, getString(R.string.search_offline_geo_error, intent.getData()), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
if (places.size() == 1) {
|
||||
onListItemClick(getListView(), getListAdapter().getView(0, null, null), 0, getListAdapter()
|
||||
.getItemId(0));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
AccessibleToast.makeText(GeoIntentActivity.this,
|
||||
getString(R.string.search_offline_geo_error, intent.getData()), Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Dialog onCreateDialog(int id) {
|
||||
if(id == OsmandApplication.PROGRESS_DIALOG){
|
||||
if (id == OsmandApplication.PROGRESS_DIALOG) {
|
||||
return startProgressDialog;
|
||||
}
|
||||
return super.onCreateDialog(id);
|
||||
|
@ -162,8 +139,7 @@ public class GeoIntentActivity extends OsmandListActivity {
|
|||
private class MapObjectAdapter extends ArrayAdapter<MapObject> {
|
||||
|
||||
public MapObjectAdapter(List<MapObject> places) {
|
||||
super(GeoIntentActivity.this,
|
||||
R.layout.search_address_offline_list_item, places);
|
||||
super(GeoIntentActivity.this, R.layout.search_address_offline_list_item, places);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -171,19 +147,15 @@ public class GeoIntentActivity extends OsmandListActivity {
|
|||
View row = convertView;
|
||||
if (row == null) {
|
||||
LayoutInflater inflater = getLayoutInflater();
|
||||
row = inflater.inflate(
|
||||
R.layout.search_address_offline_list_item, parent,
|
||||
false);
|
||||
row = inflater.inflate(R.layout.search_address_offline_list_item, parent, false);
|
||||
}
|
||||
MapObject model = getItem(position);
|
||||
TextView label = (TextView) row.findViewById(R.id.label);
|
||||
TextView distanceLabel = (TextView) row
|
||||
.findViewById(R.id.distance_label);
|
||||
TextView distanceLabel = (TextView) row.findViewById(R.id.distance_label);
|
||||
if (location != null) {
|
||||
int dist = (int) (MapUtils.getDistance(location, model
|
||||
.getLocation().getLatitude(), model.getLocation()
|
||||
int dist = (int) (MapUtils.getDistance(location, model.getLocation().getLatitude(), model.getLocation()
|
||||
.getLongitude()));
|
||||
distanceLabel.setText(OsmAndFormatter.getFormattedDistance(dist,(OsmandApplication) getApplication()));
|
||||
distanceLabel.setText(OsmAndFormatter.getFormattedDistance(dist, (OsmandApplication) getApplication()));
|
||||
} else {
|
||||
distanceLabel.setText(""); //$NON-NLS-1$
|
||||
}
|
||||
|
@ -192,11 +164,11 @@ public class GeoIntentActivity extends OsmandListActivity {
|
|||
}
|
||||
}
|
||||
|
||||
private String getString(MapObject o){
|
||||
if(o instanceof Amenity) {
|
||||
private String getString(MapObject o) {
|
||||
if (o instanceof Amenity) {
|
||||
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) + " : " + o.toString();
|
||||
|
@ -226,260 +198,46 @@ public class GeoIntentActivity extends OsmandListActivity {
|
|||
}
|
||||
|
||||
/**
|
||||
* Extracts information from geo and map intents:
|
||||
*
|
||||
* geo:47.6,-122.3<br/>
|
||||
* geo:47.6,-122.3?z=11<br/>
|
||||
* geo:0,0?q=34.99,-106.61(Treasure)<br/>
|
||||
* geo:0,0?q=1600+Amphitheatre+Parkway%2C+CA<br/>
|
||||
* Extracts information from geo and map intents:
|
||||
*
|
||||
* @param scheme The intent scheme
|
||||
* @param data The intent uri
|
||||
* geo:47.6,-122.3<br/>
|
||||
* geo:47.6,-122.3?z=11<br/>
|
||||
* geo:0,0?q=34.99,-106.61(Treasure)<br/>
|
||||
* geo:0,0?q=1600+Amphitheatre+Parkway%2C+CA<br/>
|
||||
*
|
||||
* @param scheme
|
||||
* The intent scheme
|
||||
* @param data
|
||||
* The intent uri
|
||||
* @return
|
||||
*/
|
||||
private MyService extract(final String scheme, final Uri data)
|
||||
{
|
||||
if ("http".equals(scheme) || "https".equals(scheme)) {
|
||||
private MyService extract(final String scheme, final Uri data) {
|
||||
GeoPointParserUtil.GeoParsedPoint p = GeoPointParserUtil.parse(scheme, data.toString());
|
||||
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();
|
||||
|
||||
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 final class GeoAddressSearch implements MyService {
|
||||
private List<String> elements;
|
||||
|
||||
public GeoAddressSearch(String query) {
|
||||
query = query.replaceAll("%20", ",").replaceAll("%0A",",")
|
||||
.replaceAll("\n",",").replaceAll("\t",",")
|
||||
query = query.replaceAll("%20", ",").replaceAll("%0A", ",").replaceAll("\n", ",").replaceAll("\t", ",")
|
||||
.replaceAll(" ", ",");
|
||||
System.out.println(query);
|
||||
//String is split on each comma
|
||||
String[] s = query.split(",");
|
||||
// String is split on each comma
|
||||
String[] s = query.substring(query.indexOf("q=") + 2).split(",");
|
||||
|
||||
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());
|
||||
}
|
||||
}
|
||||
|
@ -487,40 +245,43 @@ public class GeoIntentActivity extends OsmandListActivity {
|
|||
public MapObject checkGeoPoint() {
|
||||
double lat = Double.NaN;
|
||||
double lon = Double.NaN;
|
||||
for(String e : elements) {
|
||||
if(e.startsWith("S") || e.startsWith("N")) {
|
||||
for (String e : elements) {
|
||||
if (e.startsWith("S") || e.startsWith("N")) {
|
||||
try {
|
||||
lat = Double.parseDouble(e.substring(1));
|
||||
if(e.startsWith("S")) {
|
||||
if (e.startsWith("S")) {
|
||||
lat = -lat;
|
||||
}
|
||||
} catch(NumberFormatException es) {}
|
||||
} else if(e.startsWith("E") || e.startsWith("W")) {
|
||||
} catch (NumberFormatException es) {
|
||||
}
|
||||
} else if (e.startsWith("E") || e.startsWith("W")) {
|
||||
try {
|
||||
lon = Double.parseDouble(e.substring(1));
|
||||
if(e.startsWith("W")) {
|
||||
if (e.startsWith("W")) {
|
||||
lon = -lon;
|
||||
}
|
||||
} catch(NumberFormatException es) {}
|
||||
} else if(e.contains(".")) {
|
||||
} catch (NumberFormatException es) {
|
||||
}
|
||||
} else if (e.contains(".")) {
|
||||
try {
|
||||
double n = Double.parseDouble(e);
|
||||
if(Double.isNaN(lat)) {
|
||||
if (Double.isNaN(lat)) {
|
||||
lat = n;
|
||||
} 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;
|
||||
}
|
||||
|
||||
Amenity point = new Amenity();
|
||||
((Amenity)point).setType(AmenityType.USER_DEFINED);
|
||||
((Amenity)point).setSubType("");
|
||||
((Amenity) point).setType(AmenityType.USER_DEFINED);
|
||||
((Amenity) point).setSubType("");
|
||||
point.setLocation(lat, lon);
|
||||
point.setName("Lat: " + lat + ",Lon:" + lon);
|
||||
return point;
|
||||
|
@ -533,7 +294,7 @@ public class GeoIntentActivity extends OsmandListActivity {
|
|||
}
|
||||
List<String> q = new ArrayList<String>(elements);
|
||||
MapObject geo = checkGeoPoint();
|
||||
if(geo != null) {
|
||||
if (geo != null) {
|
||||
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);
|
||||
}
|
||||
final List<MapObject> connectedStreets = new ArrayList<MapObject>();
|
||||
Iterator<Street> p = allStreets.iterator();
|
||||
while(p.hasNext()) {
|
||||
while (p.hasNext()) {
|
||||
Street s = p.next();
|
||||
if(cityIds.contains(s.getCity().getId())) {
|
||||
if (cityIds.contains(s.getCity().getId())) {
|
||||
connectedStreets.add(s);
|
||||
} else {
|
||||
boolean tooFar = true;
|
||||
for(City c : cityIds.valueCollection()) {
|
||||
if(MapUtils.getDistance(c.getLocation(), s.getLocation()) < 50000) {
|
||||
for (City c : cityIds.valueCollection()) {
|
||||
if (MapUtils.getDistance(c.getLocation(), s.getLocation()) < 50000) {
|
||||
tooFar = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(tooFar) {
|
||||
if (tooFar) {
|
||||
p.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
if(connectedStreets.isEmpty()) {
|
||||
if (connectedStreets.isEmpty()) {
|
||||
List<MapObject> all = new ArrayList<MapObject>();
|
||||
all.addAll(cityIds.valueCollection());
|
||||
all.addAll(allStreets);
|
||||
|
@ -604,7 +365,7 @@ public class GeoIntentActivity extends OsmandListActivity {
|
|||
List<RegionAddressRepository> foundCountries = new ArrayList<RegionAddressRepository>();
|
||||
RegionAddressRepository country;
|
||||
Iterator<String> it = q.iterator();
|
||||
while(it.hasNext()) {
|
||||
while (it.hasNext()) {
|
||||
String maybeCountry = it.next();
|
||||
country = resourceManager.getRegionRepository(maybeCountry);
|
||||
if (country != null) {
|
||||
|
@ -620,41 +381,37 @@ public class GeoIntentActivity extends OsmandListActivity {
|
|||
return countriesToSearch;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private static class GeoPointSearch implements MyService {
|
||||
private final MapObject point;
|
||||
private final int zoom;
|
||||
@SuppressWarnings("unused")
|
||||
private static class GeoPointSearch implements MyService {
|
||||
private final MapObject point;
|
||||
private final int zoom;
|
||||
|
||||
public GeoPointSearch(double lat , double lon)
|
||||
{
|
||||
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;
|
||||
public GeoPointSearch(double lat, double lon) {
|
||||
this(lat, lon, ExecutionResult.NO_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() {
|
||||
if (point != null) {
|
||||
return new ExecutionResult(Collections.singletonList(point), zoom);
|
||||
|
@ -665,57 +422,45 @@ public class GeoIntentActivity extends OsmandListActivity {
|
|||
|
||||
}
|
||||
|
||||
private static class ExecutionResult
|
||||
{
|
||||
public static final int NO_ZOOM = -1;
|
||||
public static final ExecutionResult EMPTY = new ExecutionResult(new ArrayList<MapObject>(), NO_ZOOM);
|
||||
private static class ExecutionResult {
|
||||
public static final int NO_ZOOM = -1;
|
||||
public static final ExecutionResult EMPTY = new ExecutionResult(new ArrayList<MapObject>(), NO_ZOOM);
|
||||
|
||||
private final Collection<? extends MapObject> mapObjects;
|
||||
private final int zoom;
|
||||
private final Collection<? extends MapObject> mapObjects;
|
||||
private final int zoom;
|
||||
|
||||
public ExecutionResult(final Collection<? extends MapObject> mapObjects)
|
||||
{
|
||||
this(mapObjects, NO_ZOOM);
|
||||
}
|
||||
public ExecutionResult(final Collection<? extends MapObject> mapObjects) {
|
||||
this(mapObjects, NO_ZOOM);
|
||||
}
|
||||
|
||||
public ExecutionResult(final Collection<? extends MapObject> mapObjects, final int zoom)
|
||||
{
|
||||
this.mapObjects = mapObjects;
|
||||
this.zoom = zoom;
|
||||
}
|
||||
public ExecutionResult(final Collection<? extends MapObject> mapObjects, final int zoom) {
|
||||
this.mapObjects = mapObjects;
|
||||
this.zoom = zoom;
|
||||
}
|
||||
|
||||
public boolean isEmpty()
|
||||
{
|
||||
return mapObjects.isEmpty();
|
||||
}
|
||||
public boolean isEmpty() {
|
||||
return mapObjects.isEmpty();
|
||||
}
|
||||
|
||||
public boolean hasZoom()
|
||||
{
|
||||
return zoom != NO_ZOOM;
|
||||
}
|
||||
public boolean hasZoom() {
|
||||
return zoom != NO_ZOOM;
|
||||
}
|
||||
|
||||
public Collection<? extends MapObject> getMapObjects()
|
||||
{
|
||||
return mapObjects;
|
||||
}
|
||||
public Collection<? extends MapObject> getMapObjects() {
|
||||
return mapObjects;
|
||||
}
|
||||
|
||||
public int getZoom()
|
||||
{
|
||||
return zoom;
|
||||
}
|
||||
public int getZoom() {
|
||||
return zoom;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
return "ExecutionResult{" +
|
||||
"mapObjects=" + mapObjects +
|
||||
", zoom=" + zoom +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ExecutionResult{" + "mapObjects=" + mapObjects + ", zoom=" + zoom + '}';
|
||||
}
|
||||
}
|
||||
|
||||
private static interface MyService
|
||||
{
|
||||
private static interface MyService {
|
||||
public ExecutionResult execute();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="src" path="gen"/>
|
||||
<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.DEPENDENCIES"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="src" path="gen"/>
|
||||
<classpathentry kind="output" path="bin/classes"/>
|
||||
</classpath>
|
||||
|
|
Loading…
Reference in a new issue