2012-08-09 23:41:47 +02:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
2012-05-04 12:52:20 +02:00
|
|
|
|
using System.Windows;
|
|
|
|
|
|
using System.Windows.Controls;
|
|
|
|
|
|
using System.Windows.Input;
|
2012-08-09 23:41:47 +02:00
|
|
|
|
using System.Windows.Threading;
|
2012-07-03 18:03:56 +02:00
|
|
|
|
using Caching;
|
2012-07-07 17:19:10 +02:00
|
|
|
|
using MapControl;
|
2012-05-04 12:52:20 +02:00
|
|
|
|
|
2012-07-04 17:19:48 +02:00
|
|
|
|
namespace SampleApplication
|
2012-05-04 12:52:20 +02:00
|
|
|
|
{
|
|
|
|
|
|
public partial class MainWindow : Window
|
|
|
|
|
|
{
|
2012-08-09 23:41:47 +02:00
|
|
|
|
private SamplePoint movingPoint = new SamplePoint
|
|
|
|
|
|
{
|
|
|
|
|
|
Name = "Moving",
|
|
|
|
|
|
Location = new Location(53.5, 8.25)
|
|
|
|
|
|
};
|
|
|
|
|
|
|
2012-05-04 12:52:20 +02:00
|
|
|
|
public MainWindow()
|
|
|
|
|
|
{
|
2012-07-07 17:19:10 +02:00
|
|
|
|
if (Properties.Settings.Default.UsePersistentCache)
|
2012-07-03 18:03:56 +02:00
|
|
|
|
{
|
2012-07-07 17:19:10 +02:00
|
|
|
|
TileImageLoader.CreateCache<FileDbCache>();
|
2012-07-03 18:03:56 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
2012-05-04 12:52:20 +02:00
|
|
|
|
InitializeComponent();
|
|
|
|
|
|
|
2012-06-14 10:43:27 +02:00
|
|
|
|
ICollection<object> polylines = (ICollection<object>)Resources["Polylines"];
|
|
|
|
|
|
polylines.Add(
|
2012-05-04 12:52:20 +02:00
|
|
|
|
new SamplePolyline
|
|
|
|
|
|
{
|
|
|
|
|
|
Locations = LocationCollection.Parse("53.5140,8.1451 53.5123,8.1506 53.5156,8.1623 53.5276,8.1757 53.5491,8.1852 53.5495,8.1877 53.5426,8.1993 53.5184,8.2219 53.5182,8.2386 53.5195,8.2387")
|
|
|
|
|
|
});
|
2012-06-14 10:43:27 +02:00
|
|
|
|
polylines.Add(
|
|
|
|
|
|
new SamplePolyline
|
2012-05-04 12:52:20 +02:00
|
|
|
|
{
|
2012-06-14 10:43:27 +02:00
|
|
|
|
Locations = LocationCollection.Parse("53.5978,8.1212 53.6018,8.1494 53.5859,8.1554 53.5852,8.1531 53.5841,8.1539 53.5802,8.1392 53.5826,8.1309 53.5867,8.1317 53.5978,8.1212")
|
2012-05-04 12:52:20 +02:00
|
|
|
|
});
|
2012-06-14 10:43:27 +02:00
|
|
|
|
|
|
|
|
|
|
ICollection<object> points = (ICollection<object>)Resources["Points"];
|
|
|
|
|
|
points.Add(
|
2012-05-04 12:52:20 +02:00
|
|
|
|
new SamplePoint
|
|
|
|
|
|
{
|
|
|
|
|
|
Name = "Steinbake Leitdamm",
|
|
|
|
|
|
Location = new Location(53.51217, 8.16603)
|
|
|
|
|
|
});
|
2012-06-14 10:43:27 +02:00
|
|
|
|
points.Add(
|
2012-05-04 12:52:20 +02:00
|
|
|
|
new SamplePoint
|
|
|
|
|
|
{
|
|
|
|
|
|
Name = "Buhne 2",
|
|
|
|
|
|
Location = new Location(53.50926, 8.15815)
|
|
|
|
|
|
});
|
2012-06-14 10:43:27 +02:00
|
|
|
|
points.Add(
|
2012-05-04 12:52:20 +02:00
|
|
|
|
new SamplePoint
|
|
|
|
|
|
{
|
|
|
|
|
|
Name = "Buhne 4",
|
|
|
|
|
|
Location = new Location(53.50468, 8.15343)
|
|
|
|
|
|
});
|
2012-06-14 10:43:27 +02:00
|
|
|
|
points.Add(
|
2012-05-04 12:52:20 +02:00
|
|
|
|
new SamplePoint
|
|
|
|
|
|
{
|
|
|
|
|
|
Name = "Buhne 6",
|
|
|
|
|
|
Location = new Location(53.50092, 8.15267)
|
|
|
|
|
|
});
|
2012-06-14 10:43:27 +02:00
|
|
|
|
points.Add(
|
2012-05-04 12:52:20 +02:00
|
|
|
|
new SamplePoint
|
|
|
|
|
|
{
|
|
|
|
|
|
Name = "Buhne 8",
|
|
|
|
|
|
Location = new Location(53.49871, 8.15321)
|
|
|
|
|
|
});
|
2012-06-14 10:43:27 +02:00
|
|
|
|
points.Add(
|
2012-05-04 12:52:20 +02:00
|
|
|
|
new SamplePoint
|
|
|
|
|
|
{
|
|
|
|
|
|
Name = "Buhne 10",
|
|
|
|
|
|
Location = new Location(53.49350, 8.15563)
|
|
|
|
|
|
});
|
2012-08-09 23:41:47 +02:00
|
|
|
|
points.Add(movingPoint);
|
2012-06-14 10:43:27 +02:00
|
|
|
|
|
|
|
|
|
|
ICollection<object> pushpins = (ICollection<object>)Resources["Pushpins"];
|
|
|
|
|
|
pushpins.Add(
|
|
|
|
|
|
new SamplePoint
|
|
|
|
|
|
{
|
|
|
|
|
|
Name = "WHV - Eckwarderhörne",
|
|
|
|
|
|
Location = new Location(53.5495, 8.1877)
|
|
|
|
|
|
});
|
|
|
|
|
|
pushpins.Add(
|
|
|
|
|
|
new SamplePoint
|
2012-05-04 12:52:20 +02:00
|
|
|
|
{
|
2012-06-14 10:43:27 +02:00
|
|
|
|
Name = "JadeWeserPort",
|
|
|
|
|
|
Location = new Location(53.5914, 8.14)
|
|
|
|
|
|
});
|
|
|
|
|
|
pushpins.Add(
|
|
|
|
|
|
new SamplePoint
|
|
|
|
|
|
{
|
|
|
|
|
|
Name = "Kurhaus Dangast",
|
|
|
|
|
|
Location = new Location(53.447, 8.1114)
|
|
|
|
|
|
});
|
|
|
|
|
|
pushpins.Add(
|
|
|
|
|
|
new SamplePoint
|
|
|
|
|
|
{
|
|
|
|
|
|
Name = "Eckwarderhörne",
|
|
|
|
|
|
Location = new Location(53.5207, 8.2323)
|
2012-05-04 12:52:20 +02:00
|
|
|
|
});
|
2012-08-09 23:41:47 +02:00
|
|
|
|
|
|
|
|
|
|
DispatcherTimer timer = new DispatcherTimer();
|
|
|
|
|
|
timer.Interval = TimeSpan.FromSeconds(0.05);
|
|
|
|
|
|
timer.Tick += MovePoint;
|
|
|
|
|
|
timer.Start();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void MovePoint(object sender, EventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
movingPoint.Location = new Location(movingPoint.Location.Latitude + 0.0005, movingPoint.Location.Longitude + 0.001);
|
|
|
|
|
|
|
|
|
|
|
|
if (movingPoint.Location.Latitude > 54d)
|
|
|
|
|
|
{
|
|
|
|
|
|
movingPoint.Name = "Stopped";
|
|
|
|
|
|
((DispatcherTimer)sender).Stop();
|
|
|
|
|
|
}
|
2012-05-04 12:52:20 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void MapManipulationInertiaStarting(object sender, ManipulationInertiaStartingEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
e.TranslationBehavior.DesiredDeceleration = 0.001;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void MapMouseLeave(object sender, MouseEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
mouseLocation.Text = string.Empty;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void MapMouseMove(object sender, MouseEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
mouseLocation.Text = map.ViewportPointToLocation(e.GetPosition(map)).ToString();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void SeamarksClick(object sender, RoutedEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
TileLayer seamarks = (TileLayer)Resources["SeamarksTileLayer"];
|
|
|
|
|
|
CheckBox checkBox = (CheckBox)sender;
|
|
|
|
|
|
|
|
|
|
|
|
if ((bool)checkBox.IsChecked)
|
|
|
|
|
|
{
|
|
|
|
|
|
map.TileLayers.Add(seamarks);
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
map.TileLayers.Remove(seamarks);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|