Пример #1
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            MapDelegate mapDelegate = new MapDelegate();

            mapView.Delegate = mapDelegate;

            #region Location ausgeben (Text)
            locationManager = new CLLocationManager();

            permissionCheck();
            locationManager.RequestAlwaysAuthorization();

            btnStart.TouchUpInside += BtnStart_TouchUpInside;
            btnEnd.TouchUpInside   += BtnEnd_TouchUpInside;
            #endregion
        }
Пример #2
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            MapDelegate mapDelegate = new MapDelegate();

            mapView.Delegate = mapDelegate;


            MKCoordinateRegion region = new MKCoordinateRegion();

            #region Location ausgeben (Text)
            locationManager = new CLLocationManager();

            locationManager.RequestAlwaysAuthorization();

            locationManager.LocationsUpdated += (sender, args) =>
            {
                location = args.Locations[0];
                double latitude  = Math.Round(location.Coordinate.Latitude, 4);
                double longitude = Math.Round(location.Coordinate.Longitude, 4);
                double accuracy  = Math.Round(location.HorizontalAccuracy, 0);


                lblOutput.Text = string.Format("Latitude: {0}\nLongitude: {1}\nAccuracy: {2}m", latitude, longitude, accuracy);
                Console.WriteLine("Zeitstempel Standort {0}", location.Timestamp);

                //region = new MKCoordinateRegion();
                //CLLocation secondlocation = new CLLocation(48.88370, 2.294481);
                region.Center = location.Coordinate;

                mapView.SetRegion(region, true);
            };

            locationManager.Failed += (sender, args) =>
            {
                lblOutput.Text = string.Format("Standortbestimmung fehlgeschlagen! \nFehlermeldung: {0}", args.Error.LocalizedDescription);
            };

            btnlocalize.TouchUpInside += (sender, args) =>
            {
                lblOutput.Text = "Bestimme Standort...";
                locationManager.StartUpdatingLocation();
            };

            btnStop.TouchUpInside += (sender, args) =>
            {
                locationManager.StopUpdatingLocation();
                lblOutput.Text = "Standortbestimmung beendet...";
            };
            #endregion

            #region Location in Map ausgeben

            //Aktuelle Position anzeigen
            mapView.ShowsUserLocation = true;
            mapView.ZoomEnabled       = true;

            mapView.MapType = MKMapType.Standard;

            //Karte auf der Position zentrieren
            //MKCoordinateRegion region = new MKCoordinateRegion();
            CLLocation secondlocation = new CLLocation(37.687834, -122.406417);
            region.Center = secondlocation.Coordinate;

            //Zoom-Level setzen
            MKCoordinateSpan span = new MKCoordinateSpan();
            span.LatitudeDelta  = 0.5;
            span.LongitudeDelta = 0.5;
            region.Span         = span;

            mapView.SetRegion(region, true);

            //Pin auf Karte setzen
            mapView.AddAnnotation(new MKPointAnnotation()
            {
                Title      = "Sehenswürdigkeit",
                Coordinate = new CLLocationCoordinate2D(37.687834, -122.406417)
            });

            MKPointAnnotation myAnnotation = new MKPointAnnotation();
            myAnnotation.Coordinate = new CLLocationCoordinate2D(37.687834, -122.406417);
            myAnnotation.Title      = "Unsere Position";

            MKPointAnnotation mysecondAnnotation = new MKPointAnnotation();
            mysecondAnnotation.Coordinate = new CLLocationCoordinate2D(37.787834, -122.406417);
            mysecondAnnotation.Title      = "Unsere Position";
            mapView.AddAnnotations(new IMKAnnotation[] { myAnnotation, mysecondAnnotation });

            //mapView.GetViewForAnnotation += (mapView, annotation) =>
            //{
            //    string pID = "PinAnnotation";
            //    if (annotation is MKPointAnnotation)
            //    {
            //        MKPinAnnotationView pinView = (MKPinAnnotationView)mapView.DequeueReusableAnnotation(pID);
            //        if (pinView == null)
            //            pinView = new MKPinAnnotationView(annotation, pID);

            //        pinView.PinColor = MKPinAnnotationColor.Green;
            //        pinView.CanShowCallout = true;
            //        pinView.RightCalloutAccessoryView = UIButton.FromType(UIButtonType.DetailDisclosure);
            //        pinView.LeftCalloutAccessoryView = new UIImageView(UIImage.FromBundle("Default.png"));
            //        return pinView;
            //    }
            //    else
            //    {
            //        return null;
            //    }
            //};

            //var circleOverlay = MKCircle.Circle(secondlocation.Coordinate, 1000);
            //mapView.AddOverlay(circleOverlay);

            //var circleView = new MKCircleView(circleOverlay);
            //circleView.FillColor = UIColor.Blue;
            //mapView.AddOverlay(mapView,  circleView);

            MKPolygon hotelOverlay = MKPolygon.FromCoordinates(
                new CLLocationCoordinate2D[]
            {
                new CLLocationCoordinate2D(37.787834, -122.406417),
                new CLLocationCoordinate2D(37.797834, -122.406417),
                new CLLocationCoordinate2D(37.797834, -122.416417),
                new CLLocationCoordinate2D(37.787834, -122.416417),
                new CLLocationCoordinate2D(37.787834, -122.406417),
            });
            mapView.AddOverlay(hotelOverlay);
            #endregion

            #region Suchleiste in der Map
            //var searchResultContainer = new SearchResultsViewController(mapView);
            //var searchUpdater = new UISearchResultsUpdating();

            //UISearchController searchController = new UISearchController(searchResultsController: null);

            #endregion
        }