Esempio n. 1
0
        public void SetLocation(MapLocation toLocation)
        {
            var targetLocation = toLocation.Location.To2D();

            if (toLocation.Location.X == 0 && toLocation.Location.Y == 0)
            {
                // use the 'location manager' current coordinate
                if (locationManager.Location == null)
                {
                    return;
                }
                {                       // catch a possible null reference that i saw once [CD]
                    targetLocation = locationManager.Location.Coordinate;
                    ConferenceAnnotation a = new ConferenceAnnotation(targetLocation, "My location", "");
                    mapView.AddAnnotationObject(a);
                }
            }
            else if (toLocation.Title == conf.Location.Title)
            {
                // no need to drop anything
            }
            else
            {
                // drop a new pin
                ConferenceAnnotation a = new ConferenceAnnotation(toLocation.Location.To2D(), toLocation.Title, toLocation.Subtitle);
                mapView.AddAnnotationObject(a);
            }
            mapView.CenterCoordinate = targetLocation;
        }
		public void SetLocation (MapLocation toLocation)
		{
			var targetLocation = toLocation.Location.To2D();
			if (toLocation.Location.X == 0 && toLocation.Location.Y == 0)
			{
				// use the 'location manager' current coordinate
				if (locationManager.Location == null)
				{
					return;
				}
				{	// catch a possible null reference that i saw once [CD]
					targetLocation = locationManager.Location.Coordinate;
					ConferenceAnnotation a = new ConferenceAnnotation(targetLocation, "My location", "");
					mapView.AddAnnotationObject(a); 
				}
			}
			else if (toLocation.Title == conf.Location.Title)
			{
				// no need to drop anything
			}
			else
			{
				// drop a new pin
				ConferenceAnnotation a = new ConferenceAnnotation(toLocation.Location.To2D(), toLocation.Title,toLocation.Subtitle);
				mapView.AddAnnotationObject(a); 
			}
			mapView.CenterCoordinate = targetLocation;
		}
Esempio n. 3
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            // no XIB !
            mapView = new MKMapView()
            {
                ShowsUserLocation = true
            };

            labelDistance = new UILabel()
            {
                Frame           = new RectangleF(0, 0, 320, 49),
                Lines           = 2,
                BackgroundColor = UIColor.Black,
                TextColor       = UIColor.White
            };

            var segmentedControl = new UISegmentedControl();

            segmentedControl.Frame = new RectangleF(20, 320, 282, 30);
            segmentedControl.InsertSegment("Map", 0, false);
            segmentedControl.InsertSegment("Satellite", 1, false);
            segmentedControl.InsertSegment("Hybrid", 2, false);
            segmentedControl.SelectedSegment = 0;
            segmentedControl.ControlStyle    = UISegmentedControlStyle.Bar;
            segmentedControl.TintColor       = UIColor.DarkGray;

            segmentedControl.ValueChanged += delegate {
                if (segmentedControl.SelectedSegment == 0)
                {
                    mapView.MapType = MonoTouch.MapKit.MKMapType.Standard;
                }
                else if (segmentedControl.SelectedSegment == 1)
                {
                    mapView.MapType = MonoTouch.MapKit.MKMapType.Satellite;
                }
                else if (segmentedControl.SelectedSegment == 2)
                {
                    mapView.MapType = MonoTouch.MapKit.MKMapType.Hybrid;
                }
            };

            mapView.Delegate = new MapViewDelegate(this);

            // Set the web view to fit the width of the app.
            mapView.SizeToFit();

            // Reposition and resize the receiver
            mapView.Frame = new RectangleF(0, 50, this.View.Frame.Width, this.View.Frame.Height - 100);

            MKCoordinateSpan   span   = new MKCoordinateSpan(0.2, 0.2);
            MKCoordinateRegion region = new MKCoordinateRegion(ConferenceLocation, span);

            mapView.SetRegion(region, true);

            ConferenceAnnotation a = new ConferenceAnnotation(ConferenceLocation
                                                              , conf.Location.Title
                                                              , conf.Location.Subtitle
                                                              );

            mapView.AddAnnotationObject(a);


            locationManager          = new CLLocationManager();
            locationManager.Delegate = new LocationManagerDelegate(mapView, this);
            locationManager.StartUpdatingLocation();

            // Add the table view as a subview
            this.View.AddSubview(mapView);
            this.View.AddSubview(labelDistance);
            this.View.AddSubview(segmentedControl);

            // Add the 'info' button to flip
            var flipButton = UIButton.FromType(UIButtonType.InfoLight);

            flipButton.Frame = new RectangleF(290, 17, 20, 20);
            flipButton.Title(UIControlState.Normal);
            flipButton.TouchDown += delegate {
                _mfvc.Flip();
            };
            this.View.AddSubview(flipButton);
        }
		public override void ViewDidLoad ()
        {
            base.ViewDidLoad ();
			// no XIB !
			mapView = new MKMapView()
			{
				ShowsUserLocation = true
			};
			
			labelDistance = new UILabel()
			{
				Frame = new RectangleF (0, 0, 320, 49),
				Lines = 2,
				BackgroundColor = UIColor.Black,
				TextColor = UIColor.White
			};

			var segmentedControl = new UISegmentedControl();
			segmentedControl.Frame = new RectangleF(20, 320, 282,30);
			segmentedControl.InsertSegment("Map", 0, false);
			segmentedControl.InsertSegment("Satellite", 1, false);
			segmentedControl.InsertSegment("Hybrid", 2, false);
			segmentedControl.SelectedSegment = 0;
			segmentedControl.ControlStyle = UISegmentedControlStyle.Bar;
			segmentedControl.TintColor = UIColor.DarkGray;
			
			segmentedControl.ValueChanged += delegate {
				if (segmentedControl.SelectedSegment == 0)
					mapView.MapType = MonoTouch.MapKit.MKMapType.Standard;
				else if (segmentedControl.SelectedSegment == 1)
					mapView.MapType = MonoTouch.MapKit.MKMapType.Satellite;
				else if (segmentedControl.SelectedSegment == 2)
					mapView.MapType = MonoTouch.MapKit.MKMapType.Hybrid;
			};
			
			mapView.Delegate = new MapViewDelegate(this); 

			// Set the web view to fit the width of the app.
            mapView.SizeToFit();

            // Reposition and resize the receiver
            mapView.Frame = new RectangleF (0, 50, this.View.Frame.Width, this.View.Frame.Height - 100);

			MKCoordinateSpan span = new MKCoordinateSpan(0.2,0.2);
			MKCoordinateRegion region = new MKCoordinateRegion(ConferenceLocation,span);
			mapView.SetRegion(region, true);
			
			ConferenceAnnotation a = new ConferenceAnnotation(ConferenceLocation
                                , conf.Location.Title 
                                , conf.Location.Subtitle 
                              );
			mapView.AddAnnotationObject(a); 
			
			
			locationManager = new CLLocationManager();
			locationManager.Delegate = new LocationManagerDelegate(mapView, this);
			locationManager.StartUpdatingLocation();
			
            // Add the table view as a subview
            this.View.AddSubview(mapView);
			this.View.AddSubview(labelDistance);
			this.View.AddSubview(segmentedControl);
			
			// Add the 'info' button to flip
			var flipButton = UIButton.FromType(UIButtonType.InfoLight);
			flipButton.Frame = new RectangleF(290,17,20,20);
			flipButton.Title (UIControlState.Normal);
			flipButton.TouchDown += delegate {
				_mfvc.Flip();
			};
			this.View.AddSubview(flipButton);
		}