Improved navigation

This commit is contained in:
2015-12-23 17:11:27 +01:00
parent 0d5a87ed6d
commit e6071f3628
7 changed files with 60 additions and 23 deletions
+4 -1
View File
@@ -242,8 +242,11 @@ namespace NavCityBreda.Helpers
break;
}
if (maneuver.StreetName == "")
onstreet = false;
if (onstreet)
response += " " + Util.Loader.GetString("RouteOn") + " " + maneuver.StreetName;
response += " " + Util.Loader.GetString("RouteOn") + " " + maneuver.StreetName;
return response;
}
+5 -2
View File
@@ -187,7 +187,7 @@
<value>Keep right</value>
</data>
<data name="RouteLeft" xml:space="preserve">
<value>Go left</value>
<value>Turn left</value>
</data>
<data name="RouteNone" xml:space="preserve">
<value>No new action required</value>
@@ -196,7 +196,7 @@
<value>on</value>
</data>
<data name="RouteRight" xml:space="preserve">
<value>Go right</value>
<value>Turn right</value>
</data>
<data name="RouteSeeMap" xml:space="preserve">
<value>See the map for details</value>
@@ -240,4 +240,7 @@
<data name="WiFi" xml:space="preserve">
<value>WiFi</value>
</data>
<data name="RouteIn" xml:space="preserve">
<value>in</value>
</data>
</root>
+3
View File
@@ -240,4 +240,7 @@
<data name="RouteUTurn" xml:space="preserve">
<value>Keer indien mogelijk om</value>
</data>
<data name="RouteIn" xml:space="preserve">
<value>over</value>
</data>
</root>
+41 -19
View File
@@ -42,14 +42,14 @@ namespace NavCityBreda.Model
public MapRoute RouteToLandmark { get { return _routetolandmark; } }
private int _currentroutelegcount;
private MapRouteLeg _currentrouteleg { get { return _currentroutelegs[_currentroutelegcount]; } }
private List<MapRouteLeg> _currentroutelegs;
private int _currentmaneuvercount;
private MapRouteManeuver _currentmaneuver;
private List<MapRouteManeuver> _currentmaneuvers { get { return _currentrouteleg.Maneuvers.ToList(); } }
public MapRouteManeuver CurrentManeuver { get { return _currentmaneuver; } }
public string LoadingElement;
public enum RouteStatus { LOADING, STOPPED, STARTED }
@@ -73,28 +73,50 @@ namespace NavCityBreda.Model
{
if(Status == RouteStatus.STARTED)
{
double dif_lat = Math.Abs(_currentmaneuver.StartingPoint.Position.Latitude - e.New.Coordinate.Point.Position.Latitude);
double dif_lon = Math.Abs(_currentmaneuver.StartingPoint.Position.Longitude - e.New.Coordinate.Point.Position.Longitude);
bool found = false;
if (dif_lat > 0.000012 && dif_lon > 0.000012) return;
//Only continue if you are at the maneuver point
_currentmaneuvercount++;
if(_currentmaneuvercount >= _currentroutelegs[_currentroutelegcount].Maneuvers.Count)
for (int q = _currentroutelegcount; q < _currentroutelegs.Count; q++)
{
_currentmaneuvercount--;
int startindex = 0;
if (q == _currentroutelegcount)
startindex = _currentmaneuvercount;
_currentroutelegcount++;
if(_currentroutelegcount >= _currentroutelegs.Count)
for (int i = startindex; i < _currentroutelegs[q].Maneuvers.Count; i++)
{
_currentroutelegcount--;
return;
double dif_lat = Math.Abs(_currentroutelegs[q].Maneuvers[i].StartingPoint.Position.Latitude - e.New.Coordinate.Point.Position.Latitude);
double dif_lon = Math.Abs(_currentroutelegs[q].Maneuvers[i].StartingPoint.Position.Longitude - e.New.Coordinate.Point.Position.Longitude);
if (dif_lat < 0.00003 || dif_lon < 0.00003)
{
_currentroutelegcount = q;
_currentmaneuvercount = i + 1;
found = true;
break;
}
}
}
_currentmaneuver = _currentroutelegs[_currentroutelegcount].Maneuvers[_currentmaneuvercount];
UpdateManeuver(_currentmaneuver);
if(found)
{
if(_currentmaneuvercount >= _currentmaneuvers.Count)
{
if(_currentroutelegcount+1 < _currentroutelegs.Count)
{
_currentroutelegcount++;
_currentmaneuvercount = 0;
}
else
{
_currentmaneuvercount--;
}
}
if (_currentmaneuver != _currentmaneuvers[_currentmaneuvercount])
{
_currentmaneuver = _currentmaneuvers[_currentmaneuvercount];
UpdateManeuver(_currentmaneuver);
}
}
}
}
@@ -146,7 +168,7 @@ namespace NavCityBreda.Model
if (foldername != "img")
{
Route r = RouteParser.LoadRoute(foldername);
LoadingElement = Util.Loader.GetString("Loading") + " " + r.Name + "...";
LoadingElement = Util.Loader.GetString("Loading") + " " + r.Name.ToLower() + "...";
await r.CalculateRoute();
_routes.Add(r);
}
@@ -165,7 +187,7 @@ namespace NavCityBreda.Model
_currentroutelegs = _routetolandmark.Legs.ToList() as List<MapRouteLeg>;
_currentroutelegcount = 0;
_currentmaneuvercount = 0;
_currentmaneuver = _currentroutelegs[_currentroutelegcount].Maneuvers[_currentmaneuvercount];
_currentmaneuver = _currentmaneuvers[_currentmaneuvercount];
UpdateRoute(_routetolandmark, _currentlandmark);
UpdateManeuver(_currentmaneuver);
+5 -1
View File
@@ -2,5 +2,9 @@
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:NavCityBreda.Themes">
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="White"/>
</Style>
</ResourceDictionary>
+1
View File
@@ -146,6 +146,7 @@ namespace NavCityBreda.Views
Map.MapElements.Clear();
Map.MapElements.Add(CurrentPosition);
Map.MapElements.Add(CurrentNavigationLine);
if (App.Geo.History.Count > 1)
Map.MapElements.Add(Util.GetRouteLine(App.Geo.History.Select(p => p.Coordinate.Point.Position).ToList(), Color.FromArgb(255, 155, 155, 155), 250, 6));
@@ -76,6 +76,7 @@ namespace NavCityBreda.Views
{
l.UpdateIcon();
Map.MapElements.Add(l.Icon);
await Task.Delay(TimeSpan.FromMilliseconds(3));
}
}