public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            SetUpAnnotations();

            CloseButton = UIButton.FromType(UIButtonType.Custom);
            CloseButton.SetTitle("X", UIControlState.Normal);
            CloseButton.BackgroundColor = UIColor.Green;
            CloseButton.SizeToFit();
            CloseButton.TouchUpInside += (sender, e) => {
                Console.WriteLine("Close map");
                DismissViewController(true, null);
            };
            View.AddSubview(CloseButton);

            Map.ShowsUserLocation = true;
            Map.ShowsCompass      = true;
            Map.AddGestureRecognizer((longPressGestureRecognizer = new UILongPressGestureRecognizer(OnMapLongPress)));
            doubleTapGestureRecognizer = new UITapGestureRecognizer()
            {
                NumberOfTapsRequired = 2
            };

            tapGestureRecognizer = new UITapGestureRecognizer(OnMapClicked);
            tapGestureRecognizer.RequireGestureRecognizerToFail(doubleTapGestureRecognizer);
            tapGestureRecognizer.ShouldReceiveTouch = (recognizer, touch) => !(touch.View is MKAnnotationView);


            Map.AddGestureRecognizer(tapGestureRecognizer);
            Map.AddGestureRecognizer(doubleTapGestureRecognizer);


            //Map.DidUpdateUserLocation += (sender, e) => {
            //    if (Map.UserLocation != null)
            //    {
            //        CLLocationCoordinate2D coords = Map.UserLocation.Coordinate;
            //        MKCoordinateSpan span = new MKCoordinateSpan(MilesToLatitudeDegrees(2), MilesToLongitudeDegrees(2, coords.Latitude));
            //        Map.Region = new MKCoordinateRegion(coords, span);
            //    }
            //};
            if (Map.UserLocation != null)
            {
                CLLocationCoordinate2D coords = Map.UserLocation.Coordinate;
                MKCoordinateSpan       span   = new MKCoordinateSpan(MilesToLatitudeDegrees(2), MilesToLongitudeDegrees(2, coords.Latitude));
                Map.Region = new MKCoordinateRegion(coords, span);
            }
        }
Esempio n. 2
0
        public void BindToNative(object native, BindOptions options = BindOptions.None)
        {
            UnbindFromNative();
            map = ViewHelpers.GetView <MKMapView> (native);

            singleTap = new UITapGestureRecognizer(HandleTap)
            {
                NumberOfTapsRequired = 1,
            };
            map.AddGestureRecognizer(singleTap);
            doubleTap = new UITapGestureRecognizer {
                NumberOfTapsRequired = 2,
            };
            map.AddGestureRecognizer(doubleTap);
            singleTap.RequireGestureRecognizerToFail(doubleTap);

            map.SetRegion(MKCoordinateRegion.FromDistance(
                              GetCoord(setRegionCoord), setRegionDistance, setRegionDistance),
                          false);
        }