public UnifiedMapViewModel()
{
_pinSelectedCommand =
new Command<MapPin>(pin => Debug.WriteLine($"Pin {pin.Title} was selected"));
_changeMapTypeCommand =
new Command<MapType>(m => MapDisplayType = m);
_addPinCommand =
new Command(AddPin, o => _allPins.Any());
_removePinCommand =
new Command(RemovePin, o => Pins.Any());
_moveToRegionCommand =
new Command(() => Map.MoveToRegion(animated: true));
_addPolylineCommand =
new Command(AddPolyline, o => _allPolylines.Any());
_removePolylineCommand =
new Command(RemovePolyline, o => Overlays.Any());
_selectCommand =
new Command<int>(SetSelectedItem, (arg) => Pins.Count > 0);
_allPins = new LinkedList<IMapPin> (
new []
{
new MapPin
{
Title = "Brändlen",
Location = new Position(46.904829, 8.409724),
Color = Color.Red
},
new MapPin
{
Title = "Wolfenschiessen",
Snippet = "... nothing to see here",
Location = new Position(46.905180, 8.398110),
Color = Color.Blue
},
new MapPin
{
Title = "Klewenalp",
Location = new Position(46.939898, 8.475217),
Color = Color.Fuchsia,
},
new MapPin
{
Title = "Beckenried NW",
Location = new Position(46.963876, 8.482078),
Color = Color.Green,
},
new MapPin
{
//Title = "Zürich",
//Snippet = "It's awesome",
Location = new Position(47.3667, 8.5500),
Image = "pin_icon",
SelectedImage = "pin_icon_active",
Anchor = new Point(0.5, 1)
},
new MapPin
{
Title = "fivenine",
Snippet = "fivenine GmbH",
Location = new Position(47.389097, 8.517756),
Image = "pin_icon",
SelectedImage = "pin_icon_active",
Anchor = new Point(0.5, 1)
},
});
Pins = new ObservableCollection<IMapPin> ();
_allPolylines = new LinkedList<IMapOverlay> ();
var polyline = new PolylineOverlay ();
foreach (var pin in _allPins) {
polyline.Add (pin.Location);
}
_allPolylines.AddLast (polyline);
Overlays = new ObservableCollection<IMapOverlay> ();
Overlays.Add(new CircleOverlay
{
Location = new Position(47.389097, 8.517756),
Radius = 400,
Color = Color.Navy.MultiplyAlpha(0.2),
FillColor = Color.Blue.MultiplyAlpha(0.2)
});
// Add some sample pins
AddPin (null);
AddPin (null);
// Add some polylines
AddPolyline (null);
SelectedItem = Pins.LastOrDefault();
}