Ejemplo n.º 1
0
        void CircleOnPropertyChanged(Circle formsCircle, PropertyChangedEventArgs e)
        {
            var nativeCircle = GetNativeCircle(formsCircle);

            if (nativeCircle == null)
            {
                return;
            }

            if (e.PropertyName == Circle.FillColorProperty.PropertyName)
            {
                nativeCircle.FillColor = formsCircle.FillColor.ToAndroid();
            }
            else if (e.PropertyName == Circle.CenterProperty.PropertyName)
            {
                nativeCircle.Center = new LatLng(formsCircle.Center.Latitude, formsCircle.Center.Longitude);
            }
            else if (e.PropertyName == Circle.RadiusProperty.PropertyName)
            {
                nativeCircle.Radius = formsCircle.Radius.Meters;
            }
            else if (e.PropertyName == MapElement.StrokeColorProperty.PropertyName)
            {
                nativeCircle.StrokeColor = formsCircle.StrokeColor.ToAndroid();
            }
            else if (e.PropertyName == MapElement.StrokeWidthProperty.PropertyName)
            {
                nativeCircle.StrokeWidth = formsCircle.StrokeWidth;
            }
        }
Ejemplo n.º 2
0
        void RemoveCircle(Circle circle)
        {
            var native = GetNativeCircle(circle);

            if (native != null)
            {
                native.Remove();
                _circles.Remove(native);
            }
        }
Ejemplo n.º 3
0
        protected Circle GetFormsCircle(ACircle circle)
        {
            Circle targetCircle = null;

            for (int i = 0; i < Element.MapElements.Count; i++)
            {
                var mapElement = Element.MapElements[i];
                if ((string)mapElement.MapElementId == circle.Id)
                {
                    targetCircle = mapElement as Circle;
                    break;
                }
            }

            return(targetCircle);
        }
Ejemplo n.º 4
0
        public MapElementsGallery()
        {
            InitializeComponent();

            Map.MoveToRegion(
                MapSpan.FromCenterAndRadius(
                    new Position(39.828152, -98.569817),
                    Distance.FromMiles(1681)));

            _polyline = new Maps.Polyline
            {
                Geopath =
                {
                    new Position(47.641944, -122.127222),
                    new Position(37.411625, -122.071327),
                    new Position(35.138901, -80.922623)
                }
            };

            _polygon = new Maps.Polygon
            {
                StrokeColor = Color.FromHex("#002868"),
                FillColor   = Color.FromHex("#88BF0A30"),
                Geopath     =
                {
                    new Position(37, -102.05),
                    new Position(37, -109.05),
                    new Position(41, -109.05),
                    new Position(41, -102.05)
                }
            };

            _circle = new Circle
            {
                Center      = new Position(42.352364, -71.067177),
                Radius      = Distance.FromMiles(100.0),
                StrokeColor = Color.FromRgb(31, 174, 206),
                FillColor   = Color.FromRgba(31, 174, 206, 127)
            };

            Map.MapElements.Add(_polyline);
            Map.MapElements.Add(_polygon);
            Map.MapElements.Add(_circle);

            ElementPicker.SelectedIndex = 0;
        }
Ejemplo n.º 5
0
        void AddClicked(object sender, EventArgs e)
        {
            switch (_selectedType)
            {
            case SelectedElementType.Polyline:
                Map.MapElements.Add(_polyline = new Maps.Polyline());
                break;

            case SelectedElementType.Polygon:
                Map.MapElements.Add(_polygon = new Maps.Polygon());
                break;

            case SelectedElementType.Circle:
                Map.MapElements.Add(_circle = new Circle());
                break;
            }
        }
Ejemplo n.º 6
0
        protected ACircle GetNativeCircle(Circle circle)
        {
            ACircle targetCircle = null;

            if (_circles != null)
            {
                for (int i = 0; i < _circles.Count; i++)
                {
                    var native = _circles[i];
                    if (native.Id == (string)circle.MapElementId)
                    {
                        targetCircle = native;
                        break;
                    }
                }
            }

            return(targetCircle);
        }
Ejemplo n.º 7
0
        protected virtual CircleOptions CreateCircleOptions(Circle circle)
        {
            var opts = new CircleOptions()
                       .InvokeCenter(new LatLng(circle.Center.Latitude, circle.Center.Longitude))
                       .InvokeRadius(circle.Radius.Meters)
                       .InvokeStrokeWidth(circle.StrokeWidth);

            if (!circle.StrokeColor.IsDefault())
            {
                opts.InvokeStrokeColor(circle.StrokeColor.ToAndroid());
            }

            if (!circle.FillColor.IsDefault())
            {
                opts.InvokeFillColor(circle.FillColor.ToAndroid());
            }

            return(opts);
        }
Ejemplo n.º 8
0
        void AddCircle(Circle circle)
        {
            var map = NativeMap;

            if (map == null)
            {
                return;
            }

            if (_circles == null)
            {
                _circles = new List <ACircle>();
            }

            var options      = CreateCircleOptions(circle);
            var nativeCircle = map.AddCircle(options);

            circle.MapElementId = nativeCircle.Id;

            _circles.Add(nativeCircle);
        }
Ejemplo n.º 9
0
        void RemoveClicked(object sender, EventArgs e)
        {
            switch (_selectedType)
            {
            case SelectedElementType.Polyline:
                Map.MapElements.Remove(_polyline);
                _polyline = Map.MapElements.OfType <Maps.Polyline>().LastOrDefault();

                if (_polyline == null)
                {
                    Map.MapElements.Add(_polyline = new Maps.Polyline());
                }

                break;

            case SelectedElementType.Polygon:
                Map.MapElements.Remove(_polygon);
                _polygon = Map.MapElements.OfType <Maps.Polygon>().LastOrDefault();

                if (_polygon == null)
                {
                    Map.MapElements.Add(_polygon = new Maps.Polygon());
                }

                break;

            case SelectedElementType.Circle:
                Map.MapElements.Remove(_circle);
                _circle = Map.MapElements.OfType <Circle>().LastOrDefault();

                if (_circle == null)
                {
                    Map.MapElements.Add(_circle = new Circle());
                }

                break;
            }
        }