Compare commits
5 commits
Author | SHA1 | Date | |
---|---|---|---|
|
5df6b3caf2 | ||
|
84e684d2e9 | ||
|
fc241fa688 | ||
|
d97c6ce0da | ||
|
4fb5b205c1 |
7 changed files with 38 additions and 22 deletions
|
@ -21,7 +21,7 @@ import net.osmand.util.MapUtils;
|
|||
|
||||
public class GeneralRouter implements VehicleRouter {
|
||||
|
||||
private static final float CAR_SHORTEST_DEFAULT_SPEED = 45/3.6f;
|
||||
private static final float CAR_SHORTEST_DEFAULT_SPEED = 55/3.6f;
|
||||
public static final String USE_SHORTEST_WAY = "short_way";
|
||||
public static final String AVOID_FERRIES = "avoid_ferries";
|
||||
public static final String AVOID_TOLL = "avoid_toll";
|
||||
|
@ -45,7 +45,9 @@ public class GeneralRouter implements VehicleRouter {
|
|||
private float leftTurn;
|
||||
private float roundaboutTurn;
|
||||
private float rightTurn;
|
||||
// speed in m/s
|
||||
private float minDefaultSpeed = 10;
|
||||
// speed in m/s
|
||||
private float maxDefaultSpeed = 10;
|
||||
|
||||
|
||||
|
@ -278,7 +280,7 @@ public class GeneralRouter implements VehicleRouter {
|
|||
|
||||
@Override
|
||||
public float defineVehicleSpeed(RouteDataObject road) {
|
||||
return getObjContext(RouteDataObjectAttribute.ROAD_SPEED) .evaluateFloat(road, getMinDefaultSpeed() * 3.6f) / 3.6f;
|
||||
return getObjContext(RouteDataObjectAttribute.ROAD_SPEED) .evaluateFloat(road, getMinDefaultSpeed());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -143,6 +143,7 @@ public class RoutingConfiguration {
|
|||
final RoutingConfiguration.Builder config = new RoutingConfiguration.Builder();
|
||||
GeneralRouter currentRouter = null;
|
||||
RouteDataObjectAttribute currentAttribute = null;
|
||||
String preType = null;
|
||||
Stack<RoutingRule> rulesStck = new Stack<RoutingConfiguration.RoutingRule>();
|
||||
parser.setInput(is, "UTF-8");
|
||||
int tok;
|
||||
|
@ -160,8 +161,9 @@ public class RoutingConfiguration {
|
|||
} else if ("point".equals(name) || "way".equals(name)) {
|
||||
String attribute = parser.getAttributeValue("", "attribute");
|
||||
currentAttribute = RouteDataObjectAttribute.getValueOf(attribute);
|
||||
preType = parser.getAttributeValue("", "type");
|
||||
} else {
|
||||
parseRoutingRule(parser, currentRouter, currentAttribute, rulesStck);
|
||||
parseRoutingRule(parser, currentRouter, currentAttribute, preType, rulesStck);
|
||||
}
|
||||
} else if (tok == XmlPullParser.END_TAG) {
|
||||
String pname = parser.getName();
|
||||
|
@ -207,7 +209,7 @@ public class RoutingConfiguration {
|
|||
}
|
||||
|
||||
private static void parseRoutingRule(XmlPullParser parser, GeneralRouter currentRouter, RouteDataObjectAttribute attr,
|
||||
Stack<RoutingRule> stack) {
|
||||
String parentType, Stack<RoutingRule> stack) {
|
||||
String pname = parser.getName();
|
||||
if (checkTag(pname)) {
|
||||
if(attr == null){
|
||||
|
@ -221,11 +223,15 @@ public class RoutingConfiguration {
|
|||
rr.value1 = parser.getAttributeValue("", "value1");
|
||||
rr.value2 = parser.getAttributeValue("", "value2");
|
||||
rr.type = parser.getAttributeValue("", "type");
|
||||
if((rr.type == null || rr.type.length() == 0) &&
|
||||
parentType != null && parentType.length() > 0) {
|
||||
rr.type = parentType;
|
||||
}
|
||||
|
||||
RouteAttributeContext ctx = currentRouter.getObjContext(attr);
|
||||
if("select".equals(rr.tagName)) {
|
||||
String val = parser.getAttributeValue("", "value");
|
||||
String type = parser.getAttributeValue("", "type");
|
||||
String type = rr.type;
|
||||
ctx.registerNewRule(val, type);
|
||||
addSubclause(rr, ctx);
|
||||
for (int i = 0; i < stack.size(); i++) {
|
||||
|
|
|
@ -1672,9 +1672,9 @@ Si consiglia di aggiungere uno o più punti intermedi per migliorarne le prestaz
|
|||
\n\t* Scomparsa automatica dei pulsanti nella modalità navigazione ↵
|
||||
\n\t* Calcolo del percorso offline verso il primo punto della traccia GPX (opzione \'percorri tutta la traccia\')↵
|
||||
→\n\t* Simulazione attiva nei tunnel↵
|
||||
→\n\t* Molte piccole migliorie dell'interfaccia utente & correzioni usabilità↵
|
||||
→\n\t* Molte piccole migliorie dell\'interfaccia utente & correzioni usabilità↵
|
||||
→\n\t* Impostazioni della velocità della vocalizzazione↵
|
||||
</string>
|
||||
<string name="calculate_osmand_route_without_internet">Calcola un percorso con OsmAnd senza l'utilizzo di internet</string>
|
||||
<string name="gpx_option_calculate_first_last_segment">Calcola una percorso OsmAnd per il primo e l'ultimo tratto del percorso</string>
|
||||
<string name="calculate_osmand_route_without_internet">Calcola un percorso con OsmAnd senza l\'utilizzo di internet</string>
|
||||
<string name="gpx_option_calculate_first_last_segment">Calcola una percorso OsmAnd per il primo e l\'ultimo tratto del percorso</string>
|
||||
</resources>
|
||||
|
|
|
@ -1482,7 +1482,7 @@
|
|||
<string name="calculate_osmand_route_without_internet">Рассчитать сегмент маршрута OsmAnd без Интернета</string>
|
||||
<string name="gpx_option_calculate_first_last_segment">Рассчитать маршрут OsmAnd для первого и последнего сегмента маршрута</string>
|
||||
<string name="tip_map_styles_t">OsmAnd поддерживает отображение скачанных векторных карт в разных стилях, в соответствии с вашими потребностями:
|
||||
\n\nКроме сбалансированного стиля Карты '\по умолчанию\', Вы можете в \'Меню\'→ \'Настройка экрана\'→ \'Стиль карты\" выбрать например стили
|
||||
\n\nКроме сбалансированного стиля Карты \'по умолчанию\', Вы можете в \'Меню\'→ \'Настройка экрана\'→ \'Стиль карты\" выбрать например стили
|
||||
\n\t* \'Туристический\', который содержит наиболее подробную информацию, подходящую для путешествий и туризма, включая оптимизированный для профессиональных водителей (имеет более высокую контрастность, хорошо различимые дороги), варианты горных походов, велосипедных маршрутов, поддержка походных символов и т.д.
|
||||
\n\t* \'Высококонтрастные дороги\' показывает дороги в акцентировнных цветах, что удобно при ярком окружающем освещении
|
||||
\n\t* \'Зима и лыжи\' использует зимний(покрытый снегом) ландшафтный вид, показывает лыжные склоны и подъемники (используется загрузка карт \'World Ski\')
|
||||
|
|
|
@ -143,19 +143,23 @@ public class SettingsActivity extends SettingsBaseActivity {
|
|||
edition = getString(R.string.local_index_installed) + " :\t" + DateFormat.getDateFormat(getApplicationContext()).format(date);
|
||||
} catch (Exception e) {
|
||||
}
|
||||
SpannableString content = new SpannableString(vt + version +"\n" +
|
||||
edition +"\n\n"+
|
||||
getString(R.string.about_content));
|
||||
content.setSpan(new ClickableSpan() {
|
||||
@Override
|
||||
public void onClick(View widget) {
|
||||
final Intent mapIntent = new Intent(SettingsActivity.this, ContributionVersionActivity.class);
|
||||
startActivityForResult(mapIntent, 0);
|
||||
}
|
||||
|
||||
}, st, st + version.length(), 0);
|
||||
tv.setText(content);
|
||||
} else {
|
||||
tv.setText(vt + version +"\n\n" +
|
||||
getString(R.string.about_content));
|
||||
}
|
||||
SpannableString content = new SpannableString(vt + version +"\n" +
|
||||
edition +"\n\n"+
|
||||
getString(R.string.about_content));
|
||||
content.setSpan(new ClickableSpan() {
|
||||
@Override
|
||||
public void onClick(View widget) {
|
||||
final Intent mapIntent = new Intent(SettingsActivity.this, ContributionVersionActivity.class);
|
||||
startActivityForResult(mapIntent, 0);
|
||||
}
|
||||
|
||||
}, st, st + version.length(), 0);
|
||||
tv.setText(content);
|
||||
|
||||
tv.setPadding(5, 0, 5, 5);
|
||||
tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, 19);
|
||||
tv.setMovementMethod(LinkMovementMethod.getInstance());
|
||||
|
|
|
@ -245,6 +245,7 @@ public class SettingsNavigationActivity extends SettingsBaseActivity {
|
|||
routerServicePreference.setSummary(getString(R.string.router_service_descr) + " ["
|
||||
+ settings.ROUTER_SERVICE.get() + "]");
|
||||
prepareRoutingPrefs(getPreferenceScreen());
|
||||
super.updateAllSettings();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -236,7 +236,10 @@ public abstract class SearchByNameAbstractActivity<T> extends OsmandListActivity
|
|||
|
||||
@Override
|
||||
protected void onRestoreInstanceState(Bundle prevState) {
|
||||
endingText = prevState.getString("ENDING_TEXT", "");
|
||||
endingText = prevState.getString("ENDING_TEXT");
|
||||
if(endingText == null) {
|
||||
endingText = "";
|
||||
}
|
||||
previousSpan = prevState.getParcelable("PREVIOUS_SPAN");
|
||||
super.onRestoreInstanceState(prevState);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue