Improved navigation
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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);
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user