Sample.UnifiedMapViewModel.UnifiedMapViewModel C# (CSharp) Method

UnifiedMapViewModel() public method

public UnifiedMapViewModel ( ) : System.Collections.Generic
return System.Collections.Generic
        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();
        }