@@ -2,7 +2,18 @@
|
||||
x:Class="NavCityBreda.App"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:NavCityBreda"
|
||||
RequestedTheme="Light">
|
||||
xmlns:local="using:NavCityBreda">
|
||||
|
||||
<Application.Resources>
|
||||
<ResourceDictionary>
|
||||
<ResourceDictionary.ThemeDictionaries>
|
||||
<ResourceDictionary x:Key="Dark" Source="Themes/DarkTheme.xaml"/>
|
||||
<ResourceDictionary x:Key="Light" Source="Themes/LightTheme.xaml"/>
|
||||
</ResourceDictionary.ThemeDictionaries>
|
||||
<ResourceDictionary.MergedDictionaries>
|
||||
<ResourceDictionary Source="Themes/DefaultStyles.xaml"/>
|
||||
</ResourceDictionary.MergedDictionaries>
|
||||
</ResourceDictionary>
|
||||
</Application.Resources>
|
||||
|
||||
</Application>
|
||||
|
||||
@@ -1,27 +1,97 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices.WindowsRuntime;
|
||||
using NavCityBreda.Model;
|
||||
using System;
|
||||
using Windows.ApplicationModel;
|
||||
using Windows.ApplicationModel.Activation;
|
||||
using Windows.Foundation;
|
||||
using Windows.Foundation.Collections;
|
||||
using Windows.Graphics.Display;
|
||||
using Windows.UI.Core;
|
||||
using Windows.UI.ViewManagement;
|
||||
using Windows.UI.Xaml;
|
||||
using Windows.UI.Xaml.Controls;
|
||||
using Windows.UI.Xaml.Controls.Primitives;
|
||||
using Windows.UI.Xaml.Data;
|
||||
using Windows.UI.Xaml.Input;
|
||||
using Windows.UI.Xaml.Media;
|
||||
using Windows.UI.Xaml.Navigation;
|
||||
|
||||
namespace NavCityBreda
|
||||
{
|
||||
/// <summary>
|
||||
/// Provides application-specific behavior to supplement the default Application class.
|
||||
/// </summary>
|
||||
sealed partial class App : Application
|
||||
{
|
||||
|
||||
public static Frame rootFrame;
|
||||
|
||||
|
||||
// =======================
|
||||
// SINGLETONS
|
||||
// =======================
|
||||
private static GeoTracker geo = new GeoTracker();
|
||||
|
||||
public static GeoTracker Geo
|
||||
{
|
||||
get
|
||||
{
|
||||
return geo;
|
||||
}
|
||||
}
|
||||
|
||||
private static RouteManager rm = new RouteManager();
|
||||
|
||||
public static RouteManager RouteManager
|
||||
{
|
||||
get
|
||||
{
|
||||
return rm;
|
||||
}
|
||||
}
|
||||
|
||||
private static CompassTracker cm = new CompassTracker();
|
||||
|
||||
public static CompassTracker CompassTracker
|
||||
{
|
||||
get
|
||||
{
|
||||
return cm;
|
||||
}
|
||||
}
|
||||
|
||||
public static CoreDispatcher Dispatcher
|
||||
{
|
||||
get
|
||||
{
|
||||
return Windows.UI.Core.CoreWindow.GetForCurrentThread().Dispatcher;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// =========================
|
||||
// STATIC HELPER FUNCTIONS
|
||||
// =========================
|
||||
|
||||
public static Size ScreenSize
|
||||
{
|
||||
get
|
||||
{
|
||||
var bounds = ApplicationView.GetForCurrentView().VisibleBounds;
|
||||
var scaleFactor = DisplayInformation.GetForCurrentView().RawPixelsPerViewPixel;
|
||||
Size size = new Size(bounds.Width * scaleFactor, bounds.Height * scaleFactor);
|
||||
return size;
|
||||
}
|
||||
}
|
||||
|
||||
public static MainPage MainPage
|
||||
{
|
||||
get
|
||||
{
|
||||
Frame f = Window.Current.Content as Frame;
|
||||
MainPage mp = f.Content as MainPage;
|
||||
return mp;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// ===============================
|
||||
// NORMAL STUFF
|
||||
// ===============================
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Initializes the singleton application object. This is the first line of authored code
|
||||
/// executed, and as such is the logical equivalent of main() or WinMain().
|
||||
@@ -29,6 +99,7 @@ namespace NavCityBreda
|
||||
public App()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
|
||||
this.Suspending += OnSuspending;
|
||||
}
|
||||
|
||||
@@ -43,11 +114,11 @@ namespace NavCityBreda
|
||||
#if DEBUG
|
||||
if (System.Diagnostics.Debugger.IsAttached)
|
||||
{
|
||||
this.DebugSettings.EnableFrameRateCounter = true;
|
||||
this.DebugSettings.EnableFrameRateCounter = false;
|
||||
}
|
||||
#endif
|
||||
|
||||
Frame rootFrame = Window.Current.Content as Frame;
|
||||
rootFrame = Window.Current.Content as Frame;
|
||||
|
||||
// Do not repeat app initialization when the Window already has content,
|
||||
// just ensure that the window is active
|
||||
@@ -58,13 +129,12 @@ namespace NavCityBreda
|
||||
|
||||
rootFrame.NavigationFailed += OnNavigationFailed;
|
||||
|
||||
if (e.PreviousExecutionState == ApplicationExecutionState.Terminated)
|
||||
if (e.PreviousExecutionState != ApplicationExecutionState.Running)
|
||||
{
|
||||
//TODO: Load state from previously suspended application
|
||||
InitPage extendedSplash = new InitPage(e.SplashScreen);
|
||||
rootFrame.Content = extendedSplash;
|
||||
Window.Current.Content = rootFrame;
|
||||
}
|
||||
|
||||
// Place the frame in the current Window
|
||||
Window.Current.Content = rootFrame;
|
||||
}
|
||||
|
||||
if (rootFrame.Content == null)
|
||||
@@ -74,6 +144,7 @@ namespace NavCityBreda
|
||||
// parameter
|
||||
rootFrame.Navigate(typeof(MainPage), e.Arguments);
|
||||
}
|
||||
|
||||
// Ensure the current window is active
|
||||
Window.Current.Activate();
|
||||
}
|
||||
|
||||
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 7.5 KiB After Width: | Height: | Size: 49 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 120 KiB |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 58 KiB |
@@ -0,0 +1,13 @@
|
||||
using NavCityBreda.Model.Object;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace NavCityBreda.Helpers.Comparer
|
||||
{
|
||||
class LandmarkAlphaComparer : IComparer<Landmark>
|
||||
{
|
||||
public int Compare(Landmark x, Landmark y)
|
||||
{
|
||||
return x.Name.CompareTo(y.Name);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
using NavCityBreda.Model.Object;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace NavCityBreda.Helpers.Comparer
|
||||
{
|
||||
class LandmarkAlphaReversedComparer : IComparer<Landmark>
|
||||
{
|
||||
public int Compare(Landmark x, Landmark y)
|
||||
{
|
||||
return y.Name.CompareTo(x.Name);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using NavCityBreda.Model.Object;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace NavCityBreda.Helpers.Comparer
|
||||
{
|
||||
class LandmarkNotVisitedComparer : IComparer<Landmark>
|
||||
{
|
||||
public int Compare(Landmark x, Landmark y)
|
||||
{
|
||||
if (x.Status == y.Status)
|
||||
return x.Name.CompareTo(y.Name);
|
||||
else if (x.Status == Landmark.LandmarkStatus.VISITED)
|
||||
return 1;
|
||||
else if (y.Status == Landmark.LandmarkStatus.VISITED)
|
||||
return -1;
|
||||
else if (x.Status == Landmark.LandmarkStatus.SKIPPED)
|
||||
return 1;
|
||||
else if (y.Status == Landmark.LandmarkStatus.SKIPPED)
|
||||
return -1;
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
using NavCityBreda.Model.Object;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace NavCityBreda.Helpers.Comparer
|
||||
{
|
||||
class LandmarkVisitedComparer : IComparer<Landmark>
|
||||
{
|
||||
public int Compare(Landmark x, Landmark y)
|
||||
{
|
||||
if (x.Status == y.Status)
|
||||
return x.Name.CompareTo(y.Name);
|
||||
else if (x.Status == Landmark.LandmarkStatus.VISITED)
|
||||
return -1;
|
||||
else if (y.Status == Landmark.LandmarkStatus.VISITED)
|
||||
return 1;
|
||||
else if (x.Status == Landmark.LandmarkStatus.SKIPPED)
|
||||
return -1;
|
||||
else if (y.Status == Landmark.LandmarkStatus.SKIPPED)
|
||||
return 1;
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
using NavCityBreda.Model.Search;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace NavCityBreda.Helpers.Comparer
|
||||
{
|
||||
class SearchLandmarkComparer : IComparer<LandmarkResult>
|
||||
{
|
||||
public int Compare(LandmarkResult x, LandmarkResult y)
|
||||
{
|
||||
if (x.InDescription == y.InDescription)
|
||||
return x.Name.CompareTo(y.Name);
|
||||
else if (x.InDescription)
|
||||
return 1;
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
using NavCityBreda.Model.Search;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace NavCityBreda.Helpers.Comparer
|
||||
{
|
||||
class SearchRouteComparer : IComparer<RouteResult>
|
||||
{
|
||||
public int Compare(RouteResult x, RouteResult y)
|
||||
{
|
||||
if (x.InDescription == y.InDescription)
|
||||
return x.Name.CompareTo(y.Name);
|
||||
else if (x.InDescription)
|
||||
return 1;
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using Windows.UI.Xaml;
|
||||
using Windows.UI.Xaml.Data;
|
||||
|
||||
namespace NavCityBreda.Helpers.Converter
|
||||
{
|
||||
class BoolToVisibilityConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, string language)
|
||||
{
|
||||
if ((bool)value)
|
||||
return Visibility.Visible;
|
||||
else
|
||||
return Visibility.Collapsed;
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, string language)
|
||||
{
|
||||
if (((Visibility)value) == Visibility.Visible)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
using NavCityBreda.Model.Object;
|
||||
using System;
|
||||
using Windows.UI.Xaml.Controls;
|
||||
using Windows.UI.Xaml.Data;
|
||||
|
||||
namespace NavCityBreda.Helpers.Converter
|
||||
{
|
||||
class StatusToIconConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, string language)
|
||||
{
|
||||
Landmark.LandmarkStatus st = (Landmark.LandmarkStatus)value;
|
||||
|
||||
switch (st)
|
||||
{
|
||||
default:
|
||||
case Landmark.LandmarkStatus.NOTVISITED:
|
||||
return Symbol.Cancel;
|
||||
case Landmark.LandmarkStatus.VISITED:
|
||||
return Symbol.Accept;
|
||||
case Landmark.LandmarkStatus.SKIPPED:
|
||||
return Symbol.Forward;
|
||||
}
|
||||
}
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, string language)
|
||||
{
|
||||
//Not implemented
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
|
||||
namespace NavCityBreda.Helpers
|
||||
{
|
||||
public static class Extensions
|
||||
{
|
||||
public static bool NullOrEmpty(this JToken token)
|
||||
{
|
||||
return (token == null) ||
|
||||
(token.Type == JTokenType.Array && !token.HasValues) ||
|
||||
(token.Type == JTokenType.Object && !token.HasValues) ||
|
||||
(token.Type == JTokenType.String && token.ToString() == String.Empty) ||
|
||||
(token.Type == JTokenType.Null);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
using NavCityBreda.Model.Object;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System.Linq;
|
||||
|
||||
namespace NavCityBreda.Helpers
|
||||
{
|
||||
class RouteParser
|
||||
{
|
||||
public static Route LoadRoute(string foldername)
|
||||
{
|
||||
if (!Directory.Exists("Routes/" + foldername))
|
||||
throw new FileNotFoundException("The route folder does not exist: " + foldername);
|
||||
|
||||
string datafile = "Routes/" + foldername + "/data.json";
|
||||
string mediafolder = "Routes/" + foldername + "/media";
|
||||
|
||||
if (!File.Exists(datafile))
|
||||
throw new FileNotFoundException("The route data file does not exist.");
|
||||
|
||||
string json = File.ReadAllText(datafile);
|
||||
JObject o = JObject.Parse(json);
|
||||
|
||||
string error;
|
||||
if (!ValidateRouteObject(o, out error))
|
||||
throw new FileLoadException("Invalid Route information in " + datafile + ", " + error);
|
||||
|
||||
Route r = new Route((string)o["name"], (string)o["description"], (string)o["landmarks"], foldername);
|
||||
|
||||
JToken[] waypoints = o["waypoints"].ToArray();
|
||||
int count = 0;
|
||||
foreach (JToken t in waypoints)
|
||||
{
|
||||
if (!ValidateWaypointObject(t, out error))
|
||||
throw new FileLoadException("Invalid Waypoint (#" + (count + 1) + ") information in " + datafile + ", " + error);
|
||||
|
||||
Waypoint w;
|
||||
|
||||
if ((bool)t["landmark"])
|
||||
{
|
||||
List<Image> images = new List<Image>();
|
||||
|
||||
if (!t["image"].NullOrEmpty())
|
||||
{
|
||||
JToken img = t["image"];
|
||||
|
||||
if (img.Type == JTokenType.String)
|
||||
{
|
||||
if (ImageExists(foldername, (string)img))
|
||||
images.Add(new Image(ImagePath(foldername, (string)img)));
|
||||
}
|
||||
else if (img.Type == JTokenType.Array)
|
||||
{
|
||||
foreach (string s in img.ToArray())
|
||||
{
|
||||
if (ImageExists(foldername, s))
|
||||
images.Add(new Image(ImagePath(foldername, s)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
w = new Landmark((double)t["latitude"], (double)t["longitude"], (string)t["name"], count, (string)t["description"], images);
|
||||
}
|
||||
else
|
||||
w = new Waypoint((double)t["latitude"], (double)t["longitude"], (string)t["name"], count);
|
||||
|
||||
r.Add(w);
|
||||
count++;
|
||||
}
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
private static bool ImageExists(string foldername, string imagename)
|
||||
{
|
||||
return File.Exists("Routes/" + foldername + "/media/" + imagename);
|
||||
}
|
||||
|
||||
private static string ImagePath(string foldername, string imagename)
|
||||
{
|
||||
return "/Routes/" + foldername + "/media/" + imagename;
|
||||
}
|
||||
|
||||
private static bool ValidateRouteObject(JObject o, out string error)
|
||||
{
|
||||
bool valid = true;
|
||||
error = "Success";
|
||||
|
||||
if (o["name"].NullOrEmpty())
|
||||
{
|
||||
valid = false;
|
||||
error = "Name missing";
|
||||
}
|
||||
|
||||
if (o["description"].NullOrEmpty())
|
||||
{
|
||||
valid = false;
|
||||
error = "Description missing";
|
||||
}
|
||||
|
||||
if (o["landmarks"].NullOrEmpty())
|
||||
{
|
||||
valid = false;
|
||||
error = "Landmarks missing";
|
||||
}
|
||||
|
||||
if (o["waypoints"].NullOrEmpty())
|
||||
{
|
||||
valid = false;
|
||||
error = "Waypoints missing or empty";
|
||||
}
|
||||
|
||||
return valid;
|
||||
}
|
||||
|
||||
private static bool ValidateWaypointObject(JToken o, out string error)
|
||||
{
|
||||
bool valid = true;
|
||||
error = "Success";
|
||||
|
||||
if (o["name"].NullOrEmpty())
|
||||
{
|
||||
valid = false;
|
||||
error = "Name missing";
|
||||
}
|
||||
|
||||
if (o["landmark"].NullOrEmpty())
|
||||
{
|
||||
valid = false;
|
||||
error = "Landmark missing";
|
||||
}
|
||||
|
||||
if (o["latitude"].NullOrEmpty())
|
||||
{
|
||||
valid = false;
|
||||
error = "Latitude missing";
|
||||
}
|
||||
|
||||
if (o["longitude"].NullOrEmpty())
|
||||
{
|
||||
valid = false;
|
||||
error = "Longitude missing";
|
||||
}
|
||||
|
||||
if (valid && (bool)o["landmark"])
|
||||
{
|
||||
if (o["description"].NullOrEmpty())
|
||||
{
|
||||
valid = false;
|
||||
error = "Description missing";
|
||||
}
|
||||
}
|
||||
|
||||
return valid;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Windows.Globalization;
|
||||
using Windows.Storage;
|
||||
|
||||
namespace NavCityBreda.Helpers
|
||||
{
|
||||
static class Settings
|
||||
{
|
||||
private static ApplicationDataContainer LOCAL_SETTINGS = ApplicationData.Current.LocalSettings;
|
||||
|
||||
public delegate void OnLanguageUpdateHandler(EventArgs e);
|
||||
public static event OnLanguageUpdateHandler OnLanguageUpdate;
|
||||
|
||||
public static bool Tracking
|
||||
{
|
||||
get
|
||||
{
|
||||
return (bool)LOCAL_SETTINGS.Values["tracking"];
|
||||
}
|
||||
set
|
||||
{
|
||||
LOCAL_SETTINGS.Values["tracking"] = value;
|
||||
}
|
||||
}
|
||||
|
||||
static Settings()
|
||||
{
|
||||
LOCAL_SETTINGS.Values["tracking"] = true;
|
||||
|
||||
if (CurrentLanguage == "")
|
||||
ApplicationLanguages.PrimaryLanguageOverride = "en";
|
||||
}
|
||||
|
||||
public static async void ChangeLanguage(string lang)
|
||||
{
|
||||
ApplicationLanguages.PrimaryLanguageOverride = lang;
|
||||
await Task.Delay(TimeSpan.FromMilliseconds(100));
|
||||
//App.rootFrame.Navigate(typeof(MainPage));
|
||||
OnLanguageUpdate(new EventArgs());
|
||||
}
|
||||
|
||||
public static string CurrentLanguage { get { return ApplicationLanguages.PrimaryLanguageOverride; } }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,269 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Windows.ApplicationModel.Resources;
|
||||
using Windows.Data.Xml.Dom;
|
||||
using Windows.Devices.Geolocation;
|
||||
using Windows.Services.Maps;
|
||||
using Windows.UI;
|
||||
using Windows.UI.Notifications;
|
||||
using Windows.UI.Popups;
|
||||
using Windows.UI.Xaml.Controls.Maps;
|
||||
|
||||
namespace NavCityBreda.Helpers
|
||||
{
|
||||
class Util
|
||||
{
|
||||
public enum DialogType { YESNO, OKCANCEL }
|
||||
|
||||
public static ResourceLoader Loader
|
||||
{
|
||||
get
|
||||
{
|
||||
return new Windows.ApplicationModel.Resources.ResourceLoader();
|
||||
}
|
||||
}
|
||||
|
||||
public static double Now { get { return (DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds; } }
|
||||
|
||||
public static string MillisecondsToTime(double millis)
|
||||
{
|
||||
DateTime time = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
|
||||
string timestr = time.AddMilliseconds(millis) + "";
|
||||
return timestr;
|
||||
}
|
||||
|
||||
public static async Task<Geopoint> FindLocation(string location, Geopoint reference)
|
||||
{
|
||||
MapLocationFinderResult result = await MapLocationFinder.FindLocationsAsync(location, reference);
|
||||
MapLocation from = result.Locations.FirstOrDefault();
|
||||
Geopoint p = from.Point;
|
||||
return p;
|
||||
}
|
||||
|
||||
public static async Task<MapRoute> FindWalkingRoute(Geopoint from, Geopoint to)
|
||||
{
|
||||
MapRouteFinderResult routeResult = await MapRouteFinder.GetWalkingRouteAsync(from, to);
|
||||
MapRoute b = routeResult.Route;
|
||||
return b;
|
||||
}
|
||||
|
||||
public static async Task<MapRoute> FindWalkingRoute(List<Geopoint> points)
|
||||
{
|
||||
MapRouteFinderResult routeResult = await MapRouteFinder.GetWalkingRouteFromWaypointsAsync(points);
|
||||
MapRoute b = routeResult.Route;
|
||||
return b;
|
||||
}
|
||||
|
||||
public static async Task<MapRoute> FindWalkingRoute(string from, string to, Geopoint reference)
|
||||
{
|
||||
Geopoint f = await FindLocation(from, reference);
|
||||
Geopoint t = await FindLocation(to, reference);
|
||||
MapRoute m = await FindWalkingRoute(f, t);
|
||||
return m;
|
||||
}
|
||||
|
||||
public static async Task<String> FindAddress(Geopoint p)
|
||||
{
|
||||
// Reverse geocode the specified geographic location.
|
||||
MapLocationFinderResult result =
|
||||
await MapLocationFinder.FindLocationsAtAsync(p);
|
||||
|
||||
string returnstring = "";
|
||||
|
||||
// If the query returns results, display the name of the town
|
||||
// contained in the address of the first result.
|
||||
if (result.Status == MapLocationFinderStatus.Success)
|
||||
{
|
||||
MapAddress address = result.Locations[0].Address;
|
||||
|
||||
//returnstring = address.Street + " " + address.StreetNumber + ", " + address.Town;
|
||||
returnstring += (address.BuildingName == "" ? "" : address.BuildingName + ", ");
|
||||
returnstring += (address.Street == "" ? "" : address.Street + (address.StreetNumber == "" ? ", " : " " + address.StreetNumber + ", "));
|
||||
returnstring += address.Town;
|
||||
}
|
||||
|
||||
return returnstring;
|
||||
}
|
||||
|
||||
public static async Task<String> FindAddress(double latitude, double longitude)
|
||||
{
|
||||
Geopoint p = new Geopoint(new BasicGeoposition() { Latitude = latitude, Longitude = longitude });
|
||||
string address = await FindAddress(p);
|
||||
return address;
|
||||
}
|
||||
|
||||
public static MapPolyline GetRouteLine(MapRoute m, Color color, int zindex, int thickness = 5)
|
||||
{
|
||||
var line = new MapPolyline
|
||||
{
|
||||
StrokeThickness = thickness,
|
||||
StrokeColor = color,
|
||||
StrokeDashed = false,
|
||||
ZIndex = zindex
|
||||
};
|
||||
|
||||
if (m != null)
|
||||
line.Path = new Geopath(m.Path.Positions);
|
||||
|
||||
return line;
|
||||
}
|
||||
|
||||
public static MapPolyline GetRouteLine(List<BasicGeoposition> positions, Color color, int zindex, int thickness = 5)
|
||||
{
|
||||
var line = new MapPolyline
|
||||
{
|
||||
StrokeThickness = thickness,
|
||||
StrokeColor = color,
|
||||
StrokeDashed = false,
|
||||
ZIndex = zindex
|
||||
};
|
||||
|
||||
line.Path = new Geopath(positions);
|
||||
|
||||
return line;
|
||||
}
|
||||
|
||||
public static MapPolyline GetRouteLine(BasicGeoposition p1, BasicGeoposition p2, Color color, int zindex, int thickness = 5)
|
||||
{
|
||||
var line = new MapPolyline
|
||||
{
|
||||
StrokeThickness = thickness,
|
||||
StrokeColor = color,
|
||||
StrokeDashed = false,
|
||||
ZIndex = zindex
|
||||
};
|
||||
|
||||
List<BasicGeoposition> plist = new List<BasicGeoposition>();
|
||||
plist.Add(p1);
|
||||
plist.Add(p2);
|
||||
|
||||
line.Path = new Geopath(plist);
|
||||
|
||||
return line;
|
||||
}
|
||||
|
||||
public static void ShowToastNotification(string title, string text)
|
||||
{
|
||||
ToastTemplateType toastTemplate = ToastTemplateType.ToastText02;
|
||||
XmlDocument toastXml = ToastNotificationManager.GetTemplateContent(toastTemplate);
|
||||
|
||||
XmlNodeList toastTextElements = toastXml.GetElementsByTagName("text");
|
||||
toastTextElements[0].AppendChild(toastXml.CreateTextNode(title));
|
||||
toastTextElements[1].AppendChild(toastXml.CreateTextNode(text));
|
||||
|
||||
IXmlNode toastNode = toastXml.SelectSingleNode("/toast");
|
||||
XmlElement audio = toastXml.CreateElement("audio");
|
||||
|
||||
audio.SetAttribute("src", "ms-winsoundevent:Notification.IM");
|
||||
|
||||
toastNode.AppendChild(audio);
|
||||
|
||||
ToastNotification toast = new ToastNotification(toastXml);
|
||||
ToastNotificationManager.CreateToastNotifier().Show(toast);
|
||||
}
|
||||
|
||||
public static async Task<bool> ShowConfirmDialog(string title, string content, DialogType type)
|
||||
{
|
||||
MessageDialog dlg = new MessageDialog(content, title);
|
||||
if (type == DialogType.YESNO)
|
||||
{
|
||||
dlg.Commands.Add(new UICommand(Util.Loader.GetString("Yes")) { Id = 0 });
|
||||
dlg.Commands.Add(new UICommand(Util.Loader.GetString("No")) { Id = 1 });
|
||||
}
|
||||
else if (type == DialogType.OKCANCEL)
|
||||
{
|
||||
dlg.Commands.Add(new UICommand(Util.Loader.GetString("Ok")) { Id = 0 });
|
||||
dlg.Commands.Add(new UICommand(Util.Loader.GetString("Cancel")) { Id = 1 });
|
||||
}
|
||||
|
||||
dlg.DefaultCommandIndex = 0;
|
||||
dlg.CancelCommandIndex = 1;
|
||||
|
||||
var result = await dlg.ShowAsync();
|
||||
|
||||
if ((int)result.Id == 0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
public static string TranslatedManeuver(MapRouteManeuver maneuver, int distance)
|
||||
{
|
||||
string response = "";
|
||||
bool onstreet = false;
|
||||
bool meters = true;
|
||||
|
||||
distance = (int)Math.Round(distance / 5.0) * 5;
|
||||
|
||||
switch (maneuver.Kind)
|
||||
{
|
||||
default:
|
||||
response = Util.Loader.GetString("RouteSeeMap");
|
||||
meters = false;
|
||||
break;
|
||||
case MapRouteManeuverKind.End:
|
||||
response = Util.Loader.GetString("RouteEnd");
|
||||
break;
|
||||
case MapRouteManeuverKind.GoStraight:
|
||||
response = Util.Loader.GetString("RouteGoStraight");
|
||||
onstreet = true;
|
||||
break;
|
||||
case MapRouteManeuverKind.None:
|
||||
response = Util.Loader.GetString("RouteNone");
|
||||
meters = false;
|
||||
break;
|
||||
case MapRouteManeuverKind.Start:
|
||||
response = Util.Loader.GetString("RouteStart");
|
||||
meters = false;
|
||||
break;
|
||||
case MapRouteManeuverKind.TurnHardLeft:
|
||||
case MapRouteManeuverKind.TurnLeft:
|
||||
response = Util.Loader.GetString("RouteLeft");
|
||||
onstreet = true;
|
||||
break;
|
||||
case MapRouteManeuverKind.TurnHardRight:
|
||||
case MapRouteManeuverKind.TurnRight:
|
||||
response = Util.Loader.GetString("RouteRight");
|
||||
onstreet = true;
|
||||
break;
|
||||
case MapRouteManeuverKind.TrafficCircleLeft:
|
||||
response = Util.Loader.GetString("RouteTrafficCircleLeft");
|
||||
onstreet = true;
|
||||
break;
|
||||
case MapRouteManeuverKind.TrafficCircleRight:
|
||||
response = Util.Loader.GetString("RouteTrafficCircleRight");
|
||||
onstreet = true;
|
||||
break;
|
||||
case MapRouteManeuverKind.TurnKeepLeft:
|
||||
case MapRouteManeuverKind.TurnLightLeft:
|
||||
response = Util.Loader.GetString("RouteKeepLeft");
|
||||
break;
|
||||
case MapRouteManeuverKind.TurnKeepRight:
|
||||
case MapRouteManeuverKind.TurnLightRight:
|
||||
response = Util.Loader.GetString("RouteKeepRight");
|
||||
break;
|
||||
case MapRouteManeuverKind.UTurnLeft:
|
||||
case MapRouteManeuverKind.UTurnRight:
|
||||
response = Util.Loader.GetString("RouteUTurn");
|
||||
break;
|
||||
}
|
||||
|
||||
if (maneuver.StreetName == "")
|
||||
onstreet = false;
|
||||
|
||||
if (distance < 10)
|
||||
meters = false;
|
||||
|
||||
|
||||
if (onstreet)
|
||||
response += " " + Util.Loader.GetString("RouteOn") + " " + maneuver.StreetName;
|
||||
|
||||
if (meters)
|
||||
response = Util.Loader.GetString("RouteIn") + " " + distance + "m" + " " + response.ToLower();
|
||||
|
||||
return response;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
<Page
|
||||
x:Class="NavCityBreda.InitPage"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:NavCityBreda"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d">
|
||||
|
||||
<Grid>
|
||||
<Canvas>
|
||||
<Image x:Name="extendedSplashImage" Source="/Assets/SplashScreen.png" VerticalAlignment="Center"/>
|
||||
</Canvas>
|
||||
|
||||
<RelativePanel Name="splashProgress" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
|
||||
<StackPanel RelativePanel.AlignBottomWithPanel="True" RelativePanel.AlignHorizontalCenterWithPanel="True" Margin="0,0,0,20">
|
||||
<ProgressRing IsActive="True" Width="25" Margin="0,0,0,10" Foreground="#F2E5F2" />
|
||||
<TextBlock Name="splashProgressText" Text="..." FontSize="13" Foreground="#B8A5C5"/>
|
||||
</StackPanel>
|
||||
</RelativePanel>
|
||||
</Grid>
|
||||
</Page>
|
||||
@@ -0,0 +1,93 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Windows.ApplicationModel.Activation;
|
||||
using Windows.Foundation;
|
||||
using Windows.Graphics.Display;
|
||||
using Windows.UI.Core;
|
||||
using Windows.UI.Xaml;
|
||||
using Windows.UI.Xaml.Controls;
|
||||
|
||||
namespace NavCityBreda
|
||||
{
|
||||
public sealed partial class InitPage : Page
|
||||
{
|
||||
internal Rect splashImageRect; // Rect to store splash screen image coordinates.
|
||||
private SplashScreen splash; // Variable to hold the splash screen object.
|
||||
internal bool dismissed = false; // Variable to track splash screen dismissal status.
|
||||
internal Frame rootFrame;
|
||||
|
||||
public InitPage(SplashScreen splashscreen)
|
||||
{
|
||||
this.InitializeComponent();
|
||||
|
||||
// Listen for window resize events to reposition the extended splash screen image accordingly.
|
||||
// This is important to ensure that the extended splash screen is formatted properly in response to snapping, unsnapping, rotation, etc...
|
||||
Window.Current.SizeChanged += ExtendedSplash_OnResize;
|
||||
|
||||
splash = splashscreen;
|
||||
|
||||
if (splash != null)
|
||||
{
|
||||
// Register an event handler to be executed when the splash screen has been dismissed.
|
||||
splash.Dismissed += new TypedEventHandler<SplashScreen, Object>(DismissedEventHandler);
|
||||
|
||||
// Retrieve the window coordinates of the splash screen image.
|
||||
splashImageRect = splash.ImageLocation;
|
||||
PositionImage();
|
||||
}
|
||||
|
||||
// Create a Frame to act as the navigation context
|
||||
rootFrame = new Frame();
|
||||
}
|
||||
|
||||
// Position the extended splash screen image in the same location as the system splash screen image.
|
||||
void PositionImage()
|
||||
{
|
||||
var scaleFactor = DisplayInformation.GetForCurrentView().RawPixelsPerViewPixel;
|
||||
extendedSplashImage.SetValue(Canvas.LeftProperty, splashImageRect.X);
|
||||
extendedSplashImage.SetValue(Canvas.TopProperty, splashImageRect.Y - 21);
|
||||
extendedSplashImage.Height = splashImageRect.Height / scaleFactor;
|
||||
extendedSplashImage.Width = splashImageRect.Width / scaleFactor;
|
||||
}
|
||||
|
||||
void ExtendedSplash_OnResize(Object sender, WindowSizeChangedEventArgs e)
|
||||
{
|
||||
// Safely update the extended splash screen image coordinates. This function will be fired in response to snapping, unsnapping, rotation, etc...
|
||||
if (splash != null)
|
||||
{
|
||||
// Update the coordinates of the splash screen image.
|
||||
splashImageRect = splash.ImageLocation;
|
||||
PositionImage();
|
||||
}
|
||||
}
|
||||
|
||||
// Include code to be executed when the system has transitioned from the splash screen to the extended splash screen (application's first view).
|
||||
void DismissedEventHandler(SplashScreen sender, object e)
|
||||
{
|
||||
dismissed = true;
|
||||
AwaitInitialize();
|
||||
}
|
||||
|
||||
private async void AwaitInitialize()
|
||||
{
|
||||
while (App.RouteManager.Status == Model.RouteManager.RouteStatus.LOADING)
|
||||
{
|
||||
await Task.Delay(TimeSpan.FromMilliseconds(150));
|
||||
Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
|
||||
{
|
||||
splashProgressText.Text = App.RouteManager.LoadingElement;
|
||||
});
|
||||
}
|
||||
|
||||
Dispatcher.RunAsync(CoreDispatcherPriority.High, () =>
|
||||
{
|
||||
// Place the frame in the current Window
|
||||
Window.Current.Content = rootFrame;
|
||||
// Navigate to mainpage
|
||||
App.rootFrame = rootFrame;
|
||||
rootFrame.Navigate(typeof(MainPage));
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,147 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="MenuItemHelp.Text" xml:space="preserve">
|
||||
<value>Hilfe</value>
|
||||
</data>
|
||||
<data name="MenuItemSettings.Text" xml:space="preserve">
|
||||
<value>Einstellungen</value>
|
||||
</data>
|
||||
<data name="PageTitleDefault.Text" xml:space="preserve">
|
||||
<value>Wilkommen</value>
|
||||
</data>
|
||||
<data name="PageTitleHelp" xml:space="preserve">
|
||||
<value>Hilfe</value>
|
||||
</data>
|
||||
<data name="PageTitleMap" xml:space="preserve">
|
||||
<value>Karte</value>
|
||||
</data>
|
||||
<data name="PageTitleRoute" xml:space="preserve">
|
||||
<value>kut</value>
|
||||
</data>
|
||||
<data name="PageTitleRouteDetail" xml:space="preserve">
|
||||
<value>kut detail</value>
|
||||
</data>
|
||||
<data name="PageTitleSettings" xml:space="preserve">
|
||||
<value>Einstellungen</value>
|
||||
</data>
|
||||
<data name="PageTitleWaypoint" xml:space="preserve">
|
||||
<value>Wegpunkt</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,333 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Cellular" xml:space="preserve">
|
||||
<value>Cellular</value>
|
||||
</data>
|
||||
<data name="Description" xml:space="preserve">
|
||||
<value>Description</value>
|
||||
</data>
|
||||
<data name="Disabled" xml:space="preserve">
|
||||
<value>Disabled</value>
|
||||
</data>
|
||||
<data name="Done" xml:space="preserve">
|
||||
<value>Done</value>
|
||||
</data>
|
||||
<data name="Help" xml:space="preserve">
|
||||
<value>Help</value>
|
||||
</data>
|
||||
<data name="Initializing" xml:space="preserve">
|
||||
<value>Initializing</value>
|
||||
</data>
|
||||
<data name="IPAddress" xml:space="preserve">
|
||||
<value>IP Address</value>
|
||||
</data>
|
||||
<data name="Landmark" xml:space="preserve">
|
||||
<value>Landmark</value>
|
||||
</data>
|
||||
<data name="Landmarks" xml:space="preserve">
|
||||
<value>Landmarks</value>
|
||||
</data>
|
||||
<data name="Language" xml:space="preserve">
|
||||
<value>Language</value>
|
||||
</data>
|
||||
<data name="Loading" xml:space="preserve">
|
||||
<value>Loading</value>
|
||||
</data>
|
||||
<data name="Map" xml:space="preserve">
|
||||
<value>Map</value>
|
||||
</data>
|
||||
<data name="MapTileSource" xml:space="preserve">
|
||||
<value>Map tile provider</value>
|
||||
</data>
|
||||
<data name="NoData" xml:space="preserve">
|
||||
<value>No data</value>
|
||||
</data>
|
||||
<data name="NotAvailable" xml:space="preserve">
|
||||
<value>Not available</value>
|
||||
</data>
|
||||
<data name="NotInitialized" xml:space="preserve">
|
||||
<value>Not initialized</value>
|
||||
</data>
|
||||
<data name="NotVisited" xml:space="preserve">
|
||||
<value>Not visited</value>
|
||||
</data>
|
||||
<data name="Ready" xml:space="preserve">
|
||||
<value>Ready</value>
|
||||
</data>
|
||||
<data name="Route" xml:space="preserve">
|
||||
<value>Route</value>
|
||||
</data>
|
||||
<data name="RouteEnd" xml:space="preserve">
|
||||
<value>You have reached your destination</value>
|
||||
</data>
|
||||
<data name="RouteGoStraight" xml:space="preserve">
|
||||
<value>Go straight</value>
|
||||
</data>
|
||||
<data name="RouteKeepLeft" xml:space="preserve">
|
||||
<value>Keep left</value>
|
||||
</data>
|
||||
<data name="RouteKeepRight" xml:space="preserve">
|
||||
<value>Keep right</value>
|
||||
</data>
|
||||
<data name="RouteLeft" xml:space="preserve">
|
||||
<value>Turn left</value>
|
||||
</data>
|
||||
<data name="RouteNone" xml:space="preserve">
|
||||
<value>No new action required</value>
|
||||
</data>
|
||||
<data name="RouteOn" xml:space="preserve">
|
||||
<value>on</value>
|
||||
</data>
|
||||
<data name="RouteRight" xml:space="preserve">
|
||||
<value>Turn right</value>
|
||||
</data>
|
||||
<data name="RouteSeeMap" xml:space="preserve">
|
||||
<value>See the map for details</value>
|
||||
</data>
|
||||
<data name="RouteStart" xml:space="preserve">
|
||||
<value>Follow the route drawn on the map</value>
|
||||
</data>
|
||||
<data name="RouteTrafficCircleLeft" xml:space="preserve">
|
||||
<value>At the roundabout go left</value>
|
||||
</data>
|
||||
<data name="RouteTrafficCircleRight" xml:space="preserve">
|
||||
<value>At the roundabout go right</value>
|
||||
</data>
|
||||
<data name="RouteUTurn" xml:space="preserve">
|
||||
<value>Make a U-turn</value>
|
||||
</data>
|
||||
<data name="Satellite" xml:space="preserve">
|
||||
<value>Satellite</value>
|
||||
</data>
|
||||
<data name="Searching" xml:space="preserve">
|
||||
<value>Searching</value>
|
||||
</data>
|
||||
<data name="Settings" xml:space="preserve">
|
||||
<value>Settings</value>
|
||||
</data>
|
||||
<data name="StartRoute" xml:space="preserve">
|
||||
<value>Start route</value>
|
||||
</data>
|
||||
<data name="StopRoute" xml:space="preserve">
|
||||
<value>Stop route</value>
|
||||
</data>
|
||||
<data name="Unknown" xml:space="preserve">
|
||||
<value>Unknown</value>
|
||||
</data>
|
||||
<data name="Visited" xml:space="preserve">
|
||||
<value>Visited</value>
|
||||
</data>
|
||||
<data name="Waypoint" xml:space="preserve">
|
||||
<value>Waypoint</value>
|
||||
</data>
|
||||
<data name="WiFi" xml:space="preserve">
|
||||
<value>WiFi</value>
|
||||
</data>
|
||||
<data name="RouteIn" xml:space="preserve">
|
||||
<value>In</value>
|
||||
</data>
|
||||
<data name="LandmarkReached" xml:space="preserve">
|
||||
<value>You have reached a landmark</value>
|
||||
</data>
|
||||
<data name="RouteListDescription" xml:space="preserve">
|
||||
<value>Tap on a route in de list below to view details</value>
|
||||
</data>
|
||||
<data name="GPSInfo" xml:space="preserve">
|
||||
<value>GPS Information</value>
|
||||
</data>
|
||||
<data name="HelpItem1Header" xml:space="preserve">
|
||||
<value>Position</value>
|
||||
</data>
|
||||
<data name="HelpItem1Text" xml:space="preserve">
|
||||
<value>Your position on the map is displayed with the icon on the left</value>
|
||||
</data>
|
||||
<data name="HelpItem2Header" xml:space="preserve">
|
||||
<value>Menu</value>
|
||||
</data>
|
||||
<data name="HelpItem2Text" xml:space="preserve">
|
||||
<value>You can open the menu by tapping on the icon in the upper left of the application. You can also swipe from the left edge of the screen. There are four options in the menu. Map, Route, Help and Settings. These will be discussed in depth later. The information at the bottom of the menu will be explained in the next section.</value>
|
||||
</data>
|
||||
<data name="HelpItem3Header" xml:space="preserve">
|
||||
<value>GPS Information</value>
|
||||
</data>
|
||||
<data name="HelpItem3Text" xml:space="preserve">
|
||||
<value>You can find GPS Information at the bottom of the menu. It exists out of three parts. The first is the status of the GPS connection, for examle "disabled" or "ready". Secondly is the way in which the GPS is connecte, Cellular is the least accurate, Satellite the most. The third part is the accuracy in meters.</value>
|
||||
</data>
|
||||
<data name="Application" xml:space="preserve">
|
||||
<value>Application</value>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>Reset</value>
|
||||
</data>
|
||||
<data name="Cancel" xml:space="preserve">
|
||||
<value>Cancel</value>
|
||||
</data>
|
||||
<data name="No" xml:space="preserve">
|
||||
<value>No</value>
|
||||
</data>
|
||||
<data name="Ok" xml:space="preserve">
|
||||
<value>Ok</value>
|
||||
</data>
|
||||
<data name="ResetConfirmation" xml:space="preserve">
|
||||
<value>Are you sure you want to reset the application?</value>
|
||||
</data>
|
||||
<data name="Yes" xml:space="preserve">
|
||||
<value>Yes</value>
|
||||
</data>
|
||||
<data name="BackTwiceText" xml:space="preserve">
|
||||
<value>Press back again to exit</value>
|
||||
</data>
|
||||
<data name="LandmarkListDescription" xml:space="preserve">
|
||||
<value>Tap on a landmark in de list below to view details. You can sort the list using the buttons.</value>
|
||||
</data>
|
||||
<data name="Ascending" xml:space="preserve">
|
||||
<value>Ascending</value>
|
||||
</data>
|
||||
<data name="Descending" xml:space="preserve">
|
||||
<value>Descending</value>
|
||||
</data>
|
||||
<data name="SortOrder" xml:space="preserve">
|
||||
<value>Sort Order</value>
|
||||
</data>
|
||||
<data name="SkipLandmark" xml:space="preserve">
|
||||
<value>Skip landmark</value>
|
||||
</data>
|
||||
<data name="Skipped" xml:space="preserve">
|
||||
<value>Skipped</value>
|
||||
</data>
|
||||
<data name="Search" xml:space="preserve">
|
||||
<value>Search</value>
|
||||
</data>
|
||||
<data name="SearchResults" xml:space="preserve">
|
||||
<value>Search results</value>
|
||||
</data>
|
||||
<data name="SearchTerm" xml:space="preserve">
|
||||
<value>Search term</value>
|
||||
</data>
|
||||
<data name="SearchResultCount" xml:space="preserve">
|
||||
<value>results</value>
|
||||
</data>
|
||||
<data name="SearchDescription" xml:space="preserve">
|
||||
<value>Search in description</value>
|
||||
</data>
|
||||
<data name="SearchResultDescription" xml:space="preserve">
|
||||
<value>In description</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,147 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="MenuItemHelp.Text" xml:space="preserve">
|
||||
<value>ヘルプ</value>
|
||||
</data>
|
||||
<data name="MenuItemSettings.Text" xml:space="preserve">
|
||||
<value>設定</value>
|
||||
</data>
|
||||
<data name="PageTitleDefault.Text" xml:space="preserve">
|
||||
<value>ようこそ</value>
|
||||
</data>
|
||||
<data name="PageTitleHelp" xml:space="preserve">
|
||||
<value>ヘルプ</value>
|
||||
</data>
|
||||
<data name="PageTitleMap" xml:space="preserve">
|
||||
<value>地図</value>
|
||||
</data>
|
||||
<data name="PageTitleRoute" xml:space="preserve">
|
||||
<value>ルート</value>
|
||||
</data>
|
||||
<data name="PageTitleRouteDetail" xml:space="preserve">
|
||||
<value>ルート 詳しく</value>
|
||||
</data>
|
||||
<data name="PageTitleSettings" xml:space="preserve">
|
||||
<value>設定</value>
|
||||
</data>
|
||||
<data name="PageTitleWaypoint" xml:space="preserve">
|
||||
<value>Waypoint</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,333 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="Cellular" xml:space="preserve">
|
||||
<value>GSM</value>
|
||||
</data>
|
||||
<data name="Description" xml:space="preserve">
|
||||
<value>Beschrijving</value>
|
||||
</data>
|
||||
<data name="Disabled" xml:space="preserve">
|
||||
<value>Uitgeschakeld</value>
|
||||
</data>
|
||||
<data name="Done" xml:space="preserve">
|
||||
<value>Klaar</value>
|
||||
</data>
|
||||
<data name="Help" xml:space="preserve">
|
||||
<value>Hulp</value>
|
||||
</data>
|
||||
<data name="Initializing" xml:space="preserve">
|
||||
<value>Initaliseren</value>
|
||||
</data>
|
||||
<data name="IPAddress" xml:space="preserve">
|
||||
<value>IP Adres</value>
|
||||
</data>
|
||||
<data name="Landmark" xml:space="preserve">
|
||||
<value>Bezienswaardigheid</value>
|
||||
</data>
|
||||
<data name="Landmarks" xml:space="preserve">
|
||||
<value>Bezienswaardigheden</value>
|
||||
</data>
|
||||
<data name="Language" xml:space="preserve">
|
||||
<value>Taal</value>
|
||||
</data>
|
||||
<data name="Loading" xml:space="preserve">
|
||||
<value>Laden</value>
|
||||
</data>
|
||||
<data name="Map" xml:space="preserve">
|
||||
<value>Kaart</value>
|
||||
</data>
|
||||
<data name="MapTileSource" xml:space="preserve">
|
||||
<value>Kaart bron</value>
|
||||
</data>
|
||||
<data name="NoData" xml:space="preserve">
|
||||
<value>Geen data</value>
|
||||
</data>
|
||||
<data name="NotAvailable" xml:space="preserve">
|
||||
<value>Niet beschikbaar</value>
|
||||
</data>
|
||||
<data name="NotInitialized" xml:space="preserve">
|
||||
<value>Niet geïnitialiseerd</value>
|
||||
</data>
|
||||
<data name="NotVisited" xml:space="preserve">
|
||||
<value>Niet bezocht</value>
|
||||
</data>
|
||||
<data name="Ready" xml:space="preserve">
|
||||
<value>Klaar</value>
|
||||
</data>
|
||||
<data name="Route" xml:space="preserve">
|
||||
<value>Route</value>
|
||||
</data>
|
||||
<data name="Satellite" xml:space="preserve">
|
||||
<value>Satelliet</value>
|
||||
</data>
|
||||
<data name="Searching" xml:space="preserve">
|
||||
<value>Zoeken</value>
|
||||
</data>
|
||||
<data name="Settings" xml:space="preserve">
|
||||
<value>Instellingen</value>
|
||||
</data>
|
||||
<data name="StartRoute" xml:space="preserve">
|
||||
<value>Route starten</value>
|
||||
</data>
|
||||
<data name="StopRoute" xml:space="preserve">
|
||||
<value>Route stoppen</value>
|
||||
</data>
|
||||
<data name="Unknown" xml:space="preserve">
|
||||
<value>Onbekend</value>
|
||||
</data>
|
||||
<data name="Visited" xml:space="preserve">
|
||||
<value>Bezocht</value>
|
||||
</data>
|
||||
<data name="Waypoint" xml:space="preserve">
|
||||
<value>Wegwijzer</value>
|
||||
</data>
|
||||
<data name="WiFi" xml:space="preserve">
|
||||
<value>WiFi</value>
|
||||
</data>
|
||||
<data name="RouteEnd" xml:space="preserve">
|
||||
<value>U heeft uw bestemming bereikt</value>
|
||||
</data>
|
||||
<data name="RouteGoStraight" xml:space="preserve">
|
||||
<value>Ga rechtdoor</value>
|
||||
</data>
|
||||
<data name="RouteKeepLeft" xml:space="preserve">
|
||||
<value>Links aanhouden</value>
|
||||
</data>
|
||||
<data name="RouteKeepRight" xml:space="preserve">
|
||||
<value>Rechts aanhouden</value>
|
||||
</data>
|
||||
<data name="RouteLeft" xml:space="preserve">
|
||||
<value>Ga linksaf</value>
|
||||
</data>
|
||||
<data name="RouteNone" xml:space="preserve">
|
||||
<value>Geen nieuw actie vereist</value>
|
||||
</data>
|
||||
<data name="RouteOn" xml:space="preserve">
|
||||
<value>op</value>
|
||||
</data>
|
||||
<data name="RouteRight" xml:space="preserve">
|
||||
<value>Ga rechtsaf</value>
|
||||
</data>
|
||||
<data name="RouteSeeMap" xml:space="preserve">
|
||||
<value>Zie de kaart voor meer detail</value>
|
||||
</data>
|
||||
<data name="RouteStart" xml:space="preserve">
|
||||
<value>Volg de route die op de kaart getekent is</value>
|
||||
</data>
|
||||
<data name="RouteTrafficCircleLeft" xml:space="preserve">
|
||||
<value>Sla op de rotonde linksaf</value>
|
||||
</data>
|
||||
<data name="RouteTrafficCircleRight" xml:space="preserve">
|
||||
<value>Sla op de rotonde rechtsaf</value>
|
||||
</data>
|
||||
<data name="RouteUTurn" xml:space="preserve">
|
||||
<value>Keer indien mogelijk om</value>
|
||||
</data>
|
||||
<data name="RouteIn" xml:space="preserve">
|
||||
<value>Over</value>
|
||||
</data>
|
||||
<data name="LandmarkReached" xml:space="preserve">
|
||||
<value>U heeft een bezienswaardigheid bereikt</value>
|
||||
</data>
|
||||
<data name="RouteListDescription" xml:space="preserve">
|
||||
<value>Tik op een route uit de onderstaande lijst om de details ervan te bekijken</value>
|
||||
</data>
|
||||
<data name="GPSInfo" xml:space="preserve">
|
||||
<value>GPS Informatie</value>
|
||||
</data>
|
||||
<data name="HelpItem1Header" xml:space="preserve">
|
||||
<value>Posititie</value>
|
||||
</data>
|
||||
<data name="HelpItem1Text" xml:space="preserve">
|
||||
<value>Uw positie op de map wordt weergegeven door het icoon hiernaast</value>
|
||||
</data>
|
||||
<data name="HelpItem2Header" xml:space="preserve">
|
||||
<value>Menu</value>
|
||||
</data>
|
||||
<data name="HelpItem2Text" xml:space="preserve">
|
||||
<value>U kunt het menu openen door op het icoontje links boven in de applicatie te tikken. U kunt ook swipen vanaf de linker rand van het scherm. U heeft binnen het menu 4 opties. Kaart, Route, Hulp, Instellingen. Hierover zal later dieper ingegaan worden. De text onderaan het menu wordt in het volgende onderdeel behandeld.</value>
|
||||
</data>
|
||||
<data name="HelpItem3Header" xml:space="preserve">
|
||||
<value>GPS Informatie</value>
|
||||
</data>
|
||||
<data name="HelpItem3Text" xml:space="preserve">
|
||||
<value>U kunt de GPS informatie onder in het menu vinden. Het bestaat uit drie onderdelen. Het eerste is de status van de GPS verbinding, zoals "uitgeschakeld" of "klaar". Ten tweede staat er de manier waarop de GPS verbonden is, GSM is het minst nauwkeurig, Satelliet het meest. Ten derde staat er de accuratie in meters.</value>
|
||||
</data>
|
||||
<data name="Application" xml:space="preserve">
|
||||
<value>Applicatie</value>
|
||||
</data>
|
||||
<data name="Reset" xml:space="preserve">
|
||||
<value>Reset</value>
|
||||
</data>
|
||||
<data name="Cancel" xml:space="preserve">
|
||||
<value>Annuleer</value>
|
||||
</data>
|
||||
<data name="No" xml:space="preserve">
|
||||
<value>Nee</value>
|
||||
</data>
|
||||
<data name="Ok" xml:space="preserve">
|
||||
<value>Ok</value>
|
||||
</data>
|
||||
<data name="ResetConfirmation" xml:space="preserve">
|
||||
<value>Weet u zeker dat u de applicatie wilt resetten?</value>
|
||||
</data>
|
||||
<data name="Yes" xml:space="preserve">
|
||||
<value>Ja</value>
|
||||
</data>
|
||||
<data name="BackTwiceText" xml:space="preserve">
|
||||
<value>Druk nogmaals op vorige om te sluiten</value>
|
||||
</data>
|
||||
<data name="LandmarkListDescription" xml:space="preserve">
|
||||
<value>Tik op een bezienswaardigheid uit de onderstaande lijst om de details ervan te bekijken. U kunt de lijst sorteren met de knoppen.</value>
|
||||
</data>
|
||||
<data name="Ascending" xml:space="preserve">
|
||||
<value>Oplopend</value>
|
||||
</data>
|
||||
<data name="Descending" xml:space="preserve">
|
||||
<value>Aflopend</value>
|
||||
</data>
|
||||
<data name="SortOrder" xml:space="preserve">
|
||||
<value>Sorteer volgorde</value>
|
||||
</data>
|
||||
<data name="SkipLandmark" xml:space="preserve">
|
||||
<value>Bezienswaardigheid overslaan</value>
|
||||
</data>
|
||||
<data name="Skipped" xml:space="preserve">
|
||||
<value>Overgeslagen</value>
|
||||
</data>
|
||||
<data name="Search" xml:space="preserve">
|
||||
<value>Zoeken</value>
|
||||
</data>
|
||||
<data name="SearchResults" xml:space="preserve">
|
||||
<value>Zoek resultaten</value>
|
||||
</data>
|
||||
<data name="SearchTerm" xml:space="preserve">
|
||||
<value>Zoek term</value>
|
||||
</data>
|
||||
<data name="SearchResultCount" xml:space="preserve">
|
||||
<value>resultaten</value>
|
||||
</data>
|
||||
<data name="SearchDescription" xml:space="preserve">
|
||||
<value>Doorzoek beschrijving</value>
|
||||
</data>
|
||||
<data name="SearchResultDescription" xml:space="preserve">
|
||||
<value>In beschrijving</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -7,7 +7,147 @@
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d">
|
||||
|
||||
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
||||
<Page.Resources>
|
||||
<Style x:Key="NavStackPanel" TargetType="StackPanel">
|
||||
<Setter Property="Orientation" Value="Horizontal" />
|
||||
<Setter Property="VerticalAlignment" Value="Center" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="NavIcon" TargetType="TextBlock">
|
||||
<Setter Property="FontFamily" Value="Segoe MDL2 Assets" />
|
||||
<Setter Property="FontSize" Value="28" />
|
||||
<Setter Property="Margin" Value="0,5,0,0" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="NavText" TargetType="TextBlock">
|
||||
<Setter Property="FontSize" Value="28" />
|
||||
<Setter Property="Margin" Value="18,0,0,0" />
|
||||
</Style>
|
||||
|
||||
|
||||
<Style x:Key="GPSInfoPanel" TargetType="StackPanel">
|
||||
<Setter Property="Orientation" Value="Horizontal" />
|
||||
<Setter Property="VerticalAlignment" Value="Center" />
|
||||
<Setter Property="Margin" Value="10,0,10,0" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="GPSInfoIcon" TargetType="TextBlock">
|
||||
<Setter Property="FontFamily" Value="Segoe MDL2 Assets" />
|
||||
<Setter Property="FontSize" Value="20" />
|
||||
<Setter Property="Margin" Value="5,5,0,0" />
|
||||
</Style>
|
||||
|
||||
<Style x:Key="GPSInfoText" TargetType="TextBlock">
|
||||
<Setter Property="FontSize" Value="20" />
|
||||
<Setter Property="Margin" Value="15,0,0,0" />
|
||||
</Style>
|
||||
</Page.Resources>
|
||||
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="*" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<RelativePanel Grid.Row="0">
|
||||
<Button RelativePanel.AlignLeftWithPanel="True" Name="NavButton" Click="NavButton_Click" VerticalAlignment="Stretch" FontFamily="Segoe MDL2 Assets" Content="" FontSize="28" />
|
||||
|
||||
<Viewbox RelativePanel.RightOf="NavButton" RelativePanel.AlignBottomWith="NavButton" StretchDirection="DownOnly" Stretch="UniformToFill" Margin="10,0,10,0">
|
||||
<TextBlock FontSize="28" Name="PageTitle" Text="{Binding Map}" />
|
||||
</Viewbox>
|
||||
</RelativePanel>
|
||||
|
||||
<SplitView Grid.Row="1" Name="NavView" DisplayMode="Overlay" OpenPaneLength="275">
|
||||
<SplitView.Pane>
|
||||
<RelativePanel VerticalAlignment="Stretch"
|
||||
ManipulationMode="TranslateX"
|
||||
ManipulationCompleted="Pane_ManipulationCompleted" Style="{ThemeResource DarkModeFix}">
|
||||
|
||||
<ListBox RelativePanel.AlignTopWithPanel="True" SelectionMode="Single" Name="NavList" SelectionChanged="NavList_SelectionChanged" Tapped="NavList_Tapped">
|
||||
<ListBoxItem Name="NavListMap" ManipulationMode="TranslateX" ManipulationCompleted="Pane_ManipulationCompleted">
|
||||
<StackPanel Style="{StaticResource NavStackPanel}">
|
||||
<TextBlock Style="{StaticResource NavIcon}" Text=""/>
|
||||
<TextBlock Style="{StaticResource NavText}" Text="{Binding Map}"/>
|
||||
</StackPanel>
|
||||
</ListBoxItem>
|
||||
<ListBoxItem Name="NavListRoute" ManipulationMode="TranslateX" ManipulationCompleted="Pane_ManipulationCompleted">
|
||||
<StackPanel Style="{StaticResource NavStackPanel}">
|
||||
<TextBlock Style="{StaticResource NavIcon}" Text=""/>
|
||||
<TextBlock Style="{StaticResource NavText}" Text="{Binding Route}"/>
|
||||
</StackPanel>
|
||||
</ListBoxItem>
|
||||
<ListBoxItem Name="NavListLandmarks" ManipulationMode="TranslateX" ManipulationCompleted="Pane_ManipulationCompleted">
|
||||
<StackPanel Style="{StaticResource NavStackPanel}">
|
||||
<TextBlock Style="{StaticResource NavIcon}" Text=""/>
|
||||
<TextBlock Style="{StaticResource NavText}" Text="{Binding Landmarks}" />
|
||||
</StackPanel>
|
||||
</ListBoxItem>
|
||||
<ListBoxItem Name="NavListHelp" ManipulationMode="TranslateX" ManipulationCompleted="Pane_ManipulationCompleted">
|
||||
<StackPanel Style="{StaticResource NavStackPanel}">
|
||||
<TextBlock Style="{StaticResource NavIcon}" Text=""/>
|
||||
<TextBlock Style="{StaticResource NavText}" Text="{Binding Help}"/>
|
||||
</StackPanel>
|
||||
</ListBoxItem>
|
||||
<ListBoxItem Name="NavListSearch" ManipulationMode="TranslateX" ManipulationCompleted="Pane_ManipulationCompleted">
|
||||
<StackPanel Style="{StaticResource NavStackPanel}">
|
||||
<TextBlock Style="{StaticResource NavIcon}" Text=""/>
|
||||
<TextBlock Style="{StaticResource NavText}" Text="{Binding Search}"/>
|
||||
</StackPanel>
|
||||
</ListBoxItem>
|
||||
<ListBoxItem Name="NavListSettings" ManipulationMode="TranslateX" ManipulationCompleted="Pane_ManipulationCompleted">
|
||||
<StackPanel Style="{StaticResource NavStackPanel}">
|
||||
<TextBlock Style="{StaticResource NavIcon}" Text=""/>
|
||||
<TextBlock Style="{StaticResource NavText}" Text="{Binding Settings}"/>
|
||||
</StackPanel>
|
||||
</ListBoxItem>
|
||||
</ListBox>
|
||||
|
||||
<StackPanel RelativePanel.AlignBottomWithPanel="True" RelativePanel.AlignLeftWithPanel="True" RelativePanel.AlignRightWithPanel="True" Background="Transparent" Tapped="GPSRefresh_Tapped">
|
||||
<StackPanel Style="{StaticResource GPSInfoPanel}">
|
||||
<TextBlock Margin="5,0,0,0" FontSize="16" FontWeight="Bold" Text="{Binding GPSInfo}"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Style="{StaticResource GPSInfoPanel}" Tapped="GPSRefresh_Tapped">
|
||||
<TextBlock Style="{StaticResource GPSInfoIcon}" Text=""/>
|
||||
<TextBlock Style="{StaticResource GPSInfoText}" Text="{Binding Status}"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Style="{StaticResource GPSInfoPanel}">
|
||||
<TextBlock Style="{StaticResource GPSInfoIcon}" Text=""/>
|
||||
<TextBlock Style="{StaticResource GPSInfoText}" Text="{Binding Source}"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Style="{StaticResource GPSInfoPanel}">
|
||||
<TextBlock Style="{StaticResource GPSInfoIcon}" Text=""/>
|
||||
<TextBlock Style="{StaticResource GPSInfoText}" Text="{Binding Accuracy}"/>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="15,5">
|
||||
<TextBlock Text="Nav City Breda @"/>
|
||||
<TextBlock Text="{Binding Year}" Margin="5,0,0,0" />
|
||||
</StackPanel>
|
||||
|
||||
</StackPanel>
|
||||
</RelativePanel>
|
||||
</SplitView.Pane>
|
||||
|
||||
<SplitView.Content>
|
||||
<Grid>
|
||||
<Frame Name="Frame"/>
|
||||
|
||||
<StackPanel ManipulationMode="TranslateX"
|
||||
ManipulationCompleted="Content_ManipulationCompleted"
|
||||
Width="10"
|
||||
Background="Transparent"
|
||||
HorizontalAlignment="Left"
|
||||
VerticalAlignment="Stretch">
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Name="BackMessage" Background="LightGray" Opacity="0.7" HorizontalAlignment="Stretch" VerticalAlignment="Bottom" Margin="0,0,0,40" Visibility="Collapsed" Height="Auto">
|
||||
<TextBlock Text="{Binding BackText}" Margin="5" HorizontalAlignment="Center" TextAlignment="Center"/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</SplitView.Content>
|
||||
</SplitView>
|
||||
</Grid>
|
||||
</Page>
|
||||
|
||||
@@ -1,30 +1,174 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using NavCityBreda.Helpers;
|
||||
using NavCityBreda.ViewModels;
|
||||
using NavCityBreda.Views;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Runtime.InteropServices.WindowsRuntime;
|
||||
using Windows.Foundation;
|
||||
using Windows.Foundation.Collections;
|
||||
using System.Threading.Tasks;
|
||||
using Windows.UI.Core;
|
||||
using Windows.UI.Xaml;
|
||||
using Windows.UI.Xaml.Controls;
|
||||
using Windows.UI.Xaml.Controls.Primitives;
|
||||
using Windows.UI.Xaml.Data;
|
||||
using Windows.UI.Xaml.Input;
|
||||
using Windows.UI.Xaml.Media;
|
||||
using Windows.UI.Xaml.Navigation;
|
||||
|
||||
// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409
|
||||
|
||||
namespace NavCityBreda
|
||||
{
|
||||
/// <summary>
|
||||
/// An empty page that can be used on its own or navigated to within a Frame.
|
||||
/// </summary>
|
||||
public sealed partial class MainPage : Page
|
||||
{
|
||||
double bptime;
|
||||
double lastbptime;
|
||||
|
||||
public MainPage()
|
||||
{
|
||||
this.InitializeComponent();
|
||||
Frame.Navigated += Frame_Navigated;
|
||||
SystemNavigationManager.GetForCurrentView().BackRequested += OnBackRequested;
|
||||
|
||||
bptime = Util.Now;
|
||||
|
||||
this.DataContext = new MainPageVM();
|
||||
Frame.Navigate(typeof(MapView));
|
||||
}
|
||||
|
||||
private void OnBackRequested(object sender, BackRequestedEventArgs e)
|
||||
{
|
||||
if (e.Handled) return;
|
||||
|
||||
if (Frame.CanGoBack)
|
||||
{
|
||||
e.Handled = true;
|
||||
Frame.GoBack();
|
||||
return;
|
||||
}
|
||||
|
||||
lastbptime = bptime;
|
||||
bptime = Util.Now;
|
||||
|
||||
if (bptime - lastbptime > 2000)
|
||||
{
|
||||
ShowHideBackMessage();
|
||||
e.Handled = true;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<String> ShowHideBackMessage()
|
||||
{
|
||||
BackMessage.Visibility = Visibility.Visible;
|
||||
await Task.Delay(TimeSpan.FromSeconds(2));
|
||||
BackMessage.Visibility = Visibility.Collapsed;
|
||||
return "success";
|
||||
}
|
||||
|
||||
public void Navigate(Type type)
|
||||
{
|
||||
Frame.Navigate(type);
|
||||
}
|
||||
|
||||
public void Navigate(Type type, object param)
|
||||
{
|
||||
Frame.Navigate(type, param);
|
||||
}
|
||||
|
||||
public string Title { get { return PageTitle.Text; } set { PageTitle.Text = value; } }
|
||||
|
||||
public void NavButton_Click(object sender, RoutedEventArgs arg)
|
||||
{
|
||||
NavView.IsPaneOpen = !NavView.IsPaneOpen;
|
||||
}
|
||||
|
||||
private void Frame_Navigated(object sender, NavigationEventArgs e)
|
||||
{
|
||||
//Dirty Hack
|
||||
string pagename = e.SourcePageType.ToString().Split('.').Last();
|
||||
|
||||
NavList.SelectedIndex = -1;
|
||||
|
||||
switch (pagename.ToLower())
|
||||
{
|
||||
default:
|
||||
PageTitle.Text = "Nav City Breda";
|
||||
break;
|
||||
case "helpview":
|
||||
NavList.SelectedIndex = 3;
|
||||
break;
|
||||
case "settingsview":
|
||||
NavList.SelectedIndex = 5;
|
||||
break;
|
||||
case "mapview":
|
||||
NavList.SelectedIndex = 0;
|
||||
break;
|
||||
case "routeview":
|
||||
case "routedetailview":
|
||||
NavList.SelectedIndex = 1;
|
||||
break;
|
||||
case "landmarkdetailview":
|
||||
case "landmarkview":
|
||||
NavList.SelectedIndex = 2;
|
||||
break;
|
||||
case "searchview":
|
||||
NavList.SelectedIndex = 4;
|
||||
break;
|
||||
}
|
||||
|
||||
SystemNavigationManager.GetForCurrentView().AppViewBackButtonVisibility =
|
||||
Frame.CanGoBack ?
|
||||
AppViewBackButtonVisibility.Visible :
|
||||
AppViewBackButtonVisibility.Collapsed;
|
||||
}
|
||||
|
||||
private void NavList_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
||||
{
|
||||
NavView.IsPaneOpen = false;
|
||||
|
||||
if (NavListMap.IsSelected)
|
||||
{
|
||||
if (Frame != null)
|
||||
{
|
||||
if (Frame.CanGoBack)
|
||||
Frame.BackStack.Clear();
|
||||
Frame.Navigate(typeof(MapView));
|
||||
}
|
||||
}
|
||||
else if (NavListHelp.IsSelected)
|
||||
Frame.Navigate(typeof(HelpView));
|
||||
else if (NavListLandmarks.IsSelected)
|
||||
Frame.Navigate(typeof(LandmarkView));
|
||||
else if (NavListSettings.IsSelected)
|
||||
Frame.Navigate(typeof(SettingsView));
|
||||
else if (NavListSearch.IsSelected)
|
||||
Frame.Navigate(typeof(SearchView));
|
||||
else if (NavListRoute.IsSelected)
|
||||
{
|
||||
if (App.RouteManager.CurrentRoute == null)
|
||||
Frame.Navigate(typeof(RouteView));
|
||||
else
|
||||
Frame.Navigate(typeof(RouteDetailView), App.RouteManager.CurrentRoute);
|
||||
}
|
||||
}
|
||||
|
||||
private void NavList_Tapped(object sender, TappedRoutedEventArgs e)
|
||||
{
|
||||
NavView.IsPaneOpen = false;
|
||||
}
|
||||
|
||||
private void Content_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
|
||||
{
|
||||
if (e.Cumulative.Translation.X > 20)
|
||||
{
|
||||
NavView.IsPaneOpen = true;
|
||||
}
|
||||
}
|
||||
|
||||
private void Pane_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
|
||||
{
|
||||
if (e.Cumulative.Translation.X < -20)
|
||||
{
|
||||
NavView.IsPaneOpen = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void GPSRefresh_Tapped(object sender, TappedRoutedEventArgs e)
|
||||
{
|
||||
App.Geo.ForceRefresh();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
using NavCityBreda.Helpers;
|
||||
using System;
|
||||
using Windows.Devices.Sensors;
|
||||
|
||||
namespace NavCityBreda.Model
|
||||
{
|
||||
public class CompassTracker
|
||||
{
|
||||
public delegate void OnHeadingUpdateHandler(object sender, HeadingUpdatedEventArgs e);
|
||||
public event OnHeadingUpdateHandler OnHeadingUpdate;
|
||||
|
||||
public delegate void OnHeadingUpdateSlowHandler(object sender, HeadingUpdatedEventArgs e);
|
||||
public event OnHeadingUpdateSlowHandler OnSlowHeadingUpdated;
|
||||
|
||||
private Compass comp;
|
||||
|
||||
private CompassReading hdn;
|
||||
public CompassReading Heading { get { return hdn; } }
|
||||
|
||||
private CompassReading lastreading;
|
||||
private double lastreadingtime;
|
||||
|
||||
public CompassTracker()
|
||||
{
|
||||
comp = Compass.GetDefault();
|
||||
|
||||
// Assign an event handler for the compass reading-changed event
|
||||
if (comp != null)
|
||||
{
|
||||
// Establish the report interval for all scenarios
|
||||
uint minReportInterval = comp.MinimumReportInterval;
|
||||
uint reportInterval = minReportInterval > 16 ? minReportInterval : 16;
|
||||
comp.ReportInterval = reportInterval;
|
||||
comp.ReadingChanged += Comp_ReadingChanged;
|
||||
hdn = comp.GetCurrentReading();
|
||||
}
|
||||
}
|
||||
|
||||
private void Comp_ReadingChanged(Compass sender, CompassReadingChangedEventArgs args)
|
||||
{
|
||||
UpdateHeading(args.Reading);
|
||||
UpdateSlowHeading(args.Reading);
|
||||
}
|
||||
|
||||
private void UpdateHeading(CompassReading r)
|
||||
{
|
||||
hdn = r;
|
||||
|
||||
//Make sure someone is listening
|
||||
if (OnHeadingUpdate == null) return;
|
||||
|
||||
OnHeadingUpdate(this, new HeadingUpdatedEventArgs(r));
|
||||
}
|
||||
|
||||
private void UpdateSlowHeading(CompassReading r)
|
||||
{
|
||||
if (lastreading == null) { lastreading = r; lastreadingtime = Util.Now; }
|
||||
|
||||
if (Math.Abs(r.HeadingMagneticNorth - lastreading.HeadingMagneticNorth) > 10 && Util.Now - lastreadingtime > 25)
|
||||
{
|
||||
lastreading = r;
|
||||
lastreadingtime = Util.Now;
|
||||
|
||||
//Make sure someone is listening
|
||||
if (OnSlowHeadingUpdated == null) return;
|
||||
|
||||
OnSlowHeadingUpdated(this, new HeadingUpdatedEventArgs(r));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class HeadingUpdatedEventArgs : EventArgs
|
||||
{
|
||||
public CompassReading Heading;
|
||||
|
||||
public HeadingUpdatedEventArgs(CompassReading heading)
|
||||
{
|
||||
Heading = heading;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,177 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Windows.Devices.Geolocation;
|
||||
using Windows.Devices.Geolocation.Geofencing;
|
||||
using Windows.System;
|
||||
|
||||
namespace NavCityBreda.Model
|
||||
{
|
||||
public class GeoTracker
|
||||
{
|
||||
private Geolocator geo;
|
||||
|
||||
private PositionStatus _status;
|
||||
public PositionStatus Status { get { return _status; } }
|
||||
|
||||
private Geoposition _position;
|
||||
public Geoposition Position { get { return _position; } }
|
||||
|
||||
public bool? Connected { get; private set; }
|
||||
|
||||
private List<Geoposition> _history;
|
||||
public List<Geoposition> History
|
||||
{
|
||||
get
|
||||
{
|
||||
return _history;
|
||||
}
|
||||
}
|
||||
|
||||
//Events
|
||||
public delegate void PositionUpdateHandler(object sender, PositionUpdatedEventArgs e);
|
||||
public event PositionUpdateHandler OnPositionUpdate;
|
||||
|
||||
public delegate void StatusUpdateHandler(object sender, StatusUpdatedEventArgs e);
|
||||
public event StatusUpdateHandler OnStatusUpdate;
|
||||
|
||||
public GeoTracker()
|
||||
{
|
||||
_status = PositionStatus.NotInitialized;
|
||||
Connected = false;
|
||||
_history = new List<Geoposition>();
|
||||
StartTracking();
|
||||
}
|
||||
|
||||
public async void ForceRefresh()
|
||||
{
|
||||
if (geo == null)
|
||||
await StartTracking();
|
||||
else
|
||||
_position = await geo.GetGeopositionAsync();
|
||||
}
|
||||
|
||||
public async void TryConnectIfNull()
|
||||
{
|
||||
if (geo == null)
|
||||
await StartTracking();
|
||||
}
|
||||
|
||||
public void ClearHistory()
|
||||
{
|
||||
_history.Clear();
|
||||
}
|
||||
|
||||
public async Task<String> StartTracking()
|
||||
{
|
||||
// Request permission to access location
|
||||
if (Status != PositionStatus.NotAvailable && Status != PositionStatus.NotInitialized)
|
||||
return "Already Connected";
|
||||
|
||||
var accessStatus = await Geolocator.RequestAccessAsync();
|
||||
|
||||
switch (accessStatus)
|
||||
{
|
||||
case GeolocationAccessStatus.Allowed:
|
||||
geo = new Geolocator
|
||||
{
|
||||
DesiredAccuracy = PositionAccuracy.High,
|
||||
MovementThreshold = 3
|
||||
//ReportInterval = 1500
|
||||
};
|
||||
|
||||
ClearHistory();
|
||||
|
||||
Connected = true;
|
||||
|
||||
geo.PositionChanged += Geo_PositionChanged;
|
||||
geo.StatusChanged += Geo_StatusChanged;
|
||||
|
||||
GeofenceMonitor.Current.Geofences.Clear();
|
||||
|
||||
_position = await geo.GetGeopositionAsync();
|
||||
|
||||
return "Connected";
|
||||
|
||||
case GeolocationAccessStatus.Denied:
|
||||
Connected = false;
|
||||
_status = PositionStatus.NotAvailable;
|
||||
bool result = await Launcher.LaunchUriAsync(new Uri("ms-settings:privacy-location"));
|
||||
return "Denied";
|
||||
|
||||
default:
|
||||
case GeolocationAccessStatus.Unspecified:
|
||||
Connected = false;
|
||||
_status = PositionStatus.NotAvailable;
|
||||
return "Error";
|
||||
}
|
||||
}
|
||||
|
||||
private void Geo_StatusChanged(Geolocator sender, StatusChangedEventArgs args)
|
||||
{
|
||||
if (args.Status == PositionStatus.Disabled)
|
||||
{
|
||||
Connected = false;
|
||||
_position = null;
|
||||
}
|
||||
else if (!(bool)Connected)
|
||||
Connected = true;
|
||||
|
||||
UpdateStatus(args.Status);
|
||||
}
|
||||
|
||||
private void Geo_PositionChanged(Geolocator sender, PositionChangedEventArgs args)
|
||||
{
|
||||
if (_history.Count > 0)
|
||||
UpdatePosition(_history.Last(), args.Position);
|
||||
else
|
||||
{
|
||||
_position = args.Position;
|
||||
UpdatePosition(args.Position, args.Position);
|
||||
}
|
||||
|
||||
_history.Add(args.Position);
|
||||
}
|
||||
|
||||
private void UpdateStatus(PositionStatus s)
|
||||
{
|
||||
_status = s;
|
||||
|
||||
if (OnStatusUpdate == null) return;
|
||||
|
||||
OnStatusUpdate(this, new StatusUpdatedEventArgs(s));
|
||||
}
|
||||
|
||||
private void UpdatePosition(Geoposition old, Geoposition newp)
|
||||
{
|
||||
_position = newp;
|
||||
|
||||
if (OnPositionUpdate == null) return;
|
||||
|
||||
OnPositionUpdate(this, new PositionUpdatedEventArgs(old, newp));
|
||||
}
|
||||
}
|
||||
|
||||
public class PositionUpdatedEventArgs : EventArgs
|
||||
{
|
||||
public Geoposition Old { get; private set; }
|
||||
public Geoposition New { get; private set; }
|
||||
|
||||
public PositionUpdatedEventArgs(Geoposition old, Geoposition notold)
|
||||
{
|
||||
Old = old;
|
||||
New = notold;
|
||||
}
|
||||
}
|
||||
|
||||
public class StatusUpdatedEventArgs : EventArgs
|
||||
{
|
||||
public PositionStatus Status { get; private set; }
|
||||
|
||||
public StatusUpdatedEventArgs(PositionStatus status)
|
||||
{
|
||||
Status = status;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
using Windows.UI.ViewManagement;
|
||||
|
||||
namespace NavCityBreda.Model.Object
|
||||
{
|
||||
public class Image
|
||||
{
|
||||
public string Source { get; private set; }
|
||||
|
||||
public Image(string source)
|
||||
{
|
||||
Source = source;
|
||||
}
|
||||
|
||||
public double Width
|
||||
{
|
||||
get
|
||||
{
|
||||
return ApplicationView.GetForCurrentView().VisibleBounds.Width;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
using NavCityBreda.Helpers;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Windows.Devices.Geolocation;
|
||||
using Windows.Foundation;
|
||||
using Windows.Storage.Streams;
|
||||
using Windows.UI.Xaml.Controls.Maps;
|
||||
|
||||
namespace NavCityBreda.Model.Object
|
||||
{
|
||||
public class Landmark : Waypoint
|
||||
{
|
||||
private string _desckey;
|
||||
public string Description { get { return Util.Loader.GetString(_desckey); } }
|
||||
|
||||
public List<Image> Images { get; private set; }
|
||||
|
||||
public enum LandmarkStatus { NOTVISITED, VISITED, SKIPPED }
|
||||
|
||||
private LandmarkStatus _status;
|
||||
public LandmarkStatus Status
|
||||
{
|
||||
get { return _status; }
|
||||
set
|
||||
{
|
||||
_status = value;
|
||||
UpdateIcon();
|
||||
}
|
||||
}
|
||||
|
||||
public string Id { get; private set; }
|
||||
public MapIcon Icon { get; set; }
|
||||
|
||||
|
||||
public Landmark(Geopoint p, string name, int num, string desc, List<Image> images) : base(p, name, num)
|
||||
{
|
||||
Create(name, desc, num, images);
|
||||
}
|
||||
|
||||
public Landmark(double la, double lo, string name, int num, string desc, List<Image> images) : base(la, lo, name, num)
|
||||
{
|
||||
Create(name, desc, num, images);
|
||||
}
|
||||
|
||||
private void Create(string name, string desc, int num, List<Image> images)
|
||||
{
|
||||
_status = LandmarkStatus.NOTVISITED;
|
||||
_desckey = desc;
|
||||
|
||||
Images = images;
|
||||
|
||||
Id = _namekey + "_" + Order;
|
||||
|
||||
Icon = new MapIcon();
|
||||
Icon.Location = Position;
|
||||
Icon.NormalizedAnchorPoint = new Point(0.5, 1.0);
|
||||
Icon.Title = Name;
|
||||
Icon.ZIndex = 500;
|
||||
}
|
||||
|
||||
public void UpdateIcon()
|
||||
{
|
||||
Icon.Title = Name;
|
||||
|
||||
switch (_status)
|
||||
{
|
||||
default:
|
||||
case LandmarkStatus.NOTVISITED:
|
||||
Icon.Image = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/LandmarkNotVisited.png"));
|
||||
break;
|
||||
case LandmarkStatus.VISITED:
|
||||
Icon.Image = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/LandmarkVisited.png"));
|
||||
break;
|
||||
case LandmarkStatus.SKIPPED:
|
||||
Icon.Image = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/LandmarkSkipped.png"));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,91 @@
|
||||
using NavCityBreda.Helpers;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Windows.Devices.Geolocation;
|
||||
using Windows.Services.Maps;
|
||||
using Windows.UI.Xaml.Controls.Maps;
|
||||
|
||||
namespace NavCityBreda.Model.Object
|
||||
{
|
||||
public class Route
|
||||
{
|
||||
public GeoboundingBox Bounds { get { return _route.BoundingBox; } }
|
||||
|
||||
private string _namekey;
|
||||
public string Name { get { return Util.Loader.GetString(_namekey); } }
|
||||
|
||||
private string _desckey;
|
||||
public string Description { get { return Util.Loader.GetString(_desckey); } }
|
||||
|
||||
private string _landdesckey;
|
||||
public string LandmarksDescription { get { return Util.Loader.GetString(_landdesckey); } }
|
||||
|
||||
private string foldername { get; set; }
|
||||
|
||||
public List<Landmark> Landmarks
|
||||
{
|
||||
get
|
||||
{
|
||||
return _waypoints.Where(l => l is Landmark).Cast<Landmark>().ToList();
|
||||
}
|
||||
}
|
||||
|
||||
private List<Waypoint> _waypoints;
|
||||
public List<Waypoint> Waypoints { get { return _waypoints; } }
|
||||
|
||||
private MapRoute _route;
|
||||
public MapRoute RouteObject { get { return _route; } }
|
||||
|
||||
public Route(string name, string desc, string landmarks, string folder)
|
||||
{
|
||||
_namekey = name;
|
||||
_desckey = desc;
|
||||
_landdesckey = landmarks;
|
||||
foldername = folder;
|
||||
_waypoints = new List<Waypoint>();
|
||||
}
|
||||
|
||||
public void Add(Waypoint w)
|
||||
{
|
||||
_waypoints.Add(w);
|
||||
}
|
||||
|
||||
public Waypoint Get(int i)
|
||||
{
|
||||
return _waypoints.ElementAt(i);
|
||||
}
|
||||
|
||||
public Waypoint Get(MapIcon m)
|
||||
{
|
||||
List<Waypoint> ws = _waypoints.Where(p => p.Equals(m)).ToList();
|
||||
|
||||
if (ws.Count < 1)
|
||||
return null;
|
||||
|
||||
return ws.First();
|
||||
}
|
||||
|
||||
public void Remove(Waypoint w)
|
||||
{
|
||||
_waypoints.Remove(w);
|
||||
}
|
||||
|
||||
public async Task<String> CalculateRoute()
|
||||
{
|
||||
_route = await Util.FindWalkingRoute(_waypoints.Select(p => p.Position).ToList());
|
||||
return "success";
|
||||
}
|
||||
|
||||
public async Task<String> Reset()
|
||||
{
|
||||
foreach (Landmark l in Landmarks)
|
||||
{
|
||||
l.Status = Landmark.LandmarkStatus.NOTVISITED;
|
||||
await Task.Delay(TimeSpan.FromMilliseconds(2));
|
||||
}
|
||||
return "success";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
using NavCityBreda.Helpers;
|
||||
using Windows.Devices.Geolocation;
|
||||
using Windows.UI.Xaml.Controls.Maps;
|
||||
|
||||
namespace NavCityBreda.Model.Object
|
||||
{
|
||||
public class Waypoint
|
||||
{
|
||||
public Geopoint Position { get; protected set; }
|
||||
|
||||
protected string _namekey;
|
||||
public string Name { get { return Util.Loader.GetString(_namekey); } }
|
||||
|
||||
public int Order { get; protected set; }
|
||||
|
||||
public Waypoint(Geopoint p, string name, int num)
|
||||
{
|
||||
Position = p;
|
||||
_namekey = name;
|
||||
Order = num;
|
||||
}
|
||||
|
||||
public Waypoint(double la, double lo, string name, int num)
|
||||
{
|
||||
Position = new Geopoint(new BasicGeoposition() { Altitude = 0, Latitude = la, Longitude = lo });
|
||||
_namekey = name;
|
||||
Order = num;
|
||||
}
|
||||
|
||||
public override bool Equals(object obj)
|
||||
{
|
||||
Waypoint r = obj as Waypoint;
|
||||
MapIcon i = obj as MapIcon;
|
||||
|
||||
if (r != null && r.Name == this.Name && r.Position == this.Position)
|
||||
return true;
|
||||
|
||||
if (i != null && i.Title == this.Name && i.Location == this.Position)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,378 @@
|
||||
using NavCityBreda.Helpers;
|
||||
using NavCityBreda.Model.Object;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Windows.Devices.Geolocation;
|
||||
using Windows.Devices.Geolocation.Geofencing;
|
||||
using Windows.Services.Maps;
|
||||
using Windows.UI.Core;
|
||||
|
||||
namespace NavCityBreda.Model
|
||||
{
|
||||
public class RouteManager
|
||||
{
|
||||
public delegate void StatusUpdateHandler(object sender, RouteStatusChangedEventArgs e);
|
||||
public event StatusUpdateHandler OnStatusUpdate;
|
||||
|
||||
public delegate void OnLandmarkVisitedHandler(object sender, LandmarkVisitedEventArgs e);
|
||||
public event OnLandmarkVisitedHandler OnLandmarkVisited;
|
||||
|
||||
public delegate void OnLandmarkChangedHandler(object sender, LandmarkChangedEventArgs e);
|
||||
public event OnLandmarkChangedHandler OnLandmarkChanged;
|
||||
|
||||
public delegate void OnManeuverChangedHandler(object sender, ManeuverChangedEventArgs e);
|
||||
public event OnManeuverChangedHandler OnManeuverChanged;
|
||||
|
||||
|
||||
|
||||
private List<Route> _routes;
|
||||
public List<Route> Routes { get { return _routes; } }
|
||||
|
||||
private Route _currentroute;
|
||||
public Route CurrentRoute { get { return _currentroute; } }
|
||||
|
||||
private Landmark _currentlandmark;
|
||||
public Landmark CurrentLandmark { get { return _currentlandmark; } }
|
||||
|
||||
private MapRoute _routetolandmark;
|
||||
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 int DistanceToManeuver { get; private set; }
|
||||
|
||||
|
||||
public string LoadingElement;
|
||||
|
||||
public enum RouteStatus { LOADING, STOPPED, STARTED }
|
||||
public RouteStatus Status;
|
||||
|
||||
CoreDispatcher dispatcher;
|
||||
|
||||
public RouteManager()
|
||||
{
|
||||
_routes = new List<Route>();
|
||||
dispatcher = App.Dispatcher;
|
||||
|
||||
LoadingElement = Util.Loader.GetString("Initializing") + "...";
|
||||
Status = RouteStatus.LOADING;
|
||||
DistanceToManeuver = -1;
|
||||
GeofenceMonitor.Current.GeofenceStateChanged += Current_GeofenceStateChanged;
|
||||
App.Geo.OnPositionUpdate += Geo_OnPositionUpdate;
|
||||
LoadRoutes();
|
||||
}
|
||||
|
||||
private void Geo_OnPositionUpdate(object sender, PositionUpdatedEventArgs e)
|
||||
{
|
||||
if (Status == RouteStatus.STARTED)
|
||||
{
|
||||
bool found = false;
|
||||
|
||||
for (int q = _currentroutelegcount; q < _currentroutelegs.Count; q++)
|
||||
{
|
||||
int startindex = 0;
|
||||
if (q == _currentroutelegcount)
|
||||
startindex = _currentmaneuvercount;
|
||||
|
||||
for (int i = startindex; i < _currentroutelegs[q].Maneuvers.Count; i++)
|
||||
{
|
||||
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.000025 || dif_lon < 0.000025)
|
||||
{
|
||||
_currentroutelegcount = q;
|
||||
_currentmaneuvercount = i + 1;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
private void Current_GeofenceStateChanged(GeofenceMonitor sender, object args)
|
||||
{
|
||||
if (Status != RouteStatus.STARTED) return;
|
||||
|
||||
var reports = sender.ReadReports();
|
||||
|
||||
foreach (GeofenceStateChangeReport report in reports)
|
||||
{
|
||||
GeofenceState state = report.NewState;
|
||||
Geofence geofence = report.Geofence;
|
||||
Landmark i = CurrentRoute.Landmarks.Where(t => t.Id == geofence.Id).FirstOrDefault();
|
||||
|
||||
if (state == GeofenceState.Removed)
|
||||
{
|
||||
GeofenceMonitor.Current.Geofences.Remove(geofence);
|
||||
}
|
||||
|
||||
else if (state == GeofenceState.Entered)
|
||||
{
|
||||
dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
|
||||
{
|
||||
i.Status = Landmark.LandmarkStatus.VISITED;
|
||||
});
|
||||
_currentlandmark = i;
|
||||
LandmarkVisited(i, LandmarkVisitedEventArgs.VisitedStatus.ENTERED);
|
||||
Util.ShowToastNotification(i.Name, Util.Loader.GetString("LandmarkReached"));
|
||||
UpdateRoute();
|
||||
}
|
||||
|
||||
else if (state == GeofenceState.Exited)
|
||||
{
|
||||
LandmarkVisited(i, LandmarkVisitedEventArgs.VisitedStatus.EXITED);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private async void LoadRoutes()
|
||||
{
|
||||
string[] routefolders = Directory.GetDirectories("Routes/");
|
||||
|
||||
_routes.Clear();
|
||||
|
||||
foreach (string folder in routefolders)
|
||||
{
|
||||
string foldername = Path.GetFileName(folder);
|
||||
if (foldername != "img")
|
||||
{
|
||||
Route r = RouteParser.LoadRoute(foldername);
|
||||
LoadingElement = Util.Loader.GetString("Loading") + " " + r.Name.ToLower() + "...";
|
||||
await r.CalculateRoute();
|
||||
_routes.Add(r);
|
||||
}
|
||||
}
|
||||
|
||||
LoadingElement = Util.Loader.GetString("Done") + "...";
|
||||
Status = RouteStatus.STOPPED;
|
||||
}
|
||||
|
||||
public async Task<String> UpdateRoute()
|
||||
{
|
||||
//Can't navigate without current position
|
||||
if (App.Geo.Position == null) return "error";
|
||||
|
||||
//Stop route if end is reached
|
||||
_currentlandmark = _currentroute.Landmarks.FirstOrDefault(p => p.Status == Landmark.LandmarkStatus.NOTVISITED);
|
||||
if (_currentlandmark == null)
|
||||
{
|
||||
StopRoute();
|
||||
return "stopped";
|
||||
}
|
||||
|
||||
//Create route from last landmark trough all the waypoints
|
||||
List<Geopoint> _waypoints = new List<Geopoint>();
|
||||
_waypoints.Add(App.Geo.Position.Coordinate.Point);
|
||||
|
||||
Landmark lastlandmark = _currentroute.Landmarks.ElementAtOrDefault(_currentroute.Landmarks.IndexOf(_currentlandmark) - 1);
|
||||
|
||||
if (lastlandmark != null)
|
||||
{
|
||||
int start = _currentroute.Waypoints.IndexOf(lastlandmark) + 1;
|
||||
int offset = _currentroute.Waypoints.IndexOf(_currentlandmark) - start;
|
||||
List<Geopoint> temp = _currentroute.Waypoints.GetRange(start, offset).Select(e => e.Position).ToList();
|
||||
_waypoints.AddRange(temp);
|
||||
}
|
||||
_waypoints.Add(_currentlandmark.Position);
|
||||
|
||||
|
||||
//Update all other vars to match
|
||||
//_routetolandmark = await Util.FindWalkingRoute(App.Geo.Position.Coordinate.Point, _currentlandmark.Position);
|
||||
_routetolandmark = await Util.FindWalkingRoute(_waypoints);
|
||||
_currentroutelegs = _routetolandmark.Legs.ToList() as List<MapRouteLeg>;
|
||||
_currentroutelegcount = 0;
|
||||
_currentmaneuvercount = 0;
|
||||
_currentmaneuver = _currentmaneuvers[_currentmaneuvercount];
|
||||
|
||||
|
||||
//Send out events
|
||||
UpdateRoute(_routetolandmark, _currentlandmark);
|
||||
UpdateManeuver(_currentmaneuver);
|
||||
|
||||
return "success";
|
||||
}
|
||||
|
||||
public async Task<String> SkipLandmark()
|
||||
{
|
||||
if (Status != RouteStatus.STARTED) return "error";
|
||||
|
||||
await dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
|
||||
{
|
||||
_currentlandmark.Status = Landmark.LandmarkStatus.SKIPPED;
|
||||
});
|
||||
string s = await UpdateRoute();
|
||||
return s;
|
||||
}
|
||||
|
||||
public async void StartRoute(Route r)
|
||||
{
|
||||
App.Geo.ClearHistory();
|
||||
_currentroute = r;
|
||||
await UpdateRoute();
|
||||
UpdateStatus(RouteStatus.STARTED);
|
||||
}
|
||||
|
||||
public void StopRoute()
|
||||
{
|
||||
if (Status == RouteStatus.STARTED)
|
||||
{
|
||||
_currentroute = null;
|
||||
_currentlandmark = null;
|
||||
_routetolandmark = null;
|
||||
_currentroutelegcount = 0;
|
||||
_currentroutelegs = null;
|
||||
_currentmaneuvercount = 0;
|
||||
_currentmaneuver = null;
|
||||
UpdateStatus(RouteStatus.STOPPED);
|
||||
}
|
||||
}
|
||||
|
||||
public List<Landmark> GetAllLandmarks()
|
||||
{
|
||||
List<Landmark> l = new List<Landmark>();
|
||||
|
||||
foreach (Route r in _routes)
|
||||
{
|
||||
l.AddRange(r.Landmarks);
|
||||
}
|
||||
|
||||
return l;
|
||||
}
|
||||
|
||||
private async Task<int> DistanceToCurrentManeuver()
|
||||
{
|
||||
if (_currentmaneuver == null) return -1;
|
||||
if (App.Geo.Position == null) return -1;
|
||||
|
||||
MapRoute route = await Util.FindWalkingRoute(App.Geo.Position.Coordinate.Point, _currentmaneuver.StartingPoint);
|
||||
|
||||
return (int)route.LengthInMeters;
|
||||
}
|
||||
|
||||
public async Task<String> Reset()
|
||||
{
|
||||
foreach (Route r in _routes)
|
||||
{
|
||||
await r.Reset();
|
||||
}
|
||||
return "success";
|
||||
}
|
||||
|
||||
// =============
|
||||
// Handle Events
|
||||
// =============
|
||||
private void UpdateStatus(RouteStatus status)
|
||||
{
|
||||
Status = status;
|
||||
// Make sure someone is listening to event
|
||||
if (OnStatusUpdate == null) return;
|
||||
|
||||
OnStatusUpdate(this, new RouteStatusChangedEventArgs(status));
|
||||
}
|
||||
|
||||
private void LandmarkVisited(Landmark l, LandmarkVisitedEventArgs.VisitedStatus status)
|
||||
{
|
||||
// Make sure someone is listening to event
|
||||
if (OnLandmarkVisited == null) return;
|
||||
|
||||
OnLandmarkVisited(this, new LandmarkVisitedEventArgs(l, status));
|
||||
}
|
||||
|
||||
private void UpdateRoute(MapRoute route, Landmark l)
|
||||
{
|
||||
// Make sure someone is listening to event
|
||||
if (OnLandmarkChanged == null) return;
|
||||
|
||||
OnLandmarkChanged(this, new LandmarkChangedEventArgs(route, l));
|
||||
}
|
||||
|
||||
private async void UpdateManeuver(MapRouteManeuver curman)
|
||||
{
|
||||
DistanceToManeuver = await DistanceToCurrentManeuver();
|
||||
|
||||
// Make sure someone is listening to event
|
||||
if (OnManeuverChanged == null) return;
|
||||
|
||||
OnManeuverChanged(this, new ManeuverChangedEventArgs(curman));
|
||||
}
|
||||
}
|
||||
|
||||
public class RouteStatusChangedEventArgs : EventArgs
|
||||
{
|
||||
public RouteManager.RouteStatus Status { get; private set; }
|
||||
|
||||
public RouteStatusChangedEventArgs(RouteManager.RouteStatus status)
|
||||
{
|
||||
Status = status;
|
||||
}
|
||||
}
|
||||
|
||||
public class LandmarkVisitedEventArgs : EventArgs
|
||||
{
|
||||
public Landmark Landmark { get; private set; }
|
||||
public enum VisitedStatus { ENTERED, EXITED }
|
||||
public VisitedStatus Status { get; private set; }
|
||||
|
||||
public LandmarkVisitedEventArgs(Landmark landmark, VisitedStatus status)
|
||||
{
|
||||
Landmark = landmark;
|
||||
Status = status;
|
||||
}
|
||||
}
|
||||
|
||||
public class LandmarkChangedEventArgs : EventArgs
|
||||
{
|
||||
public Landmark Landmark { get; private set; }
|
||||
public MapRoute Route { get; private set; }
|
||||
|
||||
public LandmarkChangedEventArgs(MapRoute newroute, Landmark tolandmark)
|
||||
{
|
||||
Route = newroute;
|
||||
Landmark = tolandmark;
|
||||
}
|
||||
}
|
||||
|
||||
public class ManeuverChangedEventArgs
|
||||
{
|
||||
public MapRouteManeuver Maneuver { get; private set; }
|
||||
|
||||
public ManeuverChangedEventArgs(MapRouteManeuver curman)
|
||||
{
|
||||
Maneuver = curman;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using NavCityBreda.Model.Object;
|
||||
|
||||
namespace NavCityBreda.Model.Search
|
||||
{
|
||||
public class LandmarkResult
|
||||
{
|
||||
public Landmark Landmark;
|
||||
public string Name { get { return Landmark.Name; } }
|
||||
public string Details { get; private set; }
|
||||
public bool InDescription { get; private set; }
|
||||
|
||||
public LandmarkResult(Landmark l, string searchdetail, bool indesc)
|
||||
{
|
||||
Landmark = l;
|
||||
Details = searchdetail;
|
||||
InDescription = indesc;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
using NavCityBreda.Model.Object;
|
||||
|
||||
namespace NavCityBreda.Model.Search
|
||||
{
|
||||
public class RouteResult
|
||||
{
|
||||
public Route Route;
|
||||
public string Name { get { return Route.Name; } }
|
||||
public string Details { get; private set; }
|
||||
public bool InDescription { get; private set; }
|
||||
|
||||
public RouteResult(Route r, string searchdetail, bool indesc)
|
||||
{
|
||||
Route = r;
|
||||
Details = searchdetail;
|
||||
InDescription = indesc;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace NavCityBreda.Model.Search
|
||||
{
|
||||
public class SearchResult
|
||||
{
|
||||
public List<RouteResult> Routes { get; private set; }
|
||||
public List<LandmarkResult> Landmarks { get; private set; }
|
||||
|
||||
public string SearchTerm { get; private set; }
|
||||
public int Results { get { return (Routes.Count + Landmarks.Count); } }
|
||||
|
||||
public SearchResult(string term)
|
||||
{
|
||||
SearchTerm = term;
|
||||
Routes = new List<RouteResult>();
|
||||
Landmarks = new List<LandmarkResult>();
|
||||
}
|
||||
|
||||
public void Add(RouteResult r)
|
||||
{
|
||||
Routes.Add(r);
|
||||
}
|
||||
|
||||
public void Add(List<RouteResult> r)
|
||||
{
|
||||
Routes.AddRange(r);
|
||||
}
|
||||
|
||||
public void Add(LandmarkResult l)
|
||||
{
|
||||
Landmarks.Add(l);
|
||||
}
|
||||
|
||||
public void Add(List<LandmarkResult> l)
|
||||
{
|
||||
Landmarks.AddRange(l);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
using NavCityBreda.Helpers;
|
||||
using NavCityBreda.Helpers.Comparer;
|
||||
using NavCityBreda.Model.Object;
|
||||
using NavCityBreda.Model.Search;
|
||||
using System.Collections.Generic;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace NavCityBreda.Model
|
||||
{
|
||||
public class SearchHandler
|
||||
{
|
||||
public static async Task<SearchResult> Search(string term, bool description)
|
||||
{
|
||||
SearchResult rs = await SearchForResults(term, description);
|
||||
|
||||
return rs;
|
||||
}
|
||||
|
||||
private static async Task<SearchResult> SearchForResults(string term, bool description)
|
||||
{
|
||||
List<RouteResult> rresults = new List<RouteResult>();
|
||||
List<LandmarkResult> lresults = new List<LandmarkResult>();
|
||||
|
||||
SearchResult result = new SearchResult(term);
|
||||
|
||||
await Task.Run(() =>
|
||||
{
|
||||
//Search routes
|
||||
foreach(Route r in App.RouteManager.Routes)
|
||||
{
|
||||
bool routefound = false;
|
||||
int landmarksinroutefound = 0;
|
||||
string landmarks = "";
|
||||
|
||||
//Search landmarks
|
||||
foreach (Landmark l in r.Landmarks)
|
||||
{
|
||||
if (l.Name.ToLower().Contains(term.ToLower()))
|
||||
{
|
||||
routefound = true;
|
||||
landmarks += (landmarksinroutefound > 0 ? ", " : "") + l.Name;
|
||||
landmarksinroutefound++;
|
||||
|
||||
LandmarkResult ls = new LandmarkResult(l, "", false);
|
||||
lresults.Add(ls);
|
||||
}
|
||||
else if (description)
|
||||
{
|
||||
if (l.Description.ToLower().Contains(term.ToLower()))
|
||||
{
|
||||
LandmarkResult ls = new LandmarkResult(l, Util.Loader.GetString("SearchResultDescription"), true);
|
||||
lresults.Add(ls);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(routefound)
|
||||
{
|
||||
string desc = "";
|
||||
if (landmarksinroutefound <= 3)
|
||||
desc = landmarks;
|
||||
else
|
||||
desc = landmarksinroutefound + " " + Util.Loader.GetString("Landmarks");
|
||||
|
||||
RouteResult rs = new RouteResult(r, desc, true);
|
||||
rresults.Add(rs);
|
||||
}
|
||||
else if (r.Name.ToLower().Contains(term.ToLower()))
|
||||
{
|
||||
RouteResult rs = new RouteResult(r, "", false);
|
||||
rresults.Add(rs);
|
||||
}
|
||||
|
||||
else if(description)
|
||||
{
|
||||
if (r.Description.ToLower().Contains(term.ToLower()))
|
||||
{
|
||||
RouteResult rs = new RouteResult(r, Util.Loader.GetString("SearchResultDescription"), true);
|
||||
rresults.Add(rs);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
rresults.Sort(new SearchRouteComparer());
|
||||
lresults.Sort(new SearchLandmarkComparer());
|
||||
|
||||
result.Add(rresults);
|
||||
result.Add(lresults);
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,15 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
|
||||
<ProjectGuid>{b34bc5be-844f-4c3c-8f7b-74de5af8cf7f}</ProjectGuid>
|
||||
<ProjectGuid>{B34BC5BE-844F-4C3C-8F7B-74DE5AF8CF7F}</ProjectGuid>
|
||||
<OutputType>AppContainerExe</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>NavCityBreda</RootNamespace>
|
||||
<AssemblyName>NavCityBreda</AssemblyName>
|
||||
<DefaultLanguage>en-US</DefaultLanguage>
|
||||
<DefaultLanguage>en</DefaultLanguage>
|
||||
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier>
|
||||
<TargetPlatformVersion>10.0.10240.0</TargetPlatformVersion>
|
||||
<TargetPlatformMinVersion>10.0.10240.0</TargetPlatformMinVersion>
|
||||
@@ -17,15 +17,13 @@
|
||||
<EnableDotNetNativeCompatibleProfile>true</EnableDotNetNativeCompatibleProfile>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||
|
||||
<PackageCertificateKeyFile>NavCityBreda_TemporaryKey.pfx</PackageCertificateKeyFile>
|
||||
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|ARM'">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\ARM\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<NoWarn>2008;CS4014</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>ARM</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
@@ -71,7 +69,7 @@
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<OutputPath>bin\x86\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE;NETFX_CORE;WINDOWS_UWP</DefineConstants>
|
||||
<NoWarn>;2008</NoWarn>
|
||||
<NoWarn>2008;CS4014;</NoWarn>
|
||||
<DebugType>full</DebugType>
|
||||
<PlatformTarget>x86</PlatformTarget>
|
||||
<UseVSHostingProcess>false</UseVSHostingProcess>
|
||||
@@ -92,50 +90,232 @@
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<!-- A reference to the entire .Net Framework and Windows SDK are automatically included -->
|
||||
<Content Include="Assets\CurrentLocationArrow.png">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Assets\CurrentLocationRound.png">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Assets\Help\HelpItem2Image.png" />
|
||||
<Content Include="Assets\Help\HelpItem3Image.png" />
|
||||
<Content Include="Assets\LandmarkNotVisited.png">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Assets\LandmarkSkipped.png" />
|
||||
<Content Include="Assets\LandmarkVisited.png">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Assets\SplashScreen.scale-100.png">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Assets\SplashScreen.scale-150.png">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Routes\historische_kilometer\data.json" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_1.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_10.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_11.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_12.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_13.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_14.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_15.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_16.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_17.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_18.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_19.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_2.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_20.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_21.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_22.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_23.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_24.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_25.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_26.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_3.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_4.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_5.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_6.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_7.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_8.jpg" />
|
||||
<Content Include="Routes\historische_kilometer\media\historische_kilometer_9.jpg" />
|
||||
<PRIResource Include="Routes\historische_kilometer\lang\en\Resources.resw" />
|
||||
<PRIResource Include="Routes\historische_kilometer\lang\nl\Resources.resw" />
|
||||
<PRIResource Include="Routes\historische_kilometer\lang\de\Resources.resw" />
|
||||
<PRIResource Include="Languages\ja\Resources.resw" />
|
||||
<PRIResource Include="Languages\nl\Resources.resw" />
|
||||
<None Include="project.json" />
|
||||
<PRIResource Include="Languages\en\Resources.resw" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="App.xaml.cs">
|
||||
<DependentUpon>App.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Helpers\Comparer\LandmarkAlphaComparer.cs" />
|
||||
<Compile Include="Helpers\Comparer\LandmarkAlphaReversedComparer.cs" />
|
||||
<Compile Include="Helpers\Comparer\LandmarkNotVisitedComparer.cs" />
|
||||
<Compile Include="Helpers\Comparer\LandmarkVisitedComparer.cs" />
|
||||
<Compile Include="Helpers\Comparer\SearchLandmarkComparer.cs" />
|
||||
<Compile Include="Helpers\Comparer\SearchRouteComparer.cs" />
|
||||
<Compile Include="Helpers\Converter\StatusToIconConverter.cs" />
|
||||
<Compile Include="Helpers\Extensions.cs" />
|
||||
<Compile Include="Helpers\RouteParser.cs" />
|
||||
<Compile Include="Helpers\Settings.cs" />
|
||||
<Compile Include="Helpers\Converter\BoolToVisibilityConverter.cs" />
|
||||
<Compile Include="Helpers\Util.cs" />
|
||||
<Compile Include="InitPage.xaml.cs">
|
||||
<DependentUpon>InitPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="MainPage.xaml.cs">
|
||||
<DependentUpon>MainPage.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Model\CompassTracker.cs" />
|
||||
<Compile Include="Model\GeoTracker.cs" />
|
||||
<Compile Include="Model\Object\Image.cs" />
|
||||
<Compile Include="Model\Object\Landmark.cs" />
|
||||
<Compile Include="Model\Object\Route.cs" />
|
||||
<Compile Include="Model\RouteManager.cs" />
|
||||
<Compile Include="Model\SearchHandler.cs" />
|
||||
<Compile Include="Model\Search\LandmarkResult.cs" />
|
||||
<Compile Include="Model\Search\RouteResult.cs" />
|
||||
<Compile Include="Model\Search\SearchResult.cs" />
|
||||
<Compile Include="Model\Object\Waypoint.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="ViewModels\HelpVM.cs" />
|
||||
<Compile Include="ViewModels\LandmarkDetailVM.cs" />
|
||||
<Compile Include="ViewModels\LandmarkVM.cs" />
|
||||
<Compile Include="ViewModels\MapVM.cs" />
|
||||
<Compile Include="ViewModels\MainPageVM.cs" />
|
||||
<Compile Include="ViewModels\RouteDetailVM.cs" />
|
||||
<Compile Include="ViewModels\RouteVM.cs" />
|
||||
<Compile Include="ViewModels\SearchVM.cs" />
|
||||
<Compile Include="ViewModels\SettingsVM.cs" />
|
||||
<Compile Include="ViewModels\TemplateVM.cs" />
|
||||
<Compile Include="Views\HelpView.xaml.cs">
|
||||
<DependentUpon>HelpView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\LandmarkView.xaml.cs">
|
||||
<DependentUpon>LandmarkView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\MapView.xaml.cs">
|
||||
<DependentUpon>MapView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\RouteDetailView.xaml.cs">
|
||||
<DependentUpon>RouteDetailView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\RouteView.xaml.cs">
|
||||
<DependentUpon>RouteView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\SearchView.xaml.cs">
|
||||
<DependentUpon>SearchView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\SettingsView.xaml.cs">
|
||||
<DependentUpon>SettingsView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Views\LandmarkDetailView.xaml.cs">
|
||||
<DependentUpon>LandmarkDetailView.xaml</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<AppxManifest Include="Package.appxmanifest">
|
||||
<SubType>Designer</SubType>
|
||||
</AppxManifest>
|
||||
|
||||
<None Include="NavCityBreda_TemporaryKey.pfx" />
|
||||
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="Assets\Square150x150Logo.scale-100.png">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Properties\Default.rd.xml" />
|
||||
<Content Include="Assets\LockScreenLogo.scale-200.png" />
|
||||
<Content Include="Assets\SplashScreen.scale-200.png" />
|
||||
<Content Include="Assets\Square150x150Logo.scale-200.png" />
|
||||
<Content Include="Assets\Square44x44Logo.scale-200.png" />
|
||||
<Content Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
|
||||
<Content Include="Assets\StoreLogo.png" />
|
||||
<Content Include="Assets\Wide310x150Logo.scale-200.png" />
|
||||
<Content Include="Assets\LockScreenLogo.scale-200.png">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Assets\SplashScreen.scale-200.png">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Assets\Square150x150Logo.scale-200.png">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Assets\Square44x44Logo.scale-200.png">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Assets\StoreLogo.png">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Assets\Wide310x150Logo.scale-200.png">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ApplicationDefinition Include="App.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</ApplicationDefinition>
|
||||
<Page Include="InitPage.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="MainPage.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="Themes\DarkTheme.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Page>
|
||||
<Page Include="Themes\DefaultStyles.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Page>
|
||||
<Page Include="Themes\LightTheme.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Page>
|
||||
<Page Include="Views\HelpView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Views\LandmarkView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Views\MapView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Views\RouteDetailView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Views\RouteView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Views\SearchView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Views\SettingsView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="Views\LandmarkDetailView.xaml">
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="Languages\de\" />
|
||||
<Folder Include="Routes\historische_kilometer\lang\ja\" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '14.0' ">
|
||||
<VisualStudioVersion>14.0</VisualStudioVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsXaml\v$(VisualStudioVersion)\Microsoft.Windows.UI.Xaml.CSharp.targets" />
|
||||
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
|
||||
Other similar extension points exist, see Microsoft.Common.targets.
|
||||
@@ -144,4 +324,4 @@
|
||||
<Target Name="AfterBuild">
|
||||
</Target>
|
||||
-->
|
||||
</Project>
|
||||
</Project>
|
||||
@@ -1,49 +1,32 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<Package
|
||||
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
|
||||
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
|
||||
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
|
||||
IgnorableNamespaces="uap mp">
|
||||
|
||||
<Identity
|
||||
Name="4786ea01-1db5-4c7a-a158-af0ee49306fa"
|
||||
Publisher="CN=kenny"
|
||||
Version="1.0.0.0" />
|
||||
|
||||
<mp:PhoneIdentity PhoneProductId="4786ea01-1db5-4c7a-a158-af0ee49306fa" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
|
||||
|
||||
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest" xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" IgnorableNamespaces="uap mp">
|
||||
<Identity Name="4786ea01-1db5-4c7a-a158-af0ee49306fa" Publisher="CN=kenny" Version="1.0.0.0" />
|
||||
<mp:PhoneIdentity PhoneProductId="4786ea01-1db5-4c7a-a158-af0ee49306fa" PhonePublisherId="00000000-0000-0000-0000-000000000000" />
|
||||
<Properties>
|
||||
<DisplayName>NavCityBreda</DisplayName>
|
||||
<PublisherDisplayName>kenny</PublisherDisplayName>
|
||||
<PublisherDisplayName>Nav City Breda A4</PublisherDisplayName>
|
||||
<Logo>Assets\StoreLogo.png</Logo>
|
||||
</Properties>
|
||||
|
||||
<Dependencies>
|
||||
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.0.0" MaxVersionTested="10.0.0.0" />
|
||||
</Dependencies>
|
||||
|
||||
<Resources>
|
||||
<Resource Language="x-generate"/>
|
||||
<Resource Language="x-generate" />
|
||||
</Resources>
|
||||
|
||||
<Applications>
|
||||
<Application Id="App"
|
||||
Executable="$targetnametoken$.exe"
|
||||
EntryPoint="NavCityBreda.App">
|
||||
<uap:VisualElements
|
||||
DisplayName="NavCityBreda"
|
||||
Square150x150Logo="Assets\Square150x150Logo.png"
|
||||
Square44x44Logo="Assets\Square44x44Logo.png"
|
||||
Description="NavCityBreda"
|
||||
BackgroundColor="transparent">
|
||||
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png"/>
|
||||
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="NavCityBreda.App">
|
||||
<uap:VisualElements DisplayName="Nav City Breda" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png" Description="Tourist navigation app for the city Breda." BackgroundColor="transparent">
|
||||
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" ShortName="ags_logo">
|
||||
</uap:DefaultTile>
|
||||
<uap:SplashScreen Image="Assets\SplashScreen.png" />
|
||||
<uap:InitialRotationPreference>
|
||||
<uap:Rotation Preference="portrait" />
|
||||
</uap:InitialRotationPreference>
|
||||
</uap:VisualElements>
|
||||
</Application>
|
||||
</Applications>
|
||||
|
||||
<Capabilities>
|
||||
<Capability Name="internetClient" />
|
||||
<DeviceCapability Name="location" />
|
||||
</Capabilities>
|
||||
</Package>
|
||||
@@ -1,5 +1,4 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// General Information about an assembly is controlled through the following
|
||||
|
||||
|
After Width: | Height: | Size: 4.8 KiB |
@@ -0,0 +1,315 @@
|
||||
{
|
||||
"name": "RouteName",
|
||||
"description": "RouteDescription",
|
||||
"landmarks": "RouteLandmarks",
|
||||
"waypoints": [{
|
||||
"name": "VVVName",
|
||||
"landmark": true,
|
||||
"description": "VVVDescription",
|
||||
"image": [ "historische_kilometer_1.jpg", "historische_kilometer_2.jpg"],
|
||||
"latitude": 51.594112,
|
||||
"longitude": 4.779417
|
||||
},
|
||||
{
|
||||
"name": "LZName",
|
||||
"landmark": true,
|
||||
"description": "LZDescription",
|
||||
"image": "historische_kilometer_3.jpg",
|
||||
"latitude": 51.593278,
|
||||
"longitude": 4.779388
|
||||
},
|
||||
{
|
||||
"name": "NBMName",
|
||||
"landmark": true,
|
||||
"description": "NBMDescription",
|
||||
"image": "historische_kilometer_4.jpg",
|
||||
"latitude": 51.5925,
|
||||
"longitude": 4.779695
|
||||
},
|
||||
{
|
||||
"name": "WP1",
|
||||
"landmark": false,
|
||||
"latitude": 51.5925,
|
||||
"longitude": 4.779388
|
||||
},
|
||||
{
|
||||
"name": "LHName",
|
||||
"landmark": true,
|
||||
"description": "LHDescription",
|
||||
"image": "historische_kilometer_5.jpg",
|
||||
"latitude": 51.592833,
|
||||
"longitude": 4.778472
|
||||
},
|
||||
{
|
||||
"name": "WP2",
|
||||
"landmark": false,
|
||||
"latitude": 51.592667,
|
||||
"longitude": 4.777917
|
||||
},
|
||||
{
|
||||
"name": "WP3",
|
||||
"landmark": false,
|
||||
"latitude": 51.590612,
|
||||
"longitude": 4.777
|
||||
},
|
||||
{
|
||||
"name": "KBName",
|
||||
"landmark": true,
|
||||
"description": "KBDescription",
|
||||
"image": "historische_kilometer_9.jpg",
|
||||
"latitude": 51.590612,
|
||||
"longitude": 4.776167
|
||||
},
|
||||
{
|
||||
"name": "SHPName",
|
||||
"landmark": true,
|
||||
"description": "SHPDescription",
|
||||
"image": "historische_kilometer_11.jpg",
|
||||
"latitude": 51.589695,
|
||||
"longitude": 4.776138
|
||||
},
|
||||
{
|
||||
"name": "WY4",
|
||||
"landmark": false,
|
||||
"latitude": 51.590333,
|
||||
"longitude": 4.776
|
||||
},
|
||||
{
|
||||
"name": "WP5",
|
||||
"landmark": false,
|
||||
"latitude": 51.590388,
|
||||
"longitude": 4.775
|
||||
},
|
||||
{
|
||||
"name": "HBName",
|
||||
"landmark": true,
|
||||
"description": "HBDescription",
|
||||
"image": "historische_kilometer_7.jpg",
|
||||
"latitude": 51.590028,
|
||||
"longitude": 4.774362
|
||||
},
|
||||
{
|
||||
"name": "SGName",
|
||||
"landmark": true,
|
||||
"description": "SGDescription",
|
||||
"image": ["historische_kilometer_6.jpg", "historische_kilometer_14.jpg", "historische_kilometer_21.jpg", "historische_kilometer_22.jpg"],
|
||||
"latitude": 51.590195,
|
||||
"longitude": 4.773445
|
||||
},
|
||||
{
|
||||
"name": "BVName",
|
||||
"landmark": true,
|
||||
"description": "BVDescription",
|
||||
"image": "historische_kilometer_20.jpg",
|
||||
"latitude": 51.589833,
|
||||
"longitude": 4.773333
|
||||
},
|
||||
{
|
||||
"name": "BHName",
|
||||
"landmark": true,
|
||||
"description": "BHDescription",
|
||||
"image": "historische_kilometer_19.jpg",
|
||||
"latitude": 51.589362,
|
||||
"longitude": 4.774445
|
||||
},
|
||||
{
|
||||
"name": "KTKName",
|
||||
"landmark": true,
|
||||
"description": "KTKDescription",
|
||||
"latitude": 51.588778,
|
||||
"longitude": 4.774888
|
||||
},
|
||||
{
|
||||
"name": "GKName",
|
||||
"landmark": true,
|
||||
"description": "GKDescription",
|
||||
"image": "historische_kilometer_10.jpg",
|
||||
"latitude": 51.588833,
|
||||
"longitude": 4.775278
|
||||
},
|
||||
{
|
||||
"name": "WP6",
|
||||
"landmark": false,
|
||||
"latitude": 51.588778,
|
||||
"longitude": 4.774888
|
||||
},
|
||||
{
|
||||
"name": "HPName",
|
||||
"landmark": true,
|
||||
"description": "HPDescription",
|
||||
"latitude": 51.588195,
|
||||
"longitude": 4.775138
|
||||
},
|
||||
{
|
||||
"name": "RDSName",
|
||||
"landmark": true,
|
||||
"description": "RDSDescription",
|
||||
"latitude": 51.587083,
|
||||
"longitude": 4.77575
|
||||
},
|
||||
{
|
||||
"name": "GMName",
|
||||
"landmark": true,
|
||||
"description": "GMDescription",
|
||||
"image": "historische_kilometer_17.jpg",
|
||||
"latitude": 51.587417,
|
||||
"longitude": 4.776555
|
||||
},
|
||||
{
|
||||
"name": "BVMName",
|
||||
"landmark": true,
|
||||
"description": "BVMDescription",
|
||||
"image": [ "historische_kilometer_24.jpg", "historische_kilometer_25.jpg"],
|
||||
"latitude": 51.588028,
|
||||
"longitude": 4.776333
|
||||
},
|
||||
{
|
||||
"name": "SHName",
|
||||
"landmark": true,
|
||||
"description": "SHDescription",
|
||||
"latitude": 51.58875,
|
||||
"longitude": 4.776112
|
||||
},
|
||||
{
|
||||
"name": "WP7",
|
||||
"landmark": false,
|
||||
"latitude": 51.587972,
|
||||
"longitude": 4.776362
|
||||
},
|
||||
{
|
||||
"name": "WP8",
|
||||
"landmark": false,
|
||||
"latitude": 51.5875,
|
||||
"longitude": 4.776555
|
||||
},
|
||||
{
|
||||
"name": "AVPName",
|
||||
"landmark": true,
|
||||
"description": "AVPDescription",
|
||||
"latitude": 51.587638,
|
||||
"longitude": 4.77725
|
||||
},
|
||||
{
|
||||
"name": "WP9",
|
||||
"landmark": false,
|
||||
"latitude": 51.588278,
|
||||
"longitude": 4.7785
|
||||
},
|
||||
{
|
||||
"name": "BTName",
|
||||
"landmark": true,
|
||||
"description": "BTDescription",
|
||||
"latitude": 51.588,
|
||||
"longitude": 4.778945
|
||||
},
|
||||
{
|
||||
"name": "WP18",
|
||||
"landmark": false,
|
||||
"latitude": 51.587362,
|
||||
"longitude": 4.780222
|
||||
},
|
||||
{
|
||||
"name": "KZName",
|
||||
"landmark": true,
|
||||
"description": "KZDescription",
|
||||
"latitude": 51.587722,
|
||||
"longitude": 4.781028
|
||||
},
|
||||
{
|
||||
"name": "CTName",
|
||||
"landmark": true,
|
||||
"description": "CTDescription",
|
||||
"latitude": 51.58775,
|
||||
"longitude": 4.782
|
||||
},
|
||||
{
|
||||
"name": "WP10",
|
||||
"landmark": false,
|
||||
"latitude": 51.58775,
|
||||
"longitude": 4.78125
|
||||
},
|
||||
{
|
||||
"name": "BVIName",
|
||||
"landmark": true,
|
||||
"description": "BVIDescription",
|
||||
"latitude": 51.588612,
|
||||
"longitude": 4.780888
|
||||
},
|
||||
{
|
||||
"name": "WP11",
|
||||
"landmark": false,
|
||||
"latitude": 51.5895,
|
||||
"longitude": 4.780445
|
||||
},
|
||||
{
|
||||
"name": "BYName",
|
||||
"landmark": true,
|
||||
"description": "BYDescription",
|
||||
"latitude": 51.589667,
|
||||
"longitude": 4.781
|
||||
},
|
||||
{
|
||||
"name": "WP12",
|
||||
"landmark": false,
|
||||
"latitude": 51.5895,
|
||||
"longitude": 4.780445
|
||||
},
|
||||
{
|
||||
"name": "GHPName",
|
||||
"landmark": true,
|
||||
"description": "GHPDescription",
|
||||
"latitude": 51.589555,
|
||||
"longitude": 4.78
|
||||
},
|
||||
{
|
||||
"name": "WP13",
|
||||
"landmark": false,
|
||||
"latitude": 51.589417,
|
||||
"longitude": 4.779862
|
||||
},
|
||||
{
|
||||
"name": "WP14",
|
||||
"landmark": false,
|
||||
"latitude": 51.589028,
|
||||
"longitude": 4.779695
|
||||
},
|
||||
{
|
||||
"name": "WP15",
|
||||
"landmark": false,
|
||||
"latitude": 51.588555,
|
||||
"longitude": 4.778333
|
||||
},
|
||||
{
|
||||
"name": "WMName",
|
||||
"landmark": true,
|
||||
"description": "WMDescription",
|
||||
"latitude": 51.589112,
|
||||
"longitude": 4.777945
|
||||
},
|
||||
{
|
||||
"name": "WP16",
|
||||
"landmark": false,
|
||||
"latitude": 51.589667,
|
||||
"longitude": 4.777805
|
||||
},
|
||||
{
|
||||
"name": "BGHName",
|
||||
"landmark": true,
|
||||
"description": "BGHDescription",
|
||||
"latitude": 51.589695,
|
||||
"longitude": 4.778362
|
||||
},
|
||||
{
|
||||
"name": "WP17",
|
||||
"landmark": false,
|
||||
"latitude": 51.589667,
|
||||
"longitude": 4.777805
|
||||
},
|
||||
{
|
||||
"name": "ESName",
|
||||
"landmark": true,
|
||||
"description": "ESDescription",
|
||||
"latitude": 51.5895,
|
||||
"longitude": 4.77625
|
||||
}]
|
||||
}
|
||||
@@ -0,0 +1,123 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="RouteDescription" xml:space="preserve">
|
||||
<value>Historischen Kilometer</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,345 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="AVPDescription" xml:space="preserve">
|
||||
<value>Antonius van Padua church is a church</value>
|
||||
</data>
|
||||
<data name="AVPName" xml:space="preserve">
|
||||
<value>Antonius van Padua church</value>
|
||||
</data>
|
||||
<data name="BGHDescription" xml:space="preserve">
|
||||
<value>Begijnencourt</value>
|
||||
</data>
|
||||
<data name="BGHName" xml:space="preserve">
|
||||
<value>Begijnencourt</value>
|
||||
</data>
|
||||
<data name="BHDescription" xml:space="preserve">
|
||||
<value>This Harbor Market has been established in 1934</value>
|
||||
</data>
|
||||
<data name="BHName" xml:space="preserve">
|
||||
<value>Harbor market</value>
|
||||
</data>
|
||||
<data name="BTDescription" xml:space="preserve">
|
||||
<value>TRANSLATE: In de Molenstraat ziet u recht de Bibliotheek, ontworpen door architect Herman Hertzberger. Omdat de Molenstraat vrij smal is, heeft de architect ruimte gecreëerd door de bibliotheek schuin oplopende wanden te geven. Op de plaats van de bibliotheek (op de hoek met de Oude Vest) bevond zich vroeger een poort. Boven deze poort bevond zich 's Heeren Gevangenhuys, waar de zwaarst gestraften werden ondergebracht. De plaats is nog met keitjes in het asfalt aangegeven; de asfaltweg is de plaats van de oude stadsgracht.</value>
|
||||
</data>
|
||||
<data name="BTName" xml:space="preserve">
|
||||
<value>Library</value>
|
||||
</data>
|
||||
<data name="BVDescription" xml:space="preserve">
|
||||
<value>TRANSLATE: Wie hier een pilsje pakt, ontdekt (overigens ook zonder dat pilsje) al heel gauw, dat dit plein het mooiste uitzicht biedt op de grote toren van de Grote Kerk. Vanaf deze plek kunt u ook de mooie brede onderbouw van die toren bewonderen. Er is veel te zien op dit pleintje. Links op de hoek van de Havermarkt en Reigerstraat ziet u het huis 'De Arent', gebouwd rond ca. 1490. Het heeft nu een zeventiende eeuwse trapgevel en is in 1966 geheel gerestaureerd en verbouwd tot restaurant. Tegenover u op de Havermarkt bevinden zich nog twee panden die uw aandacht verdienen. Havermarkt nummer 5 dateert uit de zestiende en zeventiend eeuw. 'De Vogelstruys' op Havermarkt 21 is een opmerkelijk zeventiende eeuws monument met een hoge, niet symmetrische trapgevel. Ook dit huis heeft in de loop de eeuwen allerlei functies en bestemmingen gehad. Het was onder meer refugiehuis voor de zusters van Catharinadal in de zeventiende eeuw. Voor het beeldje 'De Troubadour', dat aan het eind van de Havermarkt prijkt, zijn vier exemplaren vervaardigd. De andere drie werden onthuld in Diest, Orange en Dillenburg, de zustersteden van Breda in de in 1963 tot stand gekomen Unie van Oranjesteden. Een stukje verder in de Visserstraat (nr. 31), aan de rechterkant, staat een fraai bakstenen huis uit de 17e eeuw met overblijfselen van een zestiende eeuwse gothische woning, de Drie Moren geheten.</value>
|
||||
</data>
|
||||
<data name="BVIDescription" xml:space="preserve">
|
||||
<value>Binding of Isaac</value>
|
||||
</data>
|
||||
<data name="BVIName" xml:space="preserve">
|
||||
<value>Binding of Isaac</value>
|
||||
</data>
|
||||
<data name="BVMDescription" xml:space="preserve">
|
||||
<value>This monument was places here in 1951 to remember all who died during the second world war and the liberation.</value>
|
||||
</data>
|
||||
<data name="BVMName" xml:space="preserve">
|
||||
<value>Liberation monument</value>
|
||||
</data>
|
||||
<data name="BVName" xml:space="preserve">
|
||||
<value>Fish market</value>
|
||||
</data>
|
||||
<data name="BYDescription" xml:space="preserve">
|
||||
<value>Cafe Beyerd</value>
|
||||
</data>
|
||||
<data name="BYName" xml:space="preserve">
|
||||
<value>Beyerd</value>
|
||||
</data>
|
||||
<data name="CTDescription" xml:space="preserve">
|
||||
<value>Chasse theater</value>
|
||||
</data>
|
||||
<data name="CTName" xml:space="preserve">
|
||||
<value>Chasse theater</value>
|
||||
</data>
|
||||
<data name="ESDescription" xml:space="preserve">
|
||||
<value>This is the ending of the walking route</value>
|
||||
</data>
|
||||
<data name="ESName" xml:space="preserve">
|
||||
<value>End of walk</value>
|
||||
</data>
|
||||
<data name="GHPDescription" xml:space="preserve">
|
||||
<value>Guesthouse gate</value>
|
||||
</data>
|
||||
<data name="GHPName" xml:space="preserve">
|
||||
<value>Guesthouse Gate</value>
|
||||
</data>
|
||||
<data name="GKDescription" xml:space="preserve">
|
||||
<value>TRANSLATE: De bisschop van Breda keerde na een afwezigheid van 32 jaar aan het begin van 2001 terug naar de Antoniuskerk die daarmee de status van kathedraal opnieuw verwierf. Aan de voorgevel zijn duidelijk de drie soorten antieke zuilen te zien. Van onder naar boven: Dorische, Ionische en Corinthische zuilen. Het beeld boven de ingang stelt 'de Godsdienst' voor. Binnen valt direct de schitterende houten preekstoel op. Hierin is in verschillende panelen het leven van H. Antonius uitgebeeld. Even verder bevinden zich restanten of alleen maar herinneringen aan twee zeer voorname hofhuizen, het Huis Ocrum, waarin tot 1994 de Kunstacademie St. Joost was gevestigd en het Huis Hersbeeck, thans pastorie. In 1667 verbleven in beide huizen de Engelse gezanten, die deelnamen aan de Vredesonderhandelingen van Breda. De afgevaardigden van de Raad van State gebruikten het pand (nr. 16) wanneer zij in de stad op dienstreis waren, maar ook koning Lodewijk Napoleon heeft er gelogeerd. De erker van dit pand had een controlerende functie: de pastoor kon goed in de gaten houden wie er naar de kerk ging. Het Huis Ocrum (nr. 18) was van 1848 tot 1952 rooms burgerweeshuis. Dat kunt u nog zien aan de kinderkopjes die aan de 19e eeuwse voorgevel van het academiegebouw zijn aangebracht. De rode kleur van dit huis (na de restauratie aangebracht) zal door de loop der jaren een mooie grijs rode kleur krijgen.</value>
|
||||
</data>
|
||||
<data name="GKName" xml:space="preserve">
|
||||
<value>Big Church</value>
|
||||
</data>
|
||||
<data name="GMDescription" xml:space="preserve">
|
||||
<value>The Big market</value>
|
||||
</data>
|
||||
<data name="GMName" xml:space="preserve">
|
||||
<value>Big market</value>
|
||||
</data>
|
||||
<data name="HBDescription" xml:space="preserve">
|
||||
<value>The Hous of Brecht is one of the most historical buildings in Breda.</value>
|
||||
</data>
|
||||
<data name="HBName" xml:space="preserve">
|
||||
<value>House of Brecht</value>
|
||||
</data>
|
||||
<data name="HPDescription" xml:space="preserve">
|
||||
<value>The Gate</value>
|
||||
</data>
|
||||
<data name="HPName" xml:space="preserve">
|
||||
<value>The Gate</value>
|
||||
</data>
|
||||
<data name="KBDescription" xml:space="preserve">
|
||||
<value>TRANSLATE: Dit plein bevindt zich aan de zuiderzijde van het kasteel. U heeft zo een mooi uitzicht op de monumentale poort, de zgn. Stadhouderspoort met het wapen van stadhouder Willem de Vijfde, dat overigens pas later is aangebracht. Achter u ziet u het ruiterstandbeeld van stadhouder koning Willem III geplaatst. Voor dit standbeeld werd onder de burgerij van Breda een inzameling gehouden die f 47.000,-- opbracht. Voor de oude Nassaustad Breda is de stadhouderkoning van grote betekenis geweest. Hij voltooide na anderhalve eeuw de verbouwing van het Kasteel. Hendrik de Derde van Nassau en zijn (drede) vrouw Mencia de Mendoza hebben veel in Breda ver- toefd, maar verbleven dan toch bij voorkeur in de vertrekken boven de overigens al lang geleden gesloopte watermolen op het terrein van het Kasteel. Rechts van de poort bevindt zich het zgn. Blokhuis, de ambts- woning van de gouveneur van de KMA. Willem van Oranje woonde daar in een aangrenzende ruimte, maar Prins Maurits prefereerde de watermolen als dagelijks verblijf. Prins Philips Willem (1554-1618), de oudste en roomskatholieke zoon van Willem van Oranje, die vele jaren in Spaanse balling- schap verbleef en in Diest werd begraven, is de eerste Oranje geweest, die met zijn vrouw ook in het Kasteel ging wonen. Hij liet het park Valkenberg verfraaien en het Kasteel echt als een paleis inrichten. Bij zijn dood in 1618 werden in Breda tweeënveertig dagen achtereen de kerkklokken geluid. Op de plaats van de vensters, links en rechts van de poort, bevonden zich in de zestiende en zeventiende eeuw sierlijke open galerijen. Het muisgrijze gebouw links van de kasteelpoort werd gebouwd in 1867. Het maakt thans ook deel uit van het KMA gebouwen complex. Meer geschiedenis schuilt et achter de witte pui van het gebouw.</value>
|
||||
</data>
|
||||
<data name="KBName" xml:space="preserve">
|
||||
<value>Castle of Breda</value>
|
||||
</data>
|
||||
<data name="KTKDescription" xml:space="preserve">
|
||||
<value>TRANSLATE: In 1969 werden in Breda de Torenfeesten gehouden uit vreugde over de afsluiting van de restauratieperiode van de Grote Toren, die 25 jaar in beslag nam. Al die tijd hebben de Bredanaars, maar zij niet alleen, tegen een toren aangekeken die zijn schoonheid achter een netwerk van steigers verborgen hield. Ook tussen 1995 en 1997 werd de schoonheid van de Grote of Onze Lieve Vrouwe Kerk tijdelijk verborgen gehouden achter steigers. In bijna drie jaar tijd werd de kerk wederom van binnen gerestaureerd. De restauratie was onderverdeeld in drie fasen. In de eerste fase stonden onder andere werkzaamheden als het schoonspuiten van de buitenzijde, het repareren van het voegwerk en de glas-in-loodramen en het schilderen van de binnenzijde centraal. In de tweede fase werd de vloerverwarming aangelegd; In de derde fase is de rest van de kerk gerestaureerd. Uit onderzoek is vast komen te staan dat in 1410 de bouw van de kerk is begonnen. In de zestiende eeuw is de kerk aan de zuidzijde en aan de noordzijde uitgebreid met enkele kapellen, de huidige consistoriekamer en de kootomgang. De toren kwam in 1509 gereed; In 1468 was daarvoor de eerste steen gelegd,zodat de bouwperiode alles bij elkaar toch wel veertig jaar heeft geduurd. De torenspits brandde in 1694 af. In de jaren daarna werd hij herbouwd, onder andere met hout dat door stadhouderkoning Willem de derde uit zijn bossen was geschonken. In 1702 kon de haan er weer op worden geplaatst. Het is duidelijk dat de Heren van Breda, met name de Nassaufs, een belangrijke bijdrage hebben geleverd aan de wordingsgeschiedenis van de Grote Kerk. Die Heren van Breda liggen er ook begraven; Hun graftomben zijn ware kunsthistorische pronkstukken. Prins Willem van Oranje, die in 1584 in Delft werd vermoord, had in de Grote Kerk onder het prachtige grafmonument van Graaf Engelbert de Tweede een laatste rustplaats gereserveerd, maar zijn stoffelijk overschot en die van de na hem komende Oranjevorsten werden voortaan in Delft te aarde besteld.</value>
|
||||
</data>
|
||||
<data name="KTKName" xml:space="preserve">
|
||||
<value>Intersection Torenstraat/Kerkplein</value>
|
||||
</data>
|
||||
<data name="KZDescription" xml:space="preserve">
|
||||
<value>TRANSLATE: Op deze hoek ziet u aan de overkant een voornaam monument uit de geschiedenis van Breda: de kloosterkazerne. Het is een deel van het vroegere zusterklooster St. Catharinadal, dat hier sinds 1295 gevestigd was. Het huidige gebouw dateert uit 1504. In 1645 werden de zusters Norbertinessen vanuit Breda naar Oosterhout verdreven.</value>
|
||||
</data>
|
||||
<data name="KZName" xml:space="preserve">
|
||||
<value>Monastery barracks</value>
|
||||
</data>
|
||||
<data name="LHDescription" xml:space="preserve">
|
||||
<value>TRANSLATE: Tot 1812 deed dit park dienst als kasteeltuin voor de Heren van Breda. Het park dankt zijn naam aan een val- kenhuis, dat aan de rand ervan stond en van waaruit de kasteelbewoners en hun gasten de valkenjacht bedreven. Het park was van orgine een echt bos met hoge bomen. In de zeventiende eeuw verdween dat karakter door de aanleg van een tuin naar Franse stijl. Eén replica van de 17 beelden staat verderop in het park, in een speciaal aangelegd perkje. Dit perkje is een herinnering aan de Franse stijltuin. Het originele beeld is te bezichtigen in het Breda's Museum. In 1995 is het Valkenberg in een nieuw jasje gestoken. In het hele park zijn paden verlegd, struiken en bosschages weggehaald en nieuwe verlichting aangebracht. Daarnaast zijn er nieuwe banken in het park geplaatst en speelvoorzieningen voor de kinderen gemaakt. Bij opgravingen in het park zijn de fundamenten van een middeleeuwse muurtoren en van de stenen muur gevonden, die tot 1537 klein Breda omringde. Van twee muurtorens is een klein stukje opgebouwd.</value>
|
||||
</data>
|
||||
<data name="LHName" xml:space="preserve">
|
||||
<value>The Light House</value>
|
||||
</data>
|
||||
<data name="LZDescription" xml:space="preserve">
|
||||
<value>The Love Sister is a statue in the center of Breda. In Dutch it is known as the Liefdeszuster.</value>
|
||||
</data>
|
||||
<data name="LZName" xml:space="preserve">
|
||||
<value>Love Sister</value>
|
||||
</data>
|
||||
<data name="NBMDescription" xml:space="preserve">
|
||||
<value>TRANSLATE: Bij de ingang van het stadspark, het Valkenberg, staat een monument dat u iets vertelt over de wordings-geschiedenis van de stad Breda, maar vooral over de Heren van de stad uit het Huis van Nassau en de 500-jarige band tussen Breda en het Huis van Nassau. Op 3 juli 1905 werd het Nassau-Baronie-monument, zoals het officieel heet, met veel feestelijk vertoon door Koningin Wilhelmina onthuld. Het beeld herinnert aan het feit, dat in 1404 Graaf Engelbert, de eerste Bredase Nassau en zijn gemalin, Johanna van Polanen, werden ingehuldigd als Heer en Vrouwe van Breda. De ontwerper is de welbekende dr. P.J.H. Cuypers, die o.m. het Rijksmuseum en het Centraal Station in Amsterdam ontwierp. Op dit monument zijn niet alleen de wapenschilden van twintig gemeenten in en rond de Baronie aangebracht maar ook de Leeuw van Nassau die boven alles uittorent met koningskroon, zwaard en wapenschild. In de drie reliëfs is de 'blijde incomste' van Graaf Engelbert en zijn gemalin afgebeeld. De poorters bieden de sleutel van de stad aan.</value>
|
||||
</data>
|
||||
<data name="NBMName" xml:space="preserve">
|
||||
<value>Nassau Baronie Monument</value>
|
||||
</data>
|
||||
<data name="RDSDescription" xml:space="preserve">
|
||||
<value>Ridderstraat</value>
|
||||
</data>
|
||||
<data name="RDSName" xml:space="preserve">
|
||||
<value>Ridderstraat</value>
|
||||
</data>
|
||||
<data name="RouteDescription" xml:space="preserve">
|
||||
<value>The historical kilometer through Breda</value>
|
||||
</data>
|
||||
<data name="RouteLandmarks" xml:space="preserve">
|
||||
<value>Castle of Breda, Big Church, City Hall</value>
|
||||
</data>
|
||||
<data name="RouteName" xml:space="preserve">
|
||||
<value>Historical kilometer</value>
|
||||
</data>
|
||||
<data name="SGDescription" xml:space="preserve">
|
||||
<value>The Spaniard Hole is a monument in Breda. In Dutch it is known as Spanjaardsgat.</value>
|
||||
</data>
|
||||
<data name="SGName" xml:space="preserve">
|
||||
<value>Spaniard Hole</value>
|
||||
</data>
|
||||
<data name="SHDescription" xml:space="preserve">
|
||||
<value>TRANSLATE: De hoofdingang van het standhuis bevindt zich boven het bordes, dat bewaakt wordt door twee zandstenen leeuwen. Het stadhuis, zoals dat er nu uitziet, kwam pas in 1767 tot stand. Het zijn eigenlijk vier huizen, die toen door de bouwmeester van Oranje, Philips Willem Schonck, achter één gevel werden verborgen. Het oudste deel is de grote hal. Al in de vijftiende eeuw werd daarnaast ook een zgn. 'Cleyn raedthuys' in gebruik genomen. In 1898 kwam het meest rechtse huis, het 'Liggend Hert' erbij, dat nog steeds een aparte gevel. heeft. Ondanks het feit dat het stadhuis slechts beperkt geopend is voor het publiek, willen we u de volgende informatie over de binnen zijde ervan toch niet onthouden. Vrouwe Justitia boven de hoofdingang en het houten beeld achter in de hal geven aan dat in het stadhuis vroeger ook recht gesproken werd. De balie van de vroegere rechtbank, eens staande tegen de achtermuur van de hal, wordt nu in het Breda's Museum bewaard. Links hangt een grote kopie van het beroemde schilderij van Velasques 'Las Lanzas', dat de overgave van Breda aan de Spaanse bevelhebber Spinola (1625) in beeld brengt. Het oorspronkelijke schilderij hangt in het Prado te Madrid. Het stadhuis wordt nog gebruikt voor openbare raadsvergaderingen en voor het sluiten van huwelijken. De burgemeester, wethouders en gemeete-ambtenaren huizen sinds februari 1992 in het nieuwe Stadskantoor aan de Claudius Prinsenlaan in Breda. Door het poortgebouw rechts van het stadhuis lopen we het Stadserf op. Midden op dit pleintje herinnert het beeldje De Turfschipper van Gerarda Rueb, aan de legendarische overval in 1590 van Adriaan van Bergen met zijn Turfschip. (De VVV Breda verkoopt hiervan een replica).</value>
|
||||
</data>
|
||||
<data name="SHName" xml:space="preserve">
|
||||
<value>City hall</value>
|
||||
</data>
|
||||
<data name="SHPDescription" xml:space="preserve">
|
||||
<value>The Governer Port is a port in Breda</value>
|
||||
</data>
|
||||
<data name="SHPName" xml:space="preserve">
|
||||
<value>Governor Port</value>
|
||||
</data>
|
||||
<data name="VVVDescription" xml:space="preserve">
|
||||
<value>Tourist information office of Breda. This is the starting point of the route.</value>
|
||||
</data>
|
||||
<data name="VVVName" xml:space="preserve">
|
||||
<value>Tourist Information</value>
|
||||
</data>
|
||||
<data name="WMDescription" xml:space="preserve">
|
||||
<value>Willem Merkx garden</value>
|
||||
</data>
|
||||
<data name="WMName" xml:space="preserve">
|
||||
<value>Willem Merkx garden</value>
|
||||
</data>
|
||||
<data name="WP10" xml:space="preserve">
|
||||
<value>Intersection Kloosterplein/Vlaszak</value>
|
||||
</data>
|
||||
<data name="WP11" xml:space="preserve">
|
||||
<value>Intersection Vlaszak/Boschstraat</value>
|
||||
</data>
|
||||
<data name="WP12" xml:space="preserve">
|
||||
<value>Intersection Vlaszak/Boschstraat</value>
|
||||
</data>
|
||||
<data name="WP13" xml:space="preserve">
|
||||
<value>Entrance Veemarktstraat</value>
|
||||
</data>
|
||||
<data name="WP14" xml:space="preserve">
|
||||
<value>First bend Veemarktstraat</value>
|
||||
</data>
|
||||
<data name="WP15" xml:space="preserve">
|
||||
<value>Intersection Veemarktstraat/St.Annastraat</value>
|
||||
</data>
|
||||
<data name="WP16" xml:space="preserve">
|
||||
<value>Intersection St.Annastraat/Catharinastraat</value>
|
||||
</data>
|
||||
<data name="WP17" xml:space="preserve">
|
||||
<value>Intersection St.Annastraat/Catharinastraat</value>
|
||||
</data>
|
||||
<data name="WP18" xml:space="preserve">
|
||||
<value>Intersection Molenstraat/Kloosterplein</value>
|
||||
</data>
|
||||
<data name="WP4" xml:space="preserve">
|
||||
<value>Intersection Kasteelplein/Cingelstaart</value>
|
||||
</data>
|
||||
<data name="WP5" xml:space="preserve">
|
||||
<value>Bend Cingelstraat</value>
|
||||
</data>
|
||||
<data name="WP6" xml:space="preserve">
|
||||
<value>Intersection Torenstraat/Kerkplein</value>
|
||||
</data>
|
||||
<data name="WP7" xml:space="preserve">
|
||||
<value>Back to the Great Market</value>
|
||||
</data>
|
||||
<data name="WP8" xml:space="preserve">
|
||||
<value>Southern point Great Market</value>
|
||||
</data>
|
||||
<data name="WP9" xml:space="preserve">
|
||||
<value>Intersection St.Janstraat/Molenstraat</value>
|
||||
</data>
|
||||
<data name="WPY1" xml:space="preserve">
|
||||
<value>Path west of monument</value>
|
||||
</data>
|
||||
<data name="WPY3" xml:space="preserve">
|
||||
<value>End of Park</value>
|
||||
</data>
|
||||
<data name="WYP2" xml:space="preserve">
|
||||
<value>Navigation point</value>
|
||||
</data>
|
||||
</root>
|
||||
@@ -0,0 +1,345 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<data name="AVPDescription" xml:space="preserve">
|
||||
<value>Antonius van Paduakerk</value>
|
||||
</data>
|
||||
<data name="AVPName" xml:space="preserve">
|
||||
<value>Antonius van Paduakerk</value>
|
||||
</data>
|
||||
<data name="BGHDescription" xml:space="preserve">
|
||||
<value>Begijnenhof</value>
|
||||
</data>
|
||||
<data name="BGHName" xml:space="preserve">
|
||||
<value>Begijnenhof</value>
|
||||
</data>
|
||||
<data name="BHDescription" xml:space="preserve">
|
||||
<value>De haven markt die hier gevestigt is bestaat sinds 1934.</value>
|
||||
</data>
|
||||
<data name="BHName" xml:space="preserve">
|
||||
<value>Havenmarkt</value>
|
||||
</data>
|
||||
<data name="BTDescription" xml:space="preserve">
|
||||
<value>In de Molenstraat ziet u recht de Bibliotheek, ontworpen door architect Herman Hertzberger. Omdat de Molenstraat vrij smal is, heeft de architect ruimte gecreëerd door de bibliotheek schuin oplopende wanden te geven. Op de plaats van de bibliotheek (op de hoek met de Oude Vest) bevond zich vroeger een poort. Boven deze poort bevond zich 's Heeren Gevangenhuys, waar de zwaarst gestraften werden ondergebracht. De plaats is nog met keitjes in het asfalt aangegeven; de asfaltweg is de plaats van de oude stadsgracht.</value>
|
||||
</data>
|
||||
<data name="BTName" xml:space="preserve">
|
||||
<value>Bibliotheek</value>
|
||||
</data>
|
||||
<data name="BVDescription" xml:space="preserve">
|
||||
<value>Wie hier een pilsje pakt, ontdekt (overigens ook zonder dat pilsje) al heel gauw, dat dit plein het mooiste uitzicht biedt op de grote toren van de Grote Kerk. Vanaf deze plek kunt u ook de mooie brede onderbouw van die toren bewonderen. Er is veel te zien op dit pleintje. Links op de hoek van de Havermarkt en Reigerstraat ziet u het huis 'De Arent', gebouwd rond ca. 1490. Het heeft nu een zeventiende eeuwse trapgevel en is in 1966 geheel gerestaureerd en verbouwd tot restaurant. Tegenover u op de Havermarkt bevinden zich nog twee panden die uw aandacht verdienen. Havermarkt nummer 5 dateert uit de zestiende en zeventiend eeuw. 'De Vogelstruys' op Havermarkt 21 is een opmerkelijk zeventiende eeuws monument met een hoge, niet symmetrische trapgevel. Ook dit huis heeft in de loop de eeuwen allerlei functies en bestemmingen gehad. Het was onder meer refugiehuis voor de zusters van Catharinadal in de zeventiende eeuw. Voor het beeldje 'De Troubadour', dat aan het eind van de Havermarkt prijkt, zijn vier exemplaren vervaardigd. De andere drie werden onthuld in Diest, Orange en Dillenburg, de zustersteden van Breda in de in 1963 tot stand gekomen Unie van Oranjesteden. Een stukje verder in de Visserstraat (nr. 31), aan de rechterkant, staat een fraai bakstenen huis uit de 17e eeuw met overblijfselen van een zestiende eeuwse gothische woning, de Drie Moren geheten.</value>
|
||||
</data>
|
||||
<data name="BVIDescription" xml:space="preserve">
|
||||
<value>Binding van Isaac</value>
|
||||
</data>
|
||||
<data name="BVIName" xml:space="preserve">
|
||||
<value>Binding van Isaac</value>
|
||||
</data>
|
||||
<data name="BVMDescription" xml:space="preserve">
|
||||
<value>Dit monument is geplaats naar de bevrijding in 1951 om dit te herdenken.</value>
|
||||
</data>
|
||||
<data name="BVMName" xml:space="preserve">
|
||||
<value>Bevrijdingsmonument</value>
|
||||
</data>
|
||||
<data name="BVName" xml:space="preserve">
|
||||
<value>Vismarkt</value>
|
||||
</data>
|
||||
<data name="BYDescription" xml:space="preserve">
|
||||
<value>Café Beyerd</value>
|
||||
</data>
|
||||
<data name="BYName" xml:space="preserve">
|
||||
<value>Beyerd</value>
|
||||
</data>
|
||||
<data name="CTDescription" xml:space="preserve">
|
||||
<value>Chasse theater</value>
|
||||
</data>
|
||||
<data name="CTName" xml:space="preserve">
|
||||
<value>Chasse theater</value>
|
||||
</data>
|
||||
<data name="ESDescription" xml:space="preserve">
|
||||
<value>Einde stadswandeling</value>
|
||||
</data>
|
||||
<data name="ESName" xml:space="preserve">
|
||||
<value>Einde stadswandeling</value>
|
||||
</data>
|
||||
<data name="GHPDescription" xml:space="preserve">
|
||||
<value>Gasthuispoort</value>
|
||||
</data>
|
||||
<data name="GHPName" xml:space="preserve">
|
||||
<value>Gasthuispoort</value>
|
||||
</data>
|
||||
<data name="GKDescription" xml:space="preserve">
|
||||
<value>De bisschop van Breda keerde na een afwezigheid van 32 jaar aan het begin van 2001 terug naar de Antoniuskerk die daarmee de status van kathedraal opnieuw verwierf. Aan de voorgevel zijn duidelijk de drie soorten antieke zuilen te zien. Van onder naar boven: Dorische, Ionische en Corinthische zuilen. Het beeld boven de ingang stelt 'de Godsdienst' voor. Binnen valt direct de schitterende houten preekstoel op. Hierin is in verschillende panelen het leven van H. Antonius uitgebeeld. Even verder bevinden zich restanten of alleen maar herinneringen aan twee zeer voorname hofhuizen, het Huis Ocrum, waarin tot 1994 de Kunstacademie St. Joost was gevestigd en het Huis Hersbeeck, thans pastorie. In 1667 verbleven in beide huizen de Engelse gezanten, die deelnamen aan de Vredesonderhandelingen van Breda. De afgevaardigden van de Raad van State gebruikten het pand (nr. 16) wanneer zij in de stad op dienstreis waren, maar ook koning Lodewijk Napoleon heeft er gelogeerd. De erker van dit pand had een controlerende functie: de pastoor kon goed in de gaten houden wie er naar de kerk ging. Het Huis Ocrum (nr. 18) was van 1848 tot 1952 rooms burgerweeshuis. Dat kunt u nog zien aan de kinderkopjes die aan de 19e eeuwse voorgevel van het academiegebouw zijn aangebracht. De rode kleur van dit huis (na de restauratie aangebracht) zal door de loop der jaren een mooie grijs rode kleur krijgen.</value>
|
||||
</data>
|
||||
<data name="GKName" xml:space="preserve">
|
||||
<value>Grote Kerk</value>
|
||||
</data>
|
||||
<data name="GMDescription" xml:space="preserve">
|
||||
<value>De Grote Markt</value>
|
||||
</data>
|
||||
<data name="GMName" xml:space="preserve">
|
||||
<value>Grote Markt</value>
|
||||
</data>
|
||||
<data name="HBDescription" xml:space="preserve">
|
||||
<value>Het Huis van Brecht is een van de meer historische gebouwen in Breda.</value>
|
||||
</data>
|
||||
<data name="HBName" xml:space="preserve">
|
||||
<value>Huis van Brecht</value>
|
||||
</data>
|
||||
<data name="HPDescription" xml:space="preserve">
|
||||
<value>Het Poortje</value>
|
||||
</data>
|
||||
<data name="HPName" xml:space="preserve">
|
||||
<value>Het Poortje</value>
|
||||
</data>
|
||||
<data name="KBDescription" xml:space="preserve">
|
||||
<value>Dit plein bevindt zich aan de zuiderzijde van het kasteel. U heeft zo een mooi uitzicht op de monumentale poort, de zgn. Stadhouderspoort met het wapen van stadhouder Willem de Vijfde, dat overigens pas later is aangebracht. Achter u ziet u het ruiterstandbeeld van stadhouder koning Willem III geplaatst. Voor dit standbeeld werd onder de burgerij van Breda een inzameling gehouden die f 47.000,-- opbracht. Voor de oude Nassaustad Breda is de stadhouderkoning van grote betekenis geweest. Hij voltooide na anderhalve eeuw de verbouwing van het Kasteel. Hendrik de Derde van Nassau en zijn (drede) vrouw Mencia de Mendoza hebben veel in Breda ver- toefd, maar verbleven dan toch bij voorkeur in de vertrekken boven de overigens al lang geleden gesloopte watermolen op het terrein van het Kasteel. Rechts van de poort bevindt zich het zgn. Blokhuis, de ambts- woning van de gouveneur van de KMA. Willem van Oranje woonde daar in een aangrenzende ruimte, maar Prins Maurits prefereerde de watermolen als dagelijks verblijf. Prins Philips Willem (1554-1618), de oudste en roomskatholieke zoon van Willem van Oranje, die vele jaren in Spaanse balling- schap verbleef en in Diest werd begraven, is de eerste Oranje geweest, die met zijn vrouw ook in het Kasteel ging wonen. Hij liet het park Valkenberg verfraaien en het Kasteel echt als een paleis inrichten. Bij zijn dood in 1618 werden in Breda tweeënveertig dagen achtereen de kerkklokken geluid. Op de plaats van de vensters, links en rechts van de poort, bevonden zich in de zestiende en zeventiende eeuw sierlijke open galerijen. Het muisgrijze gebouw links van de kasteelpoort werd gebouwd in 1867. Het maakt thans ook deel uit van het KMA gebouwen complex. Meer geschiedenis schuilt et achter de witte pui van het gebouw.</value>
|
||||
</data>
|
||||
<data name="KBName" xml:space="preserve">
|
||||
<value>Kasteel van Breda</value>
|
||||
</data>
|
||||
<data name="KTKDescription" xml:space="preserve">
|
||||
<value>In 1969 werden in Breda de Torenfeesten gehouden uit vreugde over de afsluiting van de restauratieperiode van de Grote Toren, die 25 jaar in beslag nam. Al die tijd hebben de Bredanaars, maar zij niet alleen, tegen een toren aangekeken die zijn schoonheid achter een netwerk van steigers verborgen hield. Ook tussen 1995 en 1997 werd de schoonheid van de Grote of Onze Lieve Vrouwe Kerk tijdelijk verborgen gehouden achter steigers. In bijna drie jaar tijd werd de kerk wederom van binnen gerestaureerd. De restauratie was onderverdeeld in drie fasen. In de eerste fase stonden onder andere werkzaamheden als het schoonspuiten van de buitenzijde, het repareren van het voegwerk en de glas-in-loodramen en het schilderen van de binnenzijde centraal. In de tweede fase werd de vloerverwarming aangelegd; In de derde fase is de rest van de kerk gerestaureerd. Uit onderzoek is vast komen te staan dat in 1410 de bouw van de kerk is begonnen. In de zestiende eeuw is de kerk aan de zuidzijde en aan de noordzijde uitgebreid met enkele kapellen, de huidige consistoriekamer en de kootomgang. De toren kwam in 1509 gereed; In 1468 was daarvoor de eerste steen gelegd,zodat de bouwperiode alles bij elkaar toch wel veertig jaar heeft geduurd. De torenspits brandde in 1694 af. In de jaren daarna werd hij herbouwd, onder andere met hout dat door stadhouderkoning Willem de derde uit zijn bossen was geschonken. In 1702 kon de haan er weer op worden geplaatst. Het is duidelijk dat de Heren van Breda, met name de Nassaufs, een belangrijke bijdrage hebben geleverd aan de wordingsgeschiedenis van de Grote Kerk. Die Heren van Breda liggen er ook begraven; Hun graftomben zijn ware kunsthistorische pronkstukken. Prins Willem van Oranje, die in 1584 in Delft werd vermoord, had in de Grote Kerk onder het prachtige grafmonument van Graaf Engelbert de Tweede een laatste rustplaats gereserveerd, maar zijn stoffelijk overschot en die van de na hem komende Oranjevorsten werden voortaan in Delft te aarde besteld.</value>
|
||||
</data>
|
||||
<data name="KTKName" xml:space="preserve">
|
||||
<value>Kruising Torenstraat/Kerkplein</value>
|
||||
</data>
|
||||
<data name="KZDescription" xml:space="preserve">
|
||||
<value>Op deze hoek ziet u aan de overkant een voornaam monument uit de geschiedenis van Breda: de kloosterkazerne. Het is een deel van het vroegere zusterklooster St. Catharinadal, dat hier sinds 1295 gevestigd was. Het huidige gebouw dateert uit 1504. In 1645 werden de zusters Norbertinessen vanuit Breda naar Oosterhout verdreven.</value>
|
||||
</data>
|
||||
<data name="KZName" xml:space="preserve">
|
||||
<value>Kloosterkazerne</value>
|
||||
</data>
|
||||
<data name="LHDescription" xml:space="preserve">
|
||||
<value>Tot 1812 deed dit park dienst als kasteeltuin voor de Heren van Breda. Het park dankt zijn naam aan een val- kenhuis, dat aan de rand ervan stond en van waaruit de kasteelbewoners en hun gasten de valkenjacht bedreven. Het park was van orgine een echt bos met hoge bomen. In de zeventiende eeuw verdween dat karakter door de aanleg van een tuin naar Franse stijl. Eén replica van de 17 beelden staat verderop in het park, in een speciaal aangelegd perkje. Dit perkje is een herinnering aan de Franse stijltuin. Het originele beeld is te bezichtigen in het Breda's Museum. In 1995 is het Valkenberg in een nieuw jasje gestoken. In het hele park zijn paden verlegd, struiken en bosschages weggehaald en nieuwe verlichting aangebracht. Daarnaast zijn er nieuwe banken in het park geplaatst en speelvoorzieningen voor de kinderen gemaakt. Bij opgravingen in het park zijn de fundamenten van een middeleeuwse muurtoren en van de stenen muur gevonden, die tot 1537 klein Breda omringde. Van twee muurtorens is een klein stukje opgebouwd.</value>
|
||||
</data>
|
||||
<data name="LHName" xml:space="preserve">
|
||||
<value>The Light House</value>
|
||||
</data>
|
||||
<data name="LZDescription" xml:space="preserve">
|
||||
<value>De liefdeszuster is een standbeeld in het centrum van Breda</value>
|
||||
</data>
|
||||
<data name="LZName" xml:space="preserve">
|
||||
<value>Liefdeszuster</value>
|
||||
</data>
|
||||
<data name="NBMDescription" xml:space="preserve">
|
||||
<value>Bij de ingang van het stadspark, het Valkenberg, staat een monument dat u iets vertelt over de wordings-geschiedenis van de stad Breda, maar vooral over de Heren van de stad uit het Huis van Nassau en de 500-jarige band tussen Breda en het Huis van Nassau. Op 3 juli 1905 werd het Nassau-Baronie-monument, zoals het officieel heet, met veel feestelijk vertoon door Koningin Wilhelmina onthuld. Het beeld herinnert aan het feit, dat in 1404 Graaf Engelbert, de eerste Bredase Nassau en zijn gemalin, Johanna van Polanen, werden ingehuldigd als Heer en Vrouwe van Breda. De ontwerper is de welbekende dr. P.J.H. Cuypers, die o.m. het Rijksmuseum en het Centraal Station in Amsterdam ontwierp. Op dit monument zijn niet alleen de wapenschilden van twintig gemeenten in en rond de Baronie aangebracht maar ook de Leeuw van Nassau die boven alles uittorent met koningskroon, zwaard en wapenschild. In de drie reliëfs is de 'blijde incomste' van Graaf Engelbert en zijn gemalin afgebeeld. De poorters bieden de sleutel van de stad aan.</value>
|
||||
</data>
|
||||
<data name="NBMName" xml:space="preserve">
|
||||
<value>Nassau Baronie Monument</value>
|
||||
</data>
|
||||
<data name="RDSDescription" xml:space="preserve">
|
||||
<value>Ridderstraat</value>
|
||||
</data>
|
||||
<data name="RDSName" xml:space="preserve">
|
||||
<value>Ridderstraat</value>
|
||||
</data>
|
||||
<data name="RouteDescription" xml:space="preserve">
|
||||
<value>De historische kilometer door Breda</value>
|
||||
</data>
|
||||
<data name="RouteLandmarks" xml:space="preserve">
|
||||
<value>Kasteel van Breda, Grote Kerk, Stadhuis</value>
|
||||
</data>
|
||||
<data name="RouteName" xml:space="preserve">
|
||||
<value>Historische kilometer</value>
|
||||
</data>
|
||||
<data name="SGDescription" xml:space="preserve">
|
||||
<value>Het Spanjaardsgat is een monument</value>
|
||||
</data>
|
||||
<data name="SGName" xml:space="preserve">
|
||||
<value>Spanjaardsgat</value>
|
||||
</data>
|
||||
<data name="SHDescription" xml:space="preserve">
|
||||
<value>De hoofdingang van het standhuis bevindt zich boven het bordes, dat bewaakt wordt door twee zandstenen leeuwen. Het stadhuis, zoals dat er nu uitziet, kwam pas in 1767 tot stand. Het zijn eigenlijk vier huizen, die toen door de bouwmeester van Oranje, Philips Willem Schonck, achter één gevel werden verborgen. Het oudste deel is de grote hal. Al in de vijftiende eeuw werd daarnaast ook een zgn. 'Cleyn raedthuys' in gebruik genomen. In 1898 kwam het meest rechtse huis, het 'Liggend Hert' erbij, dat nog steeds een aparte gevel. heeft. Ondanks het feit dat het stadhuis slechts beperkt geopend is voor het publiek, willen we u de volgende informatie over de binnen zijde ervan toch niet onthouden. Vrouwe Justitia boven de hoofdingang en het houten beeld achter in de hal geven aan dat in het stadhuis vroeger ook recht gesproken werd. De balie van de vroegere rechtbank, eens staande tegen de achtermuur van de hal, wordt nu in het Breda's Museum bewaard. Links hangt een grote kopie van het beroemde schilderij van Velasques 'Las Lanzas', dat de overgave van Breda aan de Spaanse bevelhebber Spinola (1625) in beeld brengt. Het oorspronkelijke schilderij hangt in het Prado te Madrid. Het stadhuis wordt nog gebruikt voor openbare raadsvergaderingen en voor het sluiten van huwelijken. De burgemeester, wethouders en gemeete-ambtenaren huizen sinds februari 1992 in het nieuwe Stadskantoor aan de Claudius Prinsenlaan in Breda. Door het poortgebouw rechts van het stadhuis lopen we het Stadserf op. Midden op dit pleintje herinnert het beeldje De Turfschipper van Gerarda Rueb, aan de legendarische overval in 1590 van Adriaan van Bergen met zijn Turfschip. (De VVV Breda verkoopt hiervan een replica).</value>
|
||||
</data>
|
||||
<data name="SHName" xml:space="preserve">
|
||||
<value>Stadhuis</value>
|
||||
</data>
|
||||
<data name="SHPDescription" xml:space="preserve">
|
||||
<value>De Stathouderspoort is een poort in Breda</value>
|
||||
</data>
|
||||
<data name="SHPName" xml:space="preserve">
|
||||
<value>Stadhouderspoort</value>
|
||||
</data>
|
||||
<data name="VVVDescription" xml:space="preserve">
|
||||
<value>VVV van Breda. Dit is het startpunt van de route</value>
|
||||
</data>
|
||||
<data name="VVVName" xml:space="preserve">
|
||||
<value>VVV</value>
|
||||
</data>
|
||||
<data name="WMDescription" xml:space="preserve">
|
||||
<value>Willem Merkxtuin</value>
|
||||
</data>
|
||||
<data name="WMName" xml:space="preserve">
|
||||
<value>Willem Merkxtuin</value>
|
||||
</data>
|
||||
<data name="WP1" xml:space="preserve">
|
||||
<value>Pad ten westen van monument</value>
|
||||
</data>
|
||||
<data name="WP10" xml:space="preserve">
|
||||
<value>Kruising Kloosterplein/Vlaszak</value>
|
||||
</data>
|
||||
<data name="WP11" xml:space="preserve">
|
||||
<value>Kruising Vlaszak/Boschstraat</value>
|
||||
</data>
|
||||
<data name="WP12" xml:space="preserve">
|
||||
<value>Kruising Vlaszak/Boschstraat</value>
|
||||
</data>
|
||||
<data name="WP13" xml:space="preserve">
|
||||
<value>Ingang Veemarktstraat</value>
|
||||
</data>
|
||||
<data name="WP14" xml:space="preserve">
|
||||
<value>Eerste bocht Veemarktstraat</value>
|
||||
</data>
|
||||
<data name="WP15" xml:space="preserve">
|
||||
<value>Kruising Veemarktstraat/St.Annastraat</value>
|
||||
</data>
|
||||
<data name="WP16" xml:space="preserve">
|
||||
<value>Kruising St.Annastraat/Catharinastraat</value>
|
||||
</data>
|
||||
<data name="WP17" xml:space="preserve">
|
||||
<value>Kruising St.Annastraat/Catharinastraat</value>
|
||||
</data>
|
||||
<data name="WP18" xml:space="preserve">
|
||||
<value>Kruising Molenstraat/Kloosterplein</value>
|
||||
</data>
|
||||
<data name="WP2" xml:space="preserve">
|
||||
<value>Navigatiepunt</value>
|
||||
</data>
|
||||
<data name="WP3" xml:space="preserve">
|
||||
<value>Einde park</value>
|
||||
</data>
|
||||
<data name="WP4" xml:space="preserve">
|
||||
<value>Kruising Kasteelplein/Cingelstaart</value>
|
||||
</data>
|
||||
<data name="WP5" xml:space="preserve">
|
||||
<value>Bocht Cingelstraat</value>
|
||||
</data>
|
||||
<data name="WP6" xml:space="preserve">
|
||||
<value>Kruising Torenstraat/Kerkplein</value>
|
||||
</data>
|
||||
<data name="WP7" xml:space="preserve">
|
||||
<value>Terug naar de grote markt</value>
|
||||
</data>
|
||||
<data name="WP8" xml:space="preserve">
|
||||
<value>Zuidpunt Grote Markt</value>
|
||||
</data>
|
||||
<data name="WP9" xml:space="preserve">
|
||||
<value>Kruising St.Janstraat/Molenstraat</value>
|
||||
</data>
|
||||
</root>
|
||||
|
After Width: | Height: | Size: 332 KiB |
|
After Width: | Height: | Size: 229 KiB |
|
After Width: | Height: | Size: 238 KiB |
|
After Width: | Height: | Size: 385 KiB |
|
After Width: | Height: | Size: 276 KiB |
|
After Width: | Height: | Size: 284 KiB |
|
After Width: | Height: | Size: 273 KiB |
|
After Width: | Height: | Size: 262 KiB |
|
After Width: | Height: | Size: 295 KiB |
|
After Width: | Height: | Size: 360 KiB |
|
After Width: | Height: | Size: 303 KiB |
|
After Width: | Height: | Size: 347 KiB |
|
After Width: | Height: | Size: 415 KiB |
|
After Width: | Height: | Size: 335 KiB |
|
After Width: | Height: | Size: 299 KiB |
|
After Width: | Height: | Size: 230 KiB |
|
After Width: | Height: | Size: 662 KiB |
|
After Width: | Height: | Size: 457 KiB |
|
After Width: | Height: | Size: 256 KiB |
|
After Width: | Height: | Size: 467 KiB |
|
After Width: | Height: | Size: 339 KiB |
|
After Width: | Height: | Size: 385 KiB |
|
After Width: | Height: | Size: 307 KiB |
|
After Width: | Height: | Size: 373 KiB |
|
After Width: | Height: | Size: 330 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
@@ -0,0 +1,322 @@
|
||||
{
|
||||
"name": "Historische kilometer",
|
||||
"description": "De historische kilometer door Breda",
|
||||
"landmarks": "Kasteel van Breda, Grote Kerk, Stadhuis",
|
||||
"waypoints": [
|
||||
{
|
||||
"name": "VVV",
|
||||
"landmark": true,
|
||||
"description": "VVV van Breda",
|
||||
"image": "historische_kilometer_1.jpg",
|
||||
"latitude": 51.594112,
|
||||
"longitude": 4.779417
|
||||
},
|
||||
|
||||
{
|
||||
"name": "Liefdeszuster",
|
||||
"landmark": true,
|
||||
"description": "Liefdeszuster NL",
|
||||
"image": "historische_kilometer_3.jpg",
|
||||
"latitude": 51.593278,
|
||||
"longitude": 4.779388
|
||||
},
|
||||
{
|
||||
"name": "Nassau Baronie Monument",
|
||||
"landmark": true,
|
||||
"description": "Bij de ingang van het stadspark, het Valkenberg, staat een monument dat u iets vertelt over de wordings-geschiedenis van de stad Breda, maar vooral over de Heren van de stad uit het Huis van Nassau en de 500-jarige band tussen Breda en het Huis van Nassau. Op 3 juli 1905 werd het Nassau-Baronie-monument, zoals het officieel heet, met veel feestelijk vertoon door Koningin Wilhelmina onthuld. Het beeld herinnert aan het feit, dat in 1404 Graaf Engelbert, de eerste Bredase Nassau en zijn gemalin, Johanna van Polanen, werden ingehuldigd als Heer en Vrouwe van Breda. De ontwerper is de welbekende dr. P.J.H. Cuypers, die o.m. het Rijksmuseum en het Centraal Station in Amsterdam ontwierp. Op dit monument zijn niet alleen de wapenschilden van twintig gemeenten in en rond de Baronie aangebracht maar ook de Leeuw van Nassau die boven alles uittorent met koningskroon, zwaard en wapenschild. In de drie reliëfs is de 'blijde incomste' van Graaf Engelbert en zijn gemalin afgebeeld. De poorters bieden de sleutel van de stad aan.",
|
||||
"image": "historische_kilometer_4.jpg",
|
||||
"latitude": 51.5925,
|
||||
"longitude": 4.779695
|
||||
},
|
||||
{
|
||||
"name": "Pad ten westen van monument ",
|
||||
"landmark": false,
|
||||
"latitude": 51.5925,
|
||||
"longitude": 4.779388
|
||||
},
|
||||
{
|
||||
"name": "The Light House",
|
||||
"landmark": true,
|
||||
"description": "Tot 1812 deed dit park dienst als kasteeltuin voor de Heren van Breda. Het park dankt zijn naam aan een val- kenhuis, dat aan de rand ervan stond en van waaruit de kasteelbewoners en hun gasten de valkenjacht bedreven. Het park was van orgine een echt bos met hoge bomen. In de zeventiende eeuw verdween dat karakter door de aanleg van een tuin naar Franse stijl. Eén replica van de 17 beelden staat verderop in het park, in een speciaal aangelegd perkje. Dit perkje is een herinnering aan de Franse stijltuin. Het originele beeld is te bezichtigen in het Breda's Museum. In 1995 is het Valkenberg in een nieuw jasje gestoken. In het hele park zijn paden verlegd, struiken en bosschages weggehaald en nieuwe verlichting aangebracht. Daarnaast zijn er nieuwe banken in het park geplaatst en speelvoorzieningen voor de kinderen gemaakt. Bij opgravingen in het park zijn de fundamenten van een middeleeuwse muurtoren en van de stenen muur gevonden, die tot 1537 klein Breda omringde. Van twee muurtorens is een klein stukje opgebouwd. ",
|
||||
"image": "historische_kilometer_5.jpg",
|
||||
"latitude": 51.592833,
|
||||
"longitude": 4.778472
|
||||
},
|
||||
{
|
||||
"name": "Navigatiepunt",
|
||||
"landmark": false,
|
||||
"latitude": 51.592667,
|
||||
"longitude": 4.777917
|
||||
},
|
||||
{
|
||||
"name": "Einde park",
|
||||
"landmark": false,
|
||||
"latitude": 51.590612,
|
||||
"longitude": 4.777
|
||||
},
|
||||
{
|
||||
"name": "Kasteel van Breda",
|
||||
"landmark": true,
|
||||
"description": "Dit plein bevindt zich aan de zuiderzijde van het kasteel. U heeft zo een mooi uitzicht op de monumentale poort, de zgn. Stadhouderspoort met het wapen van stadhouder Willem de Vijfde, dat overigens pas later is aangebracht. Achter u ziet u het ruiterstandbeeld van stadhouder koning Willem III geplaatst. Voor dit standbeeld werd onder de burgerij van Breda een inzameling gehouden die f 47.000,-- opbracht. Voor de oude Nassaustad Breda is de stadhouderkoning van grote betekenis geweest. Hij voltooide na anderhalve eeuw de verbouwing van het Kasteel. Hendrik de Derde van Nassau en zijn (drede) vrouw Mencia de Mendoza hebben veel in Breda ver- toefd, maar verbleven dan toch bij voorkeur in de vertrekken boven de overigens al lang geleden gesloopte watermolen op het terrein van het Kasteel. Rechts van de poort bevindt zich het zgn. Blokhuis, de ambts- woning van de gouveneur van de KMA. Willem van Oranje woonde daar in een aangrenzende ruimte, maar Prins Maurits prefereerde de watermolen als dagelijks verblijf. Prins Philips Willem (1554-1618), de oudste en roomskatholieke zoon van Willem van Oranje, die vele jaren in Spaanse balling- schap verbleef en in Diest werd begraven, is de eerste Oranje geweest, die met zijn vrouw ook in het Kasteel ging wonen. Hij liet het park Valkenberg verfraaien en het Kasteel echt als een paleis inrichten. Bij zijn dood in 1618 werden in Breda tweeënveertig dagen achtereen de kerkklokken geluid. Op de plaats van de vensters, links en rechts van de poort, bevonden zich in de zestiende en zeventiende eeuw sierlijke open galerijen. Het muisgrijze gebouw links van de kasteelpoort werd gebouwd in 1867. Het maakt thans ook deel uit van het KMA gebouwen complex. Meer geschiedenis schuilt et achter de witte pui van het gebouw ",
|
||||
"image": "historische_kilometer_9.jpg",
|
||||
"latitude": 51.590612,
|
||||
"longitude": 4.776167
|
||||
},
|
||||
{
|
||||
"name": "Stadhouderspoort",
|
||||
"landmark": true,
|
||||
"description": "De Stathouderspoort is een poort in Breda",
|
||||
"image": "historische_kilometer_11.jpg",
|
||||
"latitude": 51.589695,
|
||||
"longitude": 4.776138
|
||||
},
|
||||
{
|
||||
"name": "Kruising Kasteelplein/Cingelstaart",
|
||||
"landmark": false,
|
||||
"latitude": 51.590333,
|
||||
"longitude": 4.776
|
||||
},
|
||||
{
|
||||
"name": "Bocht Cingelstraat",
|
||||
"landmark": false,
|
||||
"latitude": 51.590388,
|
||||
"longitude": 4.775
|
||||
},
|
||||
{
|
||||
"name": "Huis van Brecht",
|
||||
"landmark": true,
|
||||
"description": "Het Huis van Brecht is een van de meer historyse gebouwen in Breda.",
|
||||
"image": "historische_kilometer_7.jpg",
|
||||
"latitude": 51.590028,
|
||||
"longitude": 4.774362
|
||||
},
|
||||
{
|
||||
"name": "Spanjaardsgat",
|
||||
"landmark": true,
|
||||
"description": "Het Spanjaardsgat is een monument",
|
||||
"image": "historische_kilometer_6.jpg",
|
||||
"latitude": 51.590195,
|
||||
"longitude": 4.773445
|
||||
},
|
||||
{
|
||||
"name": "Begin Vismarkt",
|
||||
"landmark": true,
|
||||
"description": "pilsje pakt, ontdekt (overigens ook zonder dat pilsje) al heel gauw, dat dit plein het mooiste uitzicht biedt op de grote toren van de Grote Kerk. Vanaf deze plek kunt u ook de mooie brede onderbouw van die toren bewonderen. Er is veel te zien op dit pleintje. Links op de hoek van de Havermarkt en Reigerstraat ziet u het huis 'De Arent', gebouwd rond ca. 1490. Het heeft nu een zeventiende eeuwse trapgevel en is in 1966 geheel gerestaureerd en verbouwd tot restaurant. Tegenover u op de Havermarkt bevinden zich nog twee panden die uw aandacht verdienen. Havermarkt nummer 5 dateert uit de zestiende en zeventiend eeuw. 'De Vogelstruys' op Havermarkt 21 is een opmerkelijk zeventiende eeuws monument met een hoge, niet symmetrische trapgevel. Ook dit huis heeft in de loop de eeuwen allerlei functies en bestemmingen gehad. Het was onder meer refugiehuis voor de zusters van Catharinadal in de zeventiende eeuw. Voor het beeldje 'De Troubadour', dat aan het eind van de Havermarkt prijkt, zijn vier exemplaren vervaardigd. De andere drie werden onthuld in Diest, Orange en Dillenburg, de zustersteden van Breda in de in 1963 tot stand gekomen Unie van Oranjesteden. Een stukje verder in de Visserstraat (nr. 31), aan de rechterkant, staat een fraai bakstenen huis uit de 17e eeuw met overblijfselen van een zestiende eeuwse gothische woning, de Drie Moren geheten. ",
|
||||
"image": "historische_kilometer_20.jpg",
|
||||
"latitude": 51.589833,
|
||||
"longitude": 4.773333
|
||||
},
|
||||
{
|
||||
"name": "Begin Havenmarkt",
|
||||
"landmark": true,
|
||||
"description": "De haven markt die hier gevestigt is bestaat sins 1934.....",
|
||||
"image": "historische_kilometer_19.jpg",
|
||||
"latitude": 51.589362,
|
||||
"longitude": 4.774445
|
||||
},
|
||||
{
|
||||
"name": "Kruising Torenstraat/Kerkplein",
|
||||
"landmark": true,
|
||||
"description": "In 1969 werden in Breda de Torenfeesten gehouden uit vreugde over de afsluiting van de restauratieperiode van de Grote Toren, die 25 jaar in beslag nam. Al die tijd hebben de Bredanaars, maar zij niet alleen, tegen een toren aangekeken die zijn schoonheid achter een netwerk van steigers verborgen hield. Ook tussen 1995 en 1997 werd de schoonheid van de Grote of Onze Lieve Vrouwe Kerk tijdelijk verborgen gehouden achter steigers. In bijna drie jaar tijd werd de kerk wederom van binnen gerestaureerd. De restauratie was onderverdeeld in drie fasen. In de eerste fase stonden onder andere werkzaamheden als het schoonspuiten van de buitenzijde, het repareren van het voegwerk en de glas-in-loodramen en het schilderen van de binnenzijde centraal. In de tweede fase werd de vloerverwarming aangelegd; In de derde fase is de rest van de kerk gerestaureerd. Uit onderzoek is vast komen te staan dat in 1410 de bouw van de kerk is begonnen. In de zestiende eeuw is de kerk aan de zuidzijde en aan de noordzijde uitgebreid met enkele kapellen, de huidige consistoriekamer en de kootomgang. De toren kwam in 1509 gereed; In 1468 was daarvoor de eerste steen gelegd,zodat de bouwperiode alles bij elkaar toch wel veertig jaar heeft geduurd. De torenspits brandde in 1694 af. In de jaren daarna werd hij herbouwd, onder andere met hout dat door stadhouderkoning Willem de derde uit zijn bossen was geschonken. In 1702 kon de haan er weer op worden geplaatst. Het is duidelijk dat de Heren van Breda, met name de Nassau�fs, een belangrijke bijdrage hebben geleverd aan de wordingsgeschiedenis van de Grote Kerk. Die Heren van Breda liggen er ook begraven; Hun graftomben zijn ware kunsthistorische pronkstukken. Prins Willem van Oranje, die in 1584 in Delft werd vermoord, had in de Grote Kerk onder het prachtige grafmonument van Graaf Engelbert de Tweede een laatste rustplaats gereserveerd, maar zijn stoffelijk overschot en die van de na hem komende Oranjevorsten werden voortaan in Delft te aarde besteld. ",
|
||||
"latitude": 51.588778,
|
||||
"longitude": 4.774888
|
||||
},
|
||||
{
|
||||
"name": "Grote Kerk",
|
||||
"landmark": true,
|
||||
"description": "de bisschop van Breda keerde na een afwezigheid van 32 jaar aan het begin van 2001 terug naar de Antoniuskerk die daarmee de status van kathedraal opnieuw verwierf. Aan de voorgevel zijn duidelijk de drie soorten antieke zuilen te zien. Van onder naar boven: Dorische, Ionische en Corinthische zuilen. Het beeld boven de ingang stelt 'de Godsdienst' voor. Binnen valt direct de schitterende houten preekstoel op. Hierin is in verschillende panelen het leven van H. Antonius uitgebeeld. Even verder bevinden zich restanten of alleen maar herinneringen aan twee zeer voorname hofhuizen, het Huis Ocrum, waarin tot 1994 de Kunstacademie St. Joost was gevestigd en het Huis Hersbeeck, thans pastorie. In 1667 verbleven in beide huizen de Engelse gezanten, die deelnamen aan de Vredesonderhandelingen van Breda. De afgevaardigden van de Raad van State gebruikten het pand (nr. 16) wanneer zij in de stad op dienstreis waren, maar ook koning Lodewijk Napoleon heeft er gelogeerd. De erker van dit pand had een controlerende functie: de pastoor kon goed in de gaten houden wie er naar de kerk ging. Het Huis Ocrum (nr. 18) was van 1848 tot 1952 rooms burgerweeshuis. Dat kunt u nog zien aan de kinderkopjes die aan de 19e eeuwse voorgevel van het academiegebouw zijn aangebracht. De rode kleur van dit huis (na de restauratie aangebracht) zal door de loop der jaren een mooie grijs rode kleur van dit huis (na de restauratie aangebracht) zal door de loop der jaren een mooie grijs rode kleur krijgen. ",
|
||||
"image": "historische_kilometer_10.jpg",
|
||||
"latitude": 51.588833,
|
||||
"longitude": 4.775278
|
||||
},
|
||||
{
|
||||
"name": "Kruising Torenstraat/Kerkplein",
|
||||
"landmark": false,
|
||||
"latitude": 51.588778,
|
||||
"longitude": 4.774888
|
||||
},
|
||||
{
|
||||
"name": "Het Poortje",
|
||||
"landmark": true,
|
||||
"description": "Het Poortje ..........",
|
||||
"latitude": 51.588195,
|
||||
"longitude": 4.775138
|
||||
},
|
||||
{
|
||||
"name": "Ridderstraat",
|
||||
"landmark": true,
|
||||
"description": "Ridderstraat ..........",
|
||||
"latitude": 51.587083,
|
||||
"longitude": 4.77575
|
||||
},
|
||||
{
|
||||
"name": "Grote Markt",
|
||||
"landmark": true,
|
||||
"description": "De Grote Markt",
|
||||
"image": "historische_kilometer_17.jpg",
|
||||
"latitude": 51.587417,
|
||||
"longitude": 4.776555
|
||||
},
|
||||
{
|
||||
"name": "Bevrijdingsmonument",
|
||||
"landmark": true,
|
||||
"description": "Dit monument is geplaats naar de bevrijding in 1951 om dit te herdenken.",
|
||||
"image": "historische_kilometer_24.jpg",
|
||||
"latitude": 51.588028,
|
||||
"longitude": 4.776333
|
||||
},
|
||||
{
|
||||
"name": "Stadhuis",
|
||||
"landmark": true,
|
||||
"description": "De hoofdingang van het standhuis bevindt zich boven het bordes, dat bewaakt wordt door twee zandstenen leeuwen. Het stadhuis, zoals dat er nu uitziet, kwam pas in 1767 tot stand. Het zijn eigenlijk vier huizen, die toen door de bouwmeester van Oranje, Philips Willem Schonck, achter één gevel werden verborgen. Het oudste deel is de grote hal. Al in de vijftiende eeuw werd daarnaast ook een zgn. 'Cleyn raedthuys' in gebruik genomen. In 1898 kwam het meest rechtse huis, het 'Liggend Hert' erbij, dat nog steeds een aparte gevel. heeft. Ondanks het feit dat het stadhuis slechts beperkt geopend is voor het publiek, willen we u de volgende informatie over de binnen zijde ervan toch niet onthouden. Vrouwe Justitia boven de hoofdingang en het houten beeld achter in de hal geven aan dat in het stadhuis vroeger ook recht gesproken werd. De balie van de vroegere rechtbank, eens staande tegen de achtermuur van de hal, wordt nu in het Breda's Museum bewaard. Links hangt een grote kopie van het beroemde schilderij van Velasques 'Las Lanzas', dat de overgave van Breda aan de Spaanse bevelhebber Spinola (1625) in beeld brengt. Het oorspronkelijke schilderij hangt in het Prado te Madrid. Het stadhuis wordt nog gebruikt voor openbare raadsvergaderingen en voor het sluiten van huwelijken. De burgemeester, wethouders en gemeete-ambtenaren huizen sinds februari 1992 in het nieuwe Stadskantoor aan de Claudius Prinsenlaan in Breda. Door het poortgebouw rechts van het stadhuis lopen we het Stadserf op. Midden op dit pleintje herinnert het beeldje De Turfschipper van Gerarda Rueb, aan de legendarische overval in 1590 van Adriaan van Bergen met zijn Turfschip. (De VVV Breda verkoopt hiervan een replica). ",
|
||||
"latitude": 51.58875,
|
||||
"longitude": 4.776112
|
||||
},
|
||||
{ // corordinaten
|
||||
"name": "terug naar de grote markt",
|
||||
"landmark": false,
|
||||
"latitude": 51.587972,
|
||||
"longitude": 4.776362
|
||||
},
|
||||
{
|
||||
"name": "zuidpunt Grote makrt",
|
||||
"landmark": false,
|
||||
"latitude": 51.5875,
|
||||
"longitude": 4.776555
|
||||
},
|
||||
{
|
||||
"name": "Antonius van Paduakerk",
|
||||
"landmark": true,
|
||||
"description": "Antonius van Paduakerk",
|
||||
"latitude": 51.587638,
|
||||
"longitude": 4.77725
|
||||
},
|
||||
{
|
||||
"name": "Kruising St.Janstraat/Molenstraat",
|
||||
"landmark": false,
|
||||
"latitude": 51.588278,
|
||||
"longitude": 4.7785
|
||||
},
|
||||
{
|
||||
"name": "Bibliotheek",
|
||||
"landmark": true,
|
||||
"description": "In de Molenstraat ziet u recht de Bibliotheek, ontworpen door architect Herman Hertzberger. Omdat de Molenstraat vrij smal is, heeft de architect ruimte gecreëerd door de bibliotheek schuin oplopende wanden te geven. Op de plaats van de bibliotheek (op de hoek met de Oude Vest) bevond zich vroeger een poort. Boven deze poort bevond zich 's Heeren Gevangenhuys, waar de zwaarst gestraften werden ondergebracht. De plaats is nog met keitjes in het asfalt aangegeven; de asfaltweg is de plaats van de oude stadsgracht. ",
|
||||
"latitude": 51.588,
|
||||
"longitude": 4.778945
|
||||
},
|
||||
{
|
||||
"name": "Kruising Molenstraat/Kloosterplein",
|
||||
"landmark": true,
|
||||
"description": "Kruising Molenstraat/Kloosterplein",
|
||||
"latitude": 51.587362,
|
||||
"longitude": 4.780222
|
||||
},
|
||||
{
|
||||
"name": "Kloosterkazerne",
|
||||
"landmark": true,
|
||||
"description": "Op deze hoek ziet u aan de overkant een voornaam monument uit de geschiedenis van Breda: de kloosterkazerne. Het is een deel van het vroegere zusterklooster St. Catharinadal, dat hier sinds 1295 gevestigd was. Het huidige gebouw dateert uit 1504. In 1645 werden de zusters Norbertinessen vanuit Breda naar Oosterhout verdreven. ",
|
||||
"latitude": 51.587722,
|
||||
"longitude": 4.781028
|
||||
},
|
||||
{
|
||||
"name": "Chasse theater",
|
||||
"landmark": true,
|
||||
"description": "Chasse theater",
|
||||
"latitude": 51.58775,
|
||||
"longitude": 4.782
|
||||
},
|
||||
{
|
||||
"name": "Kruising Kloosterplein/Vlaszak",
|
||||
"landmark": false,
|
||||
"latitude": 51.58775,
|
||||
"longitude": 4.78125
|
||||
},
|
||||
{
|
||||
"name": "Binding van Isaac",
|
||||
"landmark": true,
|
||||
"description": "Binding van Isaac",
|
||||
"latitude": 51.588612,
|
||||
"longitude": 4.780888
|
||||
},
|
||||
{
|
||||
"name": "Kruising Vlaszak/Boschstraat",
|
||||
"landmark": false,
|
||||
"latitude": 51.5895,
|
||||
"longitude": 4.780445
|
||||
},
|
||||
{
|
||||
"name": "Beyerd",
|
||||
"landmark": true,
|
||||
"description": "Beyerd",
|
||||
"latitude": 51.589667,
|
||||
"longitude": 4.781
|
||||
},
|
||||
{
|
||||
"name": "Kruising Vlaszak/Boschstraat",
|
||||
"landmark": false,
|
||||
"latitude": 51.5895,
|
||||
"longitude": 4.780445
|
||||
},
|
||||
{
|
||||
"name": "Gasthuispoort",
|
||||
"landmark": true,
|
||||
"description": "Gasthuispoort",
|
||||
"latitude": 51.589555,
|
||||
"longitude": 4.78
|
||||
},
|
||||
{
|
||||
"name": "Ingang Veemarktstraat",
|
||||
"landmark": false,
|
||||
"latitude": 51.589417,
|
||||
"longitude": 4.779862
|
||||
},
|
||||
{
|
||||
"name": "1e bocht Veemarktstraatt",
|
||||
"landmark": false,
|
||||
"latitude": 51.589028,
|
||||
"longitude": 4.779695
|
||||
},
|
||||
{
|
||||
"name": "Kruising Veemarktstraat/St.Annastraat",
|
||||
"landmark": false,
|
||||
"latitude": 51.588555,
|
||||
"longitude": 4.778333
|
||||
},
|
||||
{
|
||||
"name": "Willem Merkxtuin",
|
||||
"landmark": true,
|
||||
"description": "Willem Merkxtuin",
|
||||
"latitude": 51.589112,
|
||||
"longitude": 4.777945
|
||||
},
|
||||
{
|
||||
"name": "Kruising St.Annastraat/Catharinastraat",
|
||||
"landmark": false,
|
||||
"latitude": 51.589667,
|
||||
"longitude": 4.777805
|
||||
},
|
||||
{
|
||||
"name": "Begijnenhof",
|
||||
"landmark": true,
|
||||
"description": "Begijnenhof",
|
||||
"latitude": 51.589695,
|
||||
"longitude": 4.778362
|
||||
},
|
||||
{
|
||||
"name": "Kruising St.Annastraat/Catharinastraat",
|
||||
"landmark": false,
|
||||
"latitude": 51.589667,
|
||||
"longitude": 4.777805
|
||||
},
|
||||
{
|
||||
"name": "Einde stadswandeling",
|
||||
"landmark": true,
|
||||
"description": "Einde stadswandeling",
|
||||
"latitude": 51.5895,
|
||||
"longitude": 4.77625
|
||||
}
|
||||
|
||||
|
||||
]
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
<ResourceDictionary
|
||||
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="RelativePanel" x:Key="DarkModeFix">
|
||||
<Setter Property="Background" Value="{ThemeResource SystemControlBackgroundChromeMediumLowBrush}" />
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
||||
@@ -0,0 +1,21 @@
|
||||
<ResourceDictionary
|
||||
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="SymbolIcon" x:Key="InfoIcon">
|
||||
<Setter Property="Foreground" Value="Gray" />
|
||||
</Style>
|
||||
<Style TargetType="TextBlock" x:Key="InfoText">
|
||||
<Setter Property="Foreground" Value="Gray" />
|
||||
<Setter Property="FontSize" Value="16" />
|
||||
<Setter Property="Margin" Value="5,0,0,0" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="TextBlock" x:Key="Header">
|
||||
<Setter Property="FontSize" Value="20" />
|
||||
<Setter Property="FontWeight" Value="Bold" />
|
||||
<Setter Property="Margin" Value="0,0,0,3" />
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
||||
@@ -0,0 +1,10 @@
|
||||
<ResourceDictionary
|
||||
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="RelativePanel" x:Key="DarkModeFix">
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
</Style>
|
||||
|
||||
</ResourceDictionary>
|
||||
@@ -0,0 +1,72 @@
|
||||
using NavCityBreda.Helpers;
|
||||
|
||||
namespace NavCityBreda.ViewModels
|
||||
{
|
||||
public class HelpVM : TemplateVM
|
||||
{
|
||||
public HelpVM() : base(Util.Loader.GetString("Help"))
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected override void UpdatePropertiesToNewLanguage()
|
||||
{
|
||||
NotifyPropertyChanged(nameof(HelpItem1Header));
|
||||
NotifyPropertyChanged(nameof(HelpItem1Text));
|
||||
|
||||
NotifyPropertyChanged(nameof(HelpItem2Header));
|
||||
NotifyPropertyChanged(nameof(HelpItem2Text));
|
||||
|
||||
NotifyPropertyChanged(nameof(HelpItem3Header));
|
||||
NotifyPropertyChanged(nameof(HelpItem3Text));
|
||||
}
|
||||
|
||||
public string HelpItem1Header
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("HelpItem1Header");
|
||||
}
|
||||
}
|
||||
|
||||
public string HelpItem1Text
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("HelpItem1Text");
|
||||
}
|
||||
}
|
||||
|
||||
public string HelpItem2Header
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("HelpItem2Header");
|
||||
}
|
||||
}
|
||||
|
||||
public string HelpItem2Text
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("HelpItem2Text");
|
||||
}
|
||||
}
|
||||
|
||||
public string HelpItem3Header
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("HelpItem3Header");
|
||||
}
|
||||
}
|
||||
|
||||
public string HelpItem3Text
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("HelpItem3Text");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
using NavCityBreda.Helpers;
|
||||
using NavCityBreda.Model.Object;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace NavCityBreda.ViewModels
|
||||
{
|
||||
public class LandmarkDetailVM : TemplateVM
|
||||
{
|
||||
Landmark landmark;
|
||||
|
||||
string address;
|
||||
|
||||
public LandmarkDetailVM(Landmark l) : base(l.Name)
|
||||
{
|
||||
this.landmark = l;
|
||||
|
||||
address = Util.Loader.GetString("Searching") + "...";
|
||||
LoadStreet();
|
||||
}
|
||||
|
||||
protected override void UpdatePropertiesToNewLanguage()
|
||||
{
|
||||
NotifyPropertyChanged(nameof(Visited));
|
||||
NotifyPropertyChanged(nameof(DescriptionTitle));
|
||||
NotifyPropertyChanged(nameof(Description));
|
||||
}
|
||||
|
||||
public void Skip()
|
||||
{
|
||||
NotifyPropertyChanged(nameof(CurrentLandmark));
|
||||
NotifyPropertyChanged(nameof(IsVisited));
|
||||
NotifyPropertyChanged(nameof(Visited));
|
||||
}
|
||||
|
||||
public bool CurrentLandmark
|
||||
{
|
||||
get
|
||||
{
|
||||
return landmark == App.RouteManager.CurrentLandmark && landmark.Status == Landmark.LandmarkStatus.NOTVISITED;
|
||||
}
|
||||
}
|
||||
|
||||
public string SkipLandmarkText
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("SkipLandmark");
|
||||
}
|
||||
}
|
||||
|
||||
public string Address
|
||||
{
|
||||
get
|
||||
{
|
||||
return address;
|
||||
}
|
||||
}
|
||||
|
||||
public List<Image> Images
|
||||
{
|
||||
get
|
||||
{
|
||||
return landmark.Images;
|
||||
}
|
||||
}
|
||||
|
||||
public Landmark.LandmarkStatus IsVisited
|
||||
{
|
||||
get
|
||||
{
|
||||
return landmark.Status;
|
||||
}
|
||||
}
|
||||
|
||||
public string Visited
|
||||
{
|
||||
get
|
||||
{
|
||||
switch (landmark.Status)
|
||||
{
|
||||
default:
|
||||
case Landmark.LandmarkStatus.NOTVISITED:
|
||||
return Util.Loader.GetString("NotVisited");
|
||||
case Landmark.LandmarkStatus.VISITED:
|
||||
return Util.Loader.GetString("Visited");
|
||||
case Landmark.LandmarkStatus.SKIPPED:
|
||||
return Util.Loader.GetString("Skipped");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string DescriptionTitle
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("Description");
|
||||
}
|
||||
}
|
||||
|
||||
public string Description
|
||||
{
|
||||
get
|
||||
{
|
||||
return landmark.Description;
|
||||
}
|
||||
}
|
||||
|
||||
private async void LoadStreet()
|
||||
{
|
||||
address = await Util.FindAddress(landmark.Position);
|
||||
NotifyPropertyChanged(nameof(Address));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,122 @@
|
||||
using NavCityBreda.Helpers;
|
||||
using NavCityBreda.Helpers.Comparer;
|
||||
using NavCityBreda.Model.Object;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace NavCityBreda.ViewModels
|
||||
{
|
||||
class LandmarkVM : TemplateVM
|
||||
{
|
||||
public enum Sort { ALPHA, ALPHA_REVERSE, VISITED, NOT_VISITED }
|
||||
|
||||
private List<Landmark> _landmarks;
|
||||
|
||||
public LandmarkVM() : base(Util.Loader.GetString("Landmarks"))
|
||||
{
|
||||
_landmarks = App.RouteManager.GetAllLandmarks();
|
||||
}
|
||||
|
||||
protected override void UpdatePropertiesToNewLanguage()
|
||||
{
|
||||
NotifyPropertyChanged(nameof(Description));
|
||||
NotifyPropertyChanged(nameof(Landmarks));
|
||||
NotifyPropertyChanged(nameof(LandmarksTitle));
|
||||
|
||||
NotifyPropertyChanged(nameof(Ascending));
|
||||
NotifyPropertyChanged(nameof(Descending));
|
||||
NotifyPropertyChanged(nameof(Visited));
|
||||
NotifyPropertyChanged(nameof(NotVisited));
|
||||
}
|
||||
|
||||
public string SortOrderTitle
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("SortOrder");
|
||||
}
|
||||
}
|
||||
|
||||
public string LandmarksTitle
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("Landmarks");
|
||||
}
|
||||
}
|
||||
|
||||
public string Ascending
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("Ascending");
|
||||
}
|
||||
}
|
||||
|
||||
public string Descending
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("Descending");
|
||||
}
|
||||
}
|
||||
|
||||
public string Visited
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("Visited");
|
||||
}
|
||||
}
|
||||
|
||||
public string NotVisited
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("NotVisited");
|
||||
}
|
||||
}
|
||||
|
||||
public string Description
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("LandmarkListDescription");
|
||||
}
|
||||
}
|
||||
|
||||
public List<Landmark> Landmarks
|
||||
{
|
||||
get
|
||||
{
|
||||
return _landmarks;
|
||||
}
|
||||
}
|
||||
|
||||
public void SortList(Sort s)
|
||||
{
|
||||
IComparer<Landmark> comparer;
|
||||
|
||||
switch (s)
|
||||
{
|
||||
default:
|
||||
case Sort.ALPHA:
|
||||
comparer = new LandmarkAlphaComparer();
|
||||
break;
|
||||
case Sort.ALPHA_REVERSE:
|
||||
comparer = new LandmarkAlphaReversedComparer();
|
||||
break;
|
||||
case Sort.VISITED:
|
||||
comparer = new LandmarkVisitedComparer();
|
||||
break;
|
||||
case Sort.NOT_VISITED:
|
||||
comparer = new LandmarkNotVisitedComparer();
|
||||
break;
|
||||
}
|
||||
|
||||
_landmarks.Sort(comparer);
|
||||
_landmarks = new List<Landmark>(_landmarks);
|
||||
|
||||
NotifyPropertyChanged(nameof(Landmarks));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,182 @@
|
||||
using NavCityBreda.Helpers;
|
||||
using System;
|
||||
using Windows.Devices.Geolocation;
|
||||
using Windows.UI.Core;
|
||||
|
||||
namespace NavCityBreda.ViewModels
|
||||
{
|
||||
public class MainPageVM : TemplateVM
|
||||
{
|
||||
public MainPageVM() : base(Util.Loader.GetString("Loading"))
|
||||
{
|
||||
App.Geo.OnPositionUpdate += Geo_OnPositionUpdate;
|
||||
App.Geo.OnStatusUpdate += Geo_OnStatusUpdate;
|
||||
}
|
||||
|
||||
protected override void UpdatePropertiesToNewLanguage()
|
||||
{
|
||||
NotifyPropertyChanged(nameof(Map));
|
||||
NotifyPropertyChanged(nameof(Help));
|
||||
NotifyPropertyChanged(nameof(Route));
|
||||
NotifyPropertyChanged(nameof(Landmarks));
|
||||
NotifyPropertyChanged(nameof(Search));
|
||||
NotifyPropertyChanged(nameof(Settings));
|
||||
NotifyPropertyChanged(nameof(Status));
|
||||
NotifyPropertyChanged(nameof(Source));
|
||||
NotifyPropertyChanged(nameof(Accuracy));
|
||||
NotifyPropertyChanged(nameof(GPSInfo));
|
||||
NotifyPropertyChanged(nameof(BackText));
|
||||
}
|
||||
|
||||
public string BackText
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("BackTwiceText");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public string Map
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("Map");
|
||||
}
|
||||
}
|
||||
|
||||
public string Help
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("Help");
|
||||
}
|
||||
}
|
||||
|
||||
public string Route
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("Route");
|
||||
}
|
||||
}
|
||||
|
||||
public string Landmarks
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("Landmarks");
|
||||
}
|
||||
}
|
||||
|
||||
public string Search
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("Search");
|
||||
}
|
||||
}
|
||||
|
||||
public string Settings
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("Settings");
|
||||
}
|
||||
}
|
||||
|
||||
private void Geo_OnStatusUpdate(object sender, Model.StatusUpdatedEventArgs e)
|
||||
{
|
||||
dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
|
||||
{
|
||||
NotifyPropertyChanged(nameof(Status));
|
||||
});
|
||||
}
|
||||
|
||||
private void Geo_OnPositionUpdate(object sender, Model.PositionUpdatedEventArgs e)
|
||||
{
|
||||
dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
|
||||
{
|
||||
NotifyPropertyChanged(nameof(Source));
|
||||
NotifyPropertyChanged(nameof(Accuracy));
|
||||
});
|
||||
}
|
||||
|
||||
public string GPSInfo
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("GPSInfo");
|
||||
}
|
||||
}
|
||||
|
||||
public string Status
|
||||
{
|
||||
get
|
||||
{
|
||||
switch (App.Geo.Status)
|
||||
{
|
||||
case PositionStatus.Disabled:
|
||||
return Util.Loader.GetString("Disabled");
|
||||
case PositionStatus.Initializing:
|
||||
return Util.Loader.GetString("Initializing");
|
||||
case PositionStatus.NoData:
|
||||
return Util.Loader.GetString("NoData");
|
||||
default:
|
||||
case PositionStatus.NotAvailable:
|
||||
return Util.Loader.GetString("NotAvailable");
|
||||
case PositionStatus.NotInitialized:
|
||||
return Util.Loader.GetString("NotInitialized");
|
||||
case PositionStatus.Ready:
|
||||
return Util.Loader.GetString("Ready");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public string Source
|
||||
{
|
||||
get
|
||||
{
|
||||
if (App.Geo.Connected == true && App.Geo.Position != null)
|
||||
switch (App.Geo.Position.Coordinate.PositionSource)
|
||||
{
|
||||
case PositionSource.Cellular:
|
||||
return Util.Loader.GetString("Cellular");
|
||||
case PositionSource.IPAddress:
|
||||
return Util.Loader.GetString("IPAddress");
|
||||
case PositionSource.Satellite:
|
||||
return Util.Loader.GetString("Satellite");
|
||||
case PositionSource.WiFi:
|
||||
return Util.Loader.GetString("WiFi");
|
||||
default:
|
||||
case PositionSource.Unknown:
|
||||
return Util.Loader.GetString("Unknown");
|
||||
|
||||
}
|
||||
else
|
||||
return Util.Loader.GetString("Unknown");
|
||||
}
|
||||
}
|
||||
|
||||
public string Accuracy
|
||||
{
|
||||
get
|
||||
{
|
||||
|
||||
if (App.Geo.Connected == true && App.Geo.Position != null)
|
||||
return App.Geo.Position.Coordinate.Accuracy.ToString() + "m";
|
||||
else
|
||||
return Util.Loader.GetString("Unknown");
|
||||
}
|
||||
}
|
||||
|
||||
public string Year
|
||||
{
|
||||
get
|
||||
{
|
||||
int year = DateTime.Now.Year;
|
||||
return year.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
using NavCityBreda.Helpers;
|
||||
using Windows.UI.Core;
|
||||
|
||||
namespace NavCityBreda.ViewModels
|
||||
{
|
||||
public class MapVM : TemplateVM
|
||||
{
|
||||
public MapVM() : base(Util.Loader.GetString("Map"))
|
||||
{
|
||||
App.RouteManager.OnManeuverChanged += RouteManager_OnManeuverChanged;
|
||||
App.RouteManager.OnStatusUpdate += RouteManager_OnStatusUpdate;
|
||||
}
|
||||
|
||||
protected override void UpdatePropertiesToNewLanguage()
|
||||
{
|
||||
NotifyPropertyChanged(nameof(Landmark));
|
||||
NotifyPropertyChanged(nameof(Maneuver));
|
||||
}
|
||||
|
||||
private void RouteManager_OnStatusUpdate(object sender, Model.RouteStatusChangedEventArgs e)
|
||||
{
|
||||
dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
|
||||
{
|
||||
NotifyPropertyChanged(nameof(Instructions));
|
||||
});
|
||||
}
|
||||
|
||||
private void RouteManager_OnManeuverChanged(object sender, Model.ManeuverChangedEventArgs e)
|
||||
{
|
||||
dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
|
||||
{
|
||||
NotifyPropertyChanged(nameof(Landmark));
|
||||
NotifyPropertyChanged(nameof(Maneuver));
|
||||
});
|
||||
}
|
||||
|
||||
public bool Instructions
|
||||
{
|
||||
get
|
||||
{
|
||||
return App.RouteManager.Status == Model.RouteManager.RouteStatus.STARTED;
|
||||
}
|
||||
}
|
||||
|
||||
public string Maneuver
|
||||
{
|
||||
get
|
||||
{
|
||||
if (App.RouteManager.CurrentManeuver != null)
|
||||
return Util.TranslatedManeuver(App.RouteManager.CurrentManeuver, App.RouteManager.DistanceToManeuver);
|
||||
else
|
||||
return Util.Loader.GetString("Unknown");
|
||||
}
|
||||
}
|
||||
|
||||
public string Landmark
|
||||
{
|
||||
get
|
||||
{
|
||||
if (App.RouteManager.CurrentLandmark != null)
|
||||
return App.RouteManager.CurrentLandmark.Name;
|
||||
else
|
||||
return Util.Loader.GetString("Unknown");
|
||||
}
|
||||
}
|
||||
|
||||
public bool Tracking
|
||||
{
|
||||
get
|
||||
{
|
||||
return Settings.Tracking;
|
||||
}
|
||||
set
|
||||
{
|
||||
Settings.Tracking = value;
|
||||
NotifyPropertyChanged(nameof(Tracking));
|
||||
}
|
||||
}
|
||||
|
||||
public void UpdateMap()
|
||||
{
|
||||
if (App.MainPage != null)
|
||||
App.MainPage.Title = Util.Loader.GetString("Map");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
using NavCityBreda.Helpers;
|
||||
using NavCityBreda.Model.Object;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Windows.UI.ViewManagement;
|
||||
using Windows.UI.Xaml;
|
||||
|
||||
namespace NavCityBreda.ViewModels
|
||||
{
|
||||
public class RouteDetailVM : TemplateVM
|
||||
{
|
||||
Route route;
|
||||
|
||||
public RouteDetailVM(Route r) : base(r.Name)
|
||||
{
|
||||
this.route = r;
|
||||
}
|
||||
|
||||
protected override void UpdatePropertiesToNewLanguage()
|
||||
{
|
||||
NotifyPropertyChanged(nameof(Description));
|
||||
NotifyPropertyChanged(nameof(DescriptionTitle));
|
||||
NotifyPropertyChanged(nameof(LandmarksTitle));
|
||||
NotifyPropertyChanged(nameof(StartRouteText));
|
||||
NotifyPropertyChanged(nameof(StopRouteText));
|
||||
}
|
||||
|
||||
public string Description
|
||||
{
|
||||
get
|
||||
{
|
||||
return route.Description;
|
||||
}
|
||||
}
|
||||
|
||||
public string DescriptionTitle
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("Description");
|
||||
}
|
||||
}
|
||||
|
||||
public string LandmarksTitle
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("Landmarks");
|
||||
}
|
||||
}
|
||||
|
||||
public string Time
|
||||
{
|
||||
get
|
||||
{
|
||||
TimeSpan length = route.RouteObject.EstimatedDuration;
|
||||
return length.Hours + "h " + length.Minutes + "m";
|
||||
}
|
||||
}
|
||||
|
||||
public string Distance
|
||||
{
|
||||
get
|
||||
{
|
||||
double length = route.RouteObject.LengthInMeters;
|
||||
length /= 1000;
|
||||
length = Math.Round(length, 2);
|
||||
return length + "km";
|
||||
}
|
||||
}
|
||||
|
||||
public GridLength ScreenWidth
|
||||
{
|
||||
get
|
||||
{
|
||||
return new GridLength(ApplicationView.GetForCurrentView().VisibleBounds.Width);
|
||||
}
|
||||
}
|
||||
|
||||
public List<Landmark> Landmarks
|
||||
{
|
||||
get
|
||||
{
|
||||
return route.Landmarks;
|
||||
}
|
||||
}
|
||||
|
||||
public bool StartEnabled
|
||||
{
|
||||
get
|
||||
{
|
||||
if (route.Landmarks.TrueForAll(lm => lm.Status != Landmark.LandmarkStatus.NOTVISITED))
|
||||
return false;
|
||||
|
||||
return App.RouteManager.CurrentRoute != route;
|
||||
}
|
||||
}
|
||||
|
||||
public string StartRouteText
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("StartRoute");
|
||||
}
|
||||
}
|
||||
|
||||
public bool StopEnabled
|
||||
{
|
||||
get
|
||||
{
|
||||
if (route.Landmarks.TrueForAll(lm => lm.Status != Landmark.LandmarkStatus.NOTVISITED))
|
||||
return false;
|
||||
|
||||
return App.RouteManager.CurrentRoute == route;
|
||||
}
|
||||
}
|
||||
|
||||
public string StopRouteText
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("StopRoute");
|
||||
}
|
||||
}
|
||||
|
||||
public void UpdateRoute()
|
||||
{
|
||||
NotifyPropertyChanged(nameof(StartEnabled));
|
||||
NotifyPropertyChanged(nameof(StopEnabled));
|
||||
NotifyPropertyChanged(nameof(Landmarks));
|
||||
App.MainPage.Title = route.Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
using NavCityBreda.Helpers;
|
||||
using NavCityBreda.Model.Object;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace NavCityBreda.ViewModels
|
||||
{
|
||||
public class RouteVM : TemplateVM
|
||||
{
|
||||
private List<Route> _routes;
|
||||
|
||||
public RouteVM() : base(Util.Loader.GetString("Route"))
|
||||
{
|
||||
_routes = App.RouteManager.Routes;
|
||||
}
|
||||
|
||||
protected override void UpdatePropertiesToNewLanguage()
|
||||
{
|
||||
NotifyPropertyChanged(nameof(Routes));
|
||||
NotifyPropertyChanged(nameof(Description));
|
||||
}
|
||||
|
||||
public string Description
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("RouteListDescription");
|
||||
}
|
||||
}
|
||||
|
||||
public List<Route> Routes
|
||||
{
|
||||
get
|
||||
{
|
||||
return _routes;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
using NavCityBreda.Helpers;
|
||||
using NavCityBreda.Model.Search;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace NavCityBreda.ViewModels
|
||||
{
|
||||
class SearchVM : TemplateVM
|
||||
{
|
||||
SearchResult result;
|
||||
|
||||
public SearchVM(SearchResult s) : base(Util.Loader.GetString("Search"))
|
||||
{
|
||||
result = s;
|
||||
}
|
||||
|
||||
public void Update()
|
||||
{
|
||||
App.MainPage.Title = Util.Loader.GetString("Search");
|
||||
}
|
||||
|
||||
protected override void UpdatePropertiesToNewLanguage()
|
||||
{
|
||||
NotifyPropertyChanged(nameof(Search));
|
||||
NotifyPropertyChanged(nameof(Search));
|
||||
NotifyPropertyChanged(nameof(Search));
|
||||
NotifyPropertyChanged(nameof(Search));
|
||||
}
|
||||
|
||||
public string SearchTerm
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("SearchTerm");
|
||||
}
|
||||
}
|
||||
|
||||
public string Search
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("Search");
|
||||
}
|
||||
}
|
||||
|
||||
public string SeachDescription
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("SearchDescription");
|
||||
}
|
||||
}
|
||||
|
||||
public string SearchResults
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("SearchResults");
|
||||
}
|
||||
}
|
||||
|
||||
public string Settings
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("Settings");
|
||||
}
|
||||
}
|
||||
|
||||
public string ResultCount
|
||||
{
|
||||
get
|
||||
{
|
||||
return result.Results + " " + Util.Loader.GetString("SearchResultCount");
|
||||
}
|
||||
}
|
||||
|
||||
public List<RouteResult> Routes
|
||||
{
|
||||
get
|
||||
{
|
||||
return result.Routes;
|
||||
}
|
||||
}
|
||||
|
||||
public List<LandmarkResult> Landmarks
|
||||
{
|
||||
get
|
||||
{
|
||||
return result.Landmarks;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
using NavCityBreda.Helpers;
|
||||
|
||||
namespace NavCityBreda.ViewModels
|
||||
{
|
||||
public class SettingsVM : TemplateVM
|
||||
{
|
||||
|
||||
public SettingsVM() : base(Util.Loader.GetString("Settings"))
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected override void UpdatePropertiesToNewLanguage()
|
||||
{
|
||||
NotifyPropertyChanged(nameof(Language));
|
||||
NotifyPropertyChanged(nameof(Reset));
|
||||
NotifyPropertyChanged(nameof(ResetHeader));
|
||||
App.MainPage.Title = Util.Loader.GetString("Settings");
|
||||
}
|
||||
|
||||
public string Language
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("Language");
|
||||
}
|
||||
}
|
||||
|
||||
public string ResetHeader
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("Reset");
|
||||
}
|
||||
}
|
||||
|
||||
public string Reset
|
||||
{
|
||||
get
|
||||
{
|
||||
return Util.Loader.GetString("Reset") + " " + Util.Loader.GetString("Application");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
using NavCityBreda.Helpers;
|
||||
using System;
|
||||
using System.ComponentModel;
|
||||
using Windows.UI.Core;
|
||||
|
||||
namespace NavCityBreda.ViewModels
|
||||
{
|
||||
public class TemplateVM : INotifyPropertyChanged
|
||||
{
|
||||
protected CoreDispatcher dispatcher;
|
||||
|
||||
public TemplateVM(string title)
|
||||
{
|
||||
dispatcher = App.Dispatcher;
|
||||
Settings.OnLanguageUpdate += Settings_OnLanguageUpdate;
|
||||
|
||||
if (App.MainPage != null)
|
||||
App.MainPage.Title = title;
|
||||
}
|
||||
|
||||
private void Settings_OnLanguageUpdate(EventArgs e)
|
||||
{
|
||||
dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
|
||||
{
|
||||
UpdatePropertiesToNewLanguage();
|
||||
});
|
||||
}
|
||||
|
||||
protected virtual void UpdatePropertiesToNewLanguage()
|
||||
{
|
||||
//to implement in underlying class
|
||||
}
|
||||
|
||||
public event PropertyChangedEventHandler PropertyChanged;
|
||||
|
||||
protected void NotifyPropertyChanged(string propertyName)
|
||||
{
|
||||
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,112 @@
|
||||
<Page
|
||||
x:Class="NavCityBreda.Views.HelpView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:local="using:NavCityBreda.Views"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d">
|
||||
|
||||
<Page.Resources>
|
||||
<Style TargetType="StackPanel" x:Key="HelpPanel">
|
||||
<Setter Property="Margin" Value="10,10,10,0" />
|
||||
<Setter Property="Padding" Value="0,0,0,10" />
|
||||
<Setter Property="BorderBrush" Value="{ThemeResource SystemControlBackgroundChromeMediumLowBrush}" />
|
||||
<Setter Property="BorderThickness" Value="0,0,0,2" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="TextBlock" x:Key="HelpText">
|
||||
<Setter Property="RelativePanel.AlignTopWithPanel" Value="True" />
|
||||
<Setter Property="RelativePanel.AlignLeftWithPanel" Value="True" />
|
||||
<Setter Property="TextWrapping" Value="WrapWholeWords" />
|
||||
<Setter Property="TextAlignment" Value="Justify" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="TextBlock" x:Key="HelpTextImage">
|
||||
<Setter Property="RelativePanel.AlignTopWithPanel" Value="True" />
|
||||
<Setter Property="RelativePanel.AlignLeftWithPanel" Value="True" />
|
||||
<Setter Property="TextWrapping" Value="WrapWholeWords" />
|
||||
<Setter Property="Margin" Value="0,0,60,0" />
|
||||
<Setter Property="TextAlignment" Value="Justify" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="Image" x:Key="HelpImageSmall">
|
||||
<Setter Property="RelativePanel.AlignRightWithPanel" Value="True" />
|
||||
<Setter Property="RelativePanel.AlignVerticalCenterWithPanel" Value="True" />
|
||||
<Setter Property="Width" Value="50" />
|
||||
<Setter Property="Height" Value="50" />
|
||||
<Setter Property="Stretch" Value="UniformToFill"/>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="SymbolIcon" x:Key="HelpSymbolSmall">
|
||||
<Setter Property="RelativePanel.AlignRightWithPanel" Value="True" />
|
||||
<Setter Property="RelativePanel.AlignVerticalCenterWithPanel" Value="True" />
|
||||
<Setter Property="Width" Value="50" />
|
||||
<Setter Property="Height" Value="50" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="TextBlock" x:Key="HelpIconSmall">
|
||||
<Setter Property="RelativePanel.AlignRightWithPanel" Value="True" />
|
||||
<Setter Property="RelativePanel.AlignVerticalCenterWithPanel" Value="True" />
|
||||
<Setter Property="FontFamily" Value="Segoe MDL2 Assets" />
|
||||
<Setter Property="FontSize" Value="40" />
|
||||
</Style>
|
||||
|
||||
<Style TargetType="Image" x:Key="HelpImageLarge">
|
||||
<Setter Property="Stretch" Value="UniformToFill"/>
|
||||
<Setter Property="Margin" Value="0,5,0,0" />
|
||||
</Style>
|
||||
</Page.Resources>
|
||||
|
||||
<ScrollViewer HorizontalScrollMode="Disabled" VerticalScrollMode="Enabled" VerticalSnapPointsAlignment="Near">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Position -->
|
||||
<StackPanel Grid.Row="0" Style="{StaticResource HelpPanel}">
|
||||
<TextBlock Text="{Binding HelpItem1Header}" Style="{StaticResource Header}" />
|
||||
<RelativePanel>
|
||||
<TextBlock Text="{Binding HelpItem1Text}" Style="{StaticResource HelpTextImage}" />
|
||||
<Image Source="/Assets/CurrentLocationRound.png" Style="{StaticResource HelpImageSmall}" />
|
||||
</RelativePanel>
|
||||
</StackPanel>
|
||||
|
||||
<!-- Page Navigation -->
|
||||
<StackPanel Grid.Row="1" Style="{StaticResource HelpPanel}">
|
||||
<TextBlock Text="{Binding HelpItem2Header}" Style="{StaticResource Header}" />
|
||||
<RelativePanel>
|
||||
<TextBlock Text="{Binding HelpItem2Text}" Style="{StaticResource HelpText}" />
|
||||
</RelativePanel>
|
||||
<Image Source="/Assets/Help/HelpItem2Image.png" Style="{StaticResource HelpImageLarge}" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- GPS Information -->
|
||||
<StackPanel Grid.Row="2" Style="{StaticResource HelpPanel}">
|
||||
<TextBlock Text="{Binding HelpItem3Header}" Style="{StaticResource Header}" />
|
||||
<RelativePanel>
|
||||
<TextBlock Text="{Binding HelpItem3Text}" Style="{StaticResource HelpText}" />
|
||||
</RelativePanel>
|
||||
<Image Source="/Assets/Help/HelpItem3Image.png" Style="{StaticResource HelpImageLarge}" />
|
||||
</StackPanel>
|
||||
|
||||
<!-- Map + Controls (Tilt,zoom,pan,rotate) -->
|
||||
<!-- Route -->
|
||||
<!-- Help -->
|
||||
<!-- Settings -->
|
||||
<!-- Landmark -->
|
||||
<!-- Visited / Not Visited -->
|
||||
<!-- Starting a route -->
|
||||
<!-- Stopping a route -->
|
||||
<!-- What happens when you walk -->
|
||||
<!-- Buttons and text during navigation -->
|
||||
</Grid>
|
||||
</ScrollViewer>
|
||||
</Page>
|
||||
@@ -0,0 +1,17 @@
|
||||
using NavCityBreda.ViewModels;
|
||||
using Windows.UI.Xaml.Controls;
|
||||
|
||||
namespace NavCityBreda.Views
|
||||
{
|
||||
public sealed partial class HelpView : Page
|
||||
{
|
||||
HelpVM helpvm;
|
||||
|
||||
public HelpView()
|
||||
{
|
||||
helpvm = new HelpVM();
|
||||
this.DataContext = helpvm;
|
||||
this.InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||