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); } }
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); }