public void createUsersDetails(MKMapView map)
        {
            // Create Driver's Detail
            UIView userDetails = new UIView();

            userDetails.BackgroundColor        = null;
            userDetails.UserInteractionEnabled = true;
            userDetails.Frame = new CGRect(map.Frame.Width / 2 - 90, map.Frame.Height / 2 + 200, map.Frame.Width / 2 - 10, map.Frame.Height / 4 - 75);
            map.AddSubview(userDetails);
            UIImage     driverImage = new UIImage("Car.png");
            UIImageView imageView   = new UIImageView(driverImage);

            imageView.Frame = new CGRect(userDetails.Frame.Width / 4 + 15, 10, 75, 75);
            imageView.Layer.MasksToBounds = true;
            imageView.Layer.CornerRadius  = 20;
            userDetails.Add(imageView);
            UILabel driverLabel = new UILabel();

            driverLabel.Frame         = new CGRect(userDetails.Frame.Width / 4, 20, userDetails.Frame.Height, userDetails.Frame.Width);
            driverLabel.LineBreakMode = UILineBreakMode.WordWrap;
            driverLabel.Lines         = 0;
            driverLabel.Font          = UIFont.BoldSystemFontOfSize(16);
            driverLabel.Text          = "Name: UberX  Price: 50$";
            userDetails.Add(driverLabel);
        }
        public override void ViewDidLoad()
        {
            showUserMap();
            showSearchBar();
            annotationMode = true;
            //var realm = Realm.GetInstance();
            map.AddSubview(modeButton);
            map.AddSubview(validateLocationButton);
            map.AddSubview(sendEmailButton);
            sendEmailButton.Enabled = false;

            sendEmailButton.SetTitle("Inform", UIControlState.Normal);
            validateLocationButton.SetTitle("Check", UIControlState.Normal);

            modeButton.AddTarget(modeButtonEventHandler, UIControlEvent.TouchUpInside);
            validateLocationButton.AddTarget(validateLocationButtonEventHandler, UIControlEvent.TouchUpInside);
            sendEmailButton.AddTarget(sendEmailButtonEventHandler, UIControlEvent.TouchUpInside);
            usersTosend.Add("*****@*****.**");
            usersTosend.Add("*****@*****.**");
            usersTosend.Add("*****@*****.**");
        }
        private void AddCompassButton(MKMapView nativeMap, int topAnchor)
        {
            MKCompassButton compass = MKCompassButton.FromMapView(nativeMap);

            compass.CompassVisibility = MKFeatureVisibility.Visible;
            compass.Frame             = new CGRect(new CGPoint(45, 45), compass.Frame.Size);
            compass.TranslatesAutoresizingMaskIntoConstraints = false;

            nativeMap.AddSubview(compass);

            compass.TopAnchor.ConstraintEqualTo(nativeMap.TopAnchor, topAnchor).Active = true;
            compass.RightAnchor.ConstraintEqualTo(nativeMap.RightAnchor, -14).Active   = true;
        }
        private void AddTrackingButton(MKMapView nativeMap)
        {
            MKUserTrackingButton button = MKUserTrackingButton.FromMapView(nativeMap);

            button.Layer.BackgroundColor = UIColor.White.ColorWithAlpha(0.9F).CGColor;
            button.Layer.BorderColor     = UIColor.White.ColorWithAlpha(0.9F).CGColor;
            button.Layer.ShadowColor     = UIColor.Black.CGColor;
            button.Layer.ShadowOpacity   = 0.3F;
            button.Layer.ShadowRadius    = 4;
            button.Layer.BorderWidth     = 1;
            button.Layer.CornerRadius    = 4;
            button.Layer.MasksToBounds   = false;
            button.TranslatesAutoresizingMaskIntoConstraints = false;

            nativeMap.AddSubview(button);
            button.TopAnchor.ConstraintEqualTo(nativeMap.TopAnchor, 58).Active      = true;
            button.RightAnchor.ConstraintEqualTo(nativeMap.RightAnchor, -12).Active = true;
        }
        protected override void CreateHeatMapIfNeeded()
        {
            if (_heatMapLayer == null)
            {
                _heatMapLayer = new HeatMapLayer(FormsMap)
                {
                    ParentMap = _nativeMap,
                    Radius    = FormsMap.Radius,
                    Intensity = FormsMap.Intensity,
                    Locations = FormsMap.Locations?.Select(CoordinateConverter.ConvertToNative)
                };

                FormsMap.PropertyChanged -= FormsMapPropertyChanged;
                FormsMap.PropertyChanged += FormsMapPropertyChanged;

                _heatMapLayer.Frame = new CoreGraphics.CGRect(0, 0, _nativeMap.Frame.Width, _nativeMap.Frame.Height);
                _nativeMap.AddSubview(_heatMapLayer);
            }
        }
        private void Initialize()
        {
            _MapView                   = new MKMapView();
            _MapView.Frame             = new RectangleF(0, 0, Frame.Width, Frame.Height);
            _MapView.ShowsUserLocation = true;
            _MapView.Delegate          = new MapViewDelegate(this);

            _RouteView       = new UIImageView();
            _RouteView.Frame = new RectangleF(0, 0, _MapView.Frame.Width, _MapView.Frame.Height);
            _RouteView.UserInteractionEnabled = false;

            this.LineColor = UIColor.FromWhiteAlpha(0.2f, 0.5f);

            _Routes = new CLLocation[] { };

            CalculateRoutesAction = CalculateRoutes;

            _Client = new RestClient(@"http://maps.googleapis.com/maps/api/directions/");
            _Client.AddDefaultUrlSegment("sensor", "false");

            _MapView.AddSubview(_RouteView);
            this.AddSubview(_MapView);
        }
Exemple #7
0
        private void Initialize()
        {
            _MapView = new MKMapView();
            _MapView.Frame = new RectangleF(0, 0, Frame.Width, Frame.Height);
            _MapView.ShowsUserLocation = true;
            _MapView.Delegate = new MapViewDelegate(this);

            _RouteView = new UIImageView();
            _RouteView.Frame = new RectangleF(0, 0, _MapView.Frame.Width, _MapView.Frame.Height);
            _RouteView.UserInteractionEnabled = false;

            this.LineColor = UIColor.FromWhiteAlpha(0.2f, 0.5f);

            _Routes = new CLLocation[] { };

            CalculateRoutesAction = CalculateRoutes;

            _Client = new RestClient(@"http://maps.googleapis.com/maps/api/directions/");
            _Client.AddDefaultUrlSegment("sensor", "false");

            _MapView.AddSubview(_RouteView);
            this.AddSubview(_MapView);
        }
        private void AddToolbar(MKMapView nativeMap)
        {
            // Map Tracking button
            MKUserTrackingBarButtonItem trackingButton = new MKUserTrackingBarButtonItem(nativeMap);

            trackingButton.CustomView.Frame     = new CGRect(x: trackingButton.CustomView.Frame.X, y: trackingButton.CustomView.Frame.Y, width: 44, height: 44);
            trackingButton.CustomView.Transform = CGAffineTransform.MakeRotation((nfloat)(-270.0 / 180 * Math.PI));

            // Add Feature Button
            UIButton addFeatureButton = new UIButton(UIButtonType.ContactAdd)
            {
                Frame     = new CGRect(x: trackingButton.CustomView.Frame.X, y: trackingButton.CustomView.Frame.Y, width: 44, height: 44),
                Transform = CGAffineTransform.MakeRotation((nfloat)(-270.0 / 180 * Math.PI))
            };

            addFeatureButton.TouchUpInside += (sender, e) =>
            {
                NavigationService navigationService = (NavigationService)DependencyService.Get <INavigationService <Feature> >();
                _ = navigationService.PushAddFeaturePage();
            };
            UIBarButtonItem addFeatureButtonItem = new UIBarButtonItem(addFeatureButton);

            // Flexible Seperator
            UIBarButtonItem flex = new UIBarButtonItem(UIBarButtonSystemItem.FlexibleSpace, target: this, action: null);

            // Toolbar Items Aray
            UIBarButtonItem[] ButtonsArray = new UIBarButtonItem[] { flex, trackingButton, flex, addFeatureButtonItem, flex };

            // Toolbar and frame
            CGRect    toolBarFrame = new CGRect(location: new CGPoint(x: 0, y: 0), size: new CGSize(width: 88, height: 44));
            UIToolbar toolbar      = new UIToolbar(frame: toolBarFrame)
            {
                BarTintColor = UIColor.SystemBackgroundColor,
                Translucent  = true
            };

            toolbar.SetItems(ButtonsArray, true);

            // Set toolbar position
            CGPoint origin = new CGPoint(x: UIScreen.MainScreen.Bounds.Width - 75, y: 75);

            // Create base view for button
            UIView baseView = new UIView(frame: new CGRect(location: origin, size: new CGSize(width: 88, height: 44)))
            {
                BackgroundColor = UIColor.Clear
            };

            // Shadow effects
            baseView.Layer.ShadowColor   = UIColor.Black.CGColor;
            baseView.Layer.ShadowOpacity = 0.3f;
            baseView.Layer.ShadowOffset  = new CGSize(width: 0, height: 0);
            baseView.Layer.ShadowRadius  = 4.0f;

            // Rounded border view for button
            UIView borderview = new UIView
            {
                Frame = baseView.Bounds
            };

            borderview.Layer.CornerRadius  = 10;
            borderview.Layer.MasksToBounds = true;
            baseView.Transform             = CGAffineTransform.MakeRotation((nfloat)(270.0 / 180 * Math.PI));

            // Stack subviews
            borderview.AddSubview(toolbar);
            baseView.AddSubview(borderview);
            nativeMap.AddSubview(baseView);
        }