private void showUserMap() { map.MapType = MKMapType.HybridFlyover; map.ShowsUserLocation = true; map.ZoomEnabled = true; map.ScrollEnabled = true; map.ShowsBuildings = true; map.PitchEnabled = true; map.ShowsCompass = false; double lat = 30.2652233534254; double lon = -97.73815460962083; CLLocationCoordinate2D mapCenter = new CLLocationCoordinate2D(lat, lon); CLLocationCoordinate2D viewPoint = new CLLocationCoordinate2D(lat + 0.0050, lon - 0.0072); MKCoordinateRegion mapRegion = MKCoordinateRegion.FromDistance(mapCenter, 1500, 1500); map.CenterCoordinate = mapCenter; map.Region = mapRegion; var camera = MKMapCamera.CameraLookingAtCenterCoordinate(mapCenter, viewPoint, 500); map.Camera = camera; mapDelegate = new MapDelegate(); map.Delegate = mapDelegate; askUserPermissions(); var tapRecogniser = new UITapGestureRecognizer(this, new Selector("MapTapSelector:")); var longTapRecogniser = new UILongPressGestureRecognizer(this, new Selector("MapLongTapSelector:")); map.AddGestureRecognizer(tapRecogniser); map.AddGestureRecognizer(longTapRecogniser); var hotelOverlay = MKCircle.Circle(mapCenter, 1000); map.AddOverlay(hotelOverlay); }
public override void ViewDidLoad() { base.ViewDidLoad(); Title = "Pyramids of Giza"; mapView = new MKMapView(View.Bounds); mapView.AutoresizingMask = UIViewAutoresizing.FlexibleDimensions; View.AddSubview(mapView); var coords = new CLLocationCoordinate2D(29.976111, 31.132778); // pyramids of giza, egypt var span = new MKCoordinateSpan(MilesToLatitudeDegrees(.75), MilesToLongitudeDegrees(.75, coords.Latitude)); // set the coords and zoom on the map mapView.MapType = MKMapType.Satellite; mapView.Region = new MKCoordinateRegion(coords, span); mapView.OverlayRenderer = (m, o) => { if (circleRenderer == null) { circleRenderer = new MKCircleRenderer(o as MKCircle); circleRenderer.FillColor = UIColor.Purple; circleRenderer.Alpha = 0.5f; } return(circleRenderer); }; circleOverlay = MKCircle.Circle(coords, 400); mapView.AddOverlay(circleOverlay); #region Not related to this sample int typesWidth = 260, typesHeight = 30, distanceFromBottom = 60; mapTypes = new UISegmentedControl(new CGRect((View.Bounds.Width - typesWidth) / 2, View.Bounds.Height - distanceFromBottom, typesWidth, typesHeight)); mapTypes.BackgroundColor = UIColor.White; mapTypes.Layer.CornerRadius = 5; mapTypes.ClipsToBounds = true; mapTypes.InsertSegment("Road", 0, false); mapTypes.InsertSegment("Satellite", 1, false); mapTypes.InsertSegment("Hybrid", 2, false); mapTypes.SelectedSegment = 1; // Road is the default mapTypes.AutoresizingMask = UIViewAutoresizing.FlexibleTopMargin; mapTypes.ValueChanged += (s, e) => { switch (mapTypes.SelectedSegment) { case 0: mapView.MapType = MKMapType.Standard; break; case 1: mapView.MapType = MKMapType.Satellite; break; case 2: mapView.MapType = MKMapType.Hybrid; break; } }; View.AddSubview(mapTypes); #endregion }
public void AddOverlays() { // sample coordinates CLLocationCoordinate2D c1 = new CLLocationCoordinate2D(41.86337816, -72.56874647); CLLocationCoordinate2D c2 = new CLLocationCoordinate2D(41.96337816, -72.96874647); CLLocationCoordinate2D c3 = new CLLocationCoordinate2D(41.45537816, -72.76874647); CLLocationCoordinate2D c4 = new CLLocationCoordinate2D(42.34994, -71.09292); // circle MKCircle circle = MKCircle.Circle(c1, 10000.0); // 10000 meter radius map.AddOverlay(circle); // polygon MKPolygon polygon = MKPolygon.FromCoordinates(new CLLocationCoordinate2D[] { c1, c2, c3 }); map.AddOverlay(polygon); // triangle MKPolyline polyline = MKPolyline.FromCoordinates(new CLLocationCoordinate2D[] { c1, c2, c3 }); map.AddOverlay(polyline); CustomOverlay co = new CustomOverlay(c4); map.AddOverlay(co); }
public override void ViewDidLoad() { base.ViewDidLoad(); // change map type and show user location map.MapType = MKMapType.Hybrid; map.ShowsUserLocation = true; // set map center and region double lat = 42.374260; double lon = -71.120824; var mapCenter = new CLLocationCoordinate2D(lat, lon); var mapRegion = MKCoordinateRegion.FromDistance(mapCenter, 2000, 2000); map.CenterCoordinate = mapCenter; map.Region = mapRegion; // add an annotation map.AddAnnotation(new MKPointAnnotation() { Title = "MyAnnotation", Coordinate = new CLLocationCoordinate2D(42.364260, -71.120824) }); // set the map delegate mapDel = new MyMapDelegate(); map.Delegate = mapDel; // add a custom annotation map.AddAnnotation(new MonkeyAnnotation("Xamarin", mapCenter)); // add an overlay var circleOverlay = MKCircle.Circle(mapCenter, 1000); map.AddOverlay(circleOverlay); }
public override void ViewDidLoad() { base.ViewDidLoad(); locationManager.RequestWhenInUseAuthorization(); // set map type and show user location map.MapType = MKMapType.Standard; map.ShowsUserLocation = true; map.Bounds = View.Bounds; // set map center and region const double lat = 42.374260; const double lon = -71.120824; var mapCenter = new CLLocationCoordinate2D(lat, lon); var mapRegion = MKCoordinateRegion.FromDistance(mapCenter, 2000, 2000); //map.CenterCoordinate = mapCenter; //map.Region = mapRegion; // add an annotation map.AddAnnotation(new MKPointAnnotation { Title = "MyAnnotation", Coordinate = new CLLocationCoordinate2D(42.364260, -71.120824) }); // set the map delegate mapDel = new MyMapDelegate(); map.Delegate = mapDel; // add a custom annotation map.AddAnnotation(new MonkeyAnnotation("Xamarin", mapCenter)); // add an overlay var circleOverlay = MKCircle.Circle(mapCenter, 1000); map.AddOverlay(circleOverlay); var searchResultsController = new SearchResultsViewController(map); var searchUpdater = new SearchResultsUpdator(); searchUpdater.UpdateSearchResults += searchResultsController.Search; //add the search controller searchController = new UISearchController(searchResultsController) { SearchResultsUpdater = searchUpdater }; searchController.SearchBar.SizeToFit(); searchController.SearchBar.SearchBarStyle = UISearchBarStyle.Minimal; searchController.SearchBar.Placeholder = "Enter a search query"; searchController.HidesNavigationBarDuringPresentation = false; NavigationItem.TitleView = searchController.SearchBar; DefinesPresentationContext = true; }
protected override void OnElementChanged(ElementChangedEventArgs <View> e) { base.OnElementChanged(e); if (e.OldElement != null) { var nativeMap = Control as MKMapView; if (nativeMap != null) { nativeMap.RemoveOverlays(nativeMap.Overlays); nativeMap.OverlayRenderer = null; circleRenderer = null; } } if (e.NewElement != null) { var formsMap = (CustomMap2)e.NewElement; var nativeMap = Control as MKMapView; var circle = formsMap.Circle; nativeMap.OverlayRenderer = GetOverlayRenderer; var circleOverlay = MKCircle.Circle(new CoreLocation.CLLocationCoordinate2D(circle.Position.Latitude, circle.Position.Longitude), circle.Radius); customPins = formsMap.CustomPins; nativeMap.AddOverlay(circleOverlay); } }
public void AddOverlay(IMapOverlay item) { if (item is ICircleOverlay) { var circle = (ICircleOverlay)item; var overlay = new UnifiedCircleOverlay(MKCircle.Circle(circle.Location.ToCoordinate(), circle.Radius)) { Data = circle }; _overlays.Add(overlay); Control.AddOverlay(overlay); return; } if (item is IPolylineOverlay) { var polyline = (IPolylineOverlay)item; var coordinates = polyline .Select(p => new CLLocationCoordinate2D(p.Latitude, p.Longitude)) .ToArray(); var overlay = new UnifiedPolylineOverlay(MKPolyline.FromCoordinates(coordinates)) { Data = polyline }; _overlays.Add(overlay); Control.AddOverlay(overlay); return; } }
public override void ViewDidLoad() { base.ViewDidLoad(); this.Title = "Pyramids of Giza"; // create our location and zoom for the pyramids. CLLocationCoordinate2D coords = new CLLocationCoordinate2D(29.976111, 31.132778); MKCoordinateSpan span = new MKCoordinateSpan(MilesToLatitudeDegrees(.75), MilesToLongitudeDegrees(.75, coords.Latitude)); // set the coords and zoom on the map this.mapMain.Region = new MKCoordinateRegion(coords, span); // show the sat view. this.mapMain.MapType = MKMapType.Satellite; // add an overlay with the coords this._circleOverlay = MKCircle.Circle(coords, 200); this.mapMain.AddOverlay(this._circleOverlay); // set our delegate. //this.mapMain.Delegate = new MapDelegate(); //-- OR -- //- override the GetVIewForOverlay directly, in which case we don't need a delegate this.mapMain.GetViewForOverlay += (m, o) => { if (this._circleView == null) { this._circleView = new MKCircleView(this._circleOverlay); this._circleView.FillColor = UIColor.Blue; this._circleView.Alpha = 0.5f; } return(this._circleView); }; }
void AddMapElements(IEnumerable <MapElement> mapElements) { foreach (var element in mapElements) { element.PropertyChanged += MapElementPropertyChanged; IMKOverlay overlay = null; switch (element) { case Polyline polyline: overlay = MKPolyline.FromCoordinates(polyline.Geopath .Select(position => new CLLocationCoordinate2D(position.Latitude, position.Longitude)) .ToArray()); break; case Polygon polygon: overlay = MKPolygon.FromCoordinates(polygon.Geopath .Select(position => new CLLocationCoordinate2D(position.Latitude, position.Longitude)) .ToArray()); break; case Circle circle: overlay = MKCircle.Circle( new CLLocationCoordinate2D(circle.Center.Latitude, circle.Center.Longitude), circle.Radius.Meters); break; } element.MapElementId = overlay; ((MKMapView)Control).AddOverlay(overlay); } }
void didTapSaveButton(UIBarButtonItem sender) { double circleDegreeDelta; CLLocation pointOnCircle; var span = MapView.Region.Span; if (span.LatitudeDelta > span.LongitudeDelta) { circleDegreeDelta = span.LongitudeDelta / MapRegionFraction; pointOnCircle = new CLLocation(MapView.Region.Center.Latitude, MapView.Region.Center.Longitude - circleDegreeDelta); } else { circleDegreeDelta = span.LatitudeDelta / MapRegionFraction; pointOnCircle = new CLLocation(MapView.Region.Center.Latitude - circleDegreeDelta, MapView.Region.Center.Longitude); } var mapCenterLocation = new CLLocation(MapView.Region.Center.Latitude, MapView.Region.Center.Longitude); var distance = pointOnCircle.DistanceFrom(mapCenterLocation); var genericRegion = new CLCircularRegion(MapView.Region.Center, distance, CircularRegion); circleOverlay = MKCircle.Circle(genericRegion.Center, genericRegion.Radius); var vcDelegate = Delegate; if (vcDelegate != null) { vcDelegate.MapViewDidUpdateRegion(genericRegion); } DismissViewController(true, null); }
private void DropGeofenceCircle(PointF point) { CLLocationCoordinate2D convertedPoint = this.mapView.ConvertPoint(point, this.mapView); String pinTitle = String.Format("Centre of geofence."); String subCoordinates = String.Format("{0},{1}", convertedPoint.Latitude.ToString(), convertedPoint.Longitude.ToString()); if (this.droppedPin != null) { this.mapView.RemoveAnnotation(this.droppedPin); } this.droppedPin = new SimpleAnnotation(convertedPoint, pinTitle, subCoordinates); this.mapView.AddAnnotation(droppedPin); if (this.GeofenceMapDelegate.Circle != null) { this.mapView.RemoveOverlay(this.GeofenceMapDelegate.Circle); } this.GeofenceMapDelegate.Circle = MKCircle.Circle(convertedPoint, this.GeofenceService.RadiusOfGeofenceInMeters); this.mapView.AddOverlay(this.GeofenceMapDelegate.Circle); if (!this.mapView.VisibleMapRect.Contains(this.GeofenceMapDelegate.Circle.BoundingMap)) { this.mapView.SetRegion(MKCoordinateRegion.FromMapRect(this.GeofenceMapDelegate.Circle.BoundingMap), true); } }
public override void ViewDidLoad() { base.ViewDidLoad(); locationManager.RequestWhenInUseAuthorization(); // set map center and region const double lat = 42.374260; const double lon = -71.120824; var mapCenter = new CLLocationCoordinate2D(lat, lon); var mapRegion = MKCoordinateRegion.FromDistance(mapCenter, 2000, 2000); map.CenterCoordinate = mapCenter; map.Region = mapRegion; // add an annotation map.AddAnnotation(new MKPointAnnotation { Title = "MyAnnotation", Coordinate = new CLLocationCoordinate2D(42.364260, -71.120824) }); // set the map delegate mapViewDelegate = new MapViewDelegate(); map.Delegate = mapViewDelegate; // add a custom annotation map.AddAnnotation(new MonkeyAnnotation("Xamarin", mapCenter)); // add an overlay map.AddOverlay(MKCircle.Circle(mapCenter, 1000)); // add search var searchResultsController = new SearchResultsViewController(map); var searchUpdater = new SearchResultsUpdator(); searchUpdater.UpdateSearchResults += searchResultsController.UpdateSearchResults; // add the search controller searchController = new UISearchController(searchResultsController); searchController.SearchResultsUpdater = searchUpdater; searchController.SearchBar.SizeToFit(); searchController.SearchBar.SearchBarStyle = UISearchBarStyle.Minimal; searchController.SearchBar.Placeholder = "Enter a search query"; searchController.HidesNavigationBarDuringPresentation = false; NavigationItem.TitleView = searchController.SearchBar; DefinesPresentationContext = true; //adresse in koordinaten umwandeln getCoordinates("Chennai International Airport"); mapCenter = newLocation; map.CenterCoordinate = mapCenter; getAdress(); }
void AnnotateAndZoomToRegion(CLCircularRegion region) { circleOverlay = MKCircle.Circle(region.Center, region.Radius); const double multiplier = MapRegionFraction; var mapRegion = MKCoordinateRegion.FromDistance(region.Center, region.Radius * multiplier, region.Radius * multiplier); MapView.SetRegion(mapRegion, false); }
public void OnChange(object o, PropertyChangedEventArgs ar) { Device.BeginInvokeOnMainThread(() => { var pos = mapWithRoute.CurrentPosition; var cords = new CLLocationCoordinate2D(pos.Lat, pos.Lon); circleOverlay = MKCircle.Circle(cords, 20); nativeMap.AddOverlay(circleOverlay); }); }
protected override void OnElementChanged(ElementChangedEventArgs <View> e) { base.OnElementChanged(e); if (isLoaded) { nativeMap.RemoveOverlays(nativeMap.Overlays); } if (e.NewElement == null) { return; } if (e.OldElement != null) { nativeMap = Control as MKMapView; } element = Element as ExtendedMap; mapDelegate = new MapDelegate(); nativeMap = Control as MKMapView; nativeMap.Delegate = null; nativeMap.Delegate = mapDelegate; var formsMap = (ExtendedMap)e.NewElement; CLLocationCoordinate2D[] coords = new CLLocationCoordinate2D[element.RouteCoordinates.Count]; int index = 0; int idCounter = 1; string icon = ""; icon = element.ImageSource; foreach (var circle in element.Circles) { var annot = new CustomAnnotation(new CLLocationCoordinate2D(circle.Position.Latitude, circle.Position.Longitude), element.CustomPins.FirstOrDefault().Label, "", false, icon); annot.Id = idCounter++; nativeMap.AddAnnotation(annot); //pinCollection.Add(annot.Id, item); annotations.Add(annot); var circleOverlay = MKCircle.Circle(new CLLocationCoordinate2D(circle.Position.Latitude, circle.Position.Longitude), circle.Radius); nativeMap.AddOverlay(circleOverlay); } foreach (var position in element.RouteCoordinates) { var annot = new CustomAnnotation(new CLLocationCoordinate2D(position.Latitude, position.Longitude), element.CustomPins.FirstOrDefault().Label, "", false, icon); annot.Id = idCounter++; nativeMap.AddAnnotation(annot); //pinCollection.Add(annot.Id, item); annotations.Add(annot); coords[index] = new CLLocationCoordinate2D(position.Latitude, position.Longitude); index++; } var routeOverlay = MKPolyline.FromCoordinates(coords); nativeMap.AddOverlay(routeOverlay); }
public override void Refresh(ChallengeResponseModel challengeResponse) { Crashlytics.Instance.Log("ChallengeDetailViewController_Refresh()"); base.Refresh(challengeResponse); if (challengeResponse == null) { return; } Challenge = challengeResponse.Challenge; TimeText.Text = Challenge.NextEventCountDown; PointsText.Text = "+" + Challenge.PointValue.ToString() + " pts"; ChallengeTextLbl.Text = Challenge.Name; var navigationDelegate = new ChallengeDetailWebViewNavigationDelegate(); navigationDelegate.NavigationFinished += SetupConstraint; this.WebView.NavigationDelegate = navigationDelegate; WebView.LoadHtmlString(Challenge.Desc, null); ImageService.Instance.LoadUrl(Challenge.Image).Into(ChallengeImage); if (!DidSetupMap && Challenge.LocationLat != null && Challenge.LocationLong != null) { ChallengeImage.Hidden = true; vImagePlaceholder.RemoveConstraint(cnImagePlaceholderAspect); vImagePlaceholder.AddConstraint(cnImagePlaceholderAspect = NSLayoutConstraint.Create(vImagePlaceholder, NSLayoutAttribute.Height, NSLayoutRelation.Equal, 1, 0)); double radius = Challenge.RadiusMeters ?? 100.0; if (radius > 6000000) { radius = 6000000; } double mapRegion = radius * 2.5; CLLocationCoordinate2D mapCoordinate = new CLLocationCoordinate2D(Challenge.LocationLat.Value, Challenge.LocationLong.Value); MapViewBase.SetRegion(MKCoordinateRegion.FromDistance(mapCoordinate, mapRegion, mapRegion), true); MKCircle circle = MKCircle.Circle(mapCoordinate, radius); MapViewBase.AddOverlay(circle); MKPointAnnotation annotation = new MKPointAnnotation(); annotation.Coordinate = new CLLocationCoordinate2D(Challenge.LocationLat.Value, Challenge.LocationLong.Value); MapViewBase.AddAnnotation(annotation); DidSetupMap = true; } else { MapViewBase.Hidden = true; paddingMap.RemoveConstraint(cnMapPlaceholderAspect); paddingMap.AddConstraint(cnMapPlaceholderAspect = NSLayoutConstraint.Create(paddingMap, NSLayoutAttribute.Height, NSLayoutRelation.Equal, 1, 0)); } CheckStatus(); }
public override void ViewDidLoad() { base.ViewDidLoad(); // Perform any additional setup after loading the view, typically from a nib. // add the map view var map = new MKMapView(UIScreen.MainScreen.Bounds); View.Add(map); // change the map style map.MapType = MKMapType.Standard; // enable/disable interactions // map.ZoomEnabled = false; // map.ScrollEnabled = false; // show user location if (UIDevice.CurrentDevice.CheckSystemVersion(8, 0)) { locationManager.RequestWhenInUseAuthorization(); } map.ShowsUserLocation = true; // specify a custom map delegate var mapDelegate = new MyMapDelegate(); map.Delegate = mapDelegate; // add a point annotation map.AddAnnotation(new MKPointAnnotation() { Title = "MyAnnotation", Coordinate = new CLLocationCoordinate2D(42.364260, -71.120824) }); // add a custom annotation // map.AddAnnotation(new CustomAnnotation("CustomSpot", new CLLocationCoordinate2D(38.364260, -68.120824))); // TODO: Step 4a - draw a circle overlay var circleOverlay = MKCircle.Circle(new CLLocationCoordinate2D(33.755, -84.39), 100 * 1609.34); // 1609.34 = meters in a mile map.AddOverlay(circleOverlay); // TODO: Step 4b - draw a polygon (Wyoming) var stateOverlay = MKPolygon.FromCoordinates(new CLLocationCoordinate2D[] { new CLLocationCoordinate2D(45.00, -111.00), new CLLocationCoordinate2D(45, -104), new CLLocationCoordinate2D(41, -104), new CLLocationCoordinate2D(41, -111) }); map.AddOverlay(stateOverlay); }
/// <summary> /// Adds a bubble that reflects the expiry range of a helicopter carrying organ /// </summary> /// <param name="heliPin"></param> private void addOrganRange(CustomPin heliPin) { //TODO Add proper radius var circleOptions = MKCircle.Circle( new CoreLocation.CLLocationCoordinate2D(heliPin.Position.Latitude, heliPin.Position.Longitude), 40000); nativeMap.AddOverlay(circleOptions); highlightedOrganRange = new Tuple <CustomPin, MKCircle>(heliPin, circleOptions); }
public void CtorOverlay() { TestRuntime.AssertXcodeVersion(5, 0, 1); var loc = new CLLocationCoordinate2D(40, 70); using (var overlay = MKCircle.Circle(loc, 2000)) using (var opr = new MKOverlayPathRenderer(overlay)) { Assert.Null(opr.Path, "Path"); } }
protected override void OnElementChanged(ElementChangedEventArgs <View> e) { base.OnElementChanged(e); if (e.OldElement != null) { var nativeMap = Control as MKMapView; nativeMap.GetViewForAnnotation = null; nativeMap.OverlayRenderer = null; nativeMap.CalloutAccessoryControlTapped -= OnCalloutAccessoryControlTapped; nativeMap.DidSelectAnnotationView -= OnDidSelectAnnotationView; nativeMap.DidDeselectAnnotationView -= OnDidDeselectAnnotationView; } if (e.NewElement != null) { formsMap = (LocationMap)e.NewElement; nativeMap = Control as MKMapView; var circle = formsMap.Circle; nativeMap.OverlayRenderer = GetOverlayRenderer; if (circle.Position.Latitude != 0.0) { _circle = MKCircle.Circle(new CoreLocation.CLLocationCoordinate2D(circle.Position.Latitude, circle.Position.Longitude), circle.Radius); nativeMap.AddOverlay(_circle); } /* Listen for circle change events */ MessagingCenter.Subscribe <CustomCircle>(this, "CircleChanged", (obj) => { if (_circle == null) { _circle = MKCircle.Circle(new CoreLocation.CLLocationCoordinate2D(obj.Position.Latitude, obj.Position.Longitude), obj.Radius); nativeMap.AddOverlay(_circle); } else { nativeMap.RemoveOverlay(_circle); _circle.Dispose(); _circle = MKCircle.Circle(new CoreLocation.CLLocationCoordinate2D(obj.Position.Latitude, obj.Position.Longitude), obj.Radius); nativeMap.AddOverlay(_circle); } }); nativeMap.GetViewForAnnotation = GetViewForAnnotation; nativeMap.CalloutAccessoryControlTapped += OnCalloutAccessoryControlTapped; nativeMap.DidSelectAnnotationView += OnDidSelectAnnotationView; nativeMap.DidDeselectAnnotationView += OnDidDeselectAnnotationView; } }
public void CtorOverlay() { if (!TestRuntime.CheckSystemAndSDKVersion(7, 0)) { Assert.Inconclusive("Requires iOS 7.0"); } var loc = new CLLocationCoordinate2D(40, 70); using (var overlay = MKCircle.Circle(loc, 2000)) using (var opr = new MKOverlayPathRenderer(overlay)) { Assert.Null(opr.Path, "Path"); } }
private void AddOverlays() { var circle = MKCircle.Circle(AtlantaCoords, 100 * METERS_IN_A_MILE); MyMapView.AddOverlay(circle); var poly = MKPolygon.FromCoordinates(new CLLocationCoordinate2D[] { new CLLocationCoordinate2D(25.25, -80.27), new CLLocationCoordinate2D(32.14, -64.97), new CLLocationCoordinate2D(18.23, -66.56) }); MyMapView.AddOverlay(poly); }
public override void ViewDidLoad() { base.ViewDidLoad(); locationManager.RequestWhenInUseAuthorization(); // set map type and show user location map.MapType = MKMapType.Standard; map.ShowsUserLocation = true; map.Bounds = View.Bounds; // set map center and region double lat = 42.374260; double lon = -71.120824; var mapCenter = new CLLocationCoordinate2D(lat, lon); var mapRegion = MKCoordinateRegion.FromDistance(mapCenter, 2000, 2000); map.CenterCoordinate = mapCenter; map.Region = mapRegion; // add an annotation map.AddAnnotation(new MKPointAnnotation() { Title = "MyAnnotation", Coordinate = new CLLocationCoordinate2D(42.364260, -71.120824) }); // set the map delegate mapDel = new MyMapDelegate(); map.Delegate = mapDel; // add a custom annotation map.AddAnnotation(new MonkeyAnnotation("Xamarin", mapCenter)); // add an overlay var circleOverlay = MKCircle.Circle(mapCenter, 1000); map.AddOverlay(circleOverlay); // create search controller searchBar = new UISearchBar(new CGRect(0, 20, View.Frame.Width, 50)) { Placeholder = "Enter a search query" }; searchController = new UISearchDisplayController(searchBar, this); searchController.Delegate = new SearchDelegate(map); searchController.SearchResultsSource = new SearchSource(searchController, map); View.AddSubview(searchBar); }
protected void OnMapTapped(UIGestureRecognizer sender) { CLLocationCoordinate2D tappedLocationCoord = map.ConvertPoint(sender.LocationInView(map), map); if (annotationMode) { var annotation = new MKPointAnnotation(tappedLocationCoord, "User annotation", ""); annotations.Add(annotation); map.AddAnnotation(annotation); } else { var overlay = MKCircle.Circle(tappedLocationCoord, 1000); map.AddOverlay(overlay); } }
public void RefreshOrganCircleOnMap(object o) { Device.BeginInvokeOnMainThread(() => { organTimeLeft--; if (organTimeLeft <= 0) { return; } else { double mapRadius; double distanceTime = organTimeLeft * 70; if (distanceTime > 500000) { mapRadius = 500000; } else { mapRadius = distanceTime; } Position currentPosition = customPin.Position; map.Circle = new CustomCircle { Position = currentPosition, Radius = mapRadius }; var circleOverlay = MKCircle.Circle(new CoreLocation.CLLocationCoordinate2D(map.Circle.Position.Latitude, map.Circle.Position.Longitude), map.Circle.Radius); if (nativeMap.Overlays == null || nativeMap.Overlays.Length == 0) { return; } else { nativeMap.RemoveOverlay(nativeMap.Overlays[0]); customMapRenderer.circleRenderer = null; nativeMap.OverlayRenderer = customMapRenderer.GetOverlayRenderer; nativeMap.AddOverlay(circleOverlay); } } }); }
public bool CenterInMarker(string seekiosId , bool showAnnotation = false , bool withAnimation = false) { var idAnnotationAsso = _annotationIdAssociation.FirstOrDefault(id => id.SeekiosId == seekiosId); if (idAnnotationAsso == null) { return(false); } var seekiosAnnotation = _annotations.FirstOrDefault(annotation => annotation.Id.Equals(idAnnotationAsso.MarkerId)); if (seekiosAnnotation == null) { return(false); } var seekios = App.CurrentUserEnvironment.LsSeekios.FirstOrDefault(f => f.Idseekios.ToString() == seekiosId); if (seekios != null) { if (seekios.LastKnownLocation_accuracy > 0) { var centerPostion = new CLLocationCoordinate2D(seekios.LastKnownLocation_latitude , seekios.LastKnownLocation_longitude); var circle = MKCircle.Circle(centerPostion , seekios.LastKnownLocation_accuracy); MapViewControl.SetVisibleMapRect(circle.BoundingMapRect, new UIEdgeInsets(50, 20, 100, 20), true); } else { CenterInLocalisation(seekios.LastKnownLocation_latitude , seekios.LastKnownLocation_longitude , (float)ZoomLevelEnum.BigZoom , withAnimation); } } if (showAnnotation) { SelectedAnnotation = seekiosAnnotation; MapViewControl.SelectAnnotation(seekiosAnnotation, withAnimation); } return(true); }
protected override void OnElementChanged(ElementChangedEventArgs <View> e) { base.OnElementChanged(e); if (isLoaded) { nativeMap.RemoveOverlays(nativeMap.Overlays); } if (e.OldElement != null) { nativeMap = Control as MKMapView; nativeMap.OverlayRenderer = null; } if (e.NewElement != null) { var formsMap = (CustomMap)e.NewElement; nativeMap = Control as MKMapView; isCircle = formsMap.DrawCircle; if (!isCircle) { nativeMap.OverlayRenderer = GetOverlayRenderer; CLLocationCoordinate2D[] coords = new CLLocationCoordinate2D[formsMap.RouteCoordinates.Count]; int index = 0; foreach (var position in formsMap.RouteCoordinates) { coords[index] = new CLLocationCoordinate2D(position.Latitude, position.Longitude); index++; } var routeOverlay = MKPolyline.FromCoordinates(coords); nativeMap.AddOverlay(routeOverlay); } if (isCircle) { var circle = formsMap.Circle; nativeMap.OverlayRenderer = GetOverlayRenderer; var circleOverlay = MKCircle.Circle(new CoreLocation.CLLocationCoordinate2D(circle.Position.Latitude, circle.Position.Longitude), circle.Radius); nativeMap.AddOverlay(circleOverlay); } } }
public override void Refresh(ChallengeResponseModel challengeResponce) { base.Refresh(challengeResponce); if (challengeResponce == null) { return; } Challenge = challengeResponce.Challenge; HeaderLbl.Text = Challenge.Name; //MainTextLable.Text = Challenge.Desc; TimeDisLbl.Text = Challenge.NextEventCountDown; var navigationDelegate = new ChallengeDetailWebViewNavigationDelegate(); navigationDelegate.NavigationFinished += SetupConstraint; this.WebView.NavigationDelegate = navigationDelegate; WebView.LoadHtmlString(Challenge.Desc, null); if (!DidSetupMap && Challenge.LocationLat != null && Challenge.LocationLong != null) { double radius = Challenge.RadiusMeters ?? 100.0; if (radius > 6000000) { radius = 6000000; } double mapRegion = radius * 2.5; CLLocationCoordinate2D mapCoordinate = new CLLocationCoordinate2D(Challenge.LocationLat.Value, Challenge.LocationLong.Value); MapView.SetRegion(MKCoordinateRegion.FromDistance(mapCoordinate, mapRegion, mapRegion), true); MKCircle circle = MKCircle.Circle(mapCoordinate, radius); MapView.AddOverlay(circle); MKPointAnnotation annotation = new MKPointAnnotation(); annotation.Coordinate = new CLLocationCoordinate2D(Challenge.LocationLat.Value, Challenge.LocationLong.Value); MapView.AddAnnotation(annotation); DidSetupMap = true; } }
public void Draw() { var nativeMap = Control as MKMapView; nativeMap.OverlayRenderer = GetOverlayRenderer; List <MKPolyline> polylines = new List <MKPolyline>(); foreach (Line line in formsMap.Lines) { currentFillColor = line.FillColor.ToUIColor(); currentStrokeColor = line.StrokeColor.ToUIColor(); CLLocationCoordinate2D[] cds = new CLLocationCoordinate2D[line.Positions.Count]; int index = 0; foreach (var position in line.Positions) { cds[index] = new CLLocationCoordinate2D(position.Latitude, position.Longitude); index++; } MKPolyline overlay = MKPolyline.FromCoordinates(cds); polylines.Add(overlay); } List <MKCircle> circles = new List <MKCircle>(); foreach (Circle circle in formsMap.Circles) { currentFillColor = circle.FillColor.ToUIColor(); currentStrokeColor = circle.StrokeColor.ToUIColor(); currentLineWidth = (nfloat)circle.LineWidth; MKCircle overlay = MKCircle.Circle(new CLLocationCoordinate2D(circle.Position.Latitude, circle.Position.Longitude), circle.Radius); circles.Add(overlay); } nativeMap.AddOverlays(polylines.ToArray()); nativeMap.AddOverlays(circles.ToArray()); }
public MKCircle CreateAccuracyArea(double latitude , double longitude , double accuracy) { if (_accuracyArea != null) { MapViewControl.RemoveOverlay(_accuracyArea); } if (accuracy <= 0) { return(null); } var centerPostion = new CLLocationCoordinate2D(latitude, longitude); var circle = MKCircle.Circle(centerPostion, accuracy); MapViewControl.AddOverlay(circle); MapViewControl.SetVisibleMapRect(circle.BoundingMapRect, new UIEdgeInsets(50, 20, 100, 20), true); _accuracyArea = circle; return(_accuracyArea); }