This commit is contained in:
Denis 2014-08-05 14:16:12 +03:00
commit 69f8bc69ba
67 changed files with 1944 additions and 721 deletions

View file

@ -2,7 +2,7 @@ package net.osmand.data;
import java.io.Serializable;
public class FavouritePoint implements Serializable {
public class FavouritePoint implements Serializable, LocationPoint {
private static final long serialVersionUID = 729654300829771466L;
private String name;
private String category = "";
@ -16,6 +16,8 @@ public class FavouritePoint implements Serializable {
public FavouritePoint(){
}
public FavouritePoint(double latitude, double longitude, String name, String category) {
this.latitude = latitude;
this.longitude = longitude;

View file

@ -0,0 +1,16 @@
package net.osmand.data;
/**
* Created by Натали on 01.08.2014.
*/
public interface LocationPoint {
public double getLatitude();
public double getLongitude();
public String getName();
public int getColor();
}

View file

@ -243,8 +243,17 @@ public class MapRenderingTypes {
return getRuleType(tag, val, true);
}
private String lc(String a) {
if(a != null) {
return a.toLowerCase();
}
return a;
}
protected MapRulType getRuleType(String tag, String val, boolean poi) {
Map<String, MapRulType> types = getEncodingRuleTypes();
tag = lc(tag);
val = lc(val);
MapRulType rType = types.get(constructRuleKey(tag, val));
if (rType == null || (!rType.isPOI() && poi) || (!rType.isMap() && !poi)) {
rType = types.get(constructRuleKey(tag, null));
@ -417,8 +426,8 @@ public class MapRenderingTypes {
}
protected MapRulType parseBaseRuleType(XmlPullParser parser, String poiParentCategory, String poiParentPrefix, String parentOrder, boolean filterOnlyMap) {
String tag = parser.getAttributeValue("", "tag");
String value = parser.getAttributeValue("", "value");
String tag = lc(parser.getAttributeValue("", "tag"));
String value = lc(parser.getAttributeValue("", "value"));
String additional = parser.getAttributeValue("", "additional");
if (value != null && value.length() == 0) { //$NON-NLS-1$
value = null;
@ -486,9 +495,9 @@ public class MapRenderingTypes {
rtype.poiPrefix = poiPrefix;
}
if (!rtype.isAdditional() && !rtype.isText()) {
rtype.onlyPoint = Boolean.parseBoolean(parser.getAttributeValue("", "point")); //$NON-NLS-1$
rtype.relation = Boolean.parseBoolean(parser.getAttributeValue("", "relation")); //$NON-NLS-1$
rtype.onlyPoint = Boolean.parseBoolean(parser.getAttributeValue("", "point")); //$NON-NLS-1$
rtype.relation = Boolean.parseBoolean(parser.getAttributeValue("", "relation")); //$NON-NLS-1$
if (!rtype.isAdditional() && !rtype.isText()) {
rtype.namePrefix = parser.getAttributeValue("", "namePrefix"); //$NON-NLS-1$
if (rtype.namePrefix == null) {
rtype.namePrefix = "";

View file

@ -11,5 +11,5 @@
split.density=false
# Project target.
target=android-19
android.library.reference.1=../SherlockBar
dex.force.jumbo=true
android.library.reference.1=../SherlockBar

Binary file not shown.

After

Width:  |  Height:  |  Size: 342 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 617 B

View file

@ -48,7 +48,6 @@
android:layout_marginRight="2dip"
android:button="@drawable/ic_btn_wocheckbox"
android:focusable="false"
android:clickable="false"
/>
</LinearLayout>

View file

@ -46,8 +46,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="2dip"
android:focusable="false"
android:clickable="false"/>
android:focusable="false"/>
</LinearLayout>
</LinearLayout>

View file

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:id="@+id/package_delivered_layout">
<ImageView android:id="@+id/waypoint_icon"
android:layout_marginLeft="8dp"
android:src="@drawable/list_favorite"
android:layout_width="25dp"
android:layout_gravity="center_vertical"
android:layout_height="wrap_content"/>
<TextView android:id="@+id/waypoint_text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:singleLine="true"
android:ellipsize="end"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:textSize="18sp"/>
<ImageButton android:id="@+id/all_points"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:visibility="gone"
style="@style/Widget.Sherlock.ActionButton"
android:src="@drawable/ic_action_core_overflow_dark"/>
<ImageButton android:id="@+id/info_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginRight="4dp"
style="@style/Widget.Sherlock.ActionButton"
android:focusable="false"
android:src="@drawable/ic_action_gremove_dark"/>
</LinearLayout>

View file

@ -134,7 +134,7 @@
<string name="tip_recent_changes_1_3_t">Зьмены ў версіі 1.3: \n\t* Перапісана падтрымка планшэтаў і вялікіх эканаў \n\t* Тэма Holo (налады) \n\t* Дадатковыя налады для стабілізацыі компасу \n\t* Верхняя левая кнопка на экране мапы замяняе кнопку Меню
</string>
<string name="monitoring_settings">Запіс сьледу</string>
<string name="monitoring_settings_descr">Налады запісу сьледу і рэжыму сну</string>
<string name="monitoring_settings_descr">Налады запісу сьледу</string>
<string name="osmand_monitoring_plugin_description">Дазволіць адсочваньне месцазнаходжаньня і навігацыю ў рэжыме сну (калі экран выключаны) шляхам пэрыядычнага абуджэньня GPS прыймача.
Паказаць налады запісу вандровак ў лякальныя GPX файлы ці ў сеткавы вэб-сэрвіс.</string>
<string name="osmand_monitoring_plugin_name">Запіс сьледу</string>
@ -1913,4 +1913,23 @@ OsmAnd мае адкрыты зыходны код і актыўна разві
<string name="lang_zh_TW">кітайская традыцыйная</string>
<string name="lang_sc">сардынская</string>
<string name="rendering_attr_subwayMode_name">Рэжым метро</string>
</resources>
<string name="rendering_attr_coloredBuildings_name">Каляровыя будынкі</string>
<string name="osmo_invite">Запрасiць…</string>
<string name="osmo_leave_confirmation_msg">Хочаце пакінуць групу %1$s?</string>
<string name="osmo_specify_tracker_id">Калі ласка, увядзіце ID</string>
<string name="continue_navigation">Працягваць навігацыю</string>
<string name="pause_navigation">Прыпыніць навігацыю</string>
<string name="rendering_attr_alpineHiking_name">Пешы горны турызм</string>
<string name="rendering_attr_alpineHiking_description">Візуалізацыя шляху па шкале SAC</string>
<string name="rendering_attr_osmcTraces_name">Накладаньне знакаў пешага турызму</string>
<string name="rendering_attr_osmcTraces_description">Візуалізацыя шляху згодна трасам OSMC</string>
<string name="arrival_distance_factor_early">Раней</string>
<string name="arrival_distance_factor_normally">Звычайна</string>
<string name="arrival_distance_factor_late">Пазьней</string>
<string name="arrival_distance_factor_at_last">На апошніх метрах</string>
<string name="av_camera_pic_size">Памер фота</string>
<string name="av_camera_pic_size_descr">Памер выявы для убудаванага фатаграфаваньня</string>
<string name="hide_all_waypoints">Выдаліць усе</string>
<string name="announce_nearby_favorites">Абвяшчаць бліжэйшыя выбраныя кропкі</string>
</resources>

View file

@ -12,8 +12,6 @@
<string name="context_menu_item_directions_to">Упътвания към</string>
<string name="context_menu_item_directions_from">Упътвания от</string>
<string name="route_descr_map_location">Карта: </string>
<string name="route_descr_lat_lon">Ширина %1$.3f, Дължина %2$.3f</string>
<string name="route_descr_current_location">Текуща позиция</string>
<string name="route_to">За:</string>
<string name="route_via">През:</string>
<string name="route_from">От:</string>

View file

@ -1249,7 +1249,7 @@
<string name="prefer_in_routing_descr">Millor autopistes</string>
<string name="max_speed_none">cap</string>
<string name="local_indexes_cat_srtm">Dades de les corbes de nivell</string>
<string name="monitoring_settings_descr">Podeu configurar com enregistrar els recorreguts i habilitar el mode en suspensió</string>
<string name="monitoring_settings_descr">Configurar com enregistrar els recorreguts</string>
<string name="osmand_monitoring_plugin_name">Serveis d\'enregistrament</string>
<string name="av_use_external_camera_descr">Usa l\\\'aplicació del sistema per a les fotografies</string>
<string name="av_use_external_camera">Usa l\\\'aplicació de la càmera</string>
@ -1819,7 +1819,7 @@ La llista de països inclosos (bàsicament tot el món!): Afganistan, Albània,
<string name="selected_track">Traces seleccionades</string>
<string name="my_tracks">Totes les pistes</string>
<string name="my_favorites">El meus favorits</string>
<string name="my_data_Button">Les meus llocs</string>
<string name="my_data_Button">Els meus llocs</string>
<string name="my_data_activity">Els meus llocs</string>
<string name="osmo_user_joined">L\'usuari %1$s s\'ha unit al grup %2$s</string>
<string name="osmo_user_left">L\'usuari %1$s ha deixat el grup %2$s</string>
@ -1864,25 +1864,25 @@ La llista de països inclosos (bàsicament tot el món!): Afganistan, Albània,
<string name="local_index_unselect_gpx_file">No seleccionat</string>
<string name="local_index_select_gpx_file">Selecciona per veure</string>
<string name="no_index_file_to_download">Res per descarregar, verifiqui la connexió a internet.</string>
<string name="osmo_gpx_points_downloaded">Punts OsMo %1$s descarregats.</string>
<string name="osmo_auto_connect_descr">Connectar automàticament amb el servei desprès d\'iniciar l\'aplicació</string>
<string name="osmo_auto_connect">Auto-connexió</string>
<string name="osmo_gpx_points_downloaded">S\'han baixat %1$s punts OsMo.</string>
<string name="osmo_auto_connect_descr">Connecta automàticament amb el servei desprès d\'iniciar l\'aplicació</string>
<string name="osmo_auto_connect">Connexió automàtica</string>
<string name="osmo_start_service">Servei OsMo</string>
<string name="osmo_gpx_track_downloaded">Traça OsMo %1$s descarregada.</string>
<string name="osmo_not_signed_in">Inici sessió OsMo erroni</string>
<string name="osmo_gpx_track_downloaded">S\'ha baixat la traça OsMo %1$s.</string>
<string name="osmo_not_signed_in">Ha fallat l\'inici de sessió OsMo</string>
<string name="osmo_group_by_invite">Entreu per convidar</string>
<string name="osmo_group_information_desc">" - Tots els grups creats són públics! Si es vol ser anònim, afegiu directament els aparells via identificació de Tracker.\n - Dins el grup es poden registrar fins un màxim de 16 persones.\n - Cas d\'inactivitat o d\'activitat d\'una sola persona durant 2 setmanes, el grup serà esborrat.\n - Es pot restringir l\'entrada al grup, a només per invitació, però per controlar el grup es necessitarà accedir a la consola d\'administració.\n - Si us cal crear un grup, però amb altres condicions, contacteu http://osmo.mobi"</string>
<string name="osmo_group_information">Si us plau, llegiu abans de crear un grup!</string>
<string name="osmo_auth_error_short">Autorització fallida</string>
<string name="osmo_auth_error">Trobat error OsMo d\'autorització : %1$s.\n Podria ser una caiguda temporal del servei o l\'expiració del teu usuari.\n Vols procedir a crear un nou usuari?</string>
<string name="rendering_attr_hideBuildings_name">Amaga edificis</string>
<string name="rendering_attr_hideNonVehicleHighways_name">Amaga vies sense circulació de vehicles</string>
<string name="rendering_attr_hideText_name">Amaga text</string>
<string name="osmo_group_information">Cal que ho llegiu abans de crear un grup!</string>
<string name="osmo_auth_error_short">Ha fallat l\'autorització</string>
<string name="osmo_auth_error">S\'ha trobat un error d\'autorització OsMo: %1$s.\n Pot ser per una caiguda temporal del servei o bé pel venciment del vostre usuari.\n Voleu crear un nou usuari nou?</string>
<string name="rendering_attr_hideBuildings_name">Oculta els edificis</string>
<string name="rendering_attr_hideNonVehicleHighways_name">Oculta les vies sense circulació de vehicles</string>
<string name="rendering_attr_hideText_name">Oculta el text</string>
<string name="rendering_attr_hideWoodScrubs_name">Amaga tipus de vegetació</string>
<string name="rendering_attr_buildings15zoom_name">Representació d\'edificis al detall 15 de zoom</string>
<string name="rendering_attr_moreDetailed_name">Més detallat</string>
<string name="rendering_attr_lessDetailed_name">Menys detallat</string>
<string name="rendering_attr_hideAccess_name">Amaga el tipus d\'accés</string>
<string name="rendering_attr_hideAccess_name">Oculta el tipus d\'accés</string>
<string name="rendering_attr_showAccess_name">Mostra el tipus d\'accés</string>
<string name="rendering_attr_showSurfaceGrade_name">Mostra la qualitat de les vies</string>
<string name="rendering_attr_showSurfaces_name">Mostra el tipus de superfície de les vies</string>
@ -1897,37 +1897,42 @@ La llista de països inclosos (bàsicament tot el món!): Afganistan, Albània,
<string name="forward">Endavant</string>
<string name="home">Punt inicial</string>
<string name="live_monitoring_m_descr">Envia registre de traces a un servei web específic si s\'ha activat la gravació GPX.</string>
<string name="live_monitoring_m">Registre de traça online (cal GPX)</string>
<string name="live_monitoring_start">Inicia registre de traça online</string>
<string name="live_monitoring_stop">Atura el registre de traça online</string>
<string name="live_monitoring_m">Registre de traça en línia (cal GPX)</string>
<string name="live_monitoring_start">Inicia un registre de traça en línia</string>
<string name="live_monitoring_stop">Atura el registre de traça en línia</string>
<string name="gpx_monitoring_start">Inicia gravació GPX</string>
<string name="gpx_monitoring_stop">Atura gravació GPX</string>
<string name="gpx_start_new_segment">Inicia nou segment</string>
<string name="gpx_start_new_segment">Inicia un segment nou</string>
<string name="lang_fa">Persa</string>
<string name="keep_navigation_service">Mantenir</string>
<string name="stop_navigation_service">Aturar</string>
<string name="enable_sleep_mode">Activar mode baixa activitat</string>
<string name="gps_wake_up_timer">Interval d\'activació GPS</string>
<string name="sleep_mode_stop_dialog">Mantenir GPS activat?</string>
<string name="gps_wake_up_timer">Interval d\'activació del GPS</string>
<string name="sleep_mode_stop_dialog">Mantenir GPS actiu?</string>
<string name="lang_al">Albanés</string>
<string name="lang_ar">Àrab</string>
<string name="lang_sc">Sard</string>
<string name="lang_sr">Serbi</string>
<string name="lang_zh_CN">Xinès simplificat</string>
<string name="lang_zh_TW">Xinès tradicional</string>
<string name="rendering_attr_subwayMode_name">Mode subsol</string>
<string name="continue_navigation">Continuar Navegació</string>
<string name="pause_navigation">Interrompre Navegació</string>
<string name="rendering_attr_subwayMode_name">Mode soterrat</string>
<string name="continue_navigation">Continua la navegació</string>
<string name="pause_navigation">Interrompre la navegació</string>
<string name="rendering_attr_alpineHiking_name">Perspectiva senderista</string>
<string name="rendering_attr_alpineHiking_description">Representar els camins segons l\'escala SAC</string>
<string name="rendering_attr_osmcTraces_name">Sobreposar simbologia senderista</string>
<string name="rendering_attr_osmcTraces_description">Representar els camins segons les traces OSMC</string>
<string name="osmo_invite">Convida…</string>
<string name="osmo_leave_confirmation_msg">Realment vols deixar el grup %1$s?</string>
<string name="osmo_specify_tracker_id">Especifiqui id</string>
<string name="osmo_leave_confirmation_msg">Voleu deixar el grup %1$s?</string>
<string name="osmo_specify_tracker_id">Especifiqueu l\'ID</string>
<string name="arrival_distance_factor_early">Aviat</string>
<string name="arrival_distance_factor_normally">Normal</string>
<string name="arrival_distance_factor_late">Tard</string>
<string name="arrival_distance_factor_at_last">Als darrers metres</string>
</resources>
<string name="rendering_attr_coloredBuildings_name">Edificis amb colors</string>
<string name="av_camera_pic_size">Mida d\'imatge de la càmera</string>
<string name="av_camera_pic_size_descr">Triar la mida d\'imatge de la càmera interna</string>
<string name="hide_all_waypoints">Esborra tot</string>
<string name="announce_nearby_favorites">Indica preferits propers</string>
</resources>

View file

@ -1204,14 +1204,14 @@
\n\t* Další nastavení pro stabilizaci kompasu
\n\t* Tlačítko vlevo nahoře na mapové obrazovce nahrazuje tlačítko Menu
</string>
<string name="monitoring_settings">Záznamy tras a služby na pozadí</string>
<string name="osmand_monitoring_plugin_name">Záznamy tras a služby na pozadí</string>
<string name="monitoring_settings">Záznamové služby</string>
<string name="osmand_monitoring_plugin_name">Záznamové služby</string>
<string name="accessibility_options">Volby usnadnění</string>
<string name="select_address_activity">Vybrat adresu</string>
<string name="favourites_list_activity">Vybrat oblíbené</string>
<string name="local_openstreetmap_act_title">Editace OSM</string>
<string name="default_buttons_other_actions">Další akce</string>
<string name="monitoring_settings_descr">Konfigurace záznamů cest a spouštění služeb na pozadí</string>
<string name="monitoring_settings_descr">Konfigurace záznamů cest</string>
<string name="install_paid">Instalovat plnou verzi</string>
<string name="cancel_navigation">Zastavit navigaci</string>
<string name="use_kalman_filter_compass_descr">Použít Kalmanův filtr k zabránění odchylek kompasu</string>
@ -1496,11 +1496,7 @@ s často kladenými otázkami.</string>
* Můžete rozdělit GPX trasu podle vzdálenosti a kontrolovat výškový rozdíl/rychlost
* Automatický start navigace po uplynutí času
</string>
<string name="osmo_plugin_description">OpenStreetMap-Monitorování - Pokročilé monitorování. Poskytuje možnost sledování jiných zařízení nebo být sledován.
Vytvořte anonymní skupiny, sdílejte vzájemně polohu a komunikujte. Různé možnosti nastavení krátkodobého nebo trvalého sledování.
Anonymní skupiny jsou omezeny na počet dní a některými vlastnostmi, například nemají dálkové ovládání a skupinového správce.
Plně funkční skupiny se vytvářejí na webstránce a jsou přístupné pouze pro registrované uživatele.
Prosím čtěte více na http://osmo.mobi.</string>
<string name="osmo_plugin_description">"OpenStreetMap pokročilé online monitorování, podívejte se na http://osmo.mobi. Poskytuje možnost sledování jiných zařízení nebo být sledován. Vytvořte anonymní skupiny, sdílejte vzájemně polohu a komunikujte. Různé možnosti nastavení krátkodobého nebo trvalého sledování. Anonymní skupiny jsou omezeny na počet dní a některými vlastnostmi, například nemají dálkové ovládání a skupinového správce. Plně funkční skupiny se vytvářejí na webstránce a jsou přístupné pouze pro registrované uživatele. "</string>
<string name="color_red">červená</string>
<string name="color_pink">růžová</string>
<string name="color_orange">oranžová</string>
@ -1684,4 +1680,26 @@ s často kladenými otázkami.</string>
<string name="osmo_leave_confirmation_msg">Chcete opustit skupinu %1$s?</string>
<string name="osmo_specify_tracker_id">Prosím určete id</string>
<string name="rendering_attr_coloredBuildings_name">Barevné budovy</string>
</resources>
<string name="lang_sw">Svahilština (Kiswahili)</string>
<string name="lang_he">Hebrejština</string>
<string name="lang_al">Albánština</string>
<string name="lang_ar">Arabština</string>
<string name="lang_fa">Perština</string>
<string name="lang_sc">Sardština</string>
<string name="lang_sr">Srbština</string>
<string name="lang_zh_CN">Zjednodušená čínština</string>
<string name="lang_zh_TW">Tradiční čínština</string>
<string name="rendering_attr_alpineHiking_name">Vysokohorská turistika</string>
<string name="rendering_attr_alpineHiking_description">Vykreslovat cesty podle stupnice SAC</string>
<string name="rendering_attr_osmcTraces_name">Zobrazovat turistické značky</string>
<string name="rendering_attr_osmcTraces_description">Vykreslovat cesty podle OSMC značení</string>
<string name="arrival_distance_factor_early">Brzy</string>
<string name="arrival_distance_factor_normally">Normálně</string>
<string name="arrival_distance_factor_late">Později</string>
<string name="arrival_distance_factor_at_last">V posledních metrech</string>
<string name="av_camera_pic_size">Velikost fotografie</string>
<string name="av_camera_pic_size_descr">Vyberte velikost obrázku interního fotoaparátu</string>
<string name="hide_all_waypoints">Odstranit všechny</string>
<string name="announce_nearby_favorites">Oznamovat oblíbená místa v blízkosti</string>
</resources>

View file

@ -1457,7 +1457,7 @@ Afghanistan, Albanien, Algeriet, Andorra, Angola, Anguilla, Antigua og Barbuda,
\n* Nederste venstre knap på kortskærmen erstatter menuknappen
</string>
<string name="monitoring_settings">Logningstjenester</string>
<string name="monitoring_settings_descr">Indstil, hvordan ture optages og dvaletilstand aktiveres</string>
<string name="monitoring_settings_descr">Indstil, hvordan ture optages</string>
<string name="osmand_monitoring_plugin_name">Logningstjenester</string>
<string name="local_openstreetmap_act_title">OSM modifikationer</string>
<string name="default_buttons_other_actions">Flere handlinger</string>
@ -1900,7 +1900,7 @@ Afghanistan, Albanien, Algeriet, Andorra, Angola, Anguilla, Antigua og Barbuda,
<string name="osmo_group_by_invite">Tilslut med invitation</string>
<string name="osmo_group_information_desc">" -Alle grupper der oprettes er offentlige! Hvis de skal være anonyme, tilsluttes enheder direkte via sporings-id\'er.\n -Op til 16 personer kan registreres i gruppen.\n -I tilfælde af inaktivitet eller aktivitet af kun 1 person i 2 uger, vil gruppen blive slettet.\n -Du kan begrænse adgangen til gruppen, til kun med invitation, men for at kontrollere gruppen skal man bruge administrationskonsollen.\n -Hvis du har brug at oprette en gruppe, men med andre betingelser, kontakt http://osmo.mobi"</string>
<string name="osmo_auth_error_short">Autorisation fejlede</string>
<string name="osmo_auth_error">"OsMo autorisation fejl: %$s.\nDet kan være at tjenesten midlertidig er nede eller din registrering er udløbet.\nVil du fortsætte med en ny registrering."</string>
<string name="osmo_auth_error">"OsMo autorisation fejl: %$s.\nDet kan være at tjenesten midlertidig er nede eller din registrering er udløbet.\nVil du fortsætte med en ny registrering?"</string>
<string name="rendering_attr_hideBuildings_name">Skjul bygninger</string>
<string name="rendering_attr_hideNonVehicleHighways_name">Skjul gang- og cykelstier</string>
<string name="rendering_attr_hideText_name">Skjul tekst</string>
@ -1940,11 +1940,11 @@ Afghanistan, Albanien, Algeriet, Andorra, Angola, Anguilla, Antigua og Barbuda,
<string name="lang_zh_TW">Kinesisk, traditionelt</string>
<string name="lang_sc">Sardisk</string>
<string name="rendering_attr_subwayMode_name">Metrotilstand</string>
<string name="continue_navigation">Fortsæt navigationen</string>
<string name="pause_navigation">Pause navigationen</string>
<string name="continue_navigation">Fortsæt navigation</string>
<string name="pause_navigation">Pause navigation</string>
<string name="rendering_attr_alpineHiking_name">Alpin vandringsvisning</string>
<string name="rendering_attr_alpineHiking_description">Generer stier efter SAC skala</string>
<string name="rendering_attr_osmcTraces_name">Vandretur symbol overlejring</string>
<string name="rendering_attr_osmcTraces_name">Vandresymbol overlejring</string>
<string name="rendering_attr_osmcTraces_description">Generer stier efter OSMC spor</string>
<string name="osmo_invite">Inviter…</string>
@ -1953,6 +1953,10 @@ Afghanistan, Albanien, Algeriet, Andorra, Angola, Anguilla, Antigua og Barbuda,
<string name="arrival_distance_factor_early">Tidligt</string>
<string name="arrival_distance_factor_normally">Normalt</string>
<string name="arrival_distance_factor_late">Sent</string>
<string name="arrival_distance_factor_at_last">Ved sidste meter</string>
<string name="arrival_distance_factor_at_last">Ved de sidste meter</string>
<string name="rendering_attr_coloredBuildings_name">Farvede bygninger</string>
</resources>
<string name="hide_all_waypoints">Fjern alle</string>
<string name="av_camera_pic_size">Kamera billedstørrelse</string>
<string name="av_camera_pic_size_descr">Vælg billedstørrelse for intern kamera</string>
<string name="announce_nearby_favorites">Meddel om favoritter i nærheden</string>
</resources>

View file

@ -1,5 +1,23 @@
<?xml version='1.0' encoding='utf-8'?>
<resources><string name="route_is_too_long">Die Route ist wahrscheinlich zu lang um vom OsmAnd-Offline-Router berechnet zu werden. Offline-Routing ist bis ungefähr 200 km Abstand zwischen einzelnen Punkten möglich. Bitte einen oder mehrere Zwischenpunkte setzen um die Route berechnen zu können.</string>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="av_camera_pic_size">Kamera-Bildgröße</string>
<string name="av_camera_pic_size_descr">Interne Kamera-Bildgröße auswählen</string>
<string name="announce_nearby_favorites">Nahe gelegene Favoriten ansagen</string>
<string name="rendering_attr_coloredBuildings_name">Gefärbte Gebäude</string>
<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="enable_sleep_mode">Schlafmodus aktivieren</string>
<string name="rendering_attr_alpineHiking_name">Alpinwanderung Ansicht</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_description">Wandersymbole anzeigen (OSMC)</string>
<string name="arrival_distance_factor_early">Früh</string>
<string name="arrival_distance_factor_normally">Normal</string>
<string name="arrival_distance_factor_late">Spät</string>
<string name="arrival_distance_factor_at_last">Auf den letzten Metern</string>
<string name="route_is_too_long">Die Route ist wahrscheinlich zu lang um vom OsmAnd-Offline-Router berechnet zu werden. Offline-Routing ist bis ungefähr 200 km Abstand zwischen einzelnen Punkten möglich. Bitte einen oder mehrere Zwischenpunkte setzen um die Route berechnen zu können.</string>
<string name="auto_zoom_none">Kein Auto-Zoom</string>
<string name="auto_zoom_close">Auf Nahbereich</string>
<string name="auto_zoom_far">Auf Mittelbereich</string>
@ -587,7 +605,7 @@
</string>
<string name="tip_app_mode">Profil verwenden</string>
<string name="tip_app_mode_t_v2">OsmAnd unterstützt verschiedene (individuell anpassbare) Profile für unterschiedliche Einsatzzwecke.
\n\nDas Profil kann mit dem Profilknopf links unten (Bild Auto, Fahrrad, oder Fußgänger) auf dem Kartenbildschirm gewählt werden, oder auch beim Berechnen einer Route (Transportmittel).
\n\nDas Profil kann mit dem Profilknopf links unten (Bild Auto, Fahrrad oder Fußgänger) auf dem Kartenbildschirm gewählt werden, oder auch beim Berechnen einer Route (Transportmittel).
</string>
<string name="tip_search">Suchen</string>
<string name="tip_search_t">Um bestimmte Orte zu finden, können Sie entweder auf der Landkarte über das \'Verwende Position\'-Kontextmenü \'In der Nähe suchen\' aufrufen, oder den Suchbildschirm über \'Menü\' → \'Suche\' erreichen.
@ -1321,10 +1339,10 @@
<string name="tip_recent_changes_1_3_t">Änderungen in 1.3:
\n\t * Holo-Theme (Anpassung des Theme)
</string>
<string name="monitoring_settings">Tracking &amp; Schlaf-Modus</string>
<string name="monitoring_settings_descr">Tracking-Einstellungen und Konfiguration des Hintergrundmodus</string>
<string name="monitoring_settings">Aufzeichnungs-Dienste</string>
<string name="monitoring_settings_descr">Konfiguration der Aufzeichnungs-Dienste</string>
<string name="osmand_monitoring_plugin_description">Aktivieren Sie Tracking und die Navigation im Schlaf-Modus (Bildschirm aus). Das GPS-Gerät wird regelmäßig aktiviert. Zeigt Ihre Einstellungen zum Aufzeichnen Ihrer Wege als lokale GPX-Datei oder online bei einem Web-Service.</string>
<string name="osmand_monitoring_plugin_name">Tracking &amp; Schlaf-Modus</string>
<string name="osmand_monitoring_plugin_name">Aufzeichnungs-Dienste</string>
<string name="choose_osmand_theme_descr">Theme der Anwendung auswählen</string>
<string name="accessibility_options">Eingabehilfen-Einstellungen</string>
<string name="select_address_activity">Adresse auswählen</string>
@ -1460,8 +1478,6 @@
<string name="edit_tilesource_choose_existing">Wähle vorhandene…</string>
<string name="edit_tilesource_name">Name</string>
<string name="maps_define_edit">Definieren/Bearbeiten…</string>
<string name="base_world_map">Basis-Weltkarte</string>
<string name="map_magnifier">Karten-Lupe</string>
<string name="default_and">und</string>
<string name="default_or">oder</string>
<string name="gps_status_eclipsim">GPS Status</string>
@ -1867,7 +1883,7 @@ Afghanistan, Ägypten, Albanien, Algerien, Andorra, Angola, Anguilla, Antigua an
<string name="selected">ausgewählte</string>
<string name="save_as_favorites_points">als Favoriten-Gruppe speichern</string>
<string name="select_destination_and_intermediate_points">Wegpunkte auswählen</string>
<string name="gpx_split_interval">Trennungs-Intervall wählen</string>
<string name="gpx_split_interval">Trennungs-Intervall</string>
<string name="gpx_info_subtracks">"Spurteile: %1$s "</string>
<string name="osmo_edit_color">Darstellungsfarbe</string>
<string name="sort_by_distance">Sortieren nach Entfernung</string>
@ -1893,7 +1909,7 @@ Afghanistan, Ägypten, Albanien, Algerien, Andorra, Angola, Anguilla, Antigua an
<string name="rendering_attr_showSurfaces_name">Straßenoberfläche anzeigen</string>
<string name="rendering_attr_showCycleRoutes_name">Fahrrad-Routen anzeigen</string>
<string name="osmo_auth_error_short">Anmeldung fehlgeschlagen</string>
<string name="osmo_auth_error">Fehler bei der OsMo-Anmeldung: %1$s.\n Möglicherweise ist der Dienst nicht verfügbar, oder deine Anmeldung ist abgelaufen.\n Fortsetzen mit einer neuen Registrierung?</string>
<string name="osmo_auth_error">Fehler bei der OsMo-Anmeldung: %1$s.\n Möglicherweise ist der Dienst nicht verfügbar oder deine Anmeldung ist abgelaufen.\n Fortsetzen mit einer neuen Registrierung?</string>
<string name="osmo_group_by_invite">Auf Einladung beitreten</string>
<string name="osmo_group_information_desc">" - Alle angelegten Gruppen sind öffentlich! Für eine anonyme Verbindung bitte direkt mittels Tracker-ID verbinden.\n - In einer Gruppe können sich bis zu 16 Mitglieder anmelden.\n - Bei Inaktivität oder nur einem einzigen Mitglied über 2 Wochen wird die Gruppe gelöscht.\n - Der Zugang zu einer Gruppe kann beschränkt werden: \"nur auf Einladung\". Zur Steuerung der Gruppe benötigt man Zugang zur Admin-Konsole.\n - Zum Erstellen einer Gruppe mit abweichenden Bedingungen bitte Kontakt aufnehmen unter http://osmo.mobi"</string>
<string name="osmo_group_information">Bitte vor dem Erstellen von Gruppen beachten!</string>
@ -1919,12 +1935,22 @@ Afghanistan, Ägypten, Albanien, Algerien, Andorra, Angola, Anguilla, Antigua an
<string name="lang_he">Hebräisch</string>
<string name="live_monitoring_m_descr">Sende Verfolgungsdaten zu einem festgelegten Internet Dienst, wenn GPX-Aufzeichnung aktiviert ist.</string>
<string name="live_monitoring_m">Online Verfolgung (benötigt GPX)</string>
<string name="live_monitoring_start">Starte online Verfolgung</string>
<string name="live_monitoring_start">Starte Online-Verfolgung</string>
<string name="live_monitoring_stop">Stoppe Online-Verfolgung</string>
<string name="gpx_monitoring_start">Starte GPX-Aufzeichnung</string>
<string name="gpx_monitoring_stop">Stoppe GPX-Aufzeichnung</string>
<string name="gpx_start_new_segment">Starte neues Segment</string>
<string name="lang_sc">Sardinisch</string>
<string name="rendering_attr_subwayMode_name">U-Bahn-Modus</string>
<string name="gps_wake_up_timer">GPS Aufwach Intervall</string>
<string name="gps_wake_up_timer">GPS Aufwach-Intervall</string>
<string name="sleep_mode_stop_dialog">GPS aktiv lassen?</string>
</resources>
<string name="osmo_invite">Einladen ...</string>
<string name="osmo_leave_confirmation_msg">Die Gruppe %1$s verlassen?</string>
<string name="forward">Weiter</string>
<string name="osmo_cancel_moving_target">Bewegliches Ziel abbrechen</string>
<string name="osmo_set_moving_target">Als bewegliches Ziel auswählen</string>
<string name="av_camera_pic_size">Bildgröße der Kamera</string>
<string name="av_camera_pic_size_descr">interne Größe der Kamerabilder bestimmen</string>
<string name="hide_all_waypoints">alle löschen</string>
<string name="announce_nearby_favorites">Ansage von Favoriten in den Nähe</string>
</resources>

View file

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version='1.0' encoding='utf-8'?>
<resources><string name="btn_add_tag">Προσθήκη Ετικέτας</string>
<string name="btn_advanced_mode">Λειτουργία για προχωρημένους…</string>
<string name="poi_filter_parking">Στάθμευση</string>
@ -1262,7 +1262,7 @@
<string name="street_name">Οδός</string>
<string name="hno">Αριθμός σπιτιού</string>
<string name="monitoring_settings">Υπηρεσίες καταγραφής</string>
<string name="monitoring_settings_descr">Διαμορφώστε πως θα καταγράφονται τα ταξίδια και ενεργοποίηση της κατάστασης νάρκης</string>
<string name="monitoring_settings_descr">Διαμορφώστε πως θα καταγράφονται τα ταξίδια</string>
<string name="osmand_monitoring_plugin_name">Υπηρεσίες καταγραφής</string>
<string name="choose_osmand_theme_descr">Επιλογή θέματος εφαρμογής</string>
<string name="choose_osmand_theme">Θέμα Εφαρμογής</string>
@ -1615,4 +1615,33 @@
<string name="rendering_attr_showAccess_name">Εμφάνιση του είδους πρόσβασης</string>
<string name="rendering_attr_showSurfaceGrade_name">Εμφάνιση της ποιότητας των δρόμων</string>
<string name="osmo_auth_error_short">Αποτυχία εξουσιοδότησης</string>
</resources>
<string name="rendering_attr_coloredBuildings_name">Έγχρωμα κτίρια</string>
<string name="osmo_invite">Προσκαλέστε…</string>
<string name="osmo_leave_confirmation_msg">Θέλετε να φύγετε από την ομάδα %1$s?</string>
<string name="continue_navigation">Συνέχιση της Πλοήγησης</string>
<string name="pause_navigation">Παύση Πλοήγησης</string>
<string name="keep_navigation_service">Διατήρηση</string>
<string name="enable_sleep_mode">Ενεργοποίηση κατάστασης νάρκης</string>
<string name="gps_wake_up_timer">Διάστημα αφύπνισης GPS</string>
<string name="rendering_attr_hideNonVehicleHighways_name">Απόκρυψη μη αμαξιτών δρόμων</string>
<string name="rendering_attr_showSurfaces_name">Εμφάνιση οδοστρωμάτων</string>
<string name="osmo_group_by_invite">Είσοδος με πρόσκληση</string>
<string name="osmo_group_information">Παρακαλώ διαβάστε πριν τη δημιουργία μιας ομάδας!</string>
<string name="no_index_file_to_download">Τίποτα προς λήψη, ελέγξτε τη σύνδεση στο internet.</string>
<string name="osmo_mode_restart">Επανεκκίνηση της συνόδου OsMo</string>
<string name="osmo_mode_off">Εκκίνηση συνόδου OsMo</string>
<string name="osmo_settings_debug">Πληροφορίες αποσφαλμάτωσης</string>
<string name="lang_al">Αλβανικά</string>
<string name="lang_ar">Αραβικά</string>
<string name="lang_fa">Περσικά</string>
<string name="lang_sr">Σερβικά</string>
<string name="lang_zh_CN">Απλοποιημένα Κινέζικα</string>
<string name="lang_zh_TW">Παραδοσιακά κινέζικα</string>
<string name="arrival_distance_factor_early">Νωρίς</string>
<string name="arrival_distance_factor_normally">Κανονικά</string>
<string name="arrival_distance_factor_late">Αργά</string>
<string name="arrival_distance_factor_at_last">Στα τελευταία μέτρα</string>
<string name="keep_informing_descr">Επανάληψη οδηγιών πλοήγησης σε τακτά χρονικά διαστήματα</string>
<string name="hide_all_waypoints">Αφαίρεση όλων</string>
<string name="announce_nearby_favorites">Ανακοίνωση κοντινών αγαπημένων</string>
</resources>

View file

@ -1285,7 +1285,7 @@ La lista de países incluídos (¡básicamente todo el mundo!): Afganistán, Alb
<string name="tip_recent_changes_1_3_t">"Cambio en 1.5:\n\t* Tema Holo (personalización de tema) "
</string>
<string name="monitoring_settings">Servicios de registro</string>
<string name="monitoring_settings_descr">Configura la forma de registrar los recorridos y activar el modo reposo</string>
<string name="monitoring_settings_descr">Configura la forma de registrar los recorridos</string>
<string name="osmand_monitoring_plugin_description">Activa el seguimiento y la navegación en modo suspensión (pantalla apagada) despertando periódicamente el dispositivo GPS. Muestra opciones que permiten registrar tus recorridos en archivos GPX locales o en línea mediante un servicio web.</string>
<string name="osmand_monitoring_plugin_name">Servicios de registro</string>
<string name="choose_osmand_theme_descr">Elije el tema, el aspecto, de la aplicación</string>
@ -1805,16 +1805,16 @@ Afganistán, Albania, Alemania, Andorra, Angola, Anguila, Antigua y Barbuda, Ant
<string name="keep_navigation_service">Mantener</string>
<string name="stop_navigation_service">Parar</string>
<string name="enable_sleep_mode">Habilita modo reposo</string>
<string name="gps_wake_up_timer">Intervalo despertar GPS</string>
<string name="gps_wake_up_timer">Intervalo para despertar GPS</string>
<string name="sleep_mode_stop_dialog">¿Mantener el GPS encendido?</string>
<string name="map_preferred_locale_descr">Lenguaje preferido para las etiquetas en el mapa (si no está disponible se cambiará a Ingles o a los nombres locales)</string>
<string name="map_preferred_locale">Lenguaje preferido del mapa</string>
<string name="map_preferred_locale_descr">Idioma preferido para las etiquetas en el mapa (si no se indica se cambiará a inglés o a nombres locales)</string>
<string name="map_preferred_locale">Idioma preferido del mapa</string>
<string name="local_map_names">Nombres locales</string>
<string name="lang_sw">Swahili</string>
<string name="lang_he">Hebreo</string>
<string name="forward">Siguiente</string>
<string name="home">Casa</string>
<string name="live_monitoring_m_descr">Enviar seguimiento a un servicio web específico si la grabación GPS está habilitada.</string>
<string name="live_monitoring_m_descr">Enviar seguimiento a un servicio web específico si la grabación GPX está habilitada.</string>
<string name="live_monitoring_m">Seguimiento online (requiere GPX)</string>
<string name="live_monitoring_start">Iniciar seguimiento online</string>
<string name="live_monitoring_stop">Parar seguimiento online</string>
@ -1828,7 +1828,7 @@ Afganistán, Albania, Alemania, Andorra, Angola, Anguila, Antigua y Barbuda, Ant
<string name="lang_sr">Serbio</string>
<string name="lang_zh_CN">Chino Simplificado</string>
<string name="lang_zh_TW">Chino Tradicional</string>
<string name="rendering_attr_subwayMode_name">Modo subterráneo</string>
<string name="rendering_attr_subwayMode_name">Modo Metro</string>
<string name="continue_navigation">Continuar Navegación</string>
<string name="pause_navigation">Pausar Navegación</string>
<string name="rendering_attr_alpineHiking_name">Vista senderismo Alpino</string>
@ -1844,4 +1844,8 @@ Afganistán, Albania, Alemania, Andorra, Angola, Anguila, Antigua y Barbuda, Ant
<string name="arrival_distance_factor_late">Tarde</string>
<string name="arrival_distance_factor_at_last">En los últimos metros</string>
<string name="rendering_attr_coloredBuildings_name">Edificios de colores</string>
</resources>
<string name="hide_all_waypoints">Quitar todos</string>
<string name="av_camera_pic_size">Tamaño de foto</string>
<string name="av_camera_pic_size_descr">Selecciona el tamaño interno de la foto</string>
<string name="announce_nearby_favorites">Anunciar favoritos cercanos</string>
</resources>

View file

@ -62,7 +62,7 @@
<string name="routing_settings">Navigation</string>
<string name="routing_settings_descr">Configurer les options de navigation</string>
<string name="global_settings">Paramètres globaux</string>
<string name="index_settings">Données hors-ligne</string>
<string name="index_settings">Gérer les données hors-ligne</string>
<string name="index_settings_descr">Obtenir ou mettre à jour les données pour l\'utilisation hors-ligne</string>
<string name="general_settings">Général</string>
<string name="general_settings_descr">Configurer divers paramètres d\'ordre général</string>
@ -75,7 +75,7 @@
<string name="osmand_service_descr">Permet d\'utiliser OsmAnd pendant que l\'écran est désactivé</string>
<string name="tip_rotation_switching">Orientation de la carte</string>
<string name="switch_to_raster_map_to_see">Vous n\'avez pas actuellement de carte vectorielle pour cet emplacement.\n\t\n\tVous pouvez en télécharger dans \'Paramètres\' → \'Données hors-ligne\', ou basculer sur les cartes en ligne via \'Paramètres\' → \'Sources de carte\'.</string>
<string name="switch_to_raster_map_to_see">Vous n\'avez pas actuellement de carte vectorielle pour cet emplacement.\n\t\n\tVous pouvez en télécharger dans \'Paramètres\' → \'Données hors-ligne\', ou basculer sur les cartes en ligne via \'Paramètres\' → \'Sources de carte\' en activant le greffon des cartes en ligne.</string>
<string name="binary_map_download_success">Téléchargement réussi.\n\t\n\tPour l\'utiliser, allez dans \'Menu\' → \'Couches\' → \'Source de la carte…\' → \'Cartes vectorielles OSM\'.</string>
<string name="tip_day_night_mode">Mode jour/nuit</string>
@ -192,7 +192,7 @@
<string name="local_index_items_restored">%1$d sur %2$d éléments restaurés.</string>
<string name="local_index_no_items_to_do">Pas d\'éléments à %1$s</string>
<string name="local_index_action_do">Vous allez %1$s %2$s éléments. Continuer ?</string>
<string name="local_index_descr_title">Gestionnaire de données hors-ligne</string>
<string name="local_index_descr_title">Gérer les données hors-ligne</string>
<string name="local_index_mi_restore">Restaurer</string>
<string name="local_index_mi_backup">Sauvegarder</string>
<string name="local_index_mi_delete">Supprimer</string>
@ -277,8 +277,8 @@
\nSélectionnez alors le mode de partage parmi : courriel, SMS, ou copie vers le presse-papier.
</string>
<string name="tip_favorites">Lieux favoris</string>
<string name="tip_favorites_t">"\tLes points utilisés fréquemment peuvent être enregistrés en tant que favoris.
\n\tPour créer un favori, allez dans le menu contextuel de la carte, sélectionnez l\'option \'Ajouter aux favoris\' et saisissez un nom adapté. Après enregistrement, ce lieu est facilement accessible dans \'Menu\' → \'Favoris\'.
<string name="tip_favorites_t">"Les points utilisés fréquemment peuvent être enregistrés en tant que favoris.
\n\tPour créer un favori, allez dans le menu contextuel de la carte, sélectionnez l\'option \'Ajouter aux favoris\' et saisissez un nom adapté. Après enregistrement, ce lieu est facilement accessible dans \'Menu\' → \'Mes lieux\'.
\n\tUn appui court sur un favori dans le menu \'Favoris\' permet de créer un itinéraire pour s\'y rendre.
\n\tPour afficher tous les favoris sur la carte, activez la couche \'Favoris\' dans \'Menu\' → \'Couches\'. "</string>
<string name="create_poi_link_to_osm_doc"> <u>OSM en ligne</u> classification des cartes en images</string>
@ -1108,7 +1108,7 @@
<string name="osmodroid_plugin_description">Le greffon OsMoDroid est une extension OsmAnd pour l\'application OsMoDroid qui permet la création de traces. Pour plus d\'information à propos du service, consulter le site http://esya.ru.</string>
<string name="osmodroid_plugin_name">Greffon OsMoDroid</string>
<string name="index_srtm_ele">Courbes de niveau</string>
<string name="srtm_plugin_description">Ce greffon permet de télécharger les courbes de niveaux pour une région spécifique (\'Paramètres\' → \'Données hors-ligne\' → \'Télécharger des données hors-ligne\', puis sélectionner \'Courbes de niveau\' dans le menu), et de les utiliser avec les cartes hors-ligne.</string>
<string name="srtm_plugin_description">Ce greffon permet de télécharger les courbes de niveaux et les reliefs de montagne pour une région spécifique (\'Paramètres\' → \'Données hors-ligne\' → \'Télécharger des données hors-ligne\', puis sélectionner le type de carte désiré), et de les utiliser avec les cartes hors-ligne.</string>
<string name="srtm_plugin_name">Courbes de niveau</string>
<string name="download_select_map_types">Autres cartes</string>
<string name="download_srtm_maps">Courbes de niveau</string>
@ -1217,10 +1217,10 @@
<string name="hno">Numéro de bâtiment</string>
<string name="tip_recent_changes_1_3_t">"Changements en 1.5:\n\t* Thème Holo (personnalisation de thème) "
</string>
<string name="monitoring_settings">Services de suivi et service d\'arrière-plan</string>
<string name="monitoring_settings_descr">Configurer l\'enregistrement des traces et le service d\'arrière-plan</string>
<string name="monitoring_settings">Services de suivi</string>
<string name="monitoring_settings_descr">Configurer l\'enregistrement des traces</string>
<string name="osmand_monitoring_plugin_description">Ce greffon permet d\'activer le suivi et la navigation en arrière-plan (écran éteint) en réveillant périodiquement le dispositif GPS. Affiche les paramètres facilitant l\'enregistrement de vos traces vers des fichiers GPX locaux, ou en ligne via un service Web.</string>
<string name="osmand_monitoring_plugin_name">Services de suivi et service d\'arrière-plan</string>
<string name="osmand_monitoring_plugin_name">Services de suivi</string>
<string name="choose_osmand_theme_descr">Choisir le thème de l\'application</string>
<string name="choose_osmand_theme">Thème de l\'application</string>
<string name="accessibility_options">Options d\'accessibilité</string>
@ -1474,9 +1474,9 @@ Afghanistan, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua-et
<string name="disable_complex_routing">Désactiver le routage complexe</string>
<string name="guidance_preferences_descr">Paramètres de navigation</string>
<string name="routing_preferences_descr">Paramètres d\'itinéraire</string>
<string name="android_19_location_disabled">Depuis Android KitKat (4.4), vous ne pouvez plus télécharger et mettre à jour la carte dans l\'ancien emplacement de sauvegarde. Voulez-vous changer pour en autoriser un nouveau et y copier l\'ensemble des fichiers ?
\n Note : Les anciens fichiers ne seront pas touchés
\n Note : Il ne sera pas possible de partager des fichiers entre OsmAnd et OsmAnd+. </string>
<string name="android_19_location_disabled">"Depuis Android KitKat (4.4), vous ne pouvez plus télécharger et mettre à jour la carte dans l\'ancien emplacement de sauvegarde (%s). Voulez-vous changer pour en autoriser un nouveau et y copier l\'ensemble des fichiers ?
\n Note : Les anciens fichiers ne seront pas touchés
\n Note : Il ne sera pas possible de partager des fichiers entre OsmAnd et OsmAnd+. "</string>
<string name="application_dir_change_warning2">OsmAnd peut essayer de déplacer les données vers la nouvelle destinaion. Voulez-vous essayer ?</string>
<string name="copying_osmand_one_file_descr">Copie des fichiers (%s) vers la nouvelle destination...</string>
<string name="copying_osmand_files_descr">Copie des fichiers OsmAnd vers la nouvelle destination (%s)</string>
@ -1486,7 +1486,7 @@ Afghanistan, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua-et
<string name="routing_attr_prefer_motorway_name">Privilégier les autoroutes</string>
<string name="routing_attr_prefer_motorway_description">Privilégier les autoroutes</string>
<string name="routing_attr_short_way_name">Itinéraire le plus court</string>
<string name="routing_attr_short_way_description">Utiliser l\'itinéraire le plus court</string>
<string name="routing_attr_short_way_description">Emprunter l\'itinéraire le plus court</string>
<string name="routing_attr_avoid_toll_name">Éviter les péages</string>
<string name="routing_attr_avoid_toll_description">Éviter les péages</string>
<string name="routing_attr_avoid_unpaved_name">Éviter les voies non revêtues</string>
@ -1579,11 +1579,7 @@ Afghanistan, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua-et
<string name="share_route_subject">Itinéraire partagé via OsmAnd</string>
<string name="osmo_settings_uuid">Identifiant unique de l\'appareil</string>
<string name="osmo_settings_descr">Configurer les paramètres de suivi et définir son canal de suivi personnel</string>
<string name="osmo_plugin_description">OpenStreetMap-Monitoring - Suivi en temps réel. Ce système offre la possibilité de suivre d\'autres appareils ou d\'être suivi.
Créer des groupes anonymes, partager sa position et communiquer avec d\'autres. Il y a différents paramètres pour le suivi de la session courante ou pour un suivi permanent.
Les groupes anonymes sont limités à quelques jours et leurs fonctionnalités restreintes, ainsi, pas de contrôle à distance et pas d\'administrateur de groupe.
Des groupes totalement fonctionnels peuvent être créés via le site web et seuls les utilisateurs enregistrés y ont accès.
Pour en savoir plus: http://osmo.mobi</string>
<string name="osmo_plugin_description">"Suivi avancé OpenStreetMap en temps réel, voir http://osmo.mobi. Ce système offre la possibilité de suivre d\'autres appareils ou d\'être suivi. Créer des groupes anonymes, partager sa position et communiquer avec d\'autres. Il y a différents paramètres pour le suivi de la session courante ou pour un suivi permanent. Les groupes anonymes sont limités à quelques jours et leurs fonctionnalités restreintes, ainsi, pas de contrôle à distance et pas d\'administrateur de groupe. Des groupes totalement fonctionnels peuvent être créés via le site web et seuls les utilisateurs enregistrés y ont accès. "</string>
<string name="osmo_plugin_name">OsMo (Suivi en temps réel)</string>
<string name="osmo_settings">OSMo OpenStreetMap Monitoring (beta)</string>
@ -1606,7 +1602,7 @@ Afghanistan, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua-et
<string name="keep_informing">Répéter les instructions de navigation</string>
<string name="navigation_intent_invalid">Format invalide : %s</string>
<string name="arrival_distance">Annonce de l\'arrivée</string>
<string name="arrival_distance_descr">Choisir à quel moment est annoncée l\'arrivée à destination</string>
<string name="arrival_distance_descr">À quel moment voulez-vous annoncer l\'arrivée à destination ?</string>
<string name="share_fav">Partager</string>
<string name="share_fav_subject">Favoris partagés via OsmAnd</string>
<string name="use_points_as_intermediates">Calculer un intinéraire entre des points</string>
@ -1621,7 +1617,7 @@ Afghanistan, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua-et
<string name="hours_ago">heures avant</string>
<string name="minutes_ago">minutes avant</string>
<string name="seconds_ago">secondes avant</string>
<string name="osmo_connect_to_device_name">Nom de l\'appareil</string>
<string name="osmo_connect_to_device_name">Nom de l\'utilisateur</string>
<string name="osmo_connect_to_device">Lier à l\'appareil</string>
@ -1727,7 +1723,7 @@ Afghanistan, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua-et
<string name="route_descr_destination">Destination</string>
<string name="show_zoom_buttons_navigation_descr">Afficher les boutons de zoom pendant la navigation</string>
<string name="show_zoom_buttons_navigation">Afficher les boutons de zoom</string>
<string name="visible_element">Visible</string>
<string name="visible_element">Voir sur la carte</string>
<string name="sort_by_distance">Trier par distance</string>
<string name="sort_by_name">Trier par nom</string>
<string name="no_index_file_to_download">Rien à télécharger, veuillez vérifier votre connexion Internet.</string>
@ -1744,7 +1740,7 @@ Afghanistan, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua-et
<string name="osmo_gpx_track_downloaded">Trace OsMo %1$s téléchargée.</string>
<string name="osmo_group_by_invite">Admission sur invitation</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 temporairement hors-service ou votre inscription a expiré.\n Voulez-vous procéder à 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="stop_navigation_service">Stop</string>
<string name="enable_sleep_mode">Activer le mode veille</string>
@ -1794,4 +1790,13 @@ Afghanistan, Albanie, Algérie, Allemagne, Andorre, Angola, Anguilla, Antigua-et
<string name="rendering_attr_osmcTraces_name">Surcouche de symboles de rando</string>
<string name="rendering_attr_osmcTraces_description">Afficher les chemins selon les traces OSMC</string>
</resources>
<string name="rendering_attr_coloredBuildings_name">Bâtiments en couleur</string>
<string name="arrival_distance_factor_early">Tôt</string>
<string name="arrival_distance_factor_normally">Normal</string>
<string name="arrival_distance_factor_late">Tard</string>
<string name="arrival_distance_factor_at_last">Dans les derniers mètres</string>
<string name="av_camera_pic_size">Dimensions de la photo</string>
<string name="av_camera_pic_size_descr">Sélectionner les dimensions de la photo</string>
<string name="hide_all_waypoints">Supprimer tout</string>
<string name="announce_nearby_favorites">Annoncer les favoris à proximité</string>
</resources>

View file

@ -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_7_2_t">"A 0.7.2 kiadás változásai:
\n\t- Natív renderelő minden eszközre
\n\t- Offline POI szerkesztés
@ -1230,7 +1230,7 @@
<string name="street_name">Utca</string>
<string name="hno">Házszám</string>
<string name="monitoring_settings">Rögzítési szolgáltatások</string>
<string name="monitoring_settings_descr">Az útvonalak felvételének és az alvó állapotú használat beállításai</string>
<string name="monitoring_settings_descr">Útvonalak felvételének beállításai</string>
<string name="osmand_monitoring_plugin_description">Útvonalrögzítés és navigáció alvó (kikapcsolt képernyős) módban az eszköz GPS vevőjének periodikus felébresztésével. Megjeleníti azokat a beállításokat, amik megkönnyítik az útvonal rögzítését GPX fájlba, vagy online webszolgáltatásra.</string>
<string name="osmand_monitoring_plugin_name">Rögzítési szolgáltatások</string>
<string name="choose_osmand_theme_descr">Alkalmazástéma kiválasztása</string>
@ -1690,4 +1690,26 @@
<string name="osmo_auth_error_short">Azonosítás sikertelen</string>
<string name="home">Kezdőlap</string>
<string name="lang_fa">perzsa</string>
</resources>
<string name="rendering_attr_coloredBuildings_name">Színezett épületek</string>
<string name="osmo_invite">Meghívás…</string>
<string name="continue_navigation">Navigáció folytatása</string>
<string name="pause_navigation">Navigáció szüneteltetése</string>
<string name="rendering_attr_subwayMode_name">Metró nézet</string>
<string name="lang_al">albán</string>
<string name="lang_ar">arab</string>
<string name="lang_sc">szárd</string>
<string name="lang_sr">szerb</string>
<string name="lang_zh_CN">egyszerűsített kínai</string>
<string name="lang_zh_TW">hagyományos kínai</string>
<string name="rendering_attr_alpineHiking_name">Alpesi túra nézet</string>
<string name="rendering_attr_alpineHiking_description">Ösvények SAC nehézségi skála szerint</string>
<string name="rendering_attr_osmcTraces_name">Turistajelzések</string>
<string name="arrival_distance_factor_early">Korán</string>
<string name="arrival_distance_factor_normally">Normál</string>
<string name="arrival_distance_factor_late">Későn</string>
<string name="arrival_distance_factor_at_last">Utolsó métereken</string>
<string name="av_camera_pic_size">Kamera képméret</string>
<string name="av_camera_pic_size_descr">A beépített kamera képmérete</string>
<string name="hide_all_waypoints">Összes eltávolítása</string>
<string name="announce_nearby_favorites">Közeli kedvencek bemondása</string>
</resources>

View file

@ -1949,4 +1949,13 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
<string name="rendering_attr_osmcTraces_name">Strato simboli escursionistici</string>
<string name="rendering_attr_osmcTraces_description">Disegna i sentieri in base alle tracce OSMC</string>
</resources>
<string name="rendering_attr_coloredBuildings_name">Edifici colorati</string>
<string name="arrival_distance_factor_early">Presto</string>
<string name="arrival_distance_factor_normally">Normale</string>
<string name="arrival_distance_factor_late">Tardi</string>
<string name="arrival_distance_factor_at_last">Agli ultimi metri</string>
<string name="hide_all_waypoints">Cancellali tutti</string>
<string name="av_camera_pic_size">Dimensione foto</string>
<string name="av_camera_pic_size_descr">Seleziona la dimensione delle foto scattate</string>
<string name="announce_nearby_favorites">Annuncia i preferiti nelle vicinanze</string>
</resources>

View file

@ -1189,13 +1189,13 @@ POIの更新は利用できません</string>
<string name="default_or">または</string>
<string name="route_is_too_long">ルートがOsmAndオフラインルート検索によって検索されるには長すぎる可能性があります。
平均的なオフラインルート検索では、200km程度まで検索可能です。ルートを検索する場合はひとつ以上の経由点を追加して下さい。</string>
<string name="auto_zoom_none">オートズームオフ</string>
<string name="auto_zoom_close">近距離</string>
<string name="auto_zoom_far">距離</string>
<string name="auto_zoom_farthest">遠距離</string>
<string name="auto_zoom_none">自動ズームしない</string>
<string name="auto_zoom_close">ズーム 大</string>
<string name="auto_zoom_far">ズーム </string>
<string name="auto_zoom_farthest">ズーム 小</string>
<string name="av_photo_play_sound">写真撮影時に撮影音を鳴らします</string>
<string name="av_camera_focus_infinity">フォーカスは無限遠にセットされます</string>
<string name="av_camera_focus_macro">マクロ(近距離)フォーカスモード</string>
<string name="av_camera_focus_macro">マクロ(近距離)フォーカスモード</string>
<string name="osmand_srtm_long_description_1000_chars">このプラグインはOsmAndオフラインマップ上に等高線を表示する機能を提供します。このグローバルデータ北緯70°から南緯70°の間はSRTMスペースシャトル立体地形データとASTER資源探査用将来型センサ、NASAの地球観測システムである、テラ上のオンボードイメージング機器をベースにしたものです。
ASTERはNASAと日本の経済産業省METI、そして宇宙システム開発利用推進機構J-spacesystemsの共同作業によるものです。</string>
<string name="audionotes_location_not_defined">ノートに関連付ける場所が未定義です。 指定された場所にメモをとるためには\"場所を利用 …\"を利用します</string>

View file

@ -36,7 +36,7 @@
<string name="accessibility_mode_descr">접근성(내게 필요한 옵션) 기능을 켭니다</string>
<string name="accessibility_on">접근성 켜기</string>
<string name="accessibility_off">접근성 끄기</string>
<string name="accessibility_default">전체 시스템 설정에 따름</string>
<string name="accessibility_default">글로벌 시스템 설정에 따름</string>
<string name="backToMenu">메뉴로 돌아감</string>
<string name="zoomOut">줌아웃(축소)</string>
@ -92,7 +92,7 @@
<string name="live_monitoring_interval">온라인 트래킹 시간 간격</string>
<string name="live_monitoring_url_descr">온라인 트래킹할 웹 주소를 지정합니다. 매개변수 형식 : 위도={0}, 경도={1}, 시간={2}, hdop={3}, 고도={4}, 속도={5}, bearing={6}</string>
<string name="live_monitoring_url">온라인 트래킹 웹 주소</string>
<string name="gpx_monitoring_disabled_warn">\'Log track to GPX 파일\' 설정을 활성화하세요.</string>
<string name="gpx_monitoring_disabled_warn">\'트랙을 GPX 파일에 기록\' 설정을 활성화 하세요.</string>
<string name="show_current_gpx_title">현재의 GPX트랙을 보여줍니다</string>
<string name="tip_recent_changes_0_7_0_t">0.7.0 버전에 대한 변경 사항들 :
\n\t- 오프라인 위키피디아 기사 포함 데이터
@ -124,17 +124,17 @@
<string name="fav_export_confirmation">이전에 익스포트한 즐겨찾기에 대한 파일이 이미 존재합니다. 이 파일을 대체하시겠습니까?</string>
<string name="profile_settings">특정 설정 프로필</string>
<string name="settings_preset">기본 프로필</string>
<string name="settings_preset_descr">각 프로필마다 지도보기 와 길안내 설정을 기억합니다. 여기에 기본 프로필을 설정합니다.</string>
<string name="settings_preset_descr">각 프로필마다 지도보기 와 경로탐색 설정을 기억합니다. 여기에 기본 프로필을 설정합니다.</string>
<string name="routing_settings">길안내</string>
<string name="routing_settings_descr">길안내를 위한 옵션을 지정합니다</string>
<string name="global_settings">전체 설정</string>
<string name="routing_settings">경로탐색</string>
<string name="routing_settings_descr">경로탐색을 위한 옵션을 지정합니다</string>
<string name="global_settings">글로벌 설정</string>
<string name="index_settings">지도 관리</string>
<string name="index_settings_descr">기기에 저장된 오프라인 지도를 다운로드하고 관리합니다</string>
<string name="general_settings">일반</string>
<string name="general_settings_descr">앱에 대한 디스플레이와 일반 설정을 구성합니다</string>
<string name="global_app_settings">전체 앱 설정</string>
<string name="global_app_settings">글로벌 앱 설정</string>
<string name="user_name">OSM 사용자 이름</string>
<string name="user_name_descr">http://openstreetmap.org 에 데이터 제출을 위해 필요합니다</string>
<string name="user_password">OSM 패스워드</string>
@ -226,7 +226,7 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
</string>
<string name="file_can_not_be_renamed">파일 이름을 바꿀 수 없습니다.</string>
<string name="file_with_name_already_exists">같은 이름을 가진 파일이 이미 존재합니다.</string>
<string name="gpx_navigation">GPX 루트</string>
<string name="gpx_navigation">GPX 경로</string>
<string name="poi_query_by_name_matches_categories">이름으로 검색한 POI에 해당하는 몇몇 카테고리를 찾았습니다 :</string>
<string name="data_to_search_poi_not_available">검색한 POI에 대한 로컬 데이터가 존재하지 않습니다.</string>
<string name="poi_filter_by_name">이름으로 검색</string>
@ -262,8 +262,8 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
\n\t- TTS 엔진 개선 (정확한 거리 안내, 마일 가능)
\n\t- 버그 픽스
</string>
<string name="save_route_dialog_title">루트를 GPX 트랙으로 저장</string>
<string name="route_successfully_saved_at">루트가 \'%1$s\'로 성공적으로 저장되었습니다.</string>
<string name="save_route_dialog_title">경로를 GPX트랙으로 저장</string>
<string name="route_successfully_saved_at">경로가 \'%1$s\'로 성공적으로 저장되었습니다.</string>
<string name="filename_input">파일 이름 : </string>
<string name="file_with_name_already_exist">같은 이름의 파일이 이미 존재합니다.</string>
<string name="default_buttons_save">저장</string>
@ -335,7 +335,7 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
\n\t- UI 개선 및 큰 버그 수정 "</string>
<string name="voice_not_use">사용하지 않음</string>
<string name="installing_new_resources">새로운 데이터 풀기(Unpacking)…</string>
<string name="internet_connection_required_for_online_route">온라인 길안내 서비스가 선택되었지만 인터넷 연결이 되지 않습니다.</string>
<string name="internet_connection_required_for_online_route">온라인 경로탐색 서비스가 선택되었지만 인터넷 연결이 되지 않습니다.</string>
<string name="tts_language_not_supported_title">지원되지 않은 언어</string>
<string name="tts_language_not_supported">선택한 언어는 설치된 안드로이드 TTS (text-to-speech) 엔진이 지원되지 않습니다. 다른 TTS 엔진을 찾기 위해 구글마켓으로 가시겠습니까? 아니면 미리설정된 TTS 언어가 사용될 것입니다.</string>
<string name="tts_missing_language_data_title">누락된 데이터</string>
@ -343,7 +343,7 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
<string name="gpx_option_reverse_route">GPX 길안내 반대로 가기</string>
<string name="gpx_option_destination_point">현재 목적지 사용</string>
<string name="gpx_option_from_start_point">전체 GPX트랙을 따라 이동</string>
<string name="gpx_option_from_start_point">전체 경로를 따라 이동</string>
<string name="switch_to_vector_map_to_see">이 위치에 대해 존재하는 오프라인 벡터 맵. \n\t\n\t사용하려면 \'메뉴\'-&gt;\'지도레이어\'-&gt;\'맵 소스…\'-&gt;\'오프라인 벡터 맵\' 을 활성화합니다.</string>
<string name="choose_audio_stream">음성 안내 출력</string>
@ -421,7 +421,7 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
<string name="tip_app_mode">프로필 사용하기</string>
<string name="tip_navigation">길안내</string>
<string name="tip_navigation">경로탐색</string>
<string name="tip_navigation_t">"To get directions to a place, either directly long-click on it on the map, (then tap its description marker and select \'Directions to\'), or select \'Directions\' after tapping any entry in a search results list or favorite list. 길안내를 시작하기 전에 목적지를 선택하여야 합니다. 그런 다음 맵 상에서 \'메뉴\' -&gt; \'방향\' 을 누르고 네비게이션 종류를 선택합니다.
\n\nThe destination is marked as an orange target flag marker on the map and OsmAnd displays the distance to it and the direction to it (orange triangle).
\n\nYou may chose either \'Start navigation\', which means that OsmAnd would live-guide you, give you voice instructions (if enabled), etc. Or you can select \'Display route\', resulting in static route without any live-guideance or adjustments as you move.
@ -429,15 +429,13 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
\n\nIf you use \'Directions from\' together with \'Start navigation\', OsmAnd will switch to your actual position as soon as it is found (so this can be used to jump-start routing before the position is found), while \'Directions from\' in combination with \'Display route\' just shows you the route from any arbitrary point you had selected without subsequent updates. "</string>
<string name="tip_search">검색 중</string>
<string name="tip_map_context_menu">[위치 사용] 메뉴</string>
<string name="tip_map_context_menu">\"위치 사용\" 메뉴</string>
<string name="tip_map_context_menu_t">"The \'Use location\' context menu contains all actions referring to a point (location).
\n\nIt is available by long-pressing any point on the map (then tapping its marker), or by pressing the trackball button, or by selecting \'Menu\' → \'Use location\' (the last two ways take the map center as reference).
\n\nA marker box can be hidden again by long-clicking on it. "</string>
<string name="tip_initial">팁과 트릭</string>
<string name="tip_initial_t">OsmAnd는 많은 기능을 가진 네비게이션 앱입니다.
기본적인 소개로서, 몇 가지 유용한 팁과 트릭을 주 메뉴 화면에 링크합니다.
</string>
<string name="tip_initial_t">"OsmAnd는 많은 기능을 가진 네비게이션 앱입니다. 기본적인 소개로서, 몇 가지 유용한 팁과 트릭을 메인 메뉴 화면에 링크합니다. "</string>
<string name="next_button">다음</string>
<string name="previous_button">이전</string>
@ -498,9 +496,9 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
<string name="version_index_is_big_for_memory">인덱스 \'\'{0}\'\' 가 메모리에 적합하지 않습니다</string>
<string name="version_index_is_not_supported">인덱스 \'\'{0}\'\' 버전은 지원되지 않습니다</string>
<string name="use_osmand_routing_service">OsmAnd 길안내&gt;20km</string>
<string name="use_osmand_routing_service_descr">20km 이상 긴 거리를 위해 CloudMade 대신에 OsmAnd 오프라인 길안내 (실험적)를 사용합니다</string>
<string name="osmand_routing_experimental">OsmAnd 오프라인 길안내는 실험적인 기능이며 20 km 이상의 거리에서는 동작하지 않습니다.\n\n길안내 서비스는 일시적으로 온라인 CloudMade로 변경합니다.</string>
<string name="use_osmand_routing_service">OsmAnd 경로탐색&gt;20km</string>
<string name="use_osmand_routing_service_descr">20km 이상 긴 거리를 위해 CloudMade 대신에 OsmAnd 오프라인 경로탐색 (실험적)을 사용합니다</string>
<string name="osmand_routing_experimental">OsmAnd 오프라인 경로탐색은 실험적인 기능이며 20 km 이상의 거리에서는 동작하지 않습니다.\n\n경로탐색 서비스는 일시적으로 온라인 CloudMade로 변경합니다.</string>
<string name="specified_dir_doesnt_exist">지정한 폴더를 찾을 수 없습니다.</string>
<string name="application_dir">저장 폴더</string>
@ -532,9 +530,8 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
<string name="select_all">모두 선택</string>
<string name="reload">새로고침</string>
<string name="fast_route_mode">가장 빠른 루트</string>
<string name="fast_route_mode_descr">가장 빠른 루트를 활성화하거나 or
가장 짧은 루트를 비활성화합니다 </string>
<string name="fast_route_mode">가장 빠른 경로</string>
<string name="fast_route_mode_descr">"가장 빠른 경로를 활성화하거나 or 가장 짧은 경로를 비활성화합니다 "</string>
<string name="tiles_to_download_estimated_size">줌에서 {0} 다운로드 {1} 타일 ({2} MB)</string>
<string name="context_menu_item_download_map">맵 다운로드</string>
<string name="select_max_zoom_preload_area">가시 영역을 미리 로드하기 위한 최대 줌 선택</string>
@ -584,7 +581,7 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
<string name="rotate_map_none_opt">회전 안함</string>
<string name="rotate_map_to_bearing_descr">지도 화면 정렬 방식을 선택합니다</string>
<string name="rotate_map_to_bearing">지도 방향</string>
<string name="show_route">루트 상세정보</string>
<string name="show_route">경로 상세정보</string>
<string name="fav_imported_sucessfully">즐겨찾기를 성공적으로 임포트하였습니다</string>
<string name="fav_file_to_load_not_found">즐겨찾기를 포함한 GPX 파일을 {0} 에서 찾을 수 없습니다</string>
<string name="fav_saved_sucessfully">즐겨찾기가 성공적으로 {0} 에 저장되었습니다</string>
@ -597,10 +594,10 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
<string name="poi_namefinder_query_empty">POI를 찾는 검색어를 입력하세요</string>
<string name="any_poi">어떤</string>
<string name="layer_transport_route">대중교통 루트</string>
<string name="layer_transport_route">대중교통 경로</string>
<string name="thanks_yandex_traffic">교통 정보를 위해 Yandex 를 이용합니다.</string>
<string name="layer_yandex_traffic">Yandex 트래픽</string>
<string name="layer_route">루트</string>
<string name="layer_route">경로</string>
<string name="layer_favorites">즐겨찾기</string>
<string name="layer_osm_bugs">OSM 버그들(온라인)</string>
<string name="layer_transport">대중교통 정류소</string>
@ -666,18 +663,18 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
<string name="map_screen_orientation_descr">세로, 가로, 자동</string>
<string name="opening_hours_not_supported">오프닝 시간 형식은 편집을 지원하지 않습니다</string>
<string name="add_new_rule">새로운 규칙 추가</string>
<string name="transport_Routes">루트</string>
<string name="transport_Routes">경로</string>
<string name="transport_Stop">정류소</string>
<string name="transport_stops">정류소들</string>
<string name="transport_search_after">다음 루트</string>
<string name="transport_search_before">이전 루트</string>
<string name="transport_search_after">다음 경로</string>
<string name="transport_search_before">이전 경로</string>
<string name="transport_finish_search">검색 종료</string>
<string name="transport_stop_to_go_out">하차할 정류소 선택</string>
<string name="transport_to_go_after">이전 거리</string>
<string name="transport_to_go_before">이후 거리</string>
<string name="transport_stops_to_pass">경유할 정류소들</string>
<string name="transport_route_distance">루트 거리</string>
<string name="transport_route_distance">경로 거리</string>
<string name="transport">대중교통</string>
<string name="default_buttons_ok">OK</string>
<string name="show_transport_over_map_description">대중교통 정류소를 지도에 표시합니다</string>
@ -709,7 +706,7 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
<string name="max_level_download_tile">최대 온라인 줌</string>
<string name="max_level_download_tile_descr">다운로드할 최대 줌 레벨을 선택하세요</string>
<string name="route_general_information">전체거리 %1$s, 여행시간 %2$d h %3$d m.</string>
<string name="router_service_descr">온라인 또는 오프라인 길안내 서비스를 선택합니다</string>
<string name="router_service_descr">온라인 또는 오프라인 경로탐색 서비스를 선택합니다</string>
<string name="router_service">길안내 서비스</string>
<string name="sd_dir_not_accessible">저장할 SD 카드 디렉토리에 접근할 수 없습니다</string>
<string name="download_question">{0} - {1} 을 다운로드할까요?</string>
@ -726,7 +723,7 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
<string name="fav_points_edited">즐겨찾기 포인트가 수정되었습니다</string>
<string name="fav_points_not_exist">즐겨찾기 포인트가 하나도 존재하지 않습니다</string>
<string name="update_existing">대체</string>
<string name="only_show">루트 표시하기</string>
<string name="only_show">경로 표시하기</string>
<string name="follow">길안내 시작</string>
<string name="recalculate_route_to_your_location">전송 모드 :</string>
<string name="mark_final_location_first">먼저 목적지 포인트를 선택하세요</string>
@ -747,10 +744,10 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
<string name="poi">POI</string>
<string name="error_occurred_saving_gpx">GPX를 저장하는 도중 오류가 발생하였습니다</string>
<string name="error_calculating_route">루트를 찾는 도중 오류</string>
<string name="error_calculating_route_occured">루트를 찾는 도중 오류가 발생하였습니다</string>
<string name="empty_route_calculated">루트를 찾지 못하였습니다</string>
<string name="new_route_calculated_dist">새로운 루트를 찾았습니다, 거리</string>
<string name="error_calculating_route">경로를 찾는 도중 오류</string>
<string name="error_calculating_route_occured">경로를 찾는 도중 오류가 발생하였습니다</string>
<string name="empty_route_calculated">경로를 찾지 못하였습니다</string>
<string name="new_route_calculated_dist">새로운 경로를 찾았습니다, 거리</string>
<string name="arrived_at_destination">목적지에 도착하였습니다</string>
<string name="invalid_locations">좌표가 유효하지 않습니다!</string>
<string name="go_back_to_osmand">OsmAnd 맵으로 되돌아감</string>
@ -764,22 +761,22 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
<string name="reload_indexes">오프라인 데이터 재적재</string>
<string name="download_indexes_descr">오프라인 용 데이터를 인터넷으로부터 다운로드합니다</string>
<string name="download_indexes">오프라인 데이터 다운로드</string>
<string name="use_online_routing_descr">루트를 찾기위해 인터넷을 사용합니다</string>
<string name="use_online_routing">온라인 길안내 사용</string>
<string name="use_online_routing_descr">경로를 찾기위해 인터넷을 사용합니다</string>
<string name="use_online_routing">온라인 경로탐색 사용</string>
<string name="osm_settings_descr">OSM 로그인에 필요한 OSM 설정을 지정합니다</string>
<string name="data_settings_descr">언어를 지정하고, 데이터를 다운로드/재로드 합니다</string>
<string name="data_settings">데이터</string>
<string name="map_preferences_descr">맵 설정을 지정합니다: 맵 소스, 회전, 마커 위치, 스크린 방향</string>
<string name="map_preferences_descr">지도 설정을 지정합니다: 지도 소스, 회전, 마커 위치, 스크린 방향</string>
<string name="osm_settings">OSM 편집</string>
<string name="auto_zoom_map_descr">속도에 따라 자동으로 지도 줌(zoom)을 합니다</string>
<string name="auto_zoom_map">자동 맵 줌</string>
<string name="additional_settings">추가 설정</string>
<string name="settings">설정</string>
<string name="save_current_track_descr">현재 트랙을 SD 카드에 저장합니다</string>
<string name="save_current_track">현재의 GPX 트랙을 저장합니다</string>
<string name="save_current_track_descr">현재의 GPX트랙을 SD 카드에 저장합니다</string>
<string name="save_current_track">현재의 GPX트랙을 저장합니다</string>
<string name="save_track_interval_descr">GPX트랙을 저장하는 시간 주기를 선택합니다</string>
<string name="save_track_interval">트랙로깅 간격</string>
<string name="save_track_to_gpx_descrp">GPX트랙이 날짜 단위로 구분된 폴더에 저장됩니다</string>
<string name="save_track_to_gpx_descrp">경로는 날짜 단위로 구분된 폴더에 저장됩니다</string>
<string name="save_track_to_gpx">트랙을 GPX파일로 저장</string>
<string name="update_tile">맵 업데이트</string>
<string name="reload_tile">타일 재로드</string>
@ -807,19 +804,19 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
<string name="show_poi_over_map">POI 표시</string>
<string name="map_tile_source_descr">온라인소스 또는 캐시된 맵 타일 소스를 선택합니다</string>
<string name="map_tile_source">타일 맵 소스</string>
<string name="map_source"> 소스</string>
<string name="map_source">지도 소스</string>
<string name="use_internet">인터넷 사용</string>
<string name="show_location">위치 표시</string>
<string name="map_preferences">지도</string>
<string name="settings_activity">설정</string>
<string name="show_gps_coordinates_text">에 GPS 좌표 표시</string>
<string name="show_gps_coordinates_text">지도에 GPS 좌표 표시</string>
<string name="use_internet_to_download_tile">누락된 맵 타일을 다운로드하기 위해 인터넷을 사용합니다</string>
<string name="app_description">네비게이션 앱</string>
<string name="exit_Button">종료</string>
<string name="map_Button">지도</string>
<string name="settings_Button">설정</string>
<string name="favorites_Button">즐겨찾기</string>
<string name="favorites_Button">내 장소</string>
<string name="search_button">검색</string>
<string name="search_activity">검색</string>
@ -854,7 +851,7 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
<string name="search_address_street_option">교차로</string>
<string name="search_tabs_location">위치</string>
<string name="context_menu_item_add_favorite">즐겨찾기에 추가</string>
<string name="context_menu_item_update_map"> 업데이트</string>
<string name="context_menu_item_update_map">지도 업데이트</string>
<string name="context_menu_item_open_bug">OSM 버그 열기</string>
<string name="context_menu_item_create_poi">POI 생성</string>
@ -912,7 +909,7 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
<string name="poi_dialog_comment_default">POI 바꾸기</string>
<string name="poi_dialog_other_tags_message">모든 다른 태그는 보존된다</string>
<string name="default_buttons_commit">반영</string>
<string name="default_buttons_reset">초기화</string>
<string name="default_buttons_reset">재설정</string>
<string name="filter_current_poiButton">필터</string>
<string name="edit_filter_delete_menu_item">삭제</string>
<string name="edit_filter_save_as_menu_item">다른이름으로 저장</string>
@ -961,15 +958,15 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
<string name="index_name_canada">북미 - 캐나다</string>
<string name="index_name_italy">유럽 - 이탈리아</string>
<string name="index_name_gb">유럽 - 영국</string>
<string name="calculate_osmand_route_without_internet">인터넷 연결없이 OsmAnd 루트구간 계산</string>
<string name="gpx_option_calculate_first_last_segment">첫번째와 마지막 루트구간 계산</string>
<string name="use_displayed_track_for_navigation">길안내를 위해 맵뷰어에 표시된 GPX트랙을 사용하시겠습니까?</string>
<string name="calculate_osmand_route_without_internet">인터넷 연결없이 OsmAnd 경로 구간 계산</string>
<string name="gpx_option_calculate_first_last_segment">첫번째와 마지막 경로 구간 계산</string>
<string name="use_displayed_track_for_navigation">경로탐색을 위해 맵뷰어에 표시된 경로를 사용하시겠습니까?</string>
<string name="keep_and_add_destination_point">목적지로 추가</string>
<string name="select_gpx">GPX파일 선택…</string>
<string name="route_descr_select_destination">목적지 선택</string>
<string name="route_descr_select_on_map">지도에서 선택…</string>
<string name="route_descr_favorite">즐겨찾기…</string>
<string name="route_info">루트 정보</string>
<string name="route_info">경로 정보</string>
<string name="routing_attr_prefer_motorway_name">전용도로 선호</string>
<string name="routing_attr_prefer_motorway_description">전용도로 선호</string>
<string name="routing_attr_short_way_name">최단 길</string>
@ -992,12 +989,12 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
<string name="copying_osmand_one_file_descr">새 목적지로 파일(%s)을 복사중...</string>
<string name="copying_osmand_files_descr">새로운 목적지에 OsmAnd 파일을 복사중 (%s)</string>
<string name="copying_osmand_files">OsmAnd 파일을 복사중</string>
<string name="calculate_osmand_route_gpx">OsmAnd 오프라인 루트 계산하기</string>
<string name="calculate_osmand_route_gpx">OsmAnd 오프라인 경로 계산하기</string>
<string name="app_mode_truck">트럭</string>
<string name="routing_preferences_descr">길찾기 선호도</string>
<string name="speech_rate_descr">TTS에 대한 음성속도를 지정합니다</string>
<string name="speech_rate">음성 속도</string>
<string name="complex_route_calculation_failed">빠른 루트 계산 실패(%s), 느린 계산으로 돌아감.</string>
<string name="complex_route_calculation_failed">빠른 경로 계산 실패(%s), 느린 계산으로 돌아감.</string>
<string name="disable_complex_routing">복잡한 라우팅 사용불능</string>
<string name="amenity_type_seamark">Seamark</string>
<string name="app_modes_choose">앱 프로필</string>
@ -1009,8 +1006,8 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
<string name="tip_faq_t">자주 묻는 질문을 보려면 https://code.google.com/p/osmand/wiki/FAQ 를 방문하세요.</string>
<string name="tip_faq">자주 묻는 질문 (FAQ)</string>
<string name="local_osm_changes_delete_all">모두 삭제하기</string>
<string name="animate_routing_route_not_calculated">먼저 루트를 계산하세요</string>
<string name="animate_routing_route">"계산된 루트를 이용하여 모의주행하기 "</string>
<string name="animate_routing_route_not_calculated">먼저 경로를 계산하세요</string>
<string name="animate_routing_route">"탬색된 경로를 이용하여 모의주행하기 "</string>
<string name="animate_routing_gpx">GPX트랙을 이용하여 모의주행하기</string>
<string name="remember_choice">내 선택을 기억하기</string>
<string name="gps_status_eclipsim">GPS status</string>
@ -1022,7 +1019,7 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
<string name="tip_map_styles">지도 스타일</string>
<string name="about_version">버전:</string>
<string name="about_settings_descr">버전 정보, 라이센스, 프로젝트 멤버</string>
<string name="tips_and_tricks">Tips (도움말)</string>
<string name="tips_and_tricks">도움말</string>
<string name="about_settings">소개</string>
<string name="local_index_tile_data_zooms">다운로드된 줌 : %1$s</string>
<string name="local_index_tile_data_expire">만료(분) : %1$s</string>
@ -1065,9 +1062,9 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
<string name="lang_pt">포르투갈어</string>
<string name="lang_sl">슬로베니아어</string>
<string name="lang_cy">웨일스어</string>
<string name="route_preferences">루트 선호도</string>
<string name="guidance_preferences_descr">길안내 선호도</string>
<string name="disable_complex_routing_descr">자동차 길안내에 대한 2길 라우팅 사용불능</string>
<string name="route_preferences">경로 선호도</string>
<string name="guidance_preferences_descr">경로탐색 선호도</string>
<string name="disable_complex_routing_descr">자동차 경로탐색에 대한 2길 라우팅 사용불능</string>
<string name="app_modes_choose_descr">앱에서 볼 수있는 사용자 프로필를 선택합니다</string>
<string name="map_widget_appearance">나머지 요소 :</string>
<string name="local_osm_changes_delete_all_confirm">%1$d OSM 변경 사항을 삭제하려고 합니다. 확실합니까?</string>
@ -1126,8 +1123,7 @@ OsmAnd 는 Openstreetmap.org (OSM) 데이터 기반의 맵을 사용하며 -맵
<string name="plugin_distance_point">포인트</string>
<string name="gpx_file_name">GPX 파일 이름</string>
<string name="gpx_saved_sucessfully">GPX 파일이 성공적으로 {0} 에 저장</string>
<string name="osmand_distance_planning_plugin_description">포인트 사이의 거리를 측정하기 위해 경로(path) 생성 (또는 기존 GPX 파일을 수정/사용하여).
GPX로 저장하여, GPX 루트를 계획할 수 있습니다.</string>
<string name="osmand_distance_planning_plugin_description">포인트 사이의 거리를 측정하기 위해 경로(또는 기존 GPX 파일을 수정/사용)를 생성합니다. GPX로 저장하여, GPX 경로를 이용할 수 있습니다.</string>
<string name="osmand_distance_planning_plugin_name">거리 계산 및 플래닝 도구</string>
<string name="default_buttons_do_not_show_again">다시 표시하지 않음</string>
<string name="distance_measurement_start_editing">편집 시작</string>
@ -1145,8 +1141,8 @@ GPX로 저장하여, GPX 루트를 계획할 수 있습니다.</string>
<string name="other_location">기타</string>
<string name="files_limit">%1$d 파일 남음</string>
<string name="install_paid">정식 버전</string>
<string name="cancel_route">루트 해제</string>
<string name="cancel_navigation">길안내 정</string>
<string name="cancel_route">경로 해제</string>
<string name="cancel_navigation">경로탐색 중</string>
<string name="clear_destination">목적지 지우기</string>
<string name="download_using_mobile_internet">현재 와이파이가 연결되어 있지 않습니다. 현재의 인터넷 연결(3G)을 통해서 계속 다운로드 하시겠습니까?</string>
<string name="street_name">거리</string>
@ -1158,10 +1154,10 @@ GPX로 저장하여, GPX 루트를 계획할 수 있습니다.</string>
         \n\t* 지도 화면에서 좌상단 버튼는 메뉴버튼을 대체
</string>
<string name="monitoring_settings">로깅 서비스</string>
<string name="monitoring_settings_descr">트랙을 기록하는 방법을 구성하고 절전 모드를 활성화합니다</string>
<string name="osmand_monitoring_plugin_description">절전모드(스크린 끄기)에서 트래킹 및 길안내 활성화, 주기적으로 GPS 장치가 작동중일 때 . 표시 설정은 로컬 GPX 파일이나 웹 서비스를 사용하는 온라인에 트랙을 기록하는 설비 가능.</string>
<string name="monitoring_settings_descr">트랙을 기록하는 방법을 구성합니다</string>
<string name="osmand_monitoring_plugin_description">절전모드(스크린 끄기)에서 트래킹 및 경로탐색 활성화, 주기적으로 GPS 장치가 작동중일 때 . 표시 설정은 로컬 GPX 파일이나 웹 서비스를 사용하는 온라인에 트랙을 기록하는 설비 가능.</string>
<string name="osmand_monitoring_plugin_name">로깅 서비스</string>
<string name="osmand_background_plugin_description">주기적으로 GPS 장치를 깨어 절전모드(스크린 끄기)에서 트랙 및 길안내를 가능하게 하는 설정 표시.</string>
<string name="osmand_background_plugin_description">주기적으로 GPS 장치를 깨어 절전모드(스크린 끄기)에서 트래킹 및 경로탐색을 가능하게 하는 설정 표시.</string>
<string name="choose_osmand_theme_descr">앱 테마(색상)를 선택</string>
<string name="choose_osmand_theme">앱 테마</string>
<string name="accessibility_options">접근성(내게 필요한) 옵션</string>
@ -1186,22 +1182,22 @@ GPX로 저장하여, GPX 루트를 계획할 수 있습니다.</string>
<string name="local_indexes_cat_srtm">등고선 데이터</string>
<string name="local_indexes_cat_av">오디오/비디오 데이터</string>
<string name="stop_routing_confirm">길안내를 중지하시겠습니까 ?</string>
<string name="stop_routing_confirm">경로탐색을 중지하시겠습니까 ?</string>
<string name="clear_dest_confirm">목적지를 취소하시겠습니까?</string>
<string name="precise_routing_mode_descr">고장 없이 정확한 루트를 계산할 수 있습니다(여전히 거리 제한 하고 느린 속도로).</string>
<string name="precise_routing_mode_descr">고장 없이 정확한 경로를 탐색할 수 있습니다(여전히 거리 제한하고 느린 속도로).</string>
<string name="precise_routing_mode">정확한 길찾기:라우팅 (알파)</string>
<string name="recording_context_menu_show">표시</string>
<string name="recording_photo_description">사진 %1$s of %2$s</string>
<string name="av_def_action_picture">사진 찍기</string>
<string name="recording_context_menu_precord">사진 찍기</string>
<string name="dropbox_plugin_description">드롭박스 플러그인은 드롭박스 계정으로 GPX트랙과 오디오/비디오 메모를 동기화 할 수 있습니다 .</string>
<string name="dropbox_plugin_description">Dropbox 플러그인은 Dropbox 계정으로 GPX트랙과 오디오/비디오 메모를 동기화 할 수 있습니다 .</string>
<string name="dropbox_plugin_name">드롭박스 플러그인</string>
<string name="intermediate_points_change_order">순서 변경</string>
<string name="srtm_paid_version_msg">등고선 추가 개발을 지원하기 위해 구글시장에서 플러그인을 구입하시기 바랍니다 .</string>
<string name="srtm_paid_version_title">등고선 플러그인</string>
<string name="av_def_action_choose">요청에 대한 선택</string>
<string name="av_def_action_video">비디오 기록</string>
<string name="av_def_action_audio">오디오 기록</string>
<string name="av_def_action_video">비디오 녹화</string>
<string name="av_def_action_audio">오디오 녹음</string>
<string name="av_widget_action_descr">기본 위젯의 동작을 선택합니다</string>
<string name="av_widget_action">기본 위젯 작업</string>
<string name="av_video_format_descr">비디오 출력 형식 선택</string>
@ -1273,11 +1269,11 @@ GPX로 저장하여, GPX 루트를 계획할 수 있습니다.</string>
<string name="rendering_attr_roadColors_description">도로 색상을 선택합니다:</string>
<string name="rendering_attr_roadColors_name">도로 색상</string>
<string name="map_widget_show_destination_arrow">목적지 길안내 표시</string>
<string name="enable_plugin_monitoring_services">위치로깅서비스(GPX 기록, 온라인 트래킹)를 사용하여 트래킹 플러그인을 활성화</string>
<string name="non_optimal_route_calculation">장거리를 가능하게 하는 비최적 루트 계산</string>
<string name="enable_plugin_monitoring_services">트랙로깅 서비스(GPX 기록, 온라인 트래킹)를 사용하여 트래킹 플러그인을 활성화</string>
<string name="non_optimal_route_calculation">장거리를 가능하게 하는 비-최적 경로 계산</string>
<string name="gps_not_available">설정에서 GPS를 활성화하십시오</string>
<string name="map_widget_monitoring_services">로깅 서비스</string>
<string name="no_route">어떠한 루트도 없음</string>
<string name="no_route">어떠한 경로도 없음</string>
<string name="delete_target_point">포인트 제거</string>
<string name="target_point">포인트 %1$s</string>
<string name="intermediate_point">포인트 %1$s</string>
@ -1311,10 +1307,10 @@ GPX로 저장하여, GPX 루트를 계획할 수 있습니다.</string>
<string name="snap_to_road_descr">길안내할 동안 차량을 도로에 밀착시킴</string>
<string name="snap_to_road">도로에 밀착</string>
<string name="osmand_play_title_30_chars">OsmAnd 지도 및 네비게이션</string>
<string name="osmand_short_description_80_chars">글로벌 모바일 지도 보기 및 오프라인 및 온라인 OSM지도를 위한 길안내</string>
<string name="osmand_short_description_80_chars">글로벌 모바일 지도 보기 및 오프라인 및 온라인 OSM지도를 위한 경로탐색</string>
<string name="osmand_long_description_1000_chars">" OsmAnd (OSM 자동 길안내 시스템) OsmAnd 글로벌 OpenStreetMap의 다양한 데이터에 접근할 수 있는 오픈 소스 탐색 응용 프로그램입니다. 모든 지도 데이터(벡터 맵 또는 타일 맵 ) 는 오프라인 사용을 위하여 휴대 전화 메모리 카드에 저장할 수 있습니다. OsmAnd는 또한 턴-바이-턴 음성 안내 등의 오프라인 및 온라인 라우팅(길찾기) 기능을 제공합니다. 핵심 기능 중 일부 : - 전체 오프라인 기능 (선택한 폴더에 저장, 벡터지도 또는 타일지도 다운로드 가능) - 컴팩트한 오프라인 벡터는 전 세계에서 사용가능 - 국가 또는 지역의 다운로드는 앱에서 직접 매핑 - GPX 또는 탐색 트랙, 관광 명소 등 가능한 여러 지도 레이어의 중첩, 즐겨 찾기, 등고선, 대중 교통 정류장, 사용자 정의 투명성 추가 - 주소 및 장소에 대한 오프라인 검색 장소(POI) - 짧은 거리를 위한 오프라인 라우팅 - 자동차, 자전거, 보행자 모드 : - 옵션으로 자동 주간/야간 지도 전환 - 옵션으로 속도에 따라 지도 줌레벨 변경 - 옴션으로 나침반이나 방향에 따라 맵 정렬 - 옴션으로 차선 안내, 속도제한 표시, 녹음음성 및 TTS음성 OsmAnd 무료 버전 제한 사항 : - 지도 다운로드 수 10회로 제한 - 위키 백과 또는 오프라인 관심 장소에 액세스할 수 없음. OsmAnd 는 적극적으로 개발하고 우리의 프로젝트와 프로젝트의 추가 진행은 개발 자금을 재정 지원에 의존하고 새로운 기능을 testdriving 하고있다. OsmAnd+ 를 구입, 또는 특정 새로운 기능에 자금을 지원하거나 osmand.net 에 일반 후원을 부탁드립니다. "</string>
<string name="osmand_plus_play_title_30_chars">OsmAnd+ 지도 및 네비게이션</string>
<string name="osmand_plus_short_description_80_chars">글로벌 모바일 지도보기 및 오프라인 및 온라인 OSM지도를 위한 탐색</string>
<string name="osmand_plus_short_description_80_chars">글로벌 모바일 지도보기 및 오프라인 및 온라인 OSM지도를 위한 경로탐색</string>
<string name="osmand_plus_long_description_1000_chars">
OsmAnd + (OSM 자동 탐색 길안내 )
@ -1424,7 +1420,7 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
<string name="avoid_ferries">뱃길 회피</string>
<string name="avoid_in_routing_title">회피하기…</string>
<string name="avoid_in_routing_descr">유료도로, 비포장, 뱃길 회피하기</string>
<string name="map_widget_fluorescent">형광색상 루트</string>
<string name="map_widget_fluorescent">형광색상 경로</string>
<string name="map_widget_show_ruler">축척(Ruler)</string>
<string name="map_widget_view_direction">방향 보기</string>
<string name="map_widget_transparent">투명 스킨</string>
@ -1453,7 +1449,7 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
<string name="map_widget_next_turn">다음 턴</string>
<string name="map_widget_next_turn_small">다음 턴(작은 아이콘)</string>
<string name="map_widget_next_next_turn">두번째 다음 턴</string>
<string name="map_widget_mini_route">미니 루트지도</string>
<string name="map_widget_mini_route">미니 경로 지도</string>
<string name="bg_service_screen_lock">화면 잠금</string>
<string name="bg_service_screen_unlock">화면 잠금해제</string>
<string name="bg_service_screen_lock_toast">화면이 잠김</string>
@ -1462,19 +1458,19 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
<string name="show_traffic_warnings">트래픽 경고 표시</string>
<string name="avoid_toll_roads">유료 도로 회피</string>
<string name="continue_follow_previous_route_auto">이전 길안내는 아직 끝나지 안났습니다. 계속 길안내를 받으시겠습니까? (%1$s 초)</string>
<string name="route_updated_loc_found">위치가 확정되면 루트를 찾을 것입니다</string>
<string name="route_updated_loc_found">위치가 확정되면 경로를 찾을 것입니다</string>
<string name="osmand_parking_hours">시간</string>
<string name="osmand_parking_minutes"></string>
<string name="osmand_parking_position_description_add_time">자동차를 ~에 주차했습니다 :</string>
<string name="tip_recent_changes_0_8_1_t">"Changes in 0.8.1:
\n\t* 더욱 정밀한 루트 찾기(좀 더 느려짐) More precise routes (a bit slower)
\n\t* 스마트 하고 빠른 루트 계산. Smart and fast Route recalculation
\n\t* 더욱 정밀한 경로 찾기(좀 더 느려짐) More precise routes (a bit slower)
\n\t* 스마트 하고 빠른 경로 계산. Smart and fast Route recalculation
\n\t* 좁은 길로 길안내. Direction by lanes
\n\t* 속도 제한 정보, 속도 카메라, 속도위반에 관한 정보.
\n\t* 고속도로에서 향상된 음성안내. Improved voice guidance on highways
\n\t* 주차 플러그인. Parking plugin (\'Where is my car parked at?\')
\n\t* 트랙로깅 위젯 활성화/비활성화. Enable/disable logging widget "</string>
<string name="select_animate_speedup">루트 시뮬레이션의 속도를 선택합니다</string>
<string name="select_animate_speedup">경로 시뮬레이션의 속도를 선택합니다</string>
<string name="global_app_allocated_memory_descr">할당된 메모리 %1$s MB (안드로이드 메모리 제한 %2$s MB, Dalvik %3$s MB).</string>
<string name="global_app_allocated_memory">할당된 메모리</string>
<string name="native_app_allocated_memory_descr">앱에 의해 할당된 전체 기본 메모리 %1$s MB (Dalvik %2$s MB, other %3$s MB).
@ -1509,7 +1505,7 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
<string name="gpxup_trackable">추적 가능</string>
<string name="gpxup_private">개인</string>
<string name="asap">가능한 빨리</string>
<string name="save_route_as_gpx">GPX 파일로 루트를 저장</string>
<string name="save_route_as_gpx">경로를 GPX 파일로 저장</string>
<string name="route_roundabout">변곡점: take %1$d exit and go</string>
<string name="route_kl">왼쪽을 유지하고 가기</string>
<string name="route_kr">오른족을 유지하고 가기</string>
@ -1529,7 +1525,7 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
<string name="transport_search_desc">교통 검색</string>
<string name="favourites_search_desc">즐겨 찾기 검색</string>
<string name="history_search_desc">검색한 기록</string>
<string name="offline_navigation_not_available">OsmAnd 오프라인 길안내는 일시적으로 사용할 수 없습니다.</string>
<string name="offline_navigation_not_available">OsmAnd 오프라인 경로탐색은 일시적으로 사용할 수 없습니다.</string>
<string name="left_side_navigation">왼쪽좌석 운전</string>
<string name="left_side_navigation_descr">왼쪽좌석 운전 국가를 선택합니다</string>
<string name="download_link_and_local_description">오프라인 데이터를 다운로드 하거나 업데이트 하려면 여기를 클릭하십시오. 세부정보를 보려면 기존 아이템을 클릭하세요, 비활성화 하거나 삭제하려면 길게 누르세요. 기기에 남아있는 현재 데이터는 (%1$s free):</string>
@ -1547,7 +1543,7 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
<string name="extra_settings">고급 설정</string>
<string name="osmand_monitoring_description">로컬 GPX 파일이나 온라인 웹 서비스를 사용하는 온라인을 기록하기 위해 설정기능을 표시합니다.</string>
<string name="osmand_extra_settings_description">고급 지도 구성(지도 상세보기) 및 일부 장치 특성에 대한 설정을 표시합니다.</string>
<string name="osmand_development_plugin_description">루트 시뮬레이션 이나 렌더링 성능 표시와 같은 개발 및 디버깅 기능에 대한 설정을 표시합니다.</string>
<string name="osmand_development_plugin_description">경로 시뮬레이션 이나 렌더링 성능 표시와 같은 개발 및 디버깅 기능에 대한 설정을 표시합니다.</string>
<string name="plugins_screen">플러그인</string>
<string name="select_plugin_to_activate">활성화 또는 비활성화 하기위해 플러그인을 터치합니다.(OsmAnd는 재시작해야 합니다)</string>
<string name="prefs_plugins_descr">플러그인은 고급설정 및 추가기능을 활성화합니다</string>
@ -1633,7 +1629,7 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
</string>
<string name="tip_recent_changes_1_2_t">"Fixes in 1.2.1:
\n\t*Fix Geo Intent (Foursquare, c:geo) 지오 인텐트 고정
\n\t*Fix screen tremble during navigation 길안내중 화면 떨림 고정
\n\t*Fix screen tremble during navigation 경로탐색중 화면 떨림 고정
\n\t*Other small fixes 다른 사소한 고정
\n\nChanges in 1.2:
\n\t* Bug fixes (tuned routing, search, AV recording, voice prompts, some display improvements)
@ -1663,12 +1659,12 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
\n\t* 버그 수정
\n\t* 지도 세부정보아 함께 지도 스타일 옵션, 새 도로 스타일,
\n\t* EGM96 geoid 오프셋 보정, GPS 고도 읽기 "</string>
<string name="audionotes_location_not_defined">노트와 연결할 위치는 아직 정의되지 않았습니다. 지정된 위치에 노트를 할당하려면 \" 위치 사용…\"</string>
<string name="audionotes_location_not_defined">노트와 연결할 위치는 아직 정의되지 않았습니다. 지정된 위치에 노트를 할당하려면 \"위치 사용…\"</string>
<string name="tip_recent_changes_0_8_3_t">"Changes in 0.8.3:
\n\t* 포인트
\n\t* 향상된 루트 안내
\n\t* 루트를 만드는 동안 전용도로를 회피하는 것을 허락하는 설정을 추가
\n\t* 지도(Cycleway=트랙)에 자전거 도로의 유형을 추가
\n\t* 향상된 경로 안내
\n\t* 경로를 생성하는 동안 전용도로를 회피하는 것을 허락하는 설정을 추가
\n\t* 지도에 자전거 도로의 유형을 추가
\n\t* 버그 수정 "</string>
<string name="tip_recent_changes_0_8_2_t">Changes in 0.8.2:
\n\t* Improved Routing
@ -1873,13 +1869,13 @@ Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Z
<string name="osmo_plugin_description">"OpenStreetMap 고급 실시간 모니터링. 이에 대해서는 http://osmo.mobi를 참조 하십시오. 다른 장치를 추적하고 추적받는 가능성을 제공 합니다. 익명 그룹을 만들고, 서로의 위치를 공유하고 소통한다. 세션 트래킹 또는 영구 트래킹에 대한 다양한 설정을 합니다. 익명그룹는 수많은 날에 제한되며 일부 기능 즉, 원격 제어 및 그룹 관리자는 제한된다. 완벽하게 기능적인 그룹은 웹사이트에 생성하고 그들에게 등록된 사용자만 액세스할 수 있습니다. "</string>
<string name="osmo_plugin_name">OsMo (실시간 친구위치 공유)</string>
<string name="osmo_settings">OsMo (실시간 친구찾기)</string>
<string name="share_route_as_gpx">GPX 파일로 루트 공유</string>
<string name="share_route_subject">OsmAnd 통해 공유된 루트</string>
<string name="share_route_as_gpx">경로를 GPX 파일로 공유</string>
<string name="share_route_subject">OsmAnd 통해 공유된 경로</string>
<string name="arrival_distance">도착 알림</string>
<string name="arrival_distance_descr">도착 알림을 원하세요 ?</string>
<string name="keep_informing_never">결코</string>
<string name="keep_informing_descr">정기적으로 탐색 지시를 다시 발표</string>
<string name="keep_informing">길안내 명령을 반복</string>
<string name="keep_informing_descr">정기적인 간격으로 경로탐색 지시를 다시 실행</string>
<string name="keep_informing">경로탐색 명령을 반복</string>
<string name="navigation_intent_invalid">잘못된 포맷 : %s</string>
<string name="osmo_io_error">"OsMo 연결 문제 : "</string>
@ -1906,7 +1902,7 @@ Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Z
<string name="osmo_locations_sent">위치 전송 %1$d (in buffer %2$d) </string>
<string name="osmo_conn_successfull">설정된 연결 : %1$s </string>
<string name="tip_recent_changes_1_8_alpha">"Changes in 1.8: * Calculate route between route points of GPX track * Changed layout of countries for downloads (support local names search) * Supports GPX/KML import (convert from KML to GPX) * GPX tracks has moved to \'My Data\' * You can split GPX track by distance and check altitude difference/ speed * Auto start navigation after delay "</string>
<string name="use_points_as_intermediates">포인트 사이의 루트를 계산</string>
<string name="use_points_as_intermediates">포인트 사이의 경로를 계산</string>
<string name="osmo_mode_restart">OsMo 세션 재시작</string>
<string name="osmo_settings_debug">디버그 정보</string>
<string name="osmo_group_info">정보</string>
@ -2004,7 +2000,7 @@ Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Z
<string name="layer_amenity_label">포인트 레이블</string>
<string name="show_zoom_buttons_navigation_descr">길안내중에 줌 버튼 보기</string>
<string name="show_zoom_buttons_navigation">줌 버튼 보이기</string>
<string name="none_selected_gpx">"선택한 GPX 파일 없음. 이용 가능한 경로를 선택 하려면 누르고 있어요."</string>
<string name="none_selected_gpx">"선택한 GPX 파일 없음. 이용 가능한 GPX트랙을 선택 하려면 누르고 있어요."</string>
<string name="local_index_unselect_gpx_file">선택을 취소합니다.</string>
<string name="local_index_select_gpx_file">보이기위해 선택</string>
<string name="sort_by_distance">거리로 정렬</string>
@ -2013,7 +2009,7 @@ Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Z
<string name="route_descr_destination">\t</string>
<string name="no_index_file_to_download">아무것도 다운로드 되지 않았다면, 인터넷 연결을 확인 하십시오.</string>
<string name="osmo_auth_error_short">인증 실패</string>
<string name="osmo_auth_error">OsMo 인증 오류가 발생 했습니다: %1$s.\n임시로 서비스가 다운되었거나 또는 등록 만료가 되었습니다.\n신규 등록을 진행 하시겠습니까?.</string>
<string name="osmo_auth_error">OsMo 인증 오류가 발생 했습니다: %1$s.\n임시로 서비스가 다운되었거나 또는 등록 만료가 되었습니다.\n신규 등록을 진행 하시겠습니까?</string>
<string name="osmo_group_by_invite">메시지를 입력하세요</string>
<string name="osmo_group_information_desc">" -모든 그룹은 공용입니다! 익명으로 하려면 트랙커 id 통해 직접 장치를 연결 합니다.\n -그룹는 16 명까지 등록 할 수 있습니다.\n -비활동적인 그룹이나 또는 2 주 동안 단 1 사람만 활동한 경우, 그룹는 삭제 됩니다.\n -컨트롤 그룹으로 그룹 입구를 제한할 수 있습니다. 관리 콘솔에 가는 것이 필요합니다.
\n -그룹을 만들고 싶으면 http://osmo.mobi 에 접속하세요"</string>
@ -2035,7 +2031,7 @@ Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Z
<string name="rendering_attr_showAccess_name">액세스 유형 보이기</string>
<string name="rendering_attr_showSurfaceGrade_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="keep_navigation_service">계속</string>
<string name="stop_navigation_service">중지</string>
<string name="enable_sleep_mode">절전 모드 활성화</string>
@ -2049,7 +2045,7 @@ Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Z
<string name="forward">앞으로</string>
<string name="home"></string>
<string name="live_monitoring_m_descr">GPX 기록이 활성화 될때, 지정된 웹 서비스에 트래킹을 전송합니다.</string>
<string name="live_monitoring_m">온라인 트래킹 (GPX트랙 파일 필요)</string>
<string name="live_monitoring_m">온라인 트래킹 (GPX파일 필요)</string>
<string name="live_monitoring_start">온라인 트래킹 시작</string>
<string name="live_monitoring_stop">온라인 트래킹 중지</string>
<string name="gpx_monitoring_start">GPX 기록 시작</string>
@ -2064,7 +2060,7 @@ Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Z
<string name="lang_zh_TW">중국어 번체</string>
<string name="rendering_attr_subwayMode_name">지하철 모드</string>
<string name="continue_navigation">길안내 계속</string>
<string name="pause_navigation">길안내 일시중지</string>
<string name="pause_navigation">경로탐색 일시중지</string>
<string name="rendering_attr_alpineHiking_name">알파인 하이킹 보기</string>
<string name="rendering_attr_alpineHiking_description">SAC scale에 따라 경로 렌더링</string>
<string name="rendering_attr_osmcTraces_name">하이킹 심볼 오버레이</string>
@ -2078,4 +2074,8 @@ Vanuatu, Venezuela, Vietnam, Wallis and Futuna, Western Sahara, Yemen, Zambia, Z
<string name="arrival_distance_factor_normally">일반적으로</string>
<string name="arrival_distance_factor_late">늦게</string>
<string name="arrival_distance_factor_at_last">마지막 미터</string>
</resources>
<string name="hide_all_waypoints">모든 포인트 숨기기</string>
<string name="av_camera_pic_size">카메라 사진 크기</string>
<string name="av_camera_pic_size_descr">내부 카메라 사진 크기 선택</string>
<string name="announce_nearby_favorites">가까운 즐겨찾기 알리기</string>
</resources>

View file

@ -1306,7 +1306,7 @@ OsmAnd yra aktyviai tobulinama ir mūsų projektas bei jo tolesnis progresas pri
\n\t* Žemėlapio viršutiniame kairiame kampe esantis mygtukas pakeičia Meniu mygtuką
</string>
<string name="monitoring_settings">Sekimo paslaugos</string>
<string name="monitoring_settings_descr">Nustatykite kaip įrašinėti maršrutus ir įjungti miego režimą</string>
<string name="monitoring_settings_descr">Nustatykite kaip įrašinėti maršrutus</string>
<string name="osmand_monitoring_plugin_description">Įjunkite sekimą ir navigaciją miego režime (išjungus ekraną) periodiškai pažadinant GPC įrenginį. Koreguokite nustatymus, kurie reikalingi įrašant jūsų maršrutus į GPX failą ar sekant interneto pagalba.</string>
<string name="osmand_monitoring_plugin_name">Stebėjimo paslaugos</string>
<string name="choose_osmand_theme_descr">Pasirinkite išvaizdos temą</string>
@ -1801,8 +1801,12 @@ OsmAnd yra aktyviai tobulinama ir mūsų projektas bei jo tolesnis progresas pri
<string name="arrival_distance_factor_early">Anksti</string>
<string name="arrival_distance_factor_normally">Normaliai</string>
<string name="arrival_distance_factor_late">Vėlai</string>
<string name="arrival_distance_factor_at_last">Pastaruosius metrus</string>
<string name="arrival_distance_factor_at_last">Paskutiniuose metruose</string>
<string name="rendering_attr_coloredBuildings_name">Spalvoti pastatai</string>
<string name="rendering_attr_alpineHiking_name">Kalnų žygiai</string>
<string name="rendering_attr_osmcTraces_name">Padengimas žygių simboliais</string>
</resources>
<string name="hide_all_waypoints">Pašalinti visus</string>
<string name="av_camera_pic_size">Nuotraukos dydis</string>
<string name="av_camera_pic_size_descr">Pasirinkti vidinės kameros nuotraukos dydį</string>
<string name="announce_nearby_favorites">Pranešti apie artimiausias įsimintas vietas</string>
</resources>

View file

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?><resources><string name="plugins_screen">Spraudņu pārvaldnieks</string>
<string name="select_plugin_to_activate">Atzīmējiet spraudni, lai to aktivizētu vai deaktivizētu. (Iespējams OsmAnd vajadzēs restartēt.)</string>
<?xml version='1.0' encoding='utf-8'?>
<resources><string name="plugins_screen">Spraudņu pārvaldnieks</string>
<string name="select_plugin_to_activate">Atzīmējiet spraudni, lai to aktivizētu (varētu būt nepieciešams OsmAnd restarts)</string>
<string name="prefs_plugins_descr">Spraudņi iespējo aplikācijas papildus funkcijas un uzstādījumus kā piemēram sekošana, enerģijas taupīšana, pieejamība un daudzas citas</string>
<string name="prefs_plugins">Spraudņi</string>
<string name="tip_recent_changes_0_8_0_t">Izmaiņas 0.8.0:
@ -91,7 +92,7 @@
<string name="use_short_object_names">Lietot objektu vārdus</string>
<string name="accessibility_preferences_descr">Ar pieejamību saistītās izvēles</string>
<string name="accessibility_preferences">Pieejamība</string>
<string name="rendering_out_of_memory">Nepietiek procesa atmiņas, lai attēlotu izvēlēto apgabalu</string>
<string name="rendering_out_of_memory">Nepietiek atmiņas, lai attēlotu izvēlēto apgabalu</string>
<string name="use_fluorescent_overlays">Fluorescenti slāņi</string>
<string name="use_fluorescent_overlays_descr">Lietot flurescentās krāsas, lai attēlotu maršruta ceļus</string>
<string name="offline_edition">Bezsaistes rediģēšana</string>
@ -184,9 +185,9 @@
<string name="choose_auto_follow_route">Automātiski centrēt karti</string>
<string name="choose_auto_follow_route_descr">Laiks līdz karte sinhronizējas ar tekošo pozīciju</string>
<string name="auto_follow_route_never">Nekad</string>
<string name="auto_follow_route_navigation">Autocentrēt pārvietojoties maršrutā</string>
<string name="auto_follow_route_navigation_descr">Autocentrēt karti tikai navigācijas laikā.</string>
<string name="auto_follow_location_enabled">Autocentrēt karti uz atrašanās vietu.</string>
<string name="auto_follow_route_navigation">Autocentrēt maršruta laikā</string>
<string name="auto_follow_route_navigation_descr">Navigācijas laikā atrodoties kustībā, automātiski centrēt karti.</string>
<string name="auto_follow_location_enabled">Autocentrēt karti atrašanās vietā.</string>
<string name="pref_vector_rendering">Vektoru renderētāja opcijas</string>
<string name="pref_overlay">Pārklājs / paklājs</string>
<string name="pref_raster_map">Kartes avota uzstādījumi</string>
@ -1484,7 +1485,7 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
<string name="routing_attr_avoid_motorway_name">Izvairīties no automaģistrālēm</string>
<string name="routing_attr_avoid_motorway_description">Izvairīties no automaģistrālēm jeb ātrgaitas šosejām</string>
<string name="routing_attr_weight_name">Maksimālais svars</string>
<string name="routing_attr_weight_description">Norādīt transporta kravas maksimālā svara robežas</string>
<string name="routing_attr_weight_description">Norādīt transportlīdzekļa maksimālā svara ierobežojumus</string>
<string name="select_gpx">Atzīmēt GPX…</string>
<string name="route_descr_select_destination">Atlasīt galamērķi</string>
<string name="route_descr_select_on_map">Atzīmēt no kartes…</string>
@ -1591,12 +1592,8 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
</string>
<string name="osmo_settings_uuid">Ierīces identifikators</string>
<string name="osmo_settings_descr">Konfigurēt monitoringa uzstādījumus un personīgo monitoringa kanālu</string>
<string name="osmo_plugin_description">OpenStreetMap-Monitoring - iespējām bagāts reālā laika monitorings ar attālinātu sekošanu savienotām ierīcēm.
………Izveidojiet anonīmas grupas, kopīgojiet atrašanās vietas un komunicējiet savā starpā, ar dažādiem uzstādījumiem sesijas vai patstāvīgai sekošanai.
……Anonīmās grupas ir ierobežotas līdz dienu skaitam un dažām iespējām, kā piemēram, nav attālinātās kontroles un grupas administratora.
……Pilnībā funkcionējošas grupas var tikt izveidotas tīmekļa lapā un tām var piekļūt tikai reģistrētie lietotāji.
……Vairāk lasiet http://osmo.mobi.</string>
<string name="osmo_plugin_name">OsMo (reālā laika monitorings)</string>
<string name="osmo_plugin_description">"Sekojiet viens otram reālajā laikā, veidojot anonīmas grupas, komunicējiet savā starpā, kopīgojiet vietas, iespējojiet patstāvīgu vai sesiju sekošanu utt., vairāk lasiet http://osmo.mobi lapā, t.sk. lai reģistrētos grupu pilnvērtīgākai darbībai (attālināta vadība un kontrole utt.). "</string>
<string name="osmo_plugin_name">OsMo (tiešsaistes monitorings)</string>
<string name="osmo_settings">OSMo OpenStreetMap Monitorings (beta)</string>
<string name="tip_recent_changes_1_6_t">Izmaiņas uz 1.6:
… …\n\t* Full HD ierīču atbalsts
@ -1623,15 +1620,15 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
</string>
<string name="interrupt_music">Pārtraukt mūziku</string>
<string name="share_route_subject">Maršruts kopīgots caur OsmAnd</string>
<string name="arrival_distance">Atbraukšanas paziņojums</string>
<string name="arrival_distance_descr">Kad paziņot par ierašanos galapunktā?</string>
<string name="arrival_distance">Ierašanās paziņojums</string>
<string name="arrival_distance_descr">Kad ziņot par ierašanos galamērķī?</string>
<string name="keep_informing_never">Nekad</string>
<string name="keep_informing_descr">Atkārtot navigācijas norādījumus caur regulāriem intervāliem</string>
<string name="keep_informing_descr">Noteikt intervālu navigācijas norādījumu atkārtošanai</string>
<string name="keep_informing">Atkārtot navigācijas norādījumus</string>
<string name="navigation_intent_invalid">Nepareizs formāts: %s</string>
<string name="interrupt_music_descr">Paziņojumu laikā pārtraukt mūzikas atskaņošanu</string>
<string name="share_route_as_gpx">Koplietot maršrutu kā GPX failu</string>
<string name="osmo_io_error">Problēma ar OSMo savienojumu: </string>
<string name="osmo_io_error">"OsMo savienojuma problēma: "</string>
<string name="osmo_mode_on">Apturēt OSMo sesiju</string>
<string name="osmo_mode_off">Sākt OSMo sesiju</string>
@ -1671,7 +1668,7 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
<string name="osmo_server_operation_failed">OsMO servera darbības kļūda</string>
<string name="osmo_activity">Osm Monitorings</string>
<string name="osmo_enable_tracker">Sūtīt manas atrašanās vietas</string>
<string name="osmo_control">OsMo ātrā pieejamība</string>
<string name="osmo_control">OsMo ātrā piekļuve</string>
<string name="hours_ago">stundas atpakaļ</string>
<string name="minutes_ago">minūtes atpakaļ</string>
<string name="osmo_connected_devices">Savienotās ierīces</string>
@ -1770,4 +1767,10 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
<string name="save_as_favorites_points">Saglabāt kā izlases grupu</string>
<string name="select_destination_and_intermediate_points">Atlasīt ceļapunktus</string>
<string name="layer_amenity_label">Punktu nosaukumi</string>
</resources>
<string name="arrival_distance_factor_normally">Normāli</string>
<string name="arrival_distance_factor_late">Vēlāk</string>
<string name="arrival_distance_factor_at_last">Pēdējos metros</string>
<string name="arrival_distance_factor_early">Agrāk</string>
<string name="show_zoom_buttons_navigation">Rādīt tālummaiņas pogas</string>
<string name="show_zoom_buttons_navigation_descr">Rādīt navigācijas laikā uz kartes</string>
</resources>

View file

@ -1431,7 +1431,7 @@ Afghanistan, Albanie, Algerije, Andorra, Angola, Anguilla, Antigua en Barbuda, A
\n\t* Menuknop vervangen door knop linksboven in het kaartvenster
</string>
<string name="monitoring_settings">Logboek registratie</string>
<string name="monitoring_settings_descr">Stel in hoe lokaal of via online tracking reizen op te nemen</string>
<string name="monitoring_settings_descr">Bepaal hoe trips op te nemen</string>
<string name="osmand_monitoring_plugin_description">Activeren van tracking en navigatie in slaapmodus (scherm uit). De GPS gaat dan regelmatig aan. Toon de instellingen om uw reis vast te leggen als GPX-bestand of online via een webdienst.</string>
<string name="street_name">Straat</string>
<string name="osmand_monitoring_plugin_name">Logboek registratie</string>
@ -1881,7 +1881,7 @@ Afghanistan, Albanie, Algerije, Andorra, Angola, Anguilla, Antigua en Barbuda, A
<string name="osmo_not_signed_in">Kon niet inloggen op OsMo</string>
<string name="osmo_group_by_invite">Alleen toegang met uitnodiging</string>
<string name="osmo_auth_error_short">Aanmelding mislukt</string>
<string name="osmo_auth_error">OsMo aanmeldings fout: %1$s.\nMogelijk is de service tijdelijk niet beschikbaar of is uw registratie verlopen.\nWilt u verder gaan met een nieuwe registratie.</string>
<string name="osmo_auth_error">OsMo aanmeldings fout: %1$s.\nMogelijk is de service tijdelijk niet beschikbaar of is uw registratie verlopen.\nWilt u verder gaan met een nieuwe registratie?</string>
<string name="rendering_attr_hideBuildings_name">Verberg gebouwen</string>
<string name="rendering_attr_hideNonVehicleHighways_name">Verberg voetpaden</string>
<string name="rendering_attr_hideText_name">Verberg tekst</string>
@ -1928,4 +1928,16 @@ Afghanistan, Albanie, Algerije, Andorra, Angola, Anguilla, Antigua en Barbuda, A
<string name="rendering_attr_osmcTraces_name">Wandelsymbolen laag</string>
<string name="rendering_attr_osmcTraces_description">Render paden volgens OSMC sporen</string>
</resources>
<string name="rendering_attr_coloredBuildings_name">Gekleurde gebouwen</string>
<string name="osmo_invite">Uitnodiging voor…</string>
<string name="osmo_leave_confirmation_msg">Wil je de groep %1$s verlaten?</string>
<string name="osmo_specify_tracker_id">Specificeer je tracker-id alsjeblieft</string>
<string name="arrival_distance_factor_early">Vroegtijdig</string>
<string name="arrival_distance_factor_normally">Normaal</string>
<string name="arrival_distance_factor_late">Laat</string>
<string name="arrival_distance_factor_at_last">Als bijna bereikt</string>
<string name="hide_all_waypoints">Verwijder alle</string>
<string name="av_camera_pic_size">Camera Beeldformaat</string>
<string name="av_camera_pic_size_descr">Selecteer interne camera beeldformaat</string>
<string name="announce_nearby_favorites">Meld favorieten in de buurt</string>
</resources>

View file

@ -0,0 +1,299 @@
<?xml version='1.0' encoding='utf-8'?>
<resources><string name="rendering_attr_coloredBuildings_name">Farga bygningar</string>
<string name="osmo_invite">Inviter …</string>
<string name="osmo_leave_confirmation_msg">Ønskjer du å forlata gruppa %1$s?</string>
<string name="osmo_specify_tracker_id">Oppgje ID</string>
<string name="continue_navigation">Hald fram navigering</string>
<string name="pause_navigation">Stopp navigering mellombels</string>
<string name="rendering_attr_subwayMode_name">T-banemodus</string>
<string name="keep_navigation_service">Behald</string>
<string name="stop_navigation_service">Stopp</string>
<string name="enable_sleep_mode">Bruk søvnmodus</string>
<string name="gps_wake_up_timer">Oppvakingsintervall for GPS</string>
<string name="sleep_mode_stop_dialog">Hald GPS-en påslått?</string>
<string name="map_preferred_locale_descr">Føretrekt språk for tekst på kartet (lokale eller engelske namn vert brukte om språket ikkje er tilgjengeleg)</string>
<string name="map_preferred_locale">Føretrekt kartspråk</string>
<string name="local_map_names">Lokale namn</string>
<string name="lang_sw">Swahili</string>
<string name="lang_he">Hebraisk</string>
<string name="forward">Fram</string>
<string name="home">Heim</string>
<string name="gpx_monitoring_start">Start GPS-opptak</string>
<string name="gpx_monitoring_stop">Stopp GPS-opptak</string>
<string name="rendering_attr_hideBuildings_name">Gøym bygningar</string>
<string name="rendering_attr_hideNonVehicleHighways_name">Gøym vegar som ikkje er for køyretøy</string>
<string name="rendering_attr_hideText_name">Gøym tekst</string>
<string name="rendering_attr_hideWoodScrubs_name">Gøym skog og kratt</string>
<string name="rendering_attr_buildings15zoom_name">Bygningar ved zoomnivå 15</string>
<string name="rendering_attr_moreDetailed_name">Meir detaljert</string>
<string name="rendering_attr_lessDetailed_name">Mindre detaljert</string>
<string name="rendering_attr_hideAccess_name">Gøym tilgangstype</string>
<string name="rendering_attr_showAccess_name">Vis tilgangstype</string>
<string name="rendering_attr_showSurfaceGrade_name">Vis vegkvalitet</string>
<string name="rendering_attr_showSurfaces_name">Vis vegdekke</string>
<string name="rendering_attr_showCycleRoutes_name">Vis sykkelruter</string>
<string name="osmo_auto_connect">Kopla til automatisk</string>
<string name="osmo_start_service">OsMo-teneste</string>
<string name="osmo_gpx_track_downloaded">OsMo-spor %1$s lasta ned.</string>
<string name="sort_by_distance">Sorter etter avstand</string>
<string name="sort_by_name">Sorter etter namn</string>
<string name="visible_element">Vis på kartet</string>
<string name="show_zoom_buttons_navigation_descr">Vis forstørringsknappar ved navigering</string>
<string name="show_zoom_buttons_navigation">Vis forstørringsknappar</string>
<string name="save_as_favorites_points">Lagra som favorittgruppe</string>
<string name="loading_smth">Lastar %1$s …</string>
<string name="map_widget_plain_time">Gjeldande klokkeslett</string>
<string name="gpx_wpt">Vegpunkt</string>
<string name="selected_gpx_info_show">\n\nHald inne for å sjå på kartet</string>
<string name="selected">valt</string>
<string name="local_index_gpx_info_show">\n\nHald inne for å sjå val</string>
<string name="gpx_info_subtracks">Delspor: %1$s</string>
<string name="gpx_info_waypoints">Vegpunkt: %1$s</string>
<string name="gpx_info_distance">Avstand: %1$s (%2$s punkt)</string>
<string name="gpx_info_average_speed">Gjennomsnittsfart: %1$s</string>
<string name="gpx_info_maximum_speed">Høgste fart: %1$s</string>
<string name="gpx_info_avg_altitude">Gjennomsnittshøgd: %1$s</string>
<string name="gpx_info_asc_altitude">Stigning: %1$s</string>
<string name="gpx_timemoving">Tid i rørsle: %1$s</string>
<string name="gpx_selection_number_of_points">%1$s punkt</string>
<string name="gpx_selection_point">Punkt %1$s</string>
<string name="gpx_file_is_empty">GPS-sporet er tomt</string>
<string name="my_tracks">Alle spor</string>
<string name="my_favorites">Mine favorittar</string>
<string name="my_data_Button">Mine stadar</string>
<string name="my_data_activity">Mine stadar</string>
<string name="osmo_follow">Følg</string>
<string name="osmo_sign_in">Logg inn</string>
<string name="osmo_connect_to_my_nickname">Kallenamnet mitt</string>
<string name="osmo_user_name">Brukarnamn</string>
<string name="color_red">raud</string>
<string name="color_pink">rosa</string>
<string name="color_orange">oransje</string>
<string name="color_brown">brun</string>
<string name="color_yellow">gul</string>
<string name="color_lightblue">lyseblå</string>
<string name="color_blue">blå</string>
<string name="color_green">grøn</string>
<string name="osmo_edit_device">Endra brukareigenskapar</string>
<string name="osmo_edit_color">Vis fargar</string>
<string name="osmo_group_info">Info</string>
<string name="osmo_group">OsMo-gruppe</string>
<string name="osmo_share_session">Del økt</string>
<string name="osmo_track_interval">Loggeintervall</string>
<string name="int_days">dagar</string>
<string name="osmo_connect_menu">Kopla til</string>
<string name="osmo_group_description">Skildring</string>
<string name="osmo_connect_to_device_name">Brukar</string>
<string name="lang_zh">Kinesisk</string>
<string name="lang_pt_br">Portugisisk (Brasil)</string>
<string name="lang_en">Engelsk</string>
<string name="lang_af">Afrikaans</string>
<string name="lang_al">Albansk</string>
<string name="lang_ar">Arabisk</string>
<string name="lang_hy">Armensk</string>
<string name="lang_eu">Baskisk</string>
<string name="lang_be">Kviterussisk</string>
<string name="lang_bs">Bosnisk</string>
<string name="lang_bg">Bulgarsk</string>
<string name="lang_ca">Katalansk</string>
<string name="lang_hr">Kroatisk</string>
<string name="lang_cs">Tsjekkisk</string>
<string name="lang_da">Dansk</string>
<string name="lang_nl">Nederlandsk</string>
<string name="lang_fi">Finsk</string>
<string name="lang_fr">Fransk</string>
<string name="lang_ka">Georgisk</string>
<string name="lang_de">Tysk</string>
<string name="lang_el">Gresk</string>
<string name="lang_iw">Hebraisk</string>
<string name="lang_hi">Hindi</string>
<string name="lang_hu">Ungarsk</string>
<string name="lang_id">Indonesisk</string>
<string name="lang_it">Italiensk</string>
<string name="lang_ja">Japansk</string>
<string name="lang_ko">Koreansk</string>
<string name="lang_lv">Latvisk</string>
<string name="lang_lt">Litauisk</string>
<string name="lang_mr">Marathi</string>
<string name="lang_no">Norsk</string>
<string name="lang_fa">Persisk</string>
<string name="lang_pl">Polsk</string>
<string name="lang_pt">Portugisisk</string>
<string name="lang_ro">Rumensk</string>
<string name="lang_ru">Russisk</string>
<string name="lang_sc">Sardisk</string>
<string name="lang_sr">Serbisk</string>
<string name="lang_zh_CN">Kinesisk  forenkla</string>
<string name="lang_sk">Slovakisk</string>
<string name="lang_sl">Slovensk</string>
<string name="lang_es">Spansk</string>
<string name="lang_sv">Svensk</string>
<string name="lang_zh_TW">Kinesisk tradisjonell</string>
<string name="lang_tr">Tyrkisk</string>
<string name="lang_uk">Ukrainsk</string>
<string name="lang_vi">Vietnamesisk</string>
<string name="lang_cy">Walisisk</string>
<string name="index_name_canada">Nord-Amerika Canada</string>
<string name="index_name_italy">Europa Italia</string>
<string name="index_name_gb">Europa  Storbritannia</string>
<string name="select_gpx">Vel GPX-fil …</string>
<string name="route_descr_select_destination">Vel mål</string>
<string name="route_descr_select_on_map">Vel på kartet …</string>
<string name="route_descr_favorite">Favoritt …</string>
<string name="route_info">Ruteinformasjon</string>
<string name="routing_attr_short_way_name">Kortaste veg</string>
<string name="routing_attr_short_way_description">Bruk kortaste veg</string>
<string name="routing_attr_avoid_ferries_name">Unngår ferjer</string>
<string name="routing_attr_avoid_ferries_description">Unngå ferjer</string>
<string name="routing_attr_weight_name">Maksvekt</string>
<string name="copying_osmand_files">Kopierer OsmAnd-filer</string>
<string name="app_mode_truck">Lastebil</string>
<string name="guidance_preferences_descr">Navigasjonsval</string>
<string name="amenity_type_seamark">Sjømerke</string>
<string name="app_modes_choose">Programprofilar</string>
<string name="map_widget_map_rendering">Kartvising:</string>
<string name="app_mode_hiking">Fottur</string>
<string name="app_mode_motorcycle">Motorsykkel</string>
<string name="app_mode_boat">Båt</string>
<string name="app_mode_aircraft">Fly</string>
<string name="tip_faq">Ofte spurde spørsmål</string>
<string name="local_osm_changes_delete_all">Slett alt</string>
<string name="default_and">og</string>
<string name="default_or">eller</string>
<string name="gps_status_eclipsim">GPS-status</string>
<string name="base_world_map">Globalt grunnkart</string>
<string name="tip_map_styles">Kartstilar</string>
<string name="about_version">Versjon:</string>
<string name="about_settings">Om</string>
<string name="tips_and_tricks">Tips</string>
<string name="edit_tilesource_maxzoom">Maksforstørring</string>
<string name="edit_tilesource_minzoom">Minste forstørring</string>
<string name="edit_tilesource_url_to_load">Adresse</string>
<string name="edit_tilesource_name">Namn</string>
<string name="maps_define_edit">Definer/rediger …</string>
<string name="driving_region_japan">Japan</string>
<string name="driving_region_us">USA</string>
<string name="driving_region_canada">Canada</string>
<string name="driving_region_europe_asia">Europa og Asia</string>
<string name="osmodroid_mode_on">Stopp OsMoDroid</string>
<string name="osmodroid_mode_off">Start OsMoDroid</string>
<string name="osmodroid_refresh">Oppdater kanalar</string>
<string name="route_descr_map_location">Kart:</string>
<string name="route_descr_current_location">Gjeldande posisjon</string>
<string name="route_to">Til:</string>
<string name="route_via">Via:</string>
<string name="route_from">Frå:</string>
<string name="app_mode_default">Vis kart</string>
<string name="settings_preset">Standardprofil</string>
<string name="destination_point">Mål %1$s</string>
<string name="please_select_address">Vel først by eller gate</string>
<string name="plugin_distance_point_time">tid</string>
<string name="plugin_distance_point_hdop">presisjon</string>
<string name="plugin_distance_point_speed">fart</string>
<string name="plugin_distance_point_ele">høgd og havet</string>
<string name="plugin_distance_point">Punkt</string>
<string name="gpx_file_name">GPS-filnamn</string>
<string name="default_buttons_do_not_show_again">Ikkje vis på nytt</string>
<string name="distance_measurement_start_editing">Start redigering</string>
<string name="distance_measurement_finish_editing">Fullfør redigering</string>
<string name="distance_measurement_clear_route">Fjern alle punkta</string>
<string name="distance_measurement_save_gpx">Lagra som GPX-fil</string>
<string name="distance_measurement_load_gpx">Opna GPX-fil</string>
<string name="use_kalman_filter_compass">Bruk Kalman-filter</string>
<string name="use_magnetic_sensor">Bruk magnetisk sensor</string>
<string name="other_location">Annan</string>
<string name="files_limit">%1$d filer att</string>
<string name="available_downloads_left">%1$d filer tilgjengeleg for nedlasting</string>
<string name="install_paid">Full versjon</string>
<string name="cancel_navigation">Stopp navigering</string>
<string name="clear_destination">Fjern mål</string>
<string name="street_name">Gate</string>
<string name="hno">Husnummer</string>
<string name="website">Nettside</string>
<string name="phone">Telefonnummer</string>
<string name="choose_osmand_theme">Programtema</string>
<string name="choose_osmand_theme_descr">Vel programtema</string>
<string name="contribution_activity">Versjon installert</string>
<string name="select_address_activity">Vel adresse</string>
<string name="favourites_list_activity">Vel favoritt</string>
<string name="local_openstreetmap_act_title">OSM-endringar</string>
<string name="default_buttons_other_actions">Andre handlingar</string>
<string name="layer_hillshade">Fjellskugge-lag</string>
<string name="map_widget_gps_info">GPS-info</string>
<string name="map_view">Kart</string>
<string name="prefer_motorways">Føretrekker motorvegar</string>
<string name="prefer_in_routing_title">Føretrekk …</string>
<string name="prefer_in_routing_descr">Føretrekk motorvegar</string>
<string name="max_speed_none">ingen</string>
<string name="index_name_openmaps">OpenMaps EU</string>
<string name="download_hillshade_item">Fjellskugge</string>
<string name="download_hillshade_maps">Fjellskugge-lag</string>
<string name="dist_control_start">Start</string>
<string name="local_indexes_cat_srtm">Høgdekurvedata</string>
<string name="recording_context_menu_show">Vis</string>
<string name="recording_photo_description">Foto %1$s av %2$s</string>
<string name="av_def_action_picture">Ta eit foto</string>
<string name="recording_context_menu_precord">Ta eit foto</string>
<string name="av_def_action_video">Videoopptak</string>
<string name="av_def_action_audio">Lydopptak</string>
<string name="av_use_external_recorder">Bruk systemopptakar</string>
<string name="av_use_external_camera">Bruk kamera-app</string>
<string name="recording_camera_not_available">Kameraet er ikkje tilgjengeleg</string>
<string name="recording_unavailable">ikkje tilgjengeleg</string>
<string name="recording_context_menu_arecord">Ta lydnotat</string>
<string name="recording_context_menu_vrecord">Ta videonotat</string>
<string name="layer_recordings">Opptakslag</string>
<string name="recording_context_menu_delete">Slett opptak</string>
<string name="recording_context_menu_play">Spel av</string>
<string name="recording_description">Opptak %1$s %2$s av %3$s</string>
<string name="recording_default_name">opptak</string>
<string name="av_control_stop">Stopp</string>
<string name="av_control_start">Start</string>
<string name="map_widget_av_notes">Lyd-/video-notat</string>
<string name="map_widget_distancemeasurement">Avstandsmåling</string>
<string name="monitoring_control_stop">Stopp</string>
<string name="map_widget_audionotes">Lydnotat</string>
<string name="audionotes_plugin_description">Ta lyd- eller videonotat under turen</string>
<string name="audionotes_plugin_name">Lyd-/videonotat</string>
<string name="index_srtm_parts">delar</string>
<string name="index_srtm_ele">Høgdkurver</string>
<string name="download_select_map_types">Andre kart</string>
<string name="srtm_plugin_name">Høgdekurve-tillegg</string>
<string name="download_roads_only_item">Berre vegar</string>
<string name="download_srtm_maps">Høgdekurver</string>
<string name="download_regular_maps">Vanlege kart</string>
<string name="download_roads_only_maps">Kart med berre vegar</string>
<string name="rendering_attr_alpineHiking_name">Fjellturkart</string>
<string name="rendering_attr_noAdminboundaries_name">Gøym grenser</string>
<string name="osmodroid_plugin_name">OsMoDroid-tillegg</string>
<string name="tip_altitude_offset">Høgdekorrigeringar</string>
<string name="map_widget_max_speed">Fartsgrense</string>
<string name="monitoring_control_start">GPX</string>
<string name="no_buildings_found">Fann ingen bygningar.</string>
<string name="rendering_attr_showRoadMaps_name">Kart med berre vegar</string>
<string name="safe_mode">Sikkermodus</string>
<string name="close_changeset">Lukk endringssett</string>
<string name="rendering_attr_roadColors_name">Vegfargetema</string>
<string name="btn_advanced_mode">Avansert modus …</string>
<string name="poi_filter_parking">Parkering</string>
<string name="poi_filter_emergency">Nødhjelp</string>
<string name="poi_filter_public_transport">Kollektivtransport</string>
<string name="poi_filter_entertainment">Underhaldning</string>
<string name="poi_filter_accomodation">Losji</string>
<string name="poi_filter_restaurants">Restaurantar</string>
<string name="poi_filter_car_aid"/>
<string name="poi_filter_food_shop">Matbutikk</string>
<string name="poi_filter_for_tourists">For turistar</string>
<string name="poi_filter_fuel">Drivstoff</string>
<string name="show_warnings_title">Vis alarmar …</string>
<string name="use_compass_navigation">Bruk kompasset</string>
<string name="avoid_motorway">Unngå motorvegar</string>
<string name="snap_to_road">Lås på veg</string>
<string name="interrupt_music">Avbryt musikk</string>
<string name="osmand_plus_play_title_30_chars">OsmAnd+ kart og navigering</string>
<string name="recalculate_route_to_your_location">Transportmodus</string>
<string name="select_destination_and_intermediate_points">Merk vegpunkt</string>
</resources>

View file

@ -1322,6 +1322,8 @@
<string name="av_camera_focus_continuous">Постоянная фокусировка</string>
<string name="av_photo_play_sound">Звук затвора</string>
<string name="av_photo_play_sound_descr">Проигрывать звук при фотографировании</string>
<string name="av_camera_pic_size">Размер фото</string>
<string name="av_camera_pic_size_descr">Размер изображения для встроенного приложения фотографирования</string>
<string name="speak_speed_limit">Сообщать о превышении скорости</string>
<string name="speak_cameras">Сообщать о камерах</string>
@ -1539,9 +1541,9 @@
<string name="share_route_as_gpx">Поделиться маршрутом используя файл GPX</string>
<string name="osmo_settings_uuid">Ключ доступа</string>
<string name="osmo_settings_descr">Настройка параметров мониторинга и установка персонального канала мониторинга</string>
<string name="osmo_plugin_description">OpenStreetMap-Monitoring - продвинутый живой мониторинг с множеством средств удалённого контроля http://osmo.mobi</string>
<string name="osmo_plugin_description">OpenStreetMap Monitoring - продвинутый живой мониторинг с множеством средств удалённого контроля http://osmo.mobi</string>
<string name="osmo_plugin_name">OsMo (Продвинутый онлайн-мониторинг)</string>
<string name="osmo_settings">OpenStreetMap-Мониторинг</string>
<string name="osmo_settings">OpenStreetMap Мониторинг</string>
<string name="navigation_intent_invalid">Неправильный формат: %s</string>
<string name="share_route_subject">Маршрут предоставленный через OsmAnd</string>
<string name="osmand_extended_description_4000_chars">
@ -1654,8 +1656,6 @@ OsmAnd - открытый источник и активно развается.
<string name="color_yellow">жёлтый</string>
<string name="color_lightblue">голубой</string>
<string name="color_blue">синий</string>
<string name="color_green">зелёный</string>
<string name="osmo_create_groups_confirm">Чтобы создавать группы Вы должны быть зарегистрированным пользователем OsMo.</string>
<string name="osmo_sign_in">Войти</string>
<string name="osmo_regenerate_login_ids_confirm">Вы уверены в необходимости регенерации персональных ID? Все устройства, соединённые с Вами, больше не смогут отследить Вас.</string>
@ -1786,7 +1786,10 @@ OsmAnd - открытый источник и активно развается.
<string name="arrival_distance_factor_normally">Обычно</string>
<string name="arrival_distance_factor_late">Попозже</string>
<string name="arrival_distance_factor_at_last">На последних метрах</string>
<string name="osmo_group_information_desc">" - Все созданные группы являются открытыми! Если вы хотите сохранить анонимность, подключите устройства непосредственно через ID трекера.\n - В группе могут быть зарегистрированы до 16 человек.\n - За бездействие или деятельность только 1 человека за 2 недели группа будет удалена.\n - Вы можете ограничить вход в группу, сделать только по приглашениям, но для управления группой вы должны войти в консоль администратора.\n - Если вам нужно создать группу, но с другими условиями, пожалуйста, свяжитесь с http://osmo.mobi"</string>
<string name="osmo_group_information_desc">" - Все созданные группы являются открытыми! Если вы хотите сохранить анонимность, подключите устройства непосредственно через ID трекера.\n - В группе могут состоять до 16 человек.\n - Если в группе не будет активным хотя бы 1 человек в течении 2-х недель группа будет удалена.\n - Вы можете ограничить вход в группу, только по приглашениям, но для управления группой вы должны войти в консоль администратора.\n - Если вам нужно создать группу, но с другими условиями, пожалуйста, свяжитесь со службой поддержки http://osmo.mobi</string>
<string name="rendering_attr_alpineHiking_name">Пеший горный туризм</string>
<string name="rendering_attr_osmcTraces_name">Наложение символов пешего туризма</string>
</resources>
<string name="rendering_attr_coloredBuildings_name">Цветные здания</string>
<string name="hide_all_waypoints">Удалить все</string>
<string name="announce_nearby_favorites">Объявлять ближайшие избранные</string>
</resources>

View file

@ -729,7 +729,7 @@ Si cussigiat de annànghere unu o prus puntos intermedios pro megiorare sas pres
<string name="index_name_wiki">PDI Wikipedia mondiale</string>
<string name="update_poi_is_not_available_for_zoom">S\'agiornamentu de sos PDI non est disponìbile pro livellos de zoom bassos</string>
<string name="tip_update_index_t">"Mapas agiorndas sunt fundamentales pro sa visione sena lìnia, pro sa chirca tramite PDI/indiritzu, e pro su nàvigu sena lìnia. OsmAnd frunidi unu gestore de sas mapas pro las isgarrigare e pro chircare pro agiornamentos.
\n\nPro isgarrigare mapas bae in \'Impostaduras\' → \'Manage map files\' → \'Isgàrriga\'.
\n\nPro isgarrigare mapas bae in \'Impostaduras\' → \'Gesti documentos mapas\' → \'Isgàrriga\'.
\n\nA pustis chi sa lista globale de sas regiones at a èssere istada isgarrigada, carca in supra de unu ogetu pro isgarrigare o carrigare unu documentu. Pro piaghere nota s\'isseberadore de tiou de documentu in sa parte arta de s\'ischermu pro ischertare su tipu de isgarrigamentu chi boles (mapas regulares, umbraduras de sos rilievos, etc.).
\n\nPodes filtrare sa lista de sas regiones iscrivende carchi lètera, o ischertande s\'optzione \'Impostaduras\' → \'Filtra isgarrigadas \' pro bìere agiornamentos pro petzi sos datos chi tenes giai in su dispositivu.
\n\n\t* Boghes in \'birde\' indicana documentos de datos identicos in su dispositivu e in su server
@ -951,4 +951,69 @@ Si cussigiat de annànghere unu o prus puntos intermedios pro megiorare sas pres
<string name="file_with_name_already_exist">Esistit giai unu documentu cun su matessi numene.</string>
<string name="default_buttons_save">Sarba</string>
<string name="menu_save_directions">Sarba diretziones</string>
<string name="rendering_attr_coloredBuildings_name">Edifìtzios coloraos</string>
<string name="osmo_invite">Invita...</string>
<string name="osmo_leave_confirmation_msg">Boles essire dae su grupu %1$s?</string>
<string name="osmo_specify_tracker_id">Pro piaghere dislinda s\'id</string>
<string name="continue_navigation">Sighi cun su nàvigu</string>
<string name="pause_navigation">Pone in pasu su nàvigu</string>
<string name="rendering_attr_alpineHiking_name">Bisura pro alpinismu</string>
<string name="rendering_attr_alpineHiking_description">Disinna sas camineras basandeti in supra de s\'iscala SAC</string>
<string name="rendering_attr_osmcTraces_name">Istratu sìmbulos escursionisticos</string>
<string name="rendering_attr_osmcTraces_description">Disinna sas camineras sighinde sas rastas OSMC</string>
<string name="osmand_parking_delete_confirm">Boles remòvere sa positzione de sa màchina parchegiada?</string>
<string name="osmand_parking_delete">Burra su marcadore de parchègiu</string>
<string name="osmand_parking_position_description_add">Recùpera sa màchina pro sas:</string>
<string name="context_menu_item_delete_parking_point">Burra unu marcadore de parchègiu</string>
<string name="route_roundabout">Rutunda: piga sa %1$d essida e sighi</string>
<string name="rendering_attr_appMode_description">Otimizza sas mapas pro</string>
<string name="rendering_attr_contourLines_description">Ammustra dae su livellu de zoom (serbint sos datos de sas lìnias de livellu):</string>
<string name="rendering_attr_hmRendered_name">Ammustra prus minujas in sa mapa</string>
<string name="history_search_desc">Cronologia chircas</string>
<string name="download_link_and_local_description">Carcare inoghe pro iscarrigare o carrigare documentos de mapas sena lìnia.
\nCarca un\'elementu esistente pro bìdere prus minujos, carca e mantène carcau pro deativare o cantzellare. Datos currentes in su dispositivu (%1$s lìberos):</string>
<string name="index_settings_descr">Iscàrriga e gesti sas mapas sena lìnia sarbadas in su dispositivu</string>
<string name="map_online_plugin_is_not_installed">Abìlita su plugin pro sas mapas sena lìnia pro ammustrare àteras mitzas</string>
<string name="osmand_monitoring_description">Ammustra sas impostaduras pro fatzilitare sa registratzione in unu documentu GPX o in lìnia impreande uu servìtziu web.</string>
<string name="hide_all_waypoints">Burralos totus</string>
<string name="default_buttons_selectall">Ischerta totu</string>
<string name="edit_filter_delete_menu_item">Burra</string>
<string name="filter_current_poiButton">Filtru</string>
<string name="poi_dialog_comment_default">Mudadura PDI</string>
<string name="poi_dialog_other_tags_message">Totu sas etichetas sunt sarbadas</string>
<string name="poi_dialog_comment">Cummentu</string>
<string name="poi_dialog_name">Nùmene</string>
<string name="poi_error_info_not_loaded">Informatziones relatas a su nodu non carrigadas</string>
<string name="poi_error_io_error_template">Errore de I/O durante s\'esecutzione de s\'atzione {0}.</string>
<string name="poi_action_succeded_template">Atzione {0} reseddida cumpridamente.</string>
<string name="first_time_msg">Gratzias pro s\'impreu de OsmAnd. Pro meda de sas caraterìsticas de s\'àplicu tènes bisongiu de datos locales sena lìnia, chi podent èssere icarrigadas dae \'Impostaduras\'→\'Gesti sos documentos mapas\'. A pustis at a èssere possìbile ammustrare mapas, chircare indirìtzos, PDI, e agatare trasportos pùblicos.</string>
<string name="basemap_was_selected_to_download">Sa mapa de base est pedida pro su funtzionamentu curretu de s\'àplicu e est idada ischertada pro s\'iscarrigamentu.</string>
<string name="osmand_extra_settings_description">Ammustra sas impostaduras pro sa cunfiguratzione avantzada de sa mapa (comente aumentare sos minujos) e calicunas de dispositivos dislindados.</string>
<string name="osmand_development_plugin_description">Ammustra impostaduras pro funtzionalidades in isvilupu e debug comente su nàvigu animadu o ammustrare sa prestatzione de su rendering.</string>
<string name="vector_maps_may_display_faster_on_some_devices">Sas mapas vetoriales diat dèpere apàrrere in manera prus lestra. In carchi dispositivu diat podere funtzionare male.</string>
<string name="osmand_parking_warning_text">Pretzdentemente est istada annangada a su tzeravallu/calendàriu tuo sa notìfica pro recuperare sa màchina. At a abarrare finas a cando non l\'as a burrare manualmente.</string>
<string name="rendering_attr_noPolygons_description">Faghe divènnere transparentes totu sas caraterìsticas de sas àreas de su terrinu</string>
<string name="rendering_attr_hmRendered_description">Aumenta sa cantidade ammustrada de minujos de sa mapa</string>
<string name="osmand_rastermaps_plugin_description">Ammustra sas impostaduras pro cunfigurare una variedade de mapas in lìnia o a tasseddos in cache comente mapa de base pro sas mapas subrapostas/de sutafondu. Custas mapas podent èssere fintzas ammaniadas sena lìnia e copiadas in sa cartella de OsmAnd.</string>
<string name="tip_recent_changes_0_8_0_t">"Mudas in sa 0.8.0:
\n\t- *Funtzionalidade a plugin*
\n\t - Medas de sas funtzionalidades sunt afiotadas pro carateristicas e podent èssere abilitadas/disabilitadas in sas impostaduras de su plugin. Podes abilitare mitzas pro mapas a tasseddos (in lìnia o in cache), impostaduras pro s\'arrastamentu, e meda àteras funtziones noas e giai esistentes.
\n\t- *Suportu nou pro sas mapas sena lìnia*
\n\t - Su rendering de sas mapas diventada prus lestru e prus pretzisu (sos problemas pro sas lìnias de costa e sas areas allagadas sunt istados acontzados).
\n\t - Depes icarrigare totu datos sena lìnia noos (sos betzos no ant a èssere prus suportados)
\n\t- *Càlculu de s\'àndala sena lìnia*
\n\t - Su càlculu de sas àndala divènnidi prus sòlidu\n\t *Megioramentos impreabilidade e UI*
\n\t - Megioramentos in medas àreas "</string>
<string name="osm_editing_plugin_description">Ammustra sasimpostaduras netzessàrias pro cuntribuire ad OSM comente sa regorta/mudadura de sos PDI de OSM, apèrrere/cummentare errores de OSM e inviare documentos GPX registrados (rechedet sas credentziales de OSM).</string>
<string name="play_commands_of_currently_selected_voice">Riprodui sos cumandos de sa boghe como seletzionada</string>
<string name="test_voice_prompts">Proa sos cumandos vocales</string>
<string name="switch_to_raster_map_to_see">Peruna mapa vetoriale est disponìbile pro custa positzione. Ne podes iscarrigare una in Impostaduras (Gesti sos datos mapas), o colare a sas mapas in lìnia (abìlita sas mapas in lìnia pro lu fàghere).</string>
<string name="tip_recent_changes_0_7_2_t">"Mudas in sa 0.7.2:
\n\t- Disinnu nativu pro totu sos dispositivos
\n\t- Creatzione sena lìnia de sos PDI
\n\t- Atzessibilidade
\n\t- Medas curretziones de errores "</string>
<string name="support_new_features_descr">Faghe una donatzione pro tènnere funtzionalidades noas inmplementadas in s\'àplicu</string>
</resources>

View file

@ -1274,7 +1274,7 @@
<string name="street_name">Ulica</string>
<string name="hno">Číslo domu</string>
<string name="monitoring_settings">Logovacie služby</string>
<string name="monitoring_settings_descr">Konfiguruje ako sa majú zaznamenať trasy a povoliť režim spánku</string>
<string name="monitoring_settings_descr">Konfigurovať ako sa majú zaznamenať trasy</string>
<string name="osmand_monitoring_plugin_name">Logovacie služby</string>
<string name="choose_osmand_theme_descr">Výber témy pre aplikáciu</string>
<string name="choose_osmand_theme">Téma aplikácie</string>
@ -1899,7 +1899,7 @@ Afganistan, Albánsko, Alžírsko, Andora, Angola, Anguilla, Antigua a Barbuda,
<string name="osmo_gpx_track_downloaded">OsMo stopa %1$s stiahnutá.</string>
<string name="osmo_not_signed_in">Prihlásenie k OsMo zlyhalo</string>
<string name="osmo_auth_error_short">Autorizácia zlyhala</string>
<string name="osmo_auth_error">Chyba pri autorizácii OsMo : %1$s.\n Možno je služba dočasne nedostupná alebo vám skončila registrácia.\n Chcete pokračovať v novej registrácii.</string>
<string name="osmo_auth_error">Chyba pri autorizácii OsMo : %1$s.\n Možno je služba dočasne nedostupná alebo vám skončila registrácia.\n Chcete pokračovať v novej registrácii?</string>
<string name="osmo_group_by_invite">Vstúpiť pozvaním</string>
<string name="osmo_group_information_desc">" - Všetky vytvorené skupiny sú verejné! Ak chcete byť anonymný, pripojte zariadenia priamo cez Tracker id.\n - Skupina môže zaregistrovať až do 16 ľudí.\n - Skupina bude zrušená v prípade nečinnosti alebo aktivity len jednej osoby počas 2 týždňov.\n - Môžete obmedziť vstup do skupiny len na pozvánky, ale pre ovládanie skupiny musíte použiť administračnú konzolu.\n - Ak potrebujete vytvoriť skupinu s inými podmienkami, kontaktujte http://osmo.mobi"</string>
<string name="osmo_group_information">Prosím prečítajte si pred vytváraním skupiny!</string>
@ -1949,4 +1949,16 @@ Afganistan, Albánsko, Alžírsko, Andora, Angola, Anguilla, Antigua a Barbuda,
<string name="rendering_attr_osmcTraces_name">Zobraziť turistické značky</string>
<string name="rendering_attr_osmcTraces_description">Kresliť chodníky podľa značenia OSMC</string>
</resources>
<string name="rendering_attr_coloredBuildings_name">Farebné budovy</string>
<string name="osmo_invite">Pozvať...</string>
<string name="osmo_leave_confirmation_msg">Chcete opustiť skupinu %1$s?</string>
<string name="osmo_specify_tracker_id">Prosím zadajte ID</string>
<string name="arrival_distance_factor_early">Skoro</string>
<string name="arrival_distance_factor_normally">Normálne</string>
<string name="arrival_distance_factor_late">Neskoro</string>
<string name="arrival_distance_factor_at_last">V posledných metroch</string>
<string name="hide_all_waypoints">Odstrániť všetky</string>
<string name="av_camera_pic_size">Veľkosť fotografie</string>
<string name="av_camera_pic_size_descr">Zvoľte veľkosť obrázka interného fotoaparátu</string>
<string name="announce_nearby_favorites">Oznamovať obľúbené miesta v blízkosti</string>
</resources>

View file

@ -1328,7 +1328,7 @@ Pomembnejše lastnosti:
<string name="access_mark_final_location_first">Način dostopnosti: prosim, najprej izberite cilj</string>
<string name="use_magnetic_sensor_descr">Namesto senzorja usmerjenosti, za določanje vrednosti kompasa uporabljaj magnetni senzor</string>
<string name="cancel_route">Opusti pot</string>
<string name="monitoring_settings_descr">Določite, kako lahko snemate potovanja in omogočite način v pripravljenosti</string>
<string name="monitoring_settings_descr">Določite, kako naj se snemajo potovanja</string>
<string name="osmand_monitoring_plugin_description">Omogoči sledenje in navigacijo v načinu pripravljenosti (izklopljen zaslon) preko rednega zbujanja GPS naprave. Pokaže nastavitve, ki omogočajo snemanje potovanj v lokalne GPX datoteke ali na splet z uporabo spletnih storitev.</string>
<string name="choose_osmand_theme_descr">Izbira teme programa</string>
<string name="choose_osmand_theme">Tema aplikacije</string>
@ -1890,4 +1890,13 @@ Seznam držav (praktično ves svet!): Afganistan, Albanija, Alžirija, Andora, A
<string name="rendering_attr_subwayMode_name">Način podzemne železnice</string>
<string name="continue_navigation">Nadaljuj navigacijo</string>
<string name="rendering_attr_alpineHiking_name">Planinski zamljevid</string>
<string name="osmo_invite">Povabite...</string>
<string name="osmo_specify_tracker_id">Prosim, določite ID</string>
<string name="arrival_distance_factor_early">Zgodaj</string>
<string name="arrival_distance_factor_normally">Običajno</string>
<string name="arrival_distance_factor_late">Pozno</string>
<string name="arrival_distance_factor_at_last">V zadnjih metrih</string>
<string name="hide_all_waypoints">Odstrani vse</string>
<string name="rendering_attr_coloredBuildings_name">Pobarvane stavbe</string>
<string name="osmo_leave_confirmation_msg">Ali želite zapustiti skupino %1$s?</string>
</resources>

View file

@ -1164,7 +1164,7 @@
<string name="street_name">Gata</string>
<string name="hno">Husnummer</string>
<string name="osmand_monitoring_plugin_name">Loggningstjänster</string>
<string name="monitoring_settings_descr">Konfigurera inspelning av resa och aktivera viloläge</string>
<string name="monitoring_settings_descr">Konfigurera inspelning av resa</string>
<string name="monitoring_settings">Loggningstjänster</string>
<string name="tip_recent_changes_1_3_t">Ändringar i 1.3:
\n\t* Implementera stöd för plattor och stora skärmar
@ -1202,7 +1202,7 @@
\n\t* Stöd för OSM-anteckningar
</string>
<string name="search_street_in_neighborhood_cities">Sök gator i grannstäder</string>
<string name="intermediate_items_sort_return">Platser ordnade för att bilda en optimal rutt från positionen på kartan till destinationen.</string>
<string name="intermediate_items_sort_return">Mellanliggande waypoints ordnade för att bilda en optimal rutt från positionen på kartan till destinationen.</string>
<string name="intermediate_items_sort_by_distance">Sortera (dörr-till-dörr)</string>
<string name="local_osm_changes_backup_failed">Säkerhetskopieringen av OSM-ändringar misslyckades</string>
<string name="local_osm_changes_backup">Säkerhetskopiera som OSM-förändring</string>
@ -1465,14 +1465,14 @@
<string name="osmo_mode_off">Starta OsMo-session</string>
<string name="use_points_as_intermediates">Beräkna rutt mellan punkter</string>
<string name="tip_recent_changes_1_8_alpha">"Förändringar i 1.8: * Beräkna rutt mellan ruttpunkter i GPX-spår * Ändrat utseende vid nedladdning av länder (stöd för sökning med lokala namn) * Stöder GPX-/KML-import (konvertera fråm KML till GPX) * GPX-spår har flyttat till \'Mina data\' * Du kan dela upp GPX-spår efter sträcka och kolla höjdskillnad/hastighet * Autostarta navigering efter fördröjning "</string>
<string name="osmo_auto_send_locations_descr">Starta trackersessionen automatiskt och sänd platser sedan appen startats</string>
<string name="osmo_auto_send_locations_descr">Starta trackersessionen automatiskt och skicka positioner när appen startats</string>
<string name="osmo_auto_send_locations">Starta trackersessionen automatiskt</string>
<string name="osmo_tracker_id">Personligt tracker-id</string>
<string name="osmo_tracker_id_descr">Klicka för att visa eller dela ut tracker-id.
Med tracker-id kommer anslutna enheter att kunna följa denna enhets alla rörelser! För att koppla ifrån, välj alternativet Återskapa...</string>
<string name="osmo_session_token">Sessionstoken: %1$s</string>
<string name="osmo_auth_pending">Väntar på autentisering...</string>
<string name="osmo_locations_sent">Platser skickade %1$d (i buffer %2$d) </string>
<string name="osmo_locations_sent">"Positioner skickade %1$d (i buffert %2$d) "</string>
<string name="osmo_conn_successfull">Anslutning upprättad: %1$s </string>
<string name="hours_ago">timmar sedan</string>
<string name="minutes_ago">minuter sedan</string>
@ -1489,7 +1489,7 @@
<string name="osmo_group_share">För att ansluta till gruppen %2$s, ange grupp-id (%1$s) eller klicka på %3$s.</string>
<string name="osmo_share_connect_device">Följ denna enhet permanent</string>
<string name="osmo_share_current_session">Dela aktuell session i webbläsaren</string>
<string name="osmo_session_not_available">Sessionen inte tillgänglig. Kolla att \'Skicka platser\' är på.</string>
<string name="osmo_session_not_available">Sessionen inte tillgänglig. Kolla att \'Skicka positioner\' är på.</string>
<string name="osmo_share_session">Dela session</string>
<string name="osmo_session_id_share">Sessions-URL för att spåra enhet (%1$s)</string>
<string name="osmo_tracker_id_share">För att ansluta till målenheten %2$s, klicka på länken %3$s eller ange tracker-id (%1$s)</string>
@ -1507,7 +1507,7 @@
<string name="osmo_create_group">Skapa grupp</string>
<string name="osmo_server_operation_failed">OsMo-server operation misslyckades</string>
<string name="osmo_activity">OpenStreetMap-bevakning</string>
<string name="osmo_enable_tracker">Skicka mina platser</string>
<string name="osmo_enable_tracker">Skicka mina positioner</string>
<string name="osmo_control">OsMo snabbåtkomst</string>
<string name="osmo_mode_restart">Starta om OsMo-session</string>
<string name="osmo_settings_debug">Avbuggningsinformation</string>
@ -1573,7 +1573,7 @@
<string name="gpx_available_current_track">Aktuellt inspelningsspår</string>
<string name="save_as_favorites_points">Spara som grupp med favoriter</string>
<string name="select_destination_and_intermediate_points">Välj waypoints</string>
<string name="layer_amenity_label">Punktetiketter</string>
<string name="layer_amenity_label">Namn på punkter</string>
<string name="show_zoom_buttons_navigation_descr">Visa zoom-knappar under navigering</string>
<string name="show_zoom_buttons_navigation">Visa zoom-knappar</string>
<string name="color_green">grön</string>
@ -1603,7 +1603,7 @@
<string name="tip_map_switch_t_v2">"Kartkälla och kartlager som ska visas ändras via \'Meny\' → \'Kartlager\'.\n\nUnder \'Kartkälla...\' kan du välja mellan de förladdade offline vektorkartorna (standard, krävs också för offline-navigering), eller fördefinierade (online eller cachade offline) kartbitskällor (aktivera insticksmodulen \'Online-kartor\' under \'Inställningar\'→ \'Plugin\' för detta), eller kartor skapade manuellt med t.ex. OsmaAndMapCreator på en PC.\n\nOsmAnd stöder också egna källor. "</string>
<string name="osmo_not_signed_in">Inloggningen till OsMo misslyckades</string>
<string name="osmo_group_by_invite">Anslut via inbjudan</string>
<string name="osmo_group_information_desc">" - Alla skapade grupper är offentliga! Om du vill vara anonym, anslut enheter direkt via Tracker-id-\n- Upp till 16 personer kan vara registrerade i gruppen.\n- Grupper tas bort i fall av inaktivitet eller aktivitet av endast 1 person på 2 veckor.\n- Du kan begränsa inträde i grupp men för att kontrollera gruppen måste du gå till adminkonsollen.\n- Om du behöver skapa en grupp, men i övrigt kontakta http://osmo.mobi"</string>
<string name="osmo_group_information_desc">" - Alla skapade grupper är offentliga! Om du vill vara anonym, anslut enheter direkt via Tracker-id-\n- Upp till 16 personer kan vara registrerade i gruppen.\n- Grupper tas bort i fall av inaktivitet eller aktivitet av endast 1 person under två veckor.\n- Du kan begränsa inträde i grupp (som t.ex. endast via inbjudan) men för att kontrollera gruppen måste du gå till adminkonsollen.\n- Om du behöver skapa en grupp med andra villkor kontakta http://osmo.mobi"</string>
<string name="osmo_group_information">Läs detta innan du skapar en grupp!</string>
<string name="keep_navigation_service">Behåll</string>
<string name="stop_navigation_service">Stoppa</string>
@ -1661,4 +1661,8 @@
<string name="arrival_distance_factor_normally">Normalt</string>
<string name="arrival_distance_factor_late">Sent</string>
<string name="arrival_distance_factor_at_last">De sista metrarna</string>
</resources>
<string name="hide_all_waypoints">Ta bort alla</string>
<string name="av_camera_pic_size">Fotostorlek</string>
<string name="av_camera_pic_size_descr">Välj fotostorlek för intern kamera</string>
<string name="announce_nearby_favorites">Meddela om favoriter i närheten</string>
</resources>

View file

@ -1074,7 +1074,7 @@
<string name="street_name">街道</string>
<string name="hno">門牌號碼</string>
<string name="monitoring_settings">日誌記錄服務</string>
<string name="monitoring_settings_descr">組態如何記錄行程和啟用休眠模式</string>
<string name="monitoring_settings_descr">組態如何記錄行程</string>
<string name="osmand_monitoring_plugin_description">透過週期性地喚醒 GPS 裝置,在休眠模式下(螢幕關閉)啟用追蹤和導航。
顯示設定便於去記錄您在當地的行程到裝置端 GPX 檔案或在線上使用網路服務。</string>
<string name="osmand_monitoring_plugin_name">日誌記錄服務</string>
@ -1879,9 +1879,9 @@ OsmAnd 是開放原始碼,而且正在積極的開發。應用程式從報告
<string name="osmo_group_information">請在建立群組之前,仔細閱讀!</string>
<string name="osmo_not_signed_in">OsMo 登入失敗</string>
<string name="osmo_auth_error_short">授權失敗</string>
<string name="osmo_auth_error">OsMo 授權時遇到錯誤:%1$s。\n這可能是服務臨時當機或是您的註冊已過期。\n您想要繼續跟新的註冊。</string>
<string name="osmo_auth_error">OsMo 授權時遇到錯誤:%1$s。\n這可能是服務臨時當機或是您的註冊已過期。\n您想要繼續進行和新的註冊嗎?</string>
<string name="rendering_attr_hideBuildings_name">隱藏建築物</string>
<string name="rendering_attr_hideNonVehicleHighways_name">隱藏非車輛的高速公路</string>
<string name="rendering_attr_hideNonVehicleHighways_name">隱藏非車輛的公路</string>
<string name="rendering_attr_hideText_name">隱藏文字</string>
<string name="rendering_attr_hideWoodScrubs_name">隱藏樹木和灌樹叢</string>
<string name="rendering_attr_buildings15zoom_name">在 15 級下縮放建築物</string>
@ -1935,4 +1935,8 @@ OsmAnd 是開放原始碼,而且正在積極的開發。應用程式從報告
<string name="arrival_distance_factor_late">稍遲</string>
<string name="arrival_distance_factor_at_last">最後一米</string>
<string name="rendering_attr_coloredBuildings_name">有色彩的建築物</string>
</resources>
<string name="hide_all_waypoints">全部移除</string>
<string name="av_camera_pic_size">相機照片的大小</string>
<string name="av_camera_pic_size_descr">選擇內部相機照片的大小</string>
<string name="announce_nearby_favorites">通報鄰近我的最愛</string>
</resources>

View file

@ -42,4 +42,5 @@
<string name="start_tour">Start tour</string>
<string name="download_tour">Download tour</string>
<string name="sherpafy_app_name">Sherpafy</string>
<string name="waypoint_reached_msg">See waypoint information</string>
</resources>

View file

@ -15,8 +15,7 @@
<string name="osmo_specify_tracker_id">Please specify id</string>
<string name="continue_navigation">Continue Navigation</string>
<string name="pause_navigation">Pause Navigation</string>
<string name="keep_navigation_service">Keep</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="stop_navigation_service">Stop</string>
<string name="enable_sleep_mode">Enable sleep mode</string>
@ -51,7 +50,7 @@
<string name="osmo_auth_error_short">Authorization failed</string>
<string name="osmo_auth_error">OsMo authorization error encountered : %1$s.\n
It could be a temporary service down or your registration expired.\n
Do you want to proceed with new registration.</string>
Do you want to proceed with new registration?</string>
<string name="osmo_group_by_invite">Enter by invite</string>
<string name="osmo_group_information_desc">
- All created groups are public! If you want to be anonymous, connect devices directly via Tracker ids.\n
@ -215,7 +214,6 @@
<string name="index_item_world_bitcoin_payments">World bitcoin payments</string>
<string name="index_item_world_basemap">World overview map</string>
<string name="index_item_world_ski">World ski map</string>
<string name="lang_hr">Croatian</string>
<string name="lang_zh">Chinese</string>
<string name="lang_pt_br">Portuguese (Brazil)</string>
<string name="lang_en">English</string>
@ -492,7 +490,7 @@
\n\t* Top left button on the map screen replaces Menu button
</string>
<string name="monitoring_settings">Logging services</string>
<string name="monitoring_settings_descr">Configure how to record trips and enable sleep mode</string>
<string name="monitoring_settings_descr">Configure how to record trips</string>
<string name="osmand_monitoring_plugin_description">Enable tracking and navigation in sleep (screen off) mode via periodically waking up the GPS device.
Show settings facilitating to record your trips to local GPX files or online using a web service.</string>
<string name="osmand_monitoring_plugin_name">Logging services</string>
@ -1163,9 +1161,9 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
<string name="accessibility_preferences_descr">Accessibility related preferences</string>
<string name="accessibility_preferences">Accessibility</string>
<string name="arrival_distance_factor_early">Early</string>
<string name="arrival_distance_factor_normally">Normally</string>
<string name="arrival_distance_factor_normally">Normal</string>
<string name="arrival_distance_factor_late">Late</string>
<string name="arrival_distance_factor_at_last">At last metres</string>
<string name="arrival_distance_factor_at_last">In the last meters</string>
<string name="arrival_distance">Arrival announcement</string>
<string name="arrival_distance_descr">How soon do you want the arrival announcement?</string>
<string name="rendering_out_of_memory">Not enough process memory to display selected area</string>
@ -1940,5 +1938,9 @@ Afghanistan, Albania, Algeria, Andorra, Angola, Anguilla, Antigua and Barbuda, A
<string name="av_camera_focus_continuous">The camera continuously tries to focus</string>
<string name="av_photo_play_sound">Play sound on photo shot</string>
<string name="av_photo_play_sound_descr">Choose whether to play a sound when shooting photos</string>
<string name="av_camera_pic_size">Camera Picture Size</string>
<string name="av_camera_pic_size_descr">Select internal camera Picture Size</string>
<string name="navigation_intent_invalid">Invalid format: %s</string>
<string name="hide_all_waypoints">Remove all</string>
<string name="announce_nearby_favorites">Announce nearby favorites</string>
</resources>

View file

@ -19,10 +19,10 @@
android:key="keep_informing"
android:title="@string/keep_informing"
android:summary="@string/keep_informing_descr" />
<CheckBoxPreference android:title="@string/show_zoom_buttons_navigation" android:summary="@string/show_zoom_buttons_navigation_descr" android:key="show_zoom_buttons_navigation" />
<ListPreference
android:key="arrival_distance_factor"
android:title="@string/arrival_distance"
android:summary="@string/arrival_distance_descr" />
<CheckBoxPreference android:title="@string/show_zoom_buttons_navigation" android:summary="@string/show_zoom_buttons_navigation_descr" android:key="show_zoom_buttons_navigation" />
</PreferenceCategory>
</PreferenceScreen>

View file

@ -29,6 +29,7 @@ import java.util.TimeZone;
import net.osmand.Location;
import net.osmand.PlatformUtil;
import net.osmand.data.LocationPoint;
import net.osmand.util.Algorithms;
import org.apache.commons.logging.Log;
@ -81,7 +82,7 @@ public class GPXUtilities {
}
public static class WptPt extends GPXExtensions {
public static class WptPt extends GPXExtensions implements LocationPoint {
public double lat;
public double lon;
public String name = null;
@ -95,7 +96,26 @@ public class GPXUtilities {
public WptPt() {
}
@Override
public int getColor() {
return getColor(0);
}
@Override
public double getLatitude() {
return lat;
}
@Override
public double getLongitude() {
return lon;
}
@Override
public String getName() {
return name;
}
public WptPt(double lat, double lon, long time, double ele, double speed, double hdop) {
this.lat = lat;

View file

@ -1,16 +1,16 @@
package net.osmand.plus;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
import android.widget.ListView;
import net.osmand.GeoidAltitudeCorrection;
import net.osmand.PlatformUtil;
import net.osmand.access.NavigationInfo;
import net.osmand.binary.RouteDataObject;
import net.osmand.data.LatLon;
import net.osmand.data.LocationPoint;
import net.osmand.data.QuadPoint;
import net.osmand.plus.OsmandSettings.OsmandPreference;
import net.osmand.plus.routing.RoutingHelper;
@ -66,9 +66,7 @@ public class OsmAndLocationProvider implements SensorEventListener {
private float[] mGravs = new float[3];
private float[] mGeoMags = new float[3];
private float previousCorrectionValue = 360;
private static final boolean USE_KALMAN_FILTER = true;
private static final float KALMAN_COEFFICIENT = 0.04f;
@ -104,8 +102,126 @@ public class OsmAndLocationProvider implements SensorEventListener {
private float[] mRotationM = new float[9];
private OsmandPreference<Boolean> USE_MAGNETIC_FIELD_SENSOR_COMPASS;
private OsmandPreference<Boolean> USE_FILTER_FOR_COMPASS;
private static final int NOT_ANNOUNCED = 0;
private static final int ANNOUNCED_ONCE = 1;
private ConcurrentHashMap<LocationPoint , Integer> locationPointsStates = new ConcurrentHashMap<LocationPoint, Integer>();
private List<LocationPoint> visibleLocationPoints = new CopyOnWriteArrayList<LocationPoint>();
private long locationPointsModified;
public List<LocationPoint> getVisibleLocationPoints() {
return visibleLocationPoints;
}
public void setVisibleLocationPoints(List<LocationPoint> points) {
locationPointsStates.clear();
visibleLocationPoints.clear();
if (points == null) {
return;
}
for (LocationPoint p : points) {
locationPointsStates.put(p, NOT_ANNOUNCED);
visibleLocationPoints.add(p);
}
sortVisibleLocationPoints();
}
public void addVisibleLocationPoint(LocationPoint lp) {
this.locationPointsStates.put(lp, NOT_ANNOUNCED);
this.locationPointsModified = System.currentTimeMillis();
sortVisibleLocationPoints();
}
public void clearAllVisiblePoints() {
this.locationPointsStates.clear();
this.visibleLocationPoints.clear();
this.locationPointsModified = System.currentTimeMillis();
}
public void sortVisibleLocationPoints() {
net.osmand.Location lastLocation = getLastKnownLocation();
if (lastLocation != null) {
Object[] loc = visibleLocationPoints.toArray();
Arrays.sort(loc, getComparator(lastLocation));
visibleLocationPoints.clear();
for (Object aLoc : loc) {
visibleLocationPoints.add((LocationPoint) aLoc);
}
locationPointsModified = System.currentTimeMillis();
}
}
private Comparator<Object> getComparator(final net.osmand.Location lastLocation){
return new Comparator<Object>() {
@Override
public int compare(Object locationPoint, Object locationPoint2) {
double d1 = MapUtils.getDistance(lastLocation.getLatitude(), lastLocation.getLongitude(),
((LocationPoint)locationPoint).getLatitude(), ((LocationPoint)locationPoint).getLongitude());
double d2 = MapUtils.getDistance(lastLocation.getLatitude(), lastLocation.getLongitude(),
((LocationPoint)locationPoint2).getLatitude(), ((LocationPoint)locationPoint2).getLongitude());
return Double.compare(d1, d2);
}
};
}
public long getLocationPointsModified() {
return locationPointsModified;
}
public void removeVisibleLocationPoint(LocationPoint lp) {
this.visibleLocationPoints = removeFromList(visibleLocationPoints, lp);
this.locationPointsStates.remove(lp);
this.locationPointsModified = System.currentTimeMillis();
}
private void announceVisibleLocations() {
final net.osmand.Location lastLocation = getLastKnownLocation();
if (lastLocation != null && app.getRoutingHelper().isFollowingMode()) {
String nameToAnnounce = null;
List<LocationPoint> approachPoints = new ArrayList<LocationPoint>();
List<LocationPoint> announcePoints = new ArrayList<LocationPoint>();
for (LocationPoint point : locationPointsStates.keySet()) {
double d1 = MapUtils.getDistance(lastLocation.getLatitude(), lastLocation.getLongitude(),
point.getLatitude(), point.getLongitude());
int state = locationPointsStates.get(point);
if (state <= ANNOUNCED_ONCE && app.getRoutingHelper().getVoiceRouter().isDistanceLess(lastLocation.getSpeed(), d1, 150)) {
nameToAnnounce = (nameToAnnounce == null ? "" : ", ") + point.getName();
locationPointsStates.remove(point);
this.locationPointsModified = System.currentTimeMillis();
app.getMapActivity().getMapLayers().getMapControlsLayer().getWaypointDialogHelper().updateDialog();
announcePoints.add(point);
} else if (state == NOT_ANNOUNCED && app.getRoutingHelper().getVoiceRouter().isDistanceLess(lastLocation.getSpeed(), d1, 500)) {
locationPointsStates.put(point, state + 1);
this.locationPointsModified = System.currentTimeMillis();
app.getMapActivity().getMapLayers().getMapControlsLayer().getWaypointDialogHelper().updateDialog();
approachPoints.add(point);
}
}
if (!announcePoints.isEmpty()) {
app.getRoutingHelper().getVoiceRouter().announceWaypoint(announcePoints);
}
if (!approachPoints.isEmpty()) {
app.getRoutingHelper().getVoiceRouter().approachWaypoint(lastLocation, approachPoints);
}
}
}
public List<LocationPoint> removeFromList(List<LocationPoint> items, Object item){
List<LocationPoint> newArray = new ArrayList<LocationPoint>();
Object[] oldArray = items.toArray();
for (int i=0; i<oldArray.length; i++){
if (!item.equals(oldArray[i])){
newArray.add((LocationPoint)oldArray[i]);
}
}
items.clear();
return new CopyOnWriteArrayList<LocationPoint>(newArray);
}
public class SimulationProvider {
private int currentRoad;
private int currentSegment;
@ -518,6 +634,11 @@ public class OsmAndLocationProvider implements SensorEventListener {
private void updateLocation(net.osmand.Location loc ) {
if (app.getSettings().ANNOUNCE_NEARBY_FAVORITES.get() && app.getRoutingHelper().isFollowingMode()){
sortVisibleLocationPoints();
app.getMapActivity().getMapLayers().getMapControlsLayer().getWaypointDialogHelper().updateDialog();
announceVisibleLocations();
}
for(OsmAndLocationListener l : locationListeners){
l.updateLocation(loc);
}

View file

@ -19,6 +19,7 @@ import net.osmand.access.AccessibleAlertBuilder;
import net.osmand.access.AccessibleToast;
import net.osmand.plus.access.AccessibilityMode;
import net.osmand.plus.activities.DayNightHelper;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.activities.SavingTrackHelper;
import net.osmand.plus.activities.SettingsActivity;
import net.osmand.plus.api.SQLiteAPI;
@ -77,7 +78,7 @@ public class OsmandApplication extends Application {
public static final String EXCEPTION_PATH = "exception.log"; //$NON-NLS-1$
private static final org.apache.commons.logging.Log LOG = PlatformUtil.getLog(OsmandApplication.class);
ResourceManager resourceManager = null;
PoiFiltersHelper poiFilters = null;
RoutingHelper routingHelper = null;
@ -104,10 +105,11 @@ public class OsmandApplication extends Application {
private boolean applicationInitializing = false;
private Locale preferredLocale = null;
SQLiteAPI sqliteAPI;
BRouterServiceConnection bRouterServiceConnection;
MapActivity mapActivity;
@Override
public void onCreate() {
long timeToStart = System.currentTimeMillis();
@ -838,4 +840,12 @@ public class OsmandApplication extends Application {
getNavigationService().addUsageIntent(intent);
}
}
public MapActivity getMapActivity() {
return mapActivity;
}
public void setMapActivity(MapActivity mapActivity) {
this.mapActivity = mapActivity;
}
}

View file

@ -818,8 +818,8 @@ public class OsmandSettings {
public final OsmandPreference<Boolean> GPX_CALCULATE_RTEPT = new BooleanPreference("gpx_routing_calculate_rtept", true).makeGlobal().cache();
public final OsmandPreference<Boolean> GPX_SPEAK_WPT = new BooleanPreference("speak_gpx_wpt", true).makeGlobal().cache();
public final OsmandPreference<Boolean> GPX_ROUTE_CALC = new BooleanPreference("calc_gpx_route", false).makeGlobal().cache();
public final OsmandPreference<Boolean> ANNOUNCE_NEARBY_FAVORITES = new BooleanPreference("announce_nearby_favorites", false).makeGlobal().cache();
public final OsmandPreference<Boolean> AVOID_TOLL_ROADS = new BooleanPreference("avoid_toll_roads", false).makeProfile().cache();
public final OsmandPreference<Boolean> AVOID_MOTORWAY = new BooleanPreference("avoid_motorway", false).makeProfile().cache();

View file

@ -14,9 +14,6 @@ import net.osmand.ResultMatcher;
import net.osmand.data.Amenity;
import net.osmand.data.AmenityType;
import net.osmand.util.MapUtils;
import org.apache.http.client.protocol.ClientContext;
import android.content.Context;
public class PoiFilter {
@ -173,9 +170,8 @@ public class PoiFilter {
protected List<Amenity> searchAmenities(double lat, double lon, double topLatitude,
double bottomLatitude, double leftLongitude, double rightLongitude, final ResultMatcher<Amenity> matcher) {
return app.getResourceManager().searchAmenities(this,
topLatitude, leftLongitude, bottomLatitude, rightLongitude, lat, lon, matcher);
topLatitude, leftLongitude, bottomLatitude, rightLongitude, -1, matcher);
}
public List<Amenity> searchAgain(double lat, double lon) {

View file

@ -0,0 +1,54 @@
package net.osmand.plus;
import java.io.IOException;
import java.util.HashMap;
import net.osmand.Location;
import net.osmand.binary.RouteDataObject;
import net.osmand.plus.routing.RouteCalculationResult;
import net.osmand.router.RoutePlannerFrontEnd;
import net.osmand.router.RoutingConfiguration;
import net.osmand.router.BinaryRoutePlanner.RouteSegment;
import net.osmand.router.GeneralRouter.GeneralRouterProfile;
import net.osmand.util.MapUtils;
public class SearchOnTheRouteHelper {
private OsmandApplication app;
private PoiFilter filter;
private Thread calculatingThread;
public SearchOnTheRouteHelper(OsmandApplication app) {
this.app = app;
}
public void searchOnTheRoute(RouteCalculationResult route) {
scheduleRouteSegmentFind(route);
}
private void scheduleRouteSegmentFind(final RouteCalculationResult route){
}
private static double getOrthogonalDistance(RouteDataObject r, Location loc){
double d = 1000;
if (r.getPointsLength() > 0) {
double pLt = MapUtils.get31LatitudeY(r.getPoint31YTile(0));
double pLn = MapUtils.get31LongitudeX(r.getPoint31XTile(0));
for (int i = 1; i < r.getPointsLength(); i++) {
double lt = MapUtils.get31LatitudeY(r.getPoint31YTile(i));
double ln = MapUtils.get31LongitudeX(r.getPoint31XTile(i));
double od = MapUtils.getOrthogonalDistance(loc.getLatitude(), loc.getLongitude(), pLt, pLn, lt, ln);
if (od < d) {
d = od;
}
pLt = lt;
pLn = ln;
}
}
return d;
}
}

View file

@ -2,11 +2,15 @@ package net.osmand.plus;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import net.osmand.Location;
import net.osmand.StateChangedListener;
import net.osmand.data.LatLon;
import net.osmand.data.LocationPoint;
import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.routing.RouteProvider.RouteService;
import net.osmand.util.MapUtils;
@ -21,7 +25,7 @@ public class TargetPointsHelper {
private RoutingHelper routingHelper;
private List<StateChangedListener<Void>> listeners = new ArrayList<StateChangedListener<Void>>();
private OsmandApplication ctx;
public TargetPointsHelper(OsmandApplication ctx){
this.ctx = ctx;
this.settings = ctx.getSettings();
@ -62,7 +66,10 @@ public class TargetPointsHelper {
public List<LatLon> getIntermediatePoints() {
return intermediatePoints;
}
public List<LatLon> getIntermediatePointsWithTarget() {
List<LatLon> res = new ArrayList<LatLon>();
res.addAll(intermediatePoints);
@ -71,7 +78,7 @@ public class TargetPointsHelper {
}
return res;
}
public List<String> getIntermediatePointNamesWithTarget() {
List<String> res = new ArrayList<String>();
res.addAll(intermediatePointNames);
@ -87,7 +94,7 @@ public class TargetPointsHelper {
}
return null;
}
/**
* Clear the local and persistent waypoints list and destination.
*/
@ -108,8 +115,8 @@ public class TargetPointsHelper {
*/
public void makeWayPointDestination(boolean updateRoute, int index){
pointToNavigate = intermediatePoints.remove(index);
settings.setPointToNavigate(pointToNavigate.getLatitude(), pointToNavigate.getLongitude(),
intermediatePointNames.remove(index));
settings.setPointToNavigate(pointToNavigate.getLatitude(), pointToNavigate.getLongitude(),
intermediatePointNames.remove(index));
settings.deleteIntermediatePoint(index);
updateRouteAndReferesh(updateRoute);
}
@ -122,13 +129,13 @@ public class TargetPointsHelper {
if(sz > 0) {
settings.deleteIntermediatePoint(sz- 1);
pointToNavigate = intermediatePoints.remove(sz - 1);
settings.setPointToNavigate(pointToNavigate.getLatitude(), pointToNavigate.getLongitude(),
settings.setPointToNavigate(pointToNavigate.getLatitude(), pointToNavigate.getLongitude(),
intermediatePointNames.remove(sz - 1));
}
} else {
settings.deleteIntermediatePoint(index);
intermediatePoints.remove(index);
intermediatePointNames.remove(index);
intermediatePointNames.remove(index);
}
updateRouteAndReferesh(updateRoute);
}
@ -153,7 +160,7 @@ public class TargetPointsHelper {
settings.getIntermediatePoints(), loc);
}
}
private Location wrap(LatLon l) {
if(l == null) {
@ -164,12 +171,12 @@ public class TargetPointsHelper {
loc.setLongitude(l.getLongitude());
return loc;
}
public void addListener(StateChangedListener<Void> l) {
listeners.add(l);
}
private void updateListeners() {
for(StateChangedListener<Void> l : listeners) {
l.stateChanged(null);
@ -184,15 +191,15 @@ public class TargetPointsHelper {
readFromSettings(settings);
updateRouteAndReferesh(updateRoute);
}
public void clearStartPoint(boolean updateRoute) {
settings.clearPointToStart();
readFromSettings(settings);
updateRouteAndReferesh(updateRoute);
}
public void reorderAllTargetPoints(List<LatLon> point,
public void reorderAllTargetPoints(List<LatLon> point,
List<String> names, boolean updateRoute){
settings.clearPointToNavigate();
if (point.size() > 0) {
@ -206,8 +213,8 @@ public class TargetPointsHelper {
readFromSettings(settings);
updateRouteAndReferesh(updateRoute);
}
public boolean hasTooLongDistanceToNavigate() {
if(settings.ROUTER_SERVICE.get() != RouteService.OSMAND) {
return false;
@ -227,24 +234,24 @@ public class TargetPointsHelper {
}
return false;
}
public void navigateToPoint(LatLon point, boolean updateRoute, int intermediate){
navigateToPoint(point, updateRoute, intermediate, null);
}
public void navigateToPoint(LatLon point, boolean updateRoute, int intermediate, String historyName){
if(point != null){
if(intermediate < 0 || intermediate > intermediatePoints.size()) {
if(intermediate > intermediatePoints.size()) {
LatLon pn = getPointToNavigate();
if(pn != null) {
settings.insertIntermediatePoint(pn.getLatitude(), pn.getLongitude(), getPointNavigateDescription(),
settings.insertIntermediatePoint(pn.getLatitude(), pn.getLongitude(), getPointNavigateDescription(),
intermediatePoints.size());
}
}
settings.setPointToNavigate(point.getLatitude(), point.getLongitude(), historyName);
} else {
settings.insertIntermediatePoint(point.getLatitude(), point.getLongitude(), historyName,
settings.insertIntermediatePoint(point.getLatitude(), point.getLongitude(), historyName,
intermediate);
}
} else {
@ -254,7 +261,7 @@ public class TargetPointsHelper {
readFromSettings(settings);
updateRouteAndReferesh(updateRoute);
}
public void setStartPoint(LatLon startPoint, boolean updateRoute, String name) {
if(startPoint != null) {
settings.setPointToStart(startPoint.getLatitude(), startPoint.getLongitude(), name);
@ -264,7 +271,7 @@ public class TargetPointsHelper {
readFromSettings(settings);
updateRouteAndReferesh(updateRoute);
}
public boolean checkPointToNavigate(){
if(pointToNavigate == null){
ctx.showToastMessage(R.string.mark_final_location_first);
@ -272,7 +279,7 @@ public class TargetPointsHelper {
}
return true;
}
public boolean checkPointToNavigateShort(){
if(pointToNavigate == null){
ctx.showShortToastMessage(R.string.mark_final_location_first);
@ -284,6 +291,4 @@ public class TargetPointsHelper {
public Location getPointToStartLocation() {
return wrap(getPointToStart());
}
}

View file

@ -6,6 +6,7 @@ package net.osmand.plus.activities;
import java.io.File;
import java.util.ArrayList;
import android.content.Intent;
import net.osmand.plus.GpxSelectionHelper;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandSettings;
@ -36,6 +37,10 @@ public class FavouritesActivity extends SherlockFragmentActivity {
private static final String FAVOURITES_INFO = "FAVOURITES_INFO";
private static final String TRACKS = "TRACKS";
private static final String SELECTED_TRACK = "SELECTED_TRACK";
public static int FAVORITES_TAB = 0;
public static int GPX_TAB = 1;
public static int SELECTED_GPX_TAB = 2;
public static String TAB_PARAM = "TAB_PARAM";
private TabsAdapter mTabsAdapter;
private TabSpec selectedTrack;
private TabHost tabHost;
@ -85,7 +90,15 @@ public class FavouritesActivity extends SherlockFragmentActivity {
AvailableGPXFragment.class, null);
selectedTrack = mTabsAdapter.addTab(tabHost.newTabSpec(SELECTED_TRACK).setIndicator(getString(R.string.selected_track)),
SelectedGPXFragment.class, null);
tabHost.setCurrentTab(tab);
Intent intent = getIntent();
if(intent != null) {
int tt = intent.getIntExtra(TAB_PARAM, -1);
if(tt >= 0) {
tabHost.setCurrentTab(tt);
}
} else {
tabHost.setCurrentTab(tab);
}
updateSelectedTracks();
}
}

View file

@ -301,6 +301,7 @@ public class MapActivity extends AccessibleActivity {
}
settings.MAP_ACTIVITY_ENABLED.set(true);
app.setMapActivity(this);
checkExternalStorage();
showAndHideMapPosition();
@ -559,6 +560,7 @@ public class MapActivity extends AccessibleActivity {
settings.setLastKnownMapZoom(mapView.getZoom());
settings.MAP_ACTIVITY_ENABLED.set(false);
app.setMapActivity(null);
app.getResourceManager().interruptRendering();
app.getResourceManager().setBusyIndicator(null);
OsmandPlugin.onMapActivityPause(this);

View file

@ -642,6 +642,7 @@ public class MapActivityActions implements DialogProvider {
mapActivity.getMapViewTrackingUtilities().switchToRoutePlanningMode();
mapActivity.getMapView().refreshMap(true);
mapActivity.getMapLayers().getMapControlsLayer().showDialog();
if(targets.hasTooLongDistanceToNavigate()) {
app.showToastMessage(R.string.route_is_too_long);
}

View file

@ -113,6 +113,10 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
public static final int AV_DEFAULT_ACTION_TAKEPICTURE = 2;
public static final int AV_DEFAULT_ACTION_CHOOSE = -1;
// camera picture size:
public static final int AV_PHOTO_SIZE_DEFAULT = -1;
public static int cameraPictureSizeDefault = 0;
// camera focus type
public static final int AV_CAMERA_FOCUS_AUTO = 0;
public static final int AV_CAMERA_FOCUS_HIPERFOCAL = 1;
@ -124,10 +128,9 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
private static int shotId = 0;
private SoundPool sp = null;
public final CommonPreference<Integer> AV_CAMERA_PICTURE_SIZE;
public final CommonPreference<Integer> AV_CAMERA_FOCUS_TYPE;
public final CommonPreference<Integer> AV_DEFAULT_ACTION;
public final OsmandPreference<Boolean> SHOW_RECORDINGS;
private DataTileManager<Recording> recordings = new DataTileManager<AudioVideoNotesPlugin.Recording>(14);
@ -341,6 +344,8 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
AV_EXTERNAL_PHOTO_CAM = settings.registerBooleanPreference("av_external_cam", true).makeGlobal();
AV_VIDEO_FORMAT = settings.registerIntPreference("av_video_format", VIDEO_OUTPUT_MP4).makeGlobal();
AV_DEFAULT_ACTION = settings.registerIntPreference("av_default_action", AV_DEFAULT_ACTION_CHOOSE).makeGlobal();
// camera picture size:
AV_CAMERA_PICTURE_SIZE = settings.registerIntPreference("av_camera_picture_size", AV_PHOTO_SIZE_DEFAULT).makeGlobal();
// camera focus type:
AV_CAMERA_FOCUS_TYPE = settings.registerIntPreference("av_camera_focus_type", AV_CAMERA_FOCUS_AUTO).makeGlobal();
// camera sound:
@ -758,8 +763,34 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
// load sound befor shot:
if (AV_PHOTO_PLAY_SOUND.get()) {
if (sp == null)
sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
log.info("Play sound on photo");
if (shotId == 0) {
shotId = sp.load(app.getAssets().openFd("sounds/camera_click.ogg"), 1);
log.debug("loaded file sound ID: " + shotId);
}
}
Parameters parameters = cam.getParameters();
// camera picture size:
List<Camera.Size> psps = parameters.getSupportedPictureSizes();
int index = AV_CAMERA_PICTURE_SIZE.get();
log.debug("takePhotoWithCamera() index=" + index );
if(index == AV_PHOTO_SIZE_DEFAULT)
{
index = cameraPictureSizeDefault;
log.debug("takePhotoWithCamera() Default value of picture size. Set index to cameraPictureSizeDefault. Now index="
+ index );
}
Camera.Size selectedCamPicSize = psps.get(index);
parameters.setPictureSize(selectedCamPicSize.width, selectedCamPicSize.height);
log.debug("takePhotoWithCamera() set Picture size: width=" + selectedCamPicSize.width
+ " height=" + selectedCamPicSize.height );
// camera focus type:
boolean autofocus = true;
// boolean autofocus = !Boolean.parseBoolean(parameters.get("auto-exposure-lock-supported"));
@ -797,16 +828,6 @@ public class AudioVideoNotesPlugin extends OsmandPlugin {
// parameters.setFocusMode(Parameters.FOCUS_MODE_FIXED);
// parameters.set("auto-exposure-lock", "true");
// }
// load sound befor shot:
if (AV_PHOTO_PLAY_SOUND.get()) {
if (sp == null)
sp = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
log.info("Play sound on photo");
if (shotId == 0) {
shotId = sp.load(app.getAssets().openFd("sounds/camera_click.ogg"), 1);
log.debug("loaded file sound ID: " + shotId);
}
}
parameters.setWhiteBalance(Parameters.WHITE_BALANCE_AUTO);
parameters.setFlashMode(Parameters.FLASH_MODE_AUTO);

View file

@ -6,6 +6,9 @@ import static net.osmand.plus.audionotes.AudioVideoNotesPlugin.AV_DEFAULT_ACTION
import static net.osmand.plus.audionotes.AudioVideoNotesPlugin.AV_DEFAULT_ACTION_VIDEO;
import static net.osmand.plus.audionotes.AudioVideoNotesPlugin.VIDEO_OUTPUT_3GP;
import static net.osmand.plus.audionotes.AudioVideoNotesPlugin.VIDEO_OUTPUT_MP4;
// camera picture size:
import static net.osmand.plus.audionotes.AudioVideoNotesPlugin.cameraPictureSizeDefault;
import static net.osmand.plus.audionotes.AudioVideoNotesPlugin.AV_PHOTO_SIZE_DEFAULT;
// support camera focus select:
import static net.osmand.plus.audionotes.AudioVideoNotesPlugin.AV_CAMERA_FOCUS_AUTO;
import static net.osmand.plus.audionotes.AudioVideoNotesPlugin.AV_CAMERA_FOCUS_HIPERFOCAL;
@ -52,10 +55,80 @@ public class SettingsAudioVideoActivity extends SettingsBaseActivity {
// camera type settings:
grp.addPreference(createCheckBoxPreference(p.AV_EXTERNAL_PHOTO_CAM, R.string.av_use_external_camera,
R.string.av_use_external_camera_descr));
// focus mode settings:
// show in menu only suppoted modes:
Parameters parameters = cam.getParameters();
// Photo picture size
// get supported sizes:
List<Camera.Size> psps = parameters.getSupportedPictureSizes();
// list of megapixels of each resolution:
List<Integer> mpix = new ArrayList<Integer>();
// list of index each resolution in list, returned by getSupportedPictureSizes():
List<Integer> picSizesValues = new ArrayList<Integer>();
// fill lists for sort:
for (int index = 0; index < psps.size(); index++) {
mpix.add( (psps.get(index)).width*(psps.get(index)).height );
picSizesValues.add(index);
}
// sort list for max resolution in begining of list:
for (int i=0; i < mpix.size(); i++ )
{
for (int j=0; j < mpix.size() - i - 1; j++ )
{
if ( mpix.get(j) < mpix.get( j + 1 ) )
{
// change elements:
int tmp=mpix.get( j + 1 );
mpix.set( j + 1, mpix.get( j ) );
mpix.set( j, tmp );
tmp=picSizesValues.get( j + 1 );
picSizesValues.set( j + 1, picSizesValues.get( j ) );
picSizesValues.set( j, tmp );
}
}
}
// set default photo size to max resolution (set index of element with max resolution in List, returned by getSupportedPictureSizes() ):
cameraPictureSizeDefault = picSizesValues.get(0);
log.debug("onCreate() set cameraPictureSizeDefault=" + cameraPictureSizeDefault);
List<String> itemsPicSizes = new ArrayList<String>();
String prefix;
for (int index = 0; index < psps.size(); index++) {
float px=(float)((psps.get( picSizesValues.get(index) )).width*(psps.get( picSizesValues.get(index) )).height);
if(px>102400) // 100 K
{
px=px/1048576;
prefix="Mpx";
}
else
{
px=px/1024;
prefix="Kpx";
}
itemsPicSizes.add( (psps.get( picSizesValues.get(index) )).width +
"x" +
(psps.get( picSizesValues.get(index) )).height +
" ( " +
String.format("%.2f", px ) +
" " +
prefix +
" )");
}
log.debug("onCreate() set default size: width=" + psps.get( cameraPictureSizeDefault ).width + " height="
+ psps.get( cameraPictureSizeDefault ).height + " index in ps=" + cameraPictureSizeDefault );
entries = itemsPicSizes.toArray(new String[itemsPicSizes.size()]);
intValues = picSizesValues.toArray(new Integer[picSizesValues.size()]);
if (entries.length > 0) {
ListPreference camSizes = createListPreference(p.AV_CAMERA_PICTURE_SIZE, entries, intValues, R.string.av_camera_pic_size,
R.string.av_camera_pic_size_descr);
grp.addPreference(camSizes);
}
// focus mode settings:
// show in menu only suppoted modes:
List<String> sfm = parameters.getSupportedFocusModes();
List<String> items = new ArrayList<String>();
List<Integer> itemsValues = new ArrayList<Integer>();
@ -88,9 +161,11 @@ public class SettingsAudioVideoActivity extends SettingsBaseActivity {
R.string.av_camera_focus_descr);
grp.addPreference(camFocus);
}
// play sound on success photo:
grp.addPreference(createCheckBoxPreference(p.AV_PHOTO_PLAY_SOUND, R.string.av_photo_play_sound,
R.string.av_photo_play_sound_descr));
cam.release();
}
// video settings:

View file

@ -20,17 +20,5 @@ public interface AmenityIndexRepository {
public List<Amenity> searchAmenities(int stop, int sleft, int sbottom, int sright, int zoom, PoiFilter filter, List<Amenity> amenities,
ResultMatcher<Amenity> matcher);
public void clearCache();
public boolean checkCachedAmenities(double topLatitude, double leftLongitude, double bottomLatitude, double rightLongitude, int zoom,
String filterId, List<Amenity> toFill, boolean fillFound);
public void evaluateCachedAmenities(double topLatitude, double leftLongitude, double bottomLatitude, double rightLongitude, int zoom,
PoiFilter filter, ResultMatcher<Amenity> matcher);
public boolean hasChange();
public void clearChange();
}

View file

@ -2,7 +2,6 @@ package net.osmand.plus.resources;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@ -15,9 +14,7 @@ import net.osmand.binary.BinaryMapIndexReader.SearchPoiTypeFilter;
import net.osmand.binary.BinaryMapIndexReader.SearchRequest;
import net.osmand.data.Amenity;
import net.osmand.data.AmenityType;
import net.osmand.data.LatLon;
import net.osmand.plus.PoiFilter;
import net.osmand.util.Algorithms;
import net.osmand.util.MapUtils;
import org.apache.commons.logging.Log;
@ -40,17 +37,6 @@ public class AmenityIndexRepositoryBinary implements AmenityIndexRepository {
}
}
@Override
public boolean hasChange() {
return false; //no change ever
}
@Override
public void clearChange() {
//nothing to do
}
@Override
public boolean checkContains(double latitude, double longitude) {
return index.containsPoiData(latitude, longitude);
@ -62,7 +48,7 @@ public class AmenityIndexRepositoryBinary implements AmenityIndexRepository {
}
public Map<AmenityType, List<String>> searchAmenityCategoriesByName(String query, Map<AmenityType, List<String>> map) {
public synchronized Map<AmenityType, List<String>> searchAmenityCategoriesByName(String query, Map<AmenityType, List<String>> map) {
try {
return index.searchPoiCategoriesByName(query, map);
} catch (IOException e) {
@ -72,7 +58,7 @@ public class AmenityIndexRepositoryBinary implements AmenityIndexRepository {
}
public List<Amenity> searchAmenitiesByName(int x, int y, int l, int t, int r, int b, String query, ResultMatcher<Amenity> resulMatcher) {
public synchronized List<Amenity> searchAmenitiesByName(int x, int y, int l, int t, int r, int b, String query, ResultMatcher<Amenity> resulMatcher) {
long now = System.currentTimeMillis();
List<Amenity> amenities = Collections.emptyList();
SearchRequest<Amenity> req = BinaryMapIndexReader.buildSearchPoiRequest(x, y, query, l, r, t, b,resulMatcher);
@ -95,7 +81,7 @@ public class AmenityIndexRepositoryBinary implements AmenityIndexRepository {
}
@Override
public List<Amenity> searchAmenities(int stop, int sleft, int sbottom, int sright, int zoom,
public synchronized List<Amenity> searchAmenities(int stop, int sleft, int sbottom, int sright, int zoom,
final PoiFilter filter, final List<Amenity> amenities, ResultMatcher<Amenity> matcher) {
long now = System.currentTimeMillis();
SearchPoiTypeFilter poiTypeFilter = new SearchPoiTypeFilter(){
@ -119,71 +105,5 @@ public class AmenityIndexRepositoryBinary implements AmenityIndexRepository {
}
return amenities;
}
// Work with cache (for map copied from AmenityIndexRepositoryOdb)
private String cFilterId;
protected List<Amenity> cachedObjects = new ArrayList<Amenity>();
protected double cTopLatitude;
protected double cBottomLatitude;
protected double cLeftLongitude;
protected double cRightLongitude;
protected int cZoom;
@Override
public synchronized boolean checkCachedAmenities(double topLatitude, double leftLongitude, double bottomLatitude, double rightLongitude,
int zoom, String filterId, List<Amenity> toFill, boolean fillFound){
boolean inside = cTopLatitude >= topLatitude && cLeftLongitude <= leftLongitude && cRightLongitude >= rightLongitude
&& cBottomLatitude <= bottomLatitude && zoom == cZoom;
boolean noNeedToSearch = inside && Algorithms.objectEquals(filterId, cFilterId);
if((inside || fillFound) && toFill != null && Algorithms.objectEquals(filterId, cFilterId)){
for(Amenity a : cachedObjects){
LatLon location = a.getLocation();
if (location.getLatitude() <= topLatitude && location.getLongitude() >= leftLongitude && location.getLongitude() <= rightLongitude
&& location.getLatitude() >= bottomLatitude) {
toFill.add(a);
}
}
}
return noNeedToSearch;
}
@Override
public void clearCache() {
cachedObjects.clear();
cTopLatitude = 0;
cBottomLatitude = 0;
cRightLongitude = 0;
cLeftLongitude = 0;
cZoom = 0;
cFilterId = null;
}
@Override
public void evaluateCachedAmenities(double topLatitude, double leftLongitude, double bottomLatitude, double rightLongitude, int zoom,
PoiFilter filter, ResultMatcher<Amenity> matcher) {
cTopLatitude = topLatitude ;
cBottomLatitude = bottomLatitude ;
cLeftLongitude = leftLongitude ;
cRightLongitude = rightLongitude ;
cFilterId = filter == null ? null : filter.getFilterId();
cZoom = zoom;
// first of all put all entities in temp list in order to not freeze other read threads
ArrayList<Amenity> tempList = new ArrayList<Amenity>();
int sleft = MapUtils.get31TileNumberX(cLeftLongitude);
int sright = MapUtils.get31TileNumberX(cRightLongitude);
int sbottom = MapUtils.get31TileNumberY(cBottomLatitude);
int stop = MapUtils.get31TileNumberY(cTopLatitude);
searchAmenities(stop, sleft, sbottom, sright, zoom, filter, tempList, matcher);
synchronized (this) {
cachedObjects.clear();
cachedObjects.addAll(tempList);
}
}
}

View file

@ -8,16 +8,12 @@ import java.util.Stack;
import net.osmand.PlatformUtil;
import net.osmand.ResultMatcher;
import net.osmand.data.Amenity;
import net.osmand.data.RotatedTileBox;
import net.osmand.data.TransportStop;
import net.osmand.map.ITileSource;
import net.osmand.map.MapTileDownloader.DownloadRequest;
import net.osmand.map.MapTileDownloader.IMapDownloaderCallback;
import net.osmand.plus.BusyIndicator;
import net.osmand.plus.OsmAndFormatter;
import net.osmand.plus.PoiFilter;
import net.osmand.util.Algorithms;
import org.apache.commons.logging.Log;
@ -37,7 +33,6 @@ public class AsyncLoadingThread extends Thread {
private Handler asyncLoadingTransport;
Stack<Object> requests = new Stack<Object>();
AmenityLoadRequest poiLoadRequest = null;
TransportLoadRequest transportLoadRequest = null;
@ -68,8 +63,6 @@ public class AsyncLoadingThread extends Thread {
progress = BusyIndicator.STATUS_ORANGE;
} else if (!requests.isEmpty()) {
progress = BusyIndicator.STATUS_BLACK;
} else if (poiLoadRequest != null && poiLoadRequest.isRunning()) {
progress = BusyIndicator.STATUS_BLACK;
} else if (transportLoadRequest != null && transportLoadRequest.isRunning()) {
progress = BusyIndicator.STATUS_BLACK;
}
@ -96,18 +89,6 @@ public class AsyncLoadingThread extends Thread {
if (req instanceof TileLoadDownloadRequest) {
TileLoadDownloadRequest r = (TileLoadDownloadRequest) req;
tileLoaded |= resourceManger.getRequestedImageTile(r) != null;
} else if (req instanceof AmenityLoadRequest) {
if (!amenityLoaded) {
if (poiLoadRequest == null || asyncLoadingPoi == null) {
startPoiLoadingThread();
poiLoadRequest = (AmenityLoadRequest) req;
asyncLoadingPoi.post(poiLoadRequest.prepareToRun());
} else if (poiLoadRequest.recalculateRequest((AmenityLoadRequest) req)) {
poiLoadRequest = (AmenityLoadRequest) req;
asyncLoadingPoi.post(poiLoadRequest.prepareToRun());
}
amenityLoaded = true;
}
} else if (req instanceof TransportLoadRequest) {
if (!transportLoaded) {
if (transportLoadRequest == null || asyncLoadingTransport == null) {
@ -155,10 +136,6 @@ public class AsyncLoadingThread extends Thread {
requests.push(req);
}
public void requestToLoadAmenities(AmenityLoadRequest req) {
requests.push(req);
}
public void requestToLoadMap(MapLoadRequest req) {
requests.push(req);
}
@ -240,72 +217,7 @@ public class AsyncLoadingThread extends Thread {
}
protected class AmenityLoadRequest extends MapObjectLoadRequest<Amenity> {
private final List<AmenityIndexRepository> res;
private final PoiFilter filter;
private final int zoom;
private String filterByName;
public AmenityLoadRequest(List<AmenityIndexRepository> repos, int zoom, PoiFilter filter, String nameFilter) {
super();
this.res = repos;
this.zoom = zoom;
this.filter = filter;
this.filterByName = nameFilter;
if(this.filterByName != null) {
this.filterByName = this.filterByName.toLowerCase().trim();
}
}
@Override
public boolean publish(Amenity object) {
if(filterByName == null || filterByName.length() == 0) {
return true;
} else {
String lower = OsmAndFormatter.getPoiStringWithoutType(object, resourceManger.getContext().getSettings().usingEnglishNames()).toLowerCase();
return lower.indexOf(filterByName) != -1;
}
}
public Runnable prepareToRun() {
final double ntopLatitude = topLatitude + (topLatitude - bottomLatitude) / 2;
final double nbottomLatitude = bottomLatitude - (topLatitude - bottomLatitude) / 2;
final double nleftLongitude = leftLongitude - (rightLongitude - leftLongitude) / 2;
final double nrightLongitude = rightLongitude + (rightLongitude - leftLongitude) / 2;
setBoundaries(ntopLatitude, nleftLongitude, nbottomLatitude, nrightLongitude);
return new Runnable() {
@Override
public void run() {
start();
try {
for (AmenityIndexRepository repository : res) {
repository.evaluateCachedAmenities(ntopLatitude, nleftLongitude, nbottomLatitude, nrightLongitude, zoom,
filter, AmenityLoadRequest.this);
}
} finally {
finish();
}
}
};
}
private boolean repoHasChange() {
for (AmenityIndexRepository r : res) {
if (r.hasChange()) {
r.clearChange();
return true;
}
}
return false;
}
public boolean recalculateRequest(AmenityLoadRequest req) {
if (this.zoom != req.zoom || !Algorithms.objectEquals(this.filter, req.filter) || req.repoHasChange()) {
return true;
}
return !isContains(req.topLatitude, req.leftLongitude, req.bottomLatitude, req.rightLongitude);
}
}
protected class TransportLoadRequest extends MapObjectLoadRequest<TransportStop> {
private final List<TransportIndexRepository> repos;

View file

@ -1,6 +1,8 @@
package net.osmand.plus.resources;
import gnu.trove.list.array.TIntArrayList;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
@ -36,6 +38,7 @@ import net.osmand.map.MapTileDownloader.DownloadRequest;
import net.osmand.map.OsmandRegions;
import net.osmand.plus.BusyIndicator;
import net.osmand.plus.NameFinderPoiFilter;
import net.osmand.plus.OsmAndFormatter;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.PoiFilter;
@ -45,7 +48,6 @@ import net.osmand.plus.SearchByNameFilter;
import net.osmand.plus.Version;
import net.osmand.plus.render.MapRenderRepositories;
import net.osmand.plus.render.NativeOsmandLibrary;
import net.osmand.plus.resources.AsyncLoadingThread.AmenityLoadRequest;
import net.osmand.plus.resources.AsyncLoadingThread.MapLoadRequest;
import net.osmand.plus.resources.AsyncLoadingThread.TileLoadDownloadRequest;
import net.osmand.plus.resources.AsyncLoadingThread.TransportLoadRequest;
@ -702,17 +704,57 @@ public class ResourceManager {
}
////////////////////////////////////////////// Working with amenities ////////////////////////////////////////////////
public boolean checkNameFilter(Amenity object, String filterByName) {
boolean publish = false;
if (filterByName == null || filterByName.length() == 0) {
publish = true;
} else {
String lower = OsmAndFormatter.getPoiStringWithoutType(object, context.getSettings().usingEnglishNames())
.toLowerCase();
publish = lower.indexOf(filterByName) != -1;
}
return publish;
}
public List<Amenity> searchAmenities(PoiFilter filter,
double topLatitude, double leftLongitude, double bottomLatitude, double rightLongitude,
double lat, double lon, ResultMatcher<Amenity> matcher) {
List<Amenity> amenities = new ArrayList<Amenity>();
for (AmenityIndexRepository index : amenityRepositories) {
if (index.checkContains(topLatitude, leftLongitude, bottomLatitude, rightLongitude)) {
index.searchAmenities(MapUtils.get31TileNumberY(topLatitude), MapUtils.get31TileNumberX(leftLongitude),
MapUtils.get31TileNumberY(bottomLatitude), MapUtils.get31TileNumberX(rightLongitude), -1, filter, amenities, matcher);
double topLatitude, double leftLongitude, double bottomLatitude, double rightLongitude, int zoom, final ResultMatcher<Amenity> matcher) {
final List<Amenity> amenities = new ArrayList<Amenity>();
if(filter instanceof NameFinderPoiFilter || filter instanceof SearchByNameFilter){
List<Amenity> tempResults = filter instanceof NameFinderPoiFilter ?
((NameFinderPoiFilter) filter).getSearchedAmenities() :((SearchByNameFilter) filter).getSearchedAmenities() ;
for(Amenity a : tempResults){
LatLon l = a.getLocation();
if(l != null && l.getLatitude() <= topLatitude && l.getLatitude() >= bottomLatitude && l.getLongitude() >= leftLongitude && l.getLongitude() <= rightLongitude){
if(matcher.publish(a) ){
amenities.add(a);
}
}
}
} else {
final String filterByName = filter.getFilterByName();
for (AmenityIndexRepository index : amenityRepositories) {
if (index.checkContains(topLatitude, leftLongitude, bottomLatitude, rightLongitude)) {
index.searchAmenities(MapUtils.get31TileNumberY(topLatitude),
MapUtils.get31TileNumberX(leftLongitude), MapUtils.get31TileNumberY(bottomLatitude),
MapUtils.get31TileNumberX(rightLongitude), -1, filter, amenities,
new ResultMatcher<Amenity>() {
@Override
public boolean publish(Amenity object) {
if (checkNameFilter(object, filterByName)) {
return matcher.publish(object);
}
return false;
}
@Override
public boolean isCancelled() {
return matcher.isCancelled();
}
});
}
}
}
return amenities;
}
@ -772,31 +814,31 @@ public class ResourceManager {
return map;
}
public void searchAmenitiesAsync(double topLatitude, double leftLongitude, double bottomLatitude, double rightLongitude, int zoom, PoiFilter filter, List<Amenity> toFill){
if(filter instanceof NameFinderPoiFilter || filter instanceof SearchByNameFilter){
List<Amenity> amenities = filter instanceof NameFinderPoiFilter ?
((NameFinderPoiFilter) filter).getSearchedAmenities() :((SearchByNameFilter) filter).getSearchedAmenities() ;
for(Amenity a : amenities){
LatLon l = a.getLocation();
if(l != null && l.getLatitude() <= topLatitude && l.getLatitude() >= bottomLatitude && l.getLongitude() >= leftLongitude && l.getLongitude() <= rightLongitude){
toFill.add(a);
}
}
} else {
String filterId = filter == null ? null : filter.getFilterId();
public void searchAmenitiesOnTheArea(TIntArrayList tiles16z, PoiFilter filter, ResultMatcher<Amenity> results) {
if (tiles16z.size() > 0) {
int z = 16;
int x = tiles16z.get(0) >> z;
int y = tiles16z.get(0) & ((1 << z) - 1);
List<AmenityIndexRepository> repos = new ArrayList<AmenityIndexRepository>();
double topLatitude = MapUtils.getLatitudeFromTile(z, y);
double bottomLatitude = MapUtils.getLatitudeFromTile(z, y + 1);
double leftLongitude = MapUtils.getLongitudeFromTile(z, x);
double rightLongitude = MapUtils.getLongitudeFromTile(z, x + 1);
for (int k = 1; k < tiles16z.size(); k++) {
topLatitude = Math.max(topLatitude, MapUtils.getLatitudeFromTile(z, y));
bottomLatitude = Math.min(bottomLatitude, MapUtils.getLatitudeFromTile(z, y + 1));
leftLongitude = Math.min(leftLongitude, MapUtils.getLongitudeFromTile(z, x));
rightLongitude = Math.max(rightLongitude, MapUtils.getLongitudeFromTile(z, x + 1));
}
for (AmenityIndexRepository index : amenityRepositories) {
if (index.checkContains(topLatitude, leftLongitude, bottomLatitude, rightLongitude)) {
if (!index.checkCachedAmenities(topLatitude, leftLongitude, bottomLatitude, rightLongitude, zoom, filterId, toFill,
true)) {
repos.add(index);
}
repos.add(index);
}
}
if(!repos.isEmpty()){
AmenityLoadRequest req = asyncLoadingThread.new AmenityLoadRequest(repos, zoom, filter, filter.getFilterByName());
req.setBoundaries(topLatitude, leftLongitude, bottomLatitude, rightLongitude);
asyncLoadingThread.requestToLoadAmenities(req);
if (!repos.isEmpty()) {
for(AmenityIndexRepository r : repos) {
// r.searchAmenities(stop, sleft, sbottom, sright, zoom, filter, amenities, matcher)
}
}
}
}
@ -811,6 +853,7 @@ public class ResourceManager {
return addressMap.values();
}
////////////////////////////////////////////// Working with transport ////////////////////////////////////////////////
public List<TransportIndexRepository> searchTransportRepositories(double latitude, double longitude) {
List<TransportIndexRepository> repos = new ArrayList<TransportIndexRepository>();
@ -950,9 +993,6 @@ public class ResourceManager {
public void onLowMemory() {
log.info("On low memory : cleaning tiles - size = " + cacheOfImages.size()); //$NON-NLS-1$
clearTiles();
for(AmenityIndexRepository r : amenityRepositories){
r.clearCache();
}
for(RegionAddressRepository r : addressMap.values()){
r.clearCache();
}

View file

@ -4,29 +4,24 @@ import java.io.File;
import java.util.*;
import android.content.Context;
import android.content.Intent;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.TextView;
import net.osmand.data.LatLon;
import net.osmand.plus.ApplicationMode;
import net.osmand.plus.GPXUtilities;
import net.osmand.plus.*;
import net.osmand.plus.GPXUtilities.GPXFile;
import net.osmand.plus.GPXUtilities.Route;
import net.osmand.plus.GPXUtilities.WptPt;
import net.osmand.plus.OsmAndFormatter;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.R;
import net.osmand.plus.TargetPointsHelper;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.sherpafy.WaypointDialogHelper;
import net.osmand.plus.views.MapInfoLayer;
import net.osmand.plus.views.OsmandMapLayer;
import net.osmand.plus.views.OsmandMapTileView;
import net.osmand.plus.views.mapwidgets.TextInfoWidget;
import net.osmand.util.MapUtils;
import android.content.Intent;
import android.graphics.Paint;
import android.os.AsyncTask;
import android.text.format.DateFormat;
@ -242,6 +237,8 @@ public class RoutePointsPlugin extends OsmandPlugin {
routeStepsControl.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// FavouritesDbHelper fp = map.getMyApplication().getFavorites();
// app.getTargetPointsHelper().addVisibleLocationPoint(fp.getFavouritePoints().get(new Random().nextInt(fp.getFavouritePoints().size())));
Intent intent = new Intent(app, RoutePointsActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
app.startActivity(intent);
@ -252,6 +249,7 @@ public class RoutePointsPlugin extends OsmandPlugin {
return routeStepsControl;
}
public class RoutePoint {
boolean isNextNavigate;
int gpxOrder;

View file

@ -1,5 +1,6 @@
package net.osmand.plus.routing;
import com.actionbarsherlock.internal.nineoldandroids.animation.ObjectAnimator;
import gnu.trove.list.array.TIntArrayList;
import java.util.ArrayList;
@ -13,6 +14,7 @@ import net.osmand.binary.BinaryMapRouteReaderAdapter.RouteRegion;
import net.osmand.binary.BinaryMapRouteReaderAdapter.RouteTypeRule;
import net.osmand.data.DataTileManager;
import net.osmand.data.LatLon;
import net.osmand.data.LocationPoint;
import net.osmand.plus.ApplicationMode;
import net.osmand.plus.GPXUtilities.WptPt;
import net.osmand.plus.R;
@ -30,15 +32,14 @@ public class RouteCalculationResult {
private final List<RouteDirectionInfo> directions;
private final List<RouteSegmentResult> segments;
private final List<AlarmInfo> alarmInfo;
private final List<WptPt> waypoints;
private final String errorMessage;
private final int[] listDistance;
private final int[] intermediatePoints;
private final int[] waypointIndexes;
private final float routingTime;
protected int cacheCurrentTextDirectionInfo = -1;
protected List<RouteDirectionInfo> cacheAgreggatedDirections;
protected List<LocationPoint> locationPoints = new ArrayList<LocationPoint>();
// Note always currentRoute > get(currentDirectionInfo).routeOffset,
// but currentRoute <= get(currentDirectionInfo+1).routeOffset
@ -58,12 +59,9 @@ public class RouteCalculationResult {
this.listDistance = new int[0];
this.directions = new ArrayList<RouteDirectionInfo>();
this.alarmInfo = new ArrayList<AlarmInfo>();
this.waypointIndexes = new int[0];
this.waypoints = new ArrayList<WptPt>();
}
public RouteCalculationResult(List<Location> list, List<RouteDirectionInfo> directions, RouteCalculationParams params,
DataTileManager<WptPt> waypointsTm) {
public RouteCalculationResult(List<Location> list, List<RouteDirectionInfo> directions, RouteCalculationParams params) {
this.routingTime = 0;
this.errorMessage = null;
this.intermediatePoints = new int[params.intermediates == null ? 0 : params.intermediates.size()];
@ -89,13 +87,14 @@ public class RouteCalculationResult {
calculateIntermediateIndexes(params.ctx, this.locations, params.intermediates, localDirections, this.intermediatePoints);
this.directions = Collections.unmodifiableList(localDirections);
updateDirectionsTime(this.directions, this.listDistance);
this.waypoints = new ArrayList<WptPt>();
this.waypointIndexes = calculateWaypointIndexes(list, waypointsTm, waypoints);
}
public RouteCalculationResult(List<RouteSegmentResult> list, Location start, LatLon end, List<LatLon> intermediates,
Context ctx, boolean leftSide, float routingTime) {
Context ctx, boolean leftSide, float routingTime, List<LocationPoint> waypoints) {
this.routingTime = routingTime;
if(waypoints != null) {
this.locationPoints.addAll(waypoints);
}
List<RouteDirectionInfo> computeDirections = new ArrayList<RouteDirectionInfo>();
this.errorMessage = null;
this.intermediatePoints = new int[intermediates == null ? 0 : intermediates.size()];
@ -113,35 +112,12 @@ public class RouteCalculationResult {
this.directions = Collections.unmodifiableList(computeDirections);
updateDirectionsTime(this.directions, this.listDistance);
this.alarmInfo = Collections.unmodifiableList(alarms);
this.waypointIndexes = new int[0];
this.waypoints = new ArrayList<WptPt>();
}
public List<WptPt> getWaypointsToAnnounce(Location loc) {
if (currentWaypointGPX != lastWaypointGPX && loc != null) {
ArrayList<WptPt> points = new ArrayList<WptPt>();
Location next = locations.get(currentRoute);
float dist = loc.distanceTo(next);
while (currentWaypointGPX < lastWaypointGPX) {
WptPt w = waypoints.get(currentWaypointGPX);
if(MapUtils.getDistance(w.lat, w.lon, next.getLatitude(), next.getLongitude()) > dist + 50) {
currentWaypointGPX++;
} else {
break;
}
}
while (currentWaypointGPX < lastWaypointGPX) {
WptPt w = waypoints.get(currentWaypointGPX);
if(MapUtils.getDistance(w.lat, w.lon, loc.getLatitude(), next.getLongitude()) < 60) {
currentWaypointGPX++;
points.add(w);
}
}
return points;
}
return Collections.emptyList();
public List<LocationPoint> getLocationPoints() {
return locationPoints;
}
private static void calculateIntermediateIndexes(Context ctx, List<Location> locations,
List<LatLon> intermediates, List<RouteDirectionInfo> localDirections, int[] intermediatePoints) {
if(intermediates != null && localDirections != null) {
@ -519,27 +495,27 @@ public class RouteCalculationResult {
* PREPARATION
*
*/
private int[] calculateWaypointIndexes(List<Location> list, DataTileManager<WptPt> waypointsTm, List<WptPt> waypoints) {
private int[] calculateWaypointIndexes(List<Location> list, DataTileManager<? extends LocationPoint> waypointsTm, List<LocationPoint> waypoints) {
if(waypointsTm == null || waypointsTm.isEmpty() || list.size() == 0) {
return new int[0];
}
TIntArrayList ls = new TIntArrayList();
Location loc = list.get(0);
Location ploc = list.get(0);
Set<WptPt> added = new HashSet<WptPt>();
Set<LocationPoint> added = new HashSet<LocationPoint>();
int prev31x = MapUtils.get31TileNumberX(loc.getLatitude());
int prev31y = MapUtils.get31TileNumberY(loc.getLongitude());
for(int j = 1; j < list.size(); j++) {
loc = list.get(j);
int t31x = MapUtils.get31TileNumberX(loc.getLatitude());
int t31y = MapUtils.get31TileNumberY(loc.getLongitude());
List<WptPt> ws = waypointsTm.getObjects(Math.min(prev31x, t31x) - Math.abs(t31x - prev31x) / 4,
List<? extends LocationPoint> ws = waypointsTm.getObjects(Math.min(prev31x, t31x) - Math.abs(t31x - prev31x) / 4,
Math.min(prev31y, t31y) - Math.abs(t31y - prev31y) / 4,
Math.max(prev31x, t31x) + Math.abs(t31x - prev31x) / 4,
Math.max(prev31y, t31y) + Math.abs(t31y - prev31y) / 4);
for(WptPt w : ws) {
for(LocationPoint w : ws) {
if (added.contains(w)) {
double ds = MapUtils.getOrthogonalDistance(w.lat, w.lon, ploc.getLatitude(), ploc.getLongitude(), loc.getLatitude(),
double ds = MapUtils.getOrthogonalDistance(w.getLatitude(), w.getLongitude(), ploc.getLatitude(), ploc.getLongitude(), loc.getLatitude(),
loc.getLongitude());
if (ds < 160) {
ls.add(j);
@ -755,9 +731,6 @@ public class RouteCalculationResult {
while (nextAlarmInfo < alarmInfo.size() && alarmInfo.get(nextAlarmInfo).locationIndex < currentRoute) {
nextAlarmInfo++;
}
while(lastWaypointGPX < waypointIndexes.length && waypointIndexes[lastWaypointGPX] <= currentRoute) {
lastWaypointGPX++;
}
while(nextIntermediate < intermediatePoints.length) {
RouteDirectionInfo dir = directions.get(intermediatePoints[nextIntermediate]);
if(dir.routePointOffset < currentRoute) {

View file

@ -22,11 +22,14 @@ import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.FactoryConfigurationError;
import javax.xml.parsers.ParserConfigurationException;
import com.actionbarsherlock.internal.nineoldandroids.animation.ObjectAnimator;
import net.osmand.Location;
import net.osmand.PlatformUtil;
import net.osmand.binary.BinaryMapIndexReader;
import net.osmand.data.DataTileManager;
import net.osmand.data.FavouritePoint;
import net.osmand.data.LatLon;
import net.osmand.data.LocationPoint;
import net.osmand.plus.ApplicationMode;
import net.osmand.plus.GPXUtilities;
import net.osmand.plus.GPXUtilities.GPXFile;
@ -201,12 +204,12 @@ public class RouteProvider {
public static class GPXRouteParams {
List<Location> points = new ArrayList<Location>();
List<RouteDirectionInfo> directions;
DataTileManager<WptPt> wpt;
boolean calculateOsmAndRoute;
boolean passWholeRoute;
boolean calculateOsmAndRouteParts;
boolean useIntermediatePointsRTE;
private List<LocationPoint> wpt;
public List<Location> getPoints() {
return points;
}
@ -242,6 +245,9 @@ public class RouteProvider {
useIntermediatePointsRTE = builder.useIntermediatePointsRTE;
boolean announceWaypoints = builder.announceWaypoints;
builder.calculateOsmAndRoute = false; // Disabled temporary builder.calculateOsmAndRoute;
if(announceWaypoints && !file.points.isEmpty()) {
wpt = new ArrayList<LocationPoint>(file.points );
}
if(file.isCloudmadeRouteFile() || OSMAND_ROUTER.equals(file.author)){
directions = parseOsmAndGPXRoute(points, file, OSMAND_ROUTER.equals(file.author), builder.leftSide, 10);
if(reverse){
@ -271,14 +277,6 @@ public class RouteProvider {
Collections.reverse(points);
}
}
wpt = null;
if(announceWaypoints && !file.points.isEmpty()) {
wpt = new DataTileManager<WptPt>(17);
for(WptPt w : file.points ) {
wpt.registerObjectXY(MapUtils.get31TileNumberX(w.lon),
MapUtils.get31TileNumberY(w.lat),w) ;
}
}
return this;
}
@ -356,7 +354,7 @@ public class RouteProvider {
locs = findStartAndEndLocationsFromRoute(locs, params.start, params.end, startI, endI);
List<RouteDirectionInfo> directions = calcDirections(startI, endI, rcr.getRouteDirections());
insertInitialSegment(params, locs, directions, true);
res = new RouteCalculationResult(locs, directions, params, null);
res = new RouteCalculationResult(locs, directions, params);
} catch (RuntimeException e) {
e.printStackTrace();
}
@ -390,7 +388,7 @@ public class RouteProvider {
info.distance = 0;
info.afterLeftTime = 0;
}
RouteCalculationResult res = new RouteCalculationResult(gpxRoute, gpxDirections, routeParams, gpxParams.wpt);
RouteCalculationResult res = new RouteCalculationResult(gpxRoute, gpxDirections, routeParams);
return res;
}
@ -624,7 +622,7 @@ public class RouteProvider {
}
}
params.intermediates = null;
return new RouteCalculationResult(res, null, params, null);
return new RouteCalculationResult(res, null, params);
}
protected RouteCalculationResult findVectorMapsRoute(final RouteCalculationParams params, boolean calcGPXRoute) throws IOException {
@ -775,8 +773,8 @@ public class RouteProvider {
// something really strange better to see that message on the scren
return emptyResult();
} else {
RouteCalculationResult res = new RouteCalculationResult(result, params.start, params.end,
params.intermediates, params.ctx, params.leftSide, ctx.routingTime);
RouteCalculationResult res = new RouteCalculationResult(result, params.start, params.end,
params.intermediates, params.ctx, params.leftSide, ctx.routingTime, params.gpxRoute == null? null: params.gpxRoute.wpt);
return res;
}
} catch (RuntimeException e) {
@ -993,7 +991,7 @@ public class RouteProvider {
}
}
params.intermediates = null;
return new RouteCalculationResult(res, null, params, null);
return new RouteCalculationResult(res, null, params);
}
public GPXFile createOsmandRouterGPX(RouteCalculationResult srcRoute, OsmandApplication ctx){
@ -1138,7 +1136,7 @@ public class RouteProvider {
res.add(createLocation(pt));
}
params.intermediates = null;
return new RouteCalculationResult(res, null, params, null);
return new RouteCalculationResult(res, null, params);
}
@ -1214,7 +1212,7 @@ public class RouteProvider {
} catch (Exception e) {
return new RouteCalculationResult("Exception calling BRouter: " + e); //$NON-NLS-1$
}
return new RouteCalculationResult(res, null, params, null);
return new RouteCalculationResult(res, null, params);
}
private RouteCalculationResult findStraightRoute(RouteCalculationParams params) {
@ -1240,7 +1238,7 @@ public class RouteProvider {
location.setLatitude(lats[1]);
location.setLongitude(lons[1]);
dots.add(location);
return new RouteCalculationResult(dots,null,params,null);
return new RouteCalculationResult(dots,null,params);
}
}

View file

@ -10,14 +10,15 @@ import net.osmand.binary.BinaryMapRouteReaderAdapter.RouteRegion;
import net.osmand.binary.BinaryMapRouteReaderAdapter.RouteTypeRule;
import net.osmand.binary.RouteDataObject;
import net.osmand.data.LatLon;
import net.osmand.data.LocationPoint;
import net.osmand.plus.ApplicationMode;
import net.osmand.plus.GPXUtilities.GPXFile;
import net.osmand.plus.GPXUtilities.WptPt;
import net.osmand.plus.NavigationService;
import net.osmand.plus.OsmAndFormatter;
import net.osmand.plus.OsmandApplication;
import net.osmand.plus.OsmandPlugin;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.SearchOnTheRouteHelper;
import net.osmand.plus.OsmandSettings.MetricsConstants;
import net.osmand.plus.R;
import net.osmand.plus.TargetPointsHelper;
@ -76,6 +77,7 @@ public class RoutingHelper {
//private long wrongMovementDetected = 0;
private RouteCalculationProgressCallback progressRoute;
private SearchOnTheRouteHelper searchOnTheRouteHelper;
// private ProgressBar progress;
// private Handler progressHandler;
@ -87,8 +89,13 @@ public class RoutingHelper {
public RoutingHelper(OsmandApplication context, CommandPlayer player){
this.app = context;
settings = context.getSettings();
searchOnTheRouteHelper = new SearchOnTheRouteHelper(context);
voiceRouter = new VoiceRouter(this, settings, player);
}
public SearchOnTheRouteHelper getSearchOnTheRouteHelper() {
return searchOnTheRouteHelper;
}
public boolean isFollowingMode() {
return isFollowingMode;
@ -268,7 +275,6 @@ public class RoutingHelper {
// 5. Update Voice router
if (isFollowingMode) {
// don't update in route planing mode
announceGpxWaypoints(currentLocation);
boolean inRecalc = calculateRoute || isRouteBeingCalculated();
if (!inRecalc && !wrongMovementDirection) {
voiceRouter.updateStatus(currentLocation, false);
@ -315,24 +321,6 @@ public class RoutingHelper {
}
}
private void announceGpxWaypoints(Location currentLocation) {
if (currentLocation != null) {
List<WptPt> wpt = route.getWaypointsToAnnounce(currentLocation);
if (wpt.size() > 0) {
String s = "";
for (WptPt w : wpt) {
if(!Algorithms.isEmpty(w.name)) {
s = w.name +",";
}
}
if(!Algorithms.isEmpty(s)) {
voiceRouter.announceWaypoint(s);
}
}
}
}
private static double getOrthogonalDistance(Location loc, Location from, Location to) {
return MapUtils.getOrthogonalDistance(loc.getLatitude(),
loc.getLongitude(), from.getLatitude(), from.getLongitude(),
@ -534,6 +522,12 @@ public class RoutingHelper {
}
private synchronized void setNewRoute(RouteCalculationResult res, Location start){
ArrayList<LocationPoint> locationPoints = new ArrayList<LocationPoint>();
if (app.getSettings().ANNOUNCE_NEARBY_FAVORITES.get()){
locationPoints.addAll(app.getFavorites().getFavouritePoints());
}
locationPoints.addAll(res.getLocationPoints());
app.getLocationProvider().setVisibleLocationPoints(locationPoints);
final boolean newRoute = !this.route.isCalculated();
route = res;
if (isFollowingMode) {
@ -565,6 +559,8 @@ public class RoutingHelper {
voiceRouter.newRouteIsCalculated(newRoute);
}
}
searchOnTheRouteHelper.searchOnTheRoute(route);
app.runInUIThread(new Runnable() {
@Override

View file

@ -3,7 +3,10 @@ package net.osmand.plus.routing;
import net.osmand.Location;
import net.osmand.binary.RouteDataObject;
import net.osmand.data.FavouritePoint;
import net.osmand.data.LocationPoint;
import net.osmand.plus.ApplicationMode;
import net.osmand.plus.GPXUtilities;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.routing.AlarmInfo.AlarmInfoType;
import net.osmand.plus.routing.RouteCalculationResult.NextDirectionInfo;
@ -16,6 +19,9 @@ import net.osmand.util.Algorithms;
import alice.tuprolog.Struct;
import alice.tuprolog.Term;
import android.content.Context;
import net.osmand.util.MapUtils;
import java.util.List;
public class VoiceRouter {
@ -154,7 +160,7 @@ public class VoiceRouter {
}
}
protected boolean isDistanceLess(float currentSpeed, double dist, double etalon){
public boolean isDistanceLess(float currentSpeed, double dist, double etalon){
if(currentSpeed <= 0) {
currentSpeed = DEFAULT_SPEED;
}
@ -216,11 +222,76 @@ public class VoiceRouter {
lastAnnouncedOffRoute = ms;
}
}
public void announceWaypoint(String w) {
public void announceWaypoint(List<LocationPoint> points) {
CommandBuilder p = getNewCommandPlayerToPlay();
if(p != null) {
p.arrivedAtWayPoint(getSpeakablePointName(w)).play();
if (p == null){
return;
}
String favoritesWaypoints = null;
String gpxWaypoints = null;
String poiWaypoints = null;
for (LocationPoint point : points) {
if (point instanceof GPXUtilities.WptPt) {
gpxWaypoints = (favoritesWaypoints == null ? "" : ", ") + point.getName();
} else if (point instanceof FavouritePoint) {
favoritesWaypoints = (favoritesWaypoints == null ? "" : ", ") + point.getName();
} else {
poiWaypoints = (favoritesWaypoints == null ? "" : ", ") + point.getName();
}
}
if (gpxWaypoints != null){
p.arrivedAtWayPoint(gpxWaypoints).play();
}
if (favoritesWaypoints != null){
p.arrivedAtFavorite(favoritesWaypoints).play();
}
if (poiWaypoints != null){
p.arrivedAtPoi(poiWaypoints).play();
}
}
public void approachWaypoint(Location location, List<LocationPoint> points){
CommandBuilder p = getNewCommandPlayerToPlay();
if (p == null){
return;
}
String favoritesWaypoints = null;
String gpxWaypoints = null;
String poiWaypoints = null;
double favDistance = -1;
double gpxDistance = -1;
double poiDistance = -1;
for (LocationPoint point : points) {
if (point instanceof GPXUtilities.WptPt) {
gpxWaypoints = (favoritesWaypoints == null ? "" : ", ") + point.getName();
//need to calculate distance to nearest point
if (favDistance == -1){
favDistance = MapUtils.getDistance(location.getLatitude(), location.getLongitude(),
point.getLatitude(), point.getLongitude());
}
} else if (point instanceof FavouritePoint) {
favoritesWaypoints = (favoritesWaypoints == null ? "" : ", ") + point.getName();
if (gpxDistance == -1){
gpxDistance = MapUtils.getDistance(location.getLatitude(), location.getLongitude(),
point.getLatitude(), point.getLongitude());
}
} else {
poiWaypoints = (favoritesWaypoints == null ? "" : ", ") + point.getName();
if (poiDistance == -1){
poiDistance = MapUtils.getDistance(location.getLatitude(), location.getLongitude(),
point.getLatitude(), point.getLongitude());
}
}
}
if (gpxWaypoints != null){
p.goAhead(gpxDistance, null).andArriveAtWayPoint(gpxWaypoints).play();
}
if (favoritesWaypoints != null) {
p.goAhead(favDistance, null).andArriveAtFavorite(favoritesWaypoints).play();
}
if (poiWaypoints != null){
p.goAhead(poiDistance, null).andArriveAtPoiWaypoint(poiWaypoints).play();
}
}

View file

@ -0,0 +1,263 @@
package net.osmand.plus.sherpafy;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.os.AsyncTask;
import android.os.SystemClock;
import android.text.Spannable;
import android.text.style.ForegroundColorSpan;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.*;
import net.osmand.Location;
import net.osmand.data.LocationPoint;
import net.osmand.plus.*;
import net.osmand.plus.activities.FavouritesActivity;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.base.FavoriteImageDrawable;
import net.osmand.plus.views.MapControlsLayer;
import net.osmand.util.MapUtils;
import java.util.List;
/**
* Created by Denis on 25.07.2014.
*/
public class WaypointDialogHelper {
private MapActivity mapActivity;
private OsmandApplication app;
private FrameLayout mainLayout;
private OsmAndLocationProvider locationProvider;
public static boolean OVERLAP_LAYOUT = true;
private long uiModified;
private View closePointDialog;
public WaypointDialogHelper(MapActivity mapActivity) {
this.app = mapActivity.getMyApplication();
locationProvider = this.app.getLocationProvider();
this.mapActivity = mapActivity;
this.mainLayout = (FrameLayout) ((FrameLayout) mapActivity.getLayout()).getChildAt(0);
}
public void updateDialog() {
List<LocationPoint> vlp = locationProvider.getVisibleLocationPoints();
long locationPointsModified = locationProvider.getLocationPointsModified();
if (locationPointsModified != uiModified) {
uiModified = locationPointsModified;
if (vlp.isEmpty()) {
removeDialog();
} else {
final LocationPoint point = vlp.get(0);
boolean created = false;
if (closePointDialog == null) {
created = true;
final LayoutInflater vi = (LayoutInflater) app.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
closePointDialog = vi.inflate(R.layout.waypoint_reached, null);
}
updatePointInfoView(closePointDialog, point);
closePointDialog.setBackgroundColor(mapActivity.getResources().getColor(R.color.color_black));
((TextView)closePointDialog.findViewById(R.id.waypoint_text)).setTextColor(Color.WHITE);
View all = closePointDialog.findViewById(R.id.all_points);
all.setVisibility(vlp.size() <= 1 ? View.GONE : View.VISIBLE);
all.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showAllDialog();
}
});
View btnN = closePointDialog.findViewById(R.id.info_close);
btnN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
locationProvider.removeVisibleLocationPoint(point);
updateDialog();
}
});
if (created) {
mainLayout.addView(closePointDialog, getDialogLayoutParams());
waitBeforeLayoutIsResized(closePointDialog);
}
}
}
}
private void updatePointInfoView(View localView, final LocationPoint point) {
TextView text = (TextView) localView.findViewById(R.id.waypoint_text);
text.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
itemClick(point);
}
});
((ImageView) localView.findViewById(R.id.waypoint_icon)).setImageDrawable(FavoriteImageDrawable.getOrCreate(mapActivity, point.getColor()));
Location lastKnownMapLocation = app.getLocationProvider().getLastKnownLocation();
String distance;
if (lastKnownMapLocation != null) {
int dist = (int) (MapUtils.getDistance(point.getLatitude(), point.getLongitude(),
lastKnownMapLocation.getLatitude(), lastKnownMapLocation.getLongitude()));
distance = OsmAndFormatter.getFormattedDistance(dist, app) + " ";
} else {
distance = "";
}
text.setText(distance + point.getName(), TextView.BufferType.SPANNABLE);
if (distance.length() > 0) {
((Spannable) text.getText()).setSpan(
new ForegroundColorSpan(mapActivity.getResources().getColor(R.color.color_distance)), 0, distance.length() - 1,
0);
}
}
private void itemClick(LocationPoint point) {
final Intent favorites = new Intent(mapActivity, app.getAppCustomization().getFavoritesActivity());
favorites.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
favorites.putExtra(FavouritesActivity.TAB_PARAM,
point instanceof GPXUtilities.WptPt ? FavouritesActivity.GPX_TAB : FavouritesActivity.FAVORITES_TAB);
mapActivity.startActivity(favorites);
}
public void removeDialog() {
if (closePointDialog != null) {
mainLayout.removeView(closePointDialog);
closePointDialog = null;
shiftButtons(0);
}
}
private FrameLayout.LayoutParams getDialogLayoutParams() {
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;
return params;
}
private boolean checkIfDialogExists() {
if (mainLayout == null) {
return true;
}
if (mainLayout.findViewById(R.id.package_delivered_layout) != null) {
return false;
}
return true;
}
private void shiftButtons(int height) {
MapControlsLayer mapControls = mapActivity.getMapLayers().getMapControlsLayer();
if (mapControls != null) {
mapControls.shiftLayout(height);
}
}
private void waitBeforeLayoutIsResized(View reachedView) {
//this async task is needed because layout height is not set
// right after you add it so we need to w8 some time
new AsyncTask<View, Void, Void>() {
int height;
@Override
protected Void doInBackground(View... params) {
for (int i = 0; i < 10; i++) {
SystemClock.sleep(50);
height = params[0].getHeight();
if (params[0].getHeight() > 0) {
break;
}
}
return null;
}
protected void onPostExecute(Void result) {
if (height > 0 && OVERLAP_LAYOUT) {
shiftButtons(height);
}
}
}.execute(reachedView);
}
public void showAllDialog(){
final List<LocationPoint> visibleLocationPoints = locationProvider.getVisibleLocationPoints();
final ArrayAdapter<LocationPoint> listAdapter = new ArrayAdapter<LocationPoint>(mapActivity, R.layout.waypoint_reached, R.id.title,
visibleLocationPoints) {
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// User super class to create the View
View v = convertView;
if (v == null) {
v = mapActivity.getLayoutInflater().inflate(R.layout.waypoint_reached, null);
int vl = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 32, mapActivity.getResources()
.getDisplayMetrics());
final LinearLayout.LayoutParams ll = new LinearLayout.LayoutParams(vl, vl);
ll.setMargins(vl / 4, vl / 4, vl / 4, vl / 4);
v.findViewById(R.id.waypoint_icon).setLayoutParams(ll);
}
updatePointInfoView(v, getItem(position));
TextView text = (TextView) v.findViewById(R.id.waypoint_text);
text.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showOnMap(visibleLocationPoints.get(position));
}
});
View remove = v.findViewById(R.id.info_close);
((ImageButton) remove).setImageDrawable(mapActivity.getResources().getDrawable(
app.getSettings().isLightContent()? R.drawable.ic_action_gremove_light:
R.drawable.ic_action_gremove_dark));
remove.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
LocationPoint point = locationProvider.getVisibleLocationPoints().get(position);
remove(point);
locationProvider.removeVisibleLocationPoint(point);
notifyDataSetChanged();
}
});
return v;
}
};
ListView listView = new ListView(mapActivity);
listView.setAdapter(listAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
showOnMap(visibleLocationPoints.get(i));
}
});
// Dialog dlg = new Dialog(mapActivity);
// dlg.setContentView(listView);
// dlg.show();
AlertDialog.Builder builder = new AlertDialog.Builder(mapActivity);
builder.setView(listView);
builder.setPositiveButton(R.string.default_buttons_ok, null);
builder.setNegativeButton(mapActivity.getString(R.string.hide_all_waypoints), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
locationProvider.clearAllVisiblePoints();
updateDialog();
}
});
builder.show();
}
private void showOnMap(LocationPoint locationPoint) {
// AnimateDraggingMapThread thread = mapActivity.getMapView().getAnimatedDraggingThread();
int fZoom = mapActivity.getMapView().getZoom() < 15 ? 15 : mapActivity.getMapView().getZoom();
// thread.startMoving(pointToNavigate.getLatitude(), pointToNavigate.getLongitude(), fZoom, true);
mapActivity.getMapView().setIntZoom(fZoom);
mapActivity.getMapView().setLatLon(locationPoint.getLatitude(), locationPoint.getLongitude());
}
}

View file

@ -3,12 +3,14 @@ package net.osmand.plus.views;
import java.util.ArrayList;
import java.util.List;
import android.view.ViewParent;
import net.osmand.data.RotatedTileBox;
import net.osmand.plus.OsmandSettings;
import net.osmand.plus.OsmandSettings.CommonPreference;
import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.routing.RoutingHelper;
import net.osmand.plus.sherpafy.WaypointDialogHelper;
import net.osmand.plus.views.controls.MapRoutePlanControl;
import net.osmand.plus.views.controls.MapRoutePreferencesControl;
import net.osmand.plus.views.controls.MapCancelControl;
@ -59,10 +61,12 @@ public class MapControlsLayer extends OsmandMapLayer {
private LinearLayout transparencyBarLayout;
private static CommonPreference<Integer> settingsToTransparency;
private OsmandSettings settings;
private WaypointDialogHelper waypointDialogHelper;
public MapControlsLayer(MapActivity activity){
this.mapActivity = activity;
settings = activity.getMyApplication().getSettings();
waypointDialogHelper = new WaypointDialogHelper(activity);
}
@Override
@ -176,7 +180,8 @@ public class MapControlsLayer extends OsmandMapLayer {
checkVisibilityAndDraw(showRouteCalculationControls, zoomSideControls, canvas, tileBox, nightMode);
// the last one to check other controls visibility
int vmargin = mapNavigationControl.isVisible() || zoomControls.isVisible() ? zoomControls.getHeight() : 0;
int vmargin = mapNavigationControl.isVisible() || zoomControls.isVisible() ?
(zoomControls.getHeight() + zoomControls.getTotalVerticalMargin()): 0;
rulerControl.setVerticalMargin(vmargin);
checkVisibilityAndDraw(true, rulerControl, canvas, tileBox, nightMode);
}
@ -189,7 +194,7 @@ public class MapControlsLayer extends OsmandMapLayer {
private void checkVisibilityAndDraw(boolean visibility, MapControls controls, Canvas canvas,
RotatedTileBox tileBox, DrawSettings nightMode) {
if(visibility != controls.isVisible()){
if(visibility != controls.isVisible() ){
if(visibility) {
controls.show((FrameLayout) mapActivity.getMapView().getParent());
} else {
@ -298,6 +303,27 @@ public class MapControlsLayer extends OsmandMapLayer {
transparencyBarLayout.setVisibility(View.GONE);
settingsToTransparency = null;
}
}
}
public void shiftLayout(int height) {
FrameLayout parent = (FrameLayout) mapActivity.getMapView().getParent();
parent.requestLayout();
for(MapControls mc : allControls) {
if(mc.isBottom()){
mc.setExtraVerticalMargin(height);
if( mc.isVisible()) {
mc.forceHide(parent);
mc.show(parent);
}
}
}
}
public void showDialog(){
mapInfoNavigationControl.setShowDialog();
}
public WaypointDialogHelper getWaypointDialogHelper() {
return waypointDialogHelper;
}
}

View file

@ -1,9 +1,11 @@
package net.osmand.plus.views;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import net.osmand.PlatformUtil;
import net.osmand.ResultMatcher;
import net.osmand.access.AccessibleToast;
import net.osmand.data.Amenity;
import net.osmand.data.AmenityType;
@ -43,14 +45,46 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
private Paint paintIcon;
private Paint point;
private OsmandMapTileView view;
private List<Amenity> objects = new ArrayList<Amenity>();
private final static int MAXIMUM_SHOW_AMENITIES = 5;
private ResourceManager resourceManager;
private PoiFilter filter;
private MapTextLayer mapTextLayer;
/// cache for displayed POI
// Work with cache (for map copied from AmenityIndexRepositoryOdb)
private MapLayerData<List<Amenity>> data;
public POIMapLayer(MapActivity activity) {
data = new OsmandMapLayer.MapLayerData<List<Amenity>>() {
{
ZOOM_THRESHOLD = 0;
}
@Override
public boolean isInterrupted() {
return super.isInterrupted();
}
@Override
protected List<Amenity> calculateResult(RotatedTileBox tileBox) {
QuadRect latLonBounds = tileBox.getLatLonBounds();
return resourceManager.searchAmenities(filter, latLonBounds.top, latLonBounds.left,
latLonBounds.bottom, latLonBounds.right, tileBox.getZoom(), new ResultMatcher<Amenity>() {
@Override
public boolean publish(Amenity object) {
return true;
}
@Override
public boolean isCancelled() {
return isInterrupted();
}
});
}
};
}
public PoiFilter getFilter() {
@ -59,9 +93,11 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
public void setFilter(PoiFilter filter) {
this.filter = filter;
data.clearCache();
}
public void getAmenityFromPoint(RotatedTileBox tb, PointF point, List<? super Amenity> am) {
List<Amenity> objects = data.getResults();
if (objects != null) {
int ex = (int) point.x;
int ey = (int) point.y;
@ -126,6 +162,7 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
resourceManager = view.getApplication().getResourceManager();
mapTextLayer = view.getLayerByClass(MapTextLayer.class);
}
public int getRadiusPoi(RotatedTileBox tb) {
int r = 0;
@ -146,30 +183,33 @@ public class POIMapLayer extends OsmandMapLayer implements ContextMenuLayer.ICon
@Override
public void onPrepareBufferImage(Canvas canvas, RotatedTileBox tileBox, DrawSettings settings) {
objects.clear();
List<Amenity> objects = Collections.emptyList();
if (tileBox.getZoom() >= startZoom) {
final QuadRect latLonBounds = tileBox.getLatLonBounds();
resourceManager.searchAmenitiesAsync(latLonBounds.top, latLonBounds.left, latLonBounds.bottom,
latLonBounds.right, tileBox.getZoom(), filter, objects);
int r = getRadiusPoi(tileBox);
for (Amenity o : objects) {
int x = (int) tileBox.getPixXFromLatLon(o.getLocation().getLatitude(), o.getLocation().getLongitude());
int y = (int) tileBox.getPixYFromLatLon(o.getLocation().getLatitude(), o.getLocation().getLongitude());
canvas.drawCircle(x, y, r, pointAltUI);
canvas.drawCircle(x, y, r, point);
String id = null;
StringBuilder tag = new StringBuilder();
StringBuilder value = new StringBuilder();
MapRenderingTypes.getDefault().getAmenityTagValue(o.getType(), o.getSubType(), tag, value);
if (RenderingIcons.containsIcon(tag + "_" + value)) {
id = tag + "_" + value;
} else if (RenderingIcons.containsIcon(tag.toString())) {
id = tag.toString();
}
if (id != null) {
Bitmap bmp = RenderingIcons.getIcon(view.getContext(), id);
if (bmp != null) {
canvas.drawBitmap(bmp, x - bmp.getWidth() / 2, y - bmp.getHeight() / 2, paintIcon);
data.queryNewData(tileBox);
objects = data.getResults();
if (objects != null) {
int r = getRadiusPoi(tileBox);
for (Amenity o : objects) {
int x = (int) tileBox.getPixXFromLatLon(o.getLocation().getLatitude(), o.getLocation()
.getLongitude());
int y = (int) tileBox.getPixYFromLatLon(o.getLocation().getLatitude(), o.getLocation()
.getLongitude());
canvas.drawCircle(x, y, r, pointAltUI);
canvas.drawCircle(x, y, r, point);
String id = null;
StringBuilder tag = new StringBuilder();
StringBuilder value = new StringBuilder();
MapRenderingTypes.getDefault().getAmenityTagValue(o.getType(), o.getSubType(), tag, value);
if (RenderingIcons.containsIcon(tag + "_" + value)) {
id = tag + "_" + value;
} else if (RenderingIcons.containsIcon(tag.toString())) {
id = tag.toString();
}
if (id != null) {
Bitmap bmp = RenderingIcons.getIcon(view.getContext(), id);
if (bmp != null) {
canvas.drawBitmap(bmp, x - bmp.getWidth() / 2, y - bmp.getHeight() / 2, paintIcon);
}
}
}
}

View file

@ -1,7 +1,9 @@
package net.osmand.plus.views.controls;
import net.osmand.data.RotatedTileBox;
import net.osmand.plus.R;
import net.osmand.plus.activities.MapActivity;
import net.osmand.plus.sherpafy.WaypointDialogHelper;
import net.osmand.plus.views.OsmandMapLayer.DrawSettings;
import android.content.Context;
import android.graphics.Canvas;
@ -24,60 +26,64 @@ public abstract class MapControls {
protected int shadowColor;
private boolean visible;
private long delayTime;
protected int gravity = Gravity.BOTTOM | Gravity.RIGHT;
protected int margin;
protected int vmargin;
protected int width;
protected int height;
protected Runnable notifyClick;
private int extraVerticalMargin;
public MapControls(MapActivity mapActivity, Handler showUIHandler, float scaleCoefficient) {
this.mapActivity = mapActivity;
this.showUIHandler = showUIHandler;
this.scaleCoefficient = scaleCoefficient;
}
public void setGravity(int gravity) {
this.gravity = gravity;
}
public void setMargin(int margin) {
this.margin = margin;
}
public void setVerticalMargin(int vmargin) {
this.vmargin = vmargin;
}
protected ImageButton addImageButton(FrameLayout parent, int stringId, int resourceId) {
Context ctx = mapActivity;
ImageButton button = new ImageButton(ctx);
applyAttributes(ctx, parent, button, stringId, resourceId, 0);
return button;
}
public int getTotalVerticalMargin() {
return extraVerticalMargin + vmargin;
}
protected Button addButton(FrameLayout parent, int stringId, int resourceId) {
return addButton(parent, stringId, resourceId, 0);
}
protected Button addButton(FrameLayout parent, int stringId, int resourceId, int extraMargin) {
protected Button addButton(FrameLayout parent, int stringId, int resourceId, int extraMargin) {
Context ctx = mapActivity;
Button button = new Button(ctx);
applyAttributes(ctx, parent, button, stringId, resourceId, extraMargin);
return button;
}
public void setNotifyClick(Runnable notifyClick) {
this.notifyClick = notifyClick;
}
protected void notifyClicked() {
if(notifyClick != null) {
notifyClick.run();
}
}
private void applyAttributes(Context ctx, FrameLayout parent, View button, int stringId, int resourceId,
int extraMargin) {
@ -92,15 +98,20 @@ public abstract class MapControls {
params.rightMargin = margin + extraMargin;
}
if((gravity & Gravity.BOTTOM) == Gravity.BOTTOM) {
params.bottomMargin = vmargin;
params.bottomMargin = vmargin + extraVerticalMargin;
} else {
params.topMargin = vmargin;
params.topMargin = vmargin + extraVerticalMargin;
}
parent.addView(button, params);
button.setLayoutParams(params);
parent.addView(button);
button.setEnabled(true);
mapActivity.accessibleContent.add(button);
}
public int getGravity() {
return gravity;
}
protected void removeButton(FrameLayout layout, View b) {
layout.removeView(b);
mapActivity.accessibleContent.remove(b);
@ -113,12 +124,12 @@ public abstract class MapControls {
public final void init(FrameLayout layout) {
initControls(layout);
}
public final void show(FrameLayout layout) {
visible = true;
showControls(layout);
}
public final void showWithDelay(final FrameLayout layout, final long delay) {
this.delayTime = System.currentTimeMillis() + delay;
if(!visible) {
@ -147,50 +158,58 @@ public abstract class MapControls {
}
}, delay);
}
public final void hide(FrameLayout layout) {
if(this.delayTime == 0) {
visible = false;
hideControls(layout);
}
}
public final void forceHide(FrameLayout layout) {
delayTime = 0;
visible = false;
hideControls(layout);
mapActivity.getMapView().refreshMap();
}
public boolean isVisible() {
return visible;
}
protected boolean isLeft() {
return (Gravity.LEFT & gravity) == Gravity.LEFT;
}
protected boolean isBottom() {
public boolean isBottom() {
return (Gravity.BOTTOM & gravity) == Gravity.BOTTOM;
}
protected void initControls(FrameLayout layout) {
}
protected abstract void hideControls(FrameLayout layout);
protected abstract void showControls(FrameLayout layout);
public abstract void onDraw(Canvas canvas, RotatedTileBox tileBox, DrawSettings nightMode);
public boolean onTouchEvent(MotionEvent event, RotatedTileBox tileBox) {
return false;
}
public boolean onSingleTap(PointF point, RotatedTileBox tileBox) {
return false;
}
public void setExtraVerticalMargin(int extraVerticalMargin) {
this.extraVerticalMargin = extraVerticalMargin;
}
public int getExtraVerticalMargin() {
return this.extraVerticalMargin;
}
}

View file

@ -193,7 +193,8 @@ public class MapNavigateControl extends MapControls {
private void drawCount(Canvas canvas, RotatedTileBox tb) {
if (navigateShadow.getBounds().width() == 0 && navigateButton.getWidth() > 0) {
if ((navigateShadow.getBounds().width() == 0 && navigateButton.getWidth() > 0 )||
navigateShadow.getBounds().bottom != navigateButton.getBottom()) {
navigateShadow.setBounds(navigateButton.getLeft() - 2, navigateButton.getTop()
- (int) (18 * scaleCoefficient), navigateButton.getRight(), navigateButton.getBottom());
}

View file

@ -3,6 +3,9 @@ package net.osmand.plus.views.controls;
import java.util.ArrayList;
import java.util.List;
import android.graphics.Point;
import android.os.SystemClock;
import android.view.*;
import net.osmand.data.FavouritePoint;
import net.osmand.data.LatLon;
import net.osmand.data.RotatedTileBox;
@ -31,10 +34,6 @@ import android.graphics.Canvas;
import android.graphics.PointF;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.view.Gravity;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
@ -56,9 +55,10 @@ public class MapRouteInfoControl extends MapControls implements IRouteInformatio
private AlertDialog favoritesDialog;
private boolean selectFromMapTouch;
private boolean selectFromMapForTarget;
public MapRouteInfoControl(ContextMenuLayer contextMenu,
private boolean showDialog = false;
public MapRouteInfoControl(ContextMenuLayer contextMenu,
MapActivity mapActivity, Handler showUIHandler, float scaleCoefficient) {
super(mapActivity, showUIHandler, scaleCoefficient);
this.contextMenu = contextMenu;
@ -86,6 +86,12 @@ public class MapRouteInfoControl extends MapControls implements IRouteInformatio
@Override
public void showControls(FrameLayout parent) {
infoButton = addButton(parent, R.string.route_info, R.drawable.map_btn_signpost);
if (showDialog){
if (getTargets().getPointToNavigate() == null){
showDialog();
}
showDialog = false;
}
controlVisible = true;
infoButton.setOnClickListener(new View.OnClickListener() {
@Override
@ -98,9 +104,6 @@ public class MapRouteInfoControl extends MapControls implements IRouteInformatio
}
}
});
if(getTargets().getPointToNavigate() == null) {
showDialog();
}
}
private Dialog createDialog() {
@ -131,7 +134,7 @@ public class MapRouteInfoControl extends MapControls implements IRouteInformatio
lp.width = WindowManager.LayoutParams.WRAP_CONTENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
lp.gravity = Gravity.BOTTOM;
lp.y = (int) (infoButton.getBottom() - infoButton.getTop() + scaleCoefficient * 5);
lp.y = (int) (infoButton.getBottom() - infoButton.getTop() + scaleCoefficient * 5 + getExtraVerticalMargin());
dialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
dialog.getWindow().setAttributes(lp);
@ -248,6 +251,7 @@ public class MapRouteInfoControl extends MapControls implements IRouteInformatio
@Override
public void hideControls(FrameLayout layout) {
removeButton(layout, infoButton);
hideDialog();
controlVisible = false;
}
@ -455,4 +459,8 @@ public class MapRouteInfoControl extends MapControls implements IRouteInformatio
infoButton.setBackgroundResource(R.drawable.map_btn_signpost);
}
}
public void setShowDialog() {
showDialog = true;
}
}

View file

@ -202,7 +202,7 @@ public class MapRoutePreferencesControl extends MapControls {
settings.GPX_ROUTE_CALC.set(selected);
rp.setCalculateOsmAndRoute(selected);
updateParameters();
}
}
}
if (gpxParam.id == R.string.calculate_osmand_route_without_internet) {
settings.GPX_ROUTE_CALC_OSMAND_PARTS.set(selected);
@ -210,11 +210,16 @@ public class MapRoutePreferencesControl extends MapControls {
if (gpxParam.id == R.string.fast_route_mode) {
settings.FAST_ROUTE_MODE.set(selected);
}
if (gpxParam.id == R.string.announce_nearby_favorites){
settings.ANNOUNCE_NEARBY_FAVORITES.set(selected);
}
}
private List<LocalRoutingParameter> getRoutingParameters(ApplicationMode am) {
List<LocalRoutingParameter> list = new ArrayList<LocalRoutingParameter>();
list.add(new OtherLocalRoutingParameter(R.string.announce_nearby_favorites,
mapActivity.getString(R.string.announce_nearby_favorites), settings.ANNOUNCE_NEARBY_FAVORITES.get()));
GPXRouteParamsBuilder rparams = mapActivity.getRoutingHelper().getCurrentGPXRoute();
boolean osmandRouter = settings.ROUTER_SERVICE.get() == RouteService.OSMAND ;
if(!osmandRouter) {
@ -255,6 +260,7 @@ public class MapRoutePreferencesControl extends MapControls {
list.add(rp);
}
}
return list;
}
private String getString(int id) {

View file

@ -28,7 +28,11 @@ public class CommandBuilder {
protected static final String C_AND_ARRIVE_INTERMEDIATE = "and_arrive_intermediate"; //$NON-NLS-1$
protected static final String C_REACHED_INTERMEDIATE = "reached_intermediate"; //$NON-NLS-1$
protected static final String C_AND_ARRIVE_WAYPOINT = "and_arrive_waypoint"; //$NON-NLS-1$
protected static final String C_AND_ARRIVE_FAVORITE = "and_arrive_favorite"; //$NON-NLS-1$
protected static final String C_AND_ARRIVE_POI_WAYPOINT = "and_arrive_poi"; //$NON-NLS-1$
protected static final String C_REACHED_WAYPOINT = "reached_waypoint"; //$NON-NLS-1$
protected static final String C_REACHED_FAVORITE = "reached_favorite"; //$NON-NLS-1$
protected static final String C_REACHED_POI = "reached_poi"; //$NON-NLS-1$
protected static final String C_THEN = "then"; //$NON-NLS-1$
protected static final String C_SPEAD_ALARM = "speed_alarm"; //$NON-NLS-1$
protected static final String C_ATTENTION = "attention"; //$NON-NLS-1$
@ -190,9 +194,13 @@ public class CommandBuilder {
public CommandBuilder arrivedAtWayPoint(String name) {
return addCommand(C_REACHED_WAYPOINT, name);
}
public CommandBuilder andArriveAtWayPoint(String name){
return addCommand(C_AND_ARRIVE_WAYPOINT, name);
public CommandBuilder arrivedAtFavorite(String name) {
return addCommand(C_REACHED_FAVORITE, name);
}
public CommandBuilder arrivedAtPoi(String name) {
return addCommand(C_REACHED_POI, name);
}
public CommandBuilder bearLeft(Term streetName){
@ -223,8 +231,6 @@ public class CommandBuilder {
return alt(prepareStruct(C_ROUTE_RECALC, dist, time), prepareStruct(C_ROUTE_RECALC, dist));
}
public void play(){
this.commandPlayer.playCommands(this);
}
@ -234,8 +240,15 @@ public class CommandBuilder {
return this.commandPlayer.execute(listStruct);
}
public CommandBuilder andArriveAtWayPoint(String name){
return addCommand(C_AND_ARRIVE_WAYPOINT, name);
}
public CommandBuilder andArriveAtPoiWaypoint(String name) {
return addCommand(C_AND_ARRIVE_POI_WAYPOINT, name);
}
public CommandBuilder andArriveAtFavorite(String name) {
return addCommand(C_AND_ARRIVE_FAVORITE, name);
}
}

View file

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<resources><string name="default_buttons_no">아니오</string>
<string name="default_buttons_yes"></string>
<string name="osmand_app_not_found">OsmAnd는 설치되어 있지 않습니다.</string>
<string name="app_name">OsmAnd 주차장</string>
<string name="parking_plugin_installed">OsmAnd 주차 플러그인은 OsmAnd 설정에서 설치되고 활성화 되었습니다.</string>
</resources>