Example #1
0
        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();
        }