public Page2ViewModel() { _inInfoWindowsClickCommand = new Command <IMapPin>(pin => Debug.WriteLine($"The Pin {pin.Title} Info Window has been click")); _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(new MapRegion(new Position(47.389097, 8.517756), 400))); _addPolylineCommand = new Command(AddPolyline, o => _allPolylines.Any()); _removePolylineCommand = new Command(RemovePolyline, o => Overlays.Any()); _selectCommand = new Command <int>(SetSelectedItem, (arg) => Pins.Count > 0); _clearSelectionCommand = new Command(() => SelectedItem = null); _moveToUserLocationcommand = new Command(() => Map.MoveToUserLocation(false)); _visibleRegionChangedCommand = new Command <MapRegion>((region) => RegionChanged(region)); _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), Draggable = true }, }); 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(); }
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(); }