Пример #1
0
        private void CreateCircle(double value)
        {
            fence             = new Xamarin.Forms.GoogleMaps.Circle();
            fence.StrokeWidth = 2f;
            fence.StrokeColor = Color.Green;

            fence.FillColor = Color.Transparent;

            fence.Center = new Position(App.Position.Latitude, App.Position.Longitude);
            fence.Radius = Distance.FromKilometers(value);
            fence.ZIndex = 1;
            map.Circles.Add(fence);
        }
Пример #2
0
        private void Current_PositionChanged(object sender, Plugin.Geolocator.Abstractions.PositionEventArgs e)
        {
            fence             = new Xamarin.Forms.GoogleMaps.Circle();
            fence.StrokeWidth = 2f;
            fence.StrokeColor = Color.Green;

            fence.FillColor = Color.Transparent;

            fence.Center = new Xamarin.Forms.GoogleMaps.Position(e.Position.Latitude, e.Position.Longitude);
            fence.Radius = Distance.FromKilometers(SliderValue);
            fence.ZIndex = 1;
            map.Circles.Add(fence);

            map.MoveToRegion(MapSpan.FromCenterAndRadius(new Xamarin.Forms.GoogleMaps.Position(e.Position.Latitude, e.Position.Longitude), Distance.FromMiles(5)));
            map.Pins.Clear();
            map.Pins.Add(new Pin {
                Rotation = 33.3f, Address = "", Tag = "id_location", Label = "Im here", Position = new Xamarin.Forms.GoogleMaps.Position(App.Position.Latitude, App.Position.Longitude)
            });
        }
        public ShapesPage()
        {
            InitializeComponent();

            Polyline polyline = null;
            Polygon polygon = null;
            Circle circle = null;

            // Polyline
            buttonAddPolyline.Clicked += (sender, e) => 
            {
                polyline = new Polyline();
                polyline.Positions.Add(new Position(40.77d, -73.93d));
                polyline.Positions.Add(new Position(40.81d, -73.91d));
                polyline.Positions.Add(new Position(40.83d, -73.87d));

                polyline.IsClickable = true;
                polyline.StrokeColor = Color.Blue;
                polyline.StrokeWidth = 5f;
                polyline.Tag = "POLYLINE"; // Can set any object

                polyline.Clicked += Polyline_Clicked;

                map.Polylines.Add(polyline);

                ((Button)sender).IsEnabled = false;
                buttonRemovePolyline.IsEnabled = true;
            };

            buttonRemovePolyline.Clicked += (sender, e) => 
            {
                map.Polylines.Remove(polyline);
                polyline.Clicked -= Polyline_Clicked;
                polyline = null;

                ((Button)sender).IsEnabled = false;
                buttonAddPolyline.IsEnabled = true;
            };
            buttonRemovePolyline.IsEnabled = false;

            // Polygon
            buttonAddPolygon.Clicked += (sender, e) =>
            {
                polygon = new Polygon();
                polygon.Positions.Add(new Position(40.85d, -73.96d));
                polygon.Positions.Add(new Position(40.87d, -74.00d));
                polygon.Positions.Add(new Position(40.78d, -74.06d));
                polygon.Positions.Add(new Position(40.77d, -74.02d));

                polygon.IsClickable = true;
                polygon.StrokeColor = Color.Green;
                polygon.StrokeWidth = 3f;
                polygon.FillColor = Color.FromRgba(255, 0, 0, 64);
                polygon.Tag = "POLYGON"; // Can set any object

                polygon.Clicked += Polygon_Clicked;;

                map.Polygons.Add(polygon);

                ((Button)sender).IsEnabled = false;
                buttonRemovePolygon.IsEnabled = true;
            };

            buttonRemovePolygon.Clicked += (sender, e) =>
            {
                map.Polygons.Remove(polygon);
                polygon.Clicked -= Polygon_Clicked;
                polygon = null;

                ((Button)sender).IsEnabled = false;
                buttonAddPolygon.IsEnabled = true;
            };
            buttonRemovePolygon.IsEnabled = false;

            // Circle
            buttonAddCircle.Clicked += (sender, e) =>
            {
                circle = new Circle();
                circle.Center = new Position(40.72d, -73.89d);
                circle.Radius = Distance.FromMeters(3000f);

                circle.StrokeColor = Color.Purple;
                circle.StrokeWidth = 6f;
                circle.FillColor = Color.FromRgba(0, 0, 255, 32);
                circle.Tag = "CIRCLE"; // Can set any object

                map.Circles.Add(circle);

                ((Button)sender).IsEnabled = false;
                buttonRemoveCircle.IsEnabled = true;
            };

            buttonRemoveCircle.Clicked += (sender, e) =>
            {
                map.Circles.Remove(circle);
                circle = null;

                ((Button)sender).IsEnabled = false;
                buttonAddCircle.IsEnabled = true;
            };
            buttonRemoveCircle.IsEnabled = false;
        }