Example #1
0
 public static Xamarin.Forms.GoogleMaps.Map StyleMap(Xamarin.Forms.GoogleMaps.Map map)
 {
     map.MapStyle = MapStyle;
     map.UiSettings.ZoomControlsEnabled     = false;
     map.UiSettings.MyLocationButtonEnabled = false;
     return(map);
 }
Example #2
0
        private static void UpdateCamera(Xamarin.Forms.GoogleMaps.Map map, Position pos)
        {
            CameraPosition cameraPosition = new CameraPosition(pos, 12, 10);
            CameraUpdate   cameraUpdate   = CameraUpdateFactory.NewCameraPosition(cameraPosition);

            map.AnimateCamera(cameraUpdate);
        }
Example #3
0
        public MapViewModel(MapPage page, IMapService mapService)
        {
            this.mapService             = mapService;
            geoLocator                  = CrossGeolocator.Current;
            geoLocator.PositionChanged += GeoLocatorOnPositionChanged;
            page.Appearing             += OnAppearing;
            page.Disappearing          += OnDisappearing;
            map = new Xamarin.Forms.GoogleMaps.Map
            {
                HeightRequest     = 100,
                WidthRequest      = 960,
                VerticalOptions   = LayoutOptions.FillAndExpand,
                MapType           = MapType.Hybrid,
                MyLocationEnabled = true,
                IsTrafficEnabled  = true,
                UiSettings        =
                {
                    CompassEnabled          = true,
                    MyLocationButtonEnabled = true,
                    ZoomControlsEnabled     = true
                }
            };
            var stack = new StackLayout {
                Spacing = 0
            };

            stack.Children.Add(map);
            page.Content = stack;
        }
Example #4
0
        public MainViewModel()
        {
            var mapSpan = Xamarin.Forms.Maps.MapSpan.FromCenterAndRadius(new Xamarin.Forms.Maps.Position(50.043604d, 22.0261172d), Xamarin.Forms.Maps.Distance.FromKilometers(3));


            MapControl = new Xamarin.Forms.GoogleMaps.Map();

            MapControl.MyLocationEnabled = true;

            AddMapStyle();
        }
Example #5
0
        public Gps()
        {
            InitializeComponent();

            //  xamarin.forms.maps


            // xamarin.forms.googlemaps
            Xamarin.Forms.GoogleMaps.Map map = new Xamarin.Forms.GoogleMaps.Map();
            map.MyLocationEnabled = true;
            map.UiSettings.MyLocationButtonEnabled = true;
        }
Example #6
0
        private async Task setGeoPosition(Xamarin.Forms.GoogleMaps.Map map)
        {
            var locator  = CrossGeolocator.Current;
            var position = await locator.GetPositionAsync();

            map.MoveToRegion(MapSpan.FromCenterAndRadius(new Position(position.Latitude, position.Longitude), Distance.FromKilometers(10)));
            map.UiSettings.ZoomControlsEnabled = false;
            if (user.RiskLevel > 0)
            {
                user.Latitude  = position.Latitude;
                user.Longitude = position.Longitude;
                await azureService.UpdateUserAsync(user);
            }
            return;
        }
Example #7
0
        public MapManager(Xamarin.Forms.GoogleMaps.Map map)
        {
            Map = map;
            map.HasScrollEnabled = false;
            map.IsShowingUser    = true;
            beforeUpdateTime     = DateTime.Now;

            Task.Run(() =>
            {
                Device.StartTimer(new TimeSpan(100000), () =>
                {
                    MapUpdate();
                    return(true);
                });
            });
        }
Example #8
0
        public NewJobLocation(Job Job) : base(Job)
        {
            var rlayout = new RelativeLayout();

            map = new Xamarin.Forms.GoogleMaps.Map();
            MapInitializer.StyleMap(map);
            _ = MapInitializer.CenterOnUserAsync(map);
            StackLayout.Children.Add(rlayout);
            Title = "Pick the location!";

            rlayout.Children.Add(map,
                                 Constraint.Constant(0),
                                 Constraint.Constant(0),
                                 Constraint.RelativeToParent(rl => rl.Width),
                                 Constraint.RelativeToParent(rl => rl.Height));

            var center_on_location_button = new ImageButton()
            {
                Source          = "target.png",
                BackgroundColor = new Color(0, 0, 0, 0),
            };

            center_on_location_button.Clicked += CenterOnLocationAsync;
            rlayout.Children.Add(center_on_location_button,
                                 Constraint.RelativeToParent(rl => rl.Width - rl.Width * 0.16),
                                 Constraint.RelativeToParent(rl => rl.Width * 0.04),
                                 Constraint.RelativeToParent(rl => rl.Width * 0.12),
                                 Constraint.RelativeToParent(rl => rl.Width * 0.12));


            var pin = new Image()
            {
                Source = "map_pin_red.png",
            };

            rlayout.Children.Add(pin,
                                 Constraint.RelativeToParent(rl => rl.Width / 2 - rl.Width * 0.05),
                                 Constraint.RelativeToParent(rl => rl.Height / 2 - rl.Width * 0.10),
                                 Constraint.RelativeToParent(rl => rl.Width * 0.10),
                                 Constraint.RelativeToParent(rl => rl.Width * 0.10));
        }
Example #9
0
        public LocalRequestPageViewModel()
        {
            GetPinListAsync();
            MapSpan mapSpan = new MapSpan(new Position(52.229676, 20.012229), 9, 9);

            Map = new Xamarin.Forms.GoogleMaps.Map
            {
                MyLocationEnabled = true
            };
            Map.MoveToRegion(mapSpan);
            ArrangePinsOnMap();
            MovedToLocalArea = new Command(async() =>
            {
                await MoveToLocalArea();
            });
            RefreshedLocalArea = new Command(async() =>
            {
                await RefreshLocalArea();
            });
            Map.InfoWindowClicked += InfoWindow_Clicked;
        }
Example #10
0
        public MainViewModel()
        {
            PageStatusEnum = PageStatusEnum.Default;
            OrderStateEnum = OrderStateEnum.StartPicker;

            CanCalculate = false;

            URLItems = new ObservableCollection <UserFavouriteLocation>();

            var mapSpan = Xamarin.Forms.GoogleMaps.MapSpan.FromCenterAndRadius(new Xamarin.Forms.GoogleMaps.Position(50.043604d, 22.0261172d), Xamarin.Forms.GoogleMaps.Distance.FromKilometers(3));


            MapControl = new Xamarin.Forms.GoogleMaps.Map();

            MapControl.MoveToRegion(mapSpan);

            MapControl.MyLocationEnabled = true;

            MapControl.MapClicked += MapControl_MapClicked;

            AddMapStyle();
        }
Example #11
0
        public static void SetRoutes(Xamarin.Forms.GoogleMaps.Map map, GoogleDirections googleDirections)
        {
            if (googleDirections.routes.Count > 0)
            {
                string encodedPoints = googleDirections.routes[0].overview_polyline.points;

                var lstDecodedPoints = GetPolylinePoints(encodedPoints);
                var latLngPoints     = new Position[lstDecodedPoints.Count];
                int index            = 0;

                var polylineoption = new Xamarin.Forms.GoogleMaps.Polyline();
                polylineoption.StrokeColor = Xamarin.Forms.Color.Red;

                foreach (Location loc in lstDecodedPoints)
                {
                    latLngPoints[index++] = new Position(loc.Latitude, loc.Longitude);
                    polylineoption.Positions.Add(new Position(loc.Latitude, loc.Longitude));
                }

                map.Polylines.Add(polylineoption);

                UpdateCamera(map, latLngPoints[0]);
            }
        }
Example #12
0
        public CreateMeetingPopupPage(Xamarin.Forms.GoogleMaps.Pin pin, Xamarin.Forms.GoogleMaps.Map map)
        {
            InitializeComponent();

            this.pin = pin;
            this.map = map;

            var tapGestureRecognizer = new TapGestureRecognizer();

            tapGestureRecognizer.Tapped += (sender, e) =>
            {
                AppImage theImage = (AppImage)sender;
                imagePicked = theImage.ImageSource;

                Icon_1.Opacity  = 0.4;
                Icon_2.Opacity  = 0.4;
                Icon_3.Opacity  = 0.4;
                Icon_4.Opacity  = 0.4;
                Icon_5.Opacity  = 0.4;
                Icon_6.Opacity  = 0.4;
                Icon_7.Opacity  = 0.4;
                Icon_8.Opacity  = 0.4;
                Icon_9.Opacity  = 0.4;
                Icon_10.Opacity = 0.4;

                activityPicked   = theImage.ImageName;
                theImage.Opacity = 1;
            };

            Editor.Focused += (sender, e) =>
            {
                ChoseActivity.IsVisible = false;
                DateAndTime.IsVisible   = false;
                DatePicker.IsVisible    = false;
                TimePicker.IsVisible    = false;
                Icon_1.IsVisible        = false;
                Icon_2.IsVisible        = false;
                Icon_3.IsVisible        = false;
                Icon_4.IsVisible        = false;
                Icon_5.IsVisible        = false;
                Icon_6.IsVisible        = false;
                Icon_7.IsVisible        = false;
                Icon_8.IsVisible        = false;
                Icon_9.IsVisible        = false;
                Icon_10.IsVisible       = false;
            };

            Editor.Completed += (sender, e) =>
            {
                ChoseActivity.IsVisible = true;
                DateAndTime.IsVisible   = true;
                DatePicker.IsVisible    = true;
                TimePicker.IsVisible    = true;
                Icon_1.IsVisible        = true;
                Icon_2.IsVisible        = true;
                Icon_3.IsVisible        = true;
                Icon_4.IsVisible        = true;
                Icon_5.IsVisible        = true;
                Icon_6.IsVisible        = true;
                Icon_7.IsVisible        = true;
                Icon_8.IsVisible        = true;
                Icon_9.IsVisible        = true;
                Icon_10.IsVisible       = true;
            };

            Icon_1.GestureRecognizers.Add(tapGestureRecognizer);
            Icon_2.GestureRecognizers.Add(tapGestureRecognizer);
            Icon_3.GestureRecognizers.Add(tapGestureRecognizer);
            Icon_4.GestureRecognizers.Add(tapGestureRecognizer);
            Icon_5.GestureRecognizers.Add(tapGestureRecognizer);
            Icon_6.GestureRecognizers.Add(tapGestureRecognizer);
            Icon_7.GestureRecognizers.Add(tapGestureRecognizer);
            Icon_8.GestureRecognizers.Add(tapGestureRecognizer);
            Icon_9.GestureRecognizers.Add(tapGestureRecognizer);
            Icon_10.GestureRecognizers.Add(tapGestureRecognizer);
        }
Example #13
0
 public void UpdateCamera(Xamarin.Forms.GoogleMaps.Map mapRendering, Size mapSize, double pixelDensity)
 {
     UpdateCamera(mapRendering.CameraPosition.Target.ToLatLong(), mapRendering.CameraPosition.Zoom, mapSize, pixelDensity);
 }
Example #14
0
        public SesionWeb()
        {
            InitializeComponent();
            var margin = 20;

            _timer = new System.Timers.Timer();

            _timer.Interval = 1000;  //Trigger event every second
            _timer.Elapsed += OnTimedEvent;
            //count down 5 seconds
            _countSeconds = 0;


            //_isendService = DependencyService.Get<ISend>();
            //_isendService.Send(myobject.codigo, myobject.nombreUsuario);

            //Device.BeginInvokeOnMainThread(() => {

            //    txtUsuario.Text = (myobject!=null)?myobject.nombreUsuario:"usuario";

            //});


            #region  Layout MAPS codigo lib GoogleMaps
            googleMaps = new Xamarin.Forms.GoogleMaps.Map
            {
                MyLocationEnabled = true,
                HeightRequest     = App.ScreenHeight,
                WidthRequest      = App.ScreenWidth,
                Margin            = margin - 5,
                VerticalOptions   = LayoutOptions.FillAndExpand,
            };
            googleMaps.UiSettings.MyLocationButtonEnabled = true;
            posicionAsync();
            txtUsuario = new Label
            {
                VerticalOptions   = LayoutOptions.Center,
                HorizontalOptions = LayoutOptions.FillAndExpand,
                Text = "Usuario"
            };
            txtImei = new Label
            {
                Text              = "Imei",
                VerticalOptions   = LayoutOptions.Center,
                HorizontalOptions = LayoutOptions.FillAndExpand,
            };
            var imageUser = new Image
            {
                Source          = "usuario.png",
                VerticalOptions = LayoutOptions.Center,
                WidthRequest    = 30,
                HeightRequest   = 35
            };
            //var imageImei = new Image
            //{
            //    Source = "contrasena.png",
            //    VerticalOptions = LayoutOptions.Center,
            //    WidthRequest = 15
            //};
            var botonCodigoCel = new ImageButton
            {
                Source          = "contrasena.png",
                VerticalOptions = LayoutOptions.Center,
                WidthRequest    = 30,
                HeightRequest   = 35
            };
            botonCodigoCel.Clicked += BotonCodigoCel_Clicked;
            var stackUsuario = new StackLayout
            {
                WidthRequest    = 120,
                Orientation     = StackOrientation.Horizontal,
                VerticalOptions = LayoutOptions.Center,
                Children        = { imageUser, txtUsuario }
            };
            var stackImei = new StackLayout
            {
                WidthRequest    = 120,
                Orientation     = StackOrientation.Horizontal,
                VerticalOptions = LayoutOptions.Center,
                Children        = { botonCodigoCel, txtImei }
            };
            var stackLayout = new StackLayout
            {
                Orientation     = StackOrientation.Vertical,
                Padding         = 10,
                Margin          = margin - 5,
                BackgroundColor = Color.FromHex("FFF"),
                Children        = { stackUsuario, stackImei }
            };
            labelToken = new Label
            {
                Text                    = "Token",
                FontAttributes          = FontAttributes.Bold,
                FontSize                = 28,
                TextColor               = Color.White,
                HorizontalTextAlignment = TextAlignment.Center
            };
            labelTokenTiempoRestante = new Label
            {
                Text                    = "tiempo restante",
                FontAttributes          = FontAttributes.Bold,
                FontSize                = 18,
                TextColor               = Color.White,
                HorizontalTextAlignment = TextAlignment.Center
            };
            var stackLayoutTokenRecibido = new FlexLayout
            {
                Direction         = FlexDirection.Column,
                JustifyContent    = FlexJustify.Center,
                BackgroundColor   = Color.Transparent,
                Margin            = 0,
                Padding           = 0,
                WidthRequest      = 200,
                HorizontalOptions = LayoutOptions.CenterAndExpand,
                //Padding = 10,
                Children =
                {
                    labelToken, labelTokenTiempoRestante
                }
            };
            Content = new StackLayout
            {
                BackgroundColor = Color.FromHex("c1c1c1"),
                Spacing         = 0,
                Children        =
                {
                    stackLayout,
                    stackLayoutTokenRecibido,
                    //customMap,
                    googleMaps
                }
            };
            #endregion codigo
        }
Example #15
0
        public static async System.Threading.Tasks.Task <Xamarin.Forms.GoogleMaps.Map> CenterOnUserAsync(Xamarin.Forms.GoogleMaps.Map map)
        {
            //centering the map on user
            var user_location = await Xamarin.Essentials.Geolocation.GetLocationAsync();

            map.MoveToRegion(MapSpan.FromCenterAndRadius(
                                 new Position(user_location.Latitude, user_location.Longitude),
                                 Distance.FromKilometers(20))
                             );

            return(map);
        }
Example #16
0
        /// <summary>
        /// Updates the visible polygons for user.
        /// </summary>
        /// <param name="MainCameraPolygon">Main camera polygon.</param>
        /// <param name="map">Map.</param>
        /// <param name="username">Username.</param>
        public void UpdateVisibleForUser(Polygon MainCameraPolygon, Xamarin.Forms.GoogleMaps.Map map, string username)
        {
            // Updating MainCameraPolygon positions
            MainCameraPolygon.Positions.Clear();
            MainCameraPolygon.Positions.Add(map.Region.FarLeft);
            MainCameraPolygon.Positions.Add(map.Region.FarRight);
            MainCameraPolygon.Positions.Add(map.Region.NearRight);
            MainCameraPolygon.Positions.Add(map.Region.NearLeft);

            // Clearing map before adding new
            map.Polygons.Clear();
            try
            {
                geometryInteractor.ResetAllPolygons();
            }
            catch
            {
                // Polygons are not ready
            }

            // Binary search for lower position (Y)
            int left = 0, right = GeometryEntity.polygons.Length - 1;

            Position MainCameraPosition;

            if (MainCameraPolygon.Positions[0].Latitude > MainCameraPolygon.Positions[1].Latitude &&
                MainCameraPolygon.Positions[0].Latitude > MainCameraPolygon.Positions[2].Latitude &&
                MainCameraPolygon.Positions[0].Latitude > MainCameraPolygon.Positions[3].Latitude)
            {
                MainCameraPosition = MainCameraPolygon.Positions[0];
            }
            else if (MainCameraPolygon.Positions[1].Latitude > MainCameraPolygon.Positions[0].Latitude &&
                     MainCameraPolygon.Positions[1].Latitude > MainCameraPolygon.Positions[2].Latitude &&
                     MainCameraPolygon.Positions[1].Latitude > MainCameraPolygon.Positions[3].Latitude)
            {
                MainCameraPosition = MainCameraPolygon.Positions[1];
            }
            else if (MainCameraPolygon.Positions[2].Latitude > MainCameraPolygon.Positions[0].Latitude &&
                     MainCameraPolygon.Positions[2].Latitude > MainCameraPolygon.Positions[1].Latitude &&
                     MainCameraPolygon.Positions[2].Latitude > MainCameraPolygon.Positions[3].Latitude)
            {
                MainCameraPosition = MainCameraPolygon.Positions[2];
            }
            else
            {
                MainCameraPosition = MainCameraPolygon.Positions[3];
            }

            while (right - left > 1)
            {
                int middle = (right + left) / 2;

                if (CompareByY(GeometryEntity.polygons[middle][0].Positions[3], MainCameraPosition))
                {
                    left = middle;
                }
                else
                {
                    right = middle;
                }
            }
            int TopBorder = left;

            // Binary search for upper position (Y)
            left  = 0;
            right = GeometryEntity.polygons.Length - 1;

            if (MainCameraPolygon.Positions[0].Latitude < MainCameraPolygon.Positions[1].Latitude &&
                MainCameraPolygon.Positions[0].Latitude < MainCameraPolygon.Positions[2].Latitude &&
                MainCameraPolygon.Positions[0].Latitude < MainCameraPolygon.Positions[3].Latitude)
            {
                MainCameraPosition = MainCameraPolygon.Positions[0];
            }
            else if (MainCameraPolygon.Positions[1].Latitude < MainCameraPolygon.Positions[0].Latitude &&
                     MainCameraPolygon.Positions[1].Latitude < MainCameraPolygon.Positions[2].Latitude &&
                     MainCameraPolygon.Positions[1].Latitude < MainCameraPolygon.Positions[3].Latitude)
            {
                MainCameraPosition = MainCameraPolygon.Positions[1];
            }
            else if (MainCameraPolygon.Positions[2].Latitude < MainCameraPolygon.Positions[0].Latitude &&
                     MainCameraPolygon.Positions[2].Latitude < MainCameraPolygon.Positions[1].Latitude &&
                     MainCameraPolygon.Positions[2].Latitude < MainCameraPolygon.Positions[3].Latitude)
            {
                MainCameraPosition = MainCameraPolygon.Positions[2];
            }
            else
            {
                MainCameraPosition = MainCameraPolygon.Positions[3];
            }

            while (right - left > 1)
            {
                int middle = (right + left) / 2;

                if (CompareByY(GeometryEntity.polygons[middle][0].Positions[0], MainCameraPosition))
                {
                    left = middle;
                }
                else
                {
                    right = middle;
                }
            }
            int BottomBorder = left;

            // Binary search for lower position (X)
            left  = 0;
            right = GeometryEntity.polygons[0].Length - 1;

            if (MainCameraPolygon.Positions[0].Longitude > MainCameraPolygon.Positions[1].Longitude &&
                MainCameraPolygon.Positions[0].Longitude > MainCameraPolygon.Positions[2].Longitude &&
                MainCameraPolygon.Positions[0].Longitude > MainCameraPolygon.Positions[3].Longitude)
            {
                MainCameraPosition = MainCameraPolygon.Positions[0];
            }
            else if (MainCameraPolygon.Positions[1].Longitude > MainCameraPolygon.Positions[0].Longitude &&
                     MainCameraPolygon.Positions[1].Longitude > MainCameraPolygon.Positions[2].Longitude &&
                     MainCameraPolygon.Positions[1].Longitude > MainCameraPolygon.Positions[3].Longitude)
            {
                MainCameraPosition = MainCameraPolygon.Positions[1];
            }
            else if (MainCameraPolygon.Positions[2].Longitude > MainCameraPolygon.Positions[0].Longitude &&
                     MainCameraPolygon.Positions[2].Longitude > MainCameraPolygon.Positions[1].Longitude &&
                     MainCameraPolygon.Positions[2].Longitude > MainCameraPolygon.Positions[3].Longitude)
            {
                MainCameraPosition = MainCameraPolygon.Positions[2];
            }
            else
            {
                MainCameraPosition = MainCameraPolygon.Positions[3];
            }

            while (right - left > 1)
            {
                int middle = (right + left) / 2;

                if (CompareByX(GeometryEntity.polygons[0][middle].Positions[1], MainCameraPosition))
                {
                    left = middle;
                }
                else
                {
                    right = middle;
                }
            }
            int LeftBorder = left;

            // Binary search for upper position (X)
            left  = 0;
            right = GeometryEntity.polygons[0].Length - 1;

            if (MainCameraPolygon.Positions[0].Longitude < MainCameraPolygon.Positions[1].Longitude &&
                MainCameraPolygon.Positions[0].Longitude < MainCameraPolygon.Positions[2].Longitude &&
                MainCameraPolygon.Positions[0].Longitude < MainCameraPolygon.Positions[3].Longitude)
            {
                MainCameraPosition = MainCameraPolygon.Positions[0];
            }
            else if (MainCameraPolygon.Positions[1].Longitude < MainCameraPolygon.Positions[0].Longitude &&
                     MainCameraPolygon.Positions[1].Longitude < MainCameraPolygon.Positions[2].Longitude &&
                     MainCameraPolygon.Positions[1].Longitude < MainCameraPolygon.Positions[3].Longitude)
            {
                MainCameraPosition = MainCameraPolygon.Positions[1];
            }
            else if (MainCameraPolygon.Positions[2].Longitude < MainCameraPolygon.Positions[0].Longitude &&
                     MainCameraPolygon.Positions[2].Longitude < MainCameraPolygon.Positions[1].Longitude &&
                     MainCameraPolygon.Positions[2].Longitude < MainCameraPolygon.Positions[3].Longitude)
            {
                MainCameraPosition = MainCameraPolygon.Positions[2];
            }
            else
            {
                MainCameraPosition = MainCameraPolygon.Positions[3];
            }

            while (right - left > 1)
            {
                int middle = (right + left) / 2;

                if (CompareByX(GeometryEntity.polygons[0][middle].Positions[0], MainCameraPosition))
                {
                    left = middle;
                }
                else
                {
                    right = middle;
                }
            }
            int RightBorder = left;

            // Feature for big zoom
            if (map.CameraPosition.Zoom < zoomMinimumValue)
            {
                MainCameraPolygon.StrokeColor = geometryInteractor.defaultStrokeColor;
                MainCameraPolygon.StrokeWidth = 1f;
                MainCameraPolygon.FillColor   = geometryInteractor.defaultFillColor;
                map.Polygons.Add(MainCameraPolygon);
            }

            const int delta = 1;

            for (int i = Math.Min(TopBorder, BottomBorder) - delta; i <= Math.Min(Math.Max(TopBorder, BottomBorder) + delta, GeometryEntity.polygons.Length - 1); ++i)
            {
                for (int j = Math.Min(LeftBorder, RightBorder) - delta; j <= Math.Min(delta + Math.Max(LeftBorder, RightBorder), GeometryEntity.polygons[i].Length - 1); ++j)
                {
                    try
                    {
                        if (map.CameraPosition.Zoom >= zoomMinimumValue)
                        {
                            map.Polygons.Add(GeometryEntity.polygons[i][j]);
                        }

                        string infoAboutCurrentPolygon = $"{i}+{j}";
                        if (App.dataInteractor.CheckPolygonForUser(username, infoAboutCurrentPolygon))
                        {
                            GeometryEntity.polygons[i][j].FillColor = geometryInteractor.ColorForVisitedPolygon;
                            if (map.CameraPosition.Zoom < zoomMinimumValue)
                            {
                                map.Polygons.Add(GeometryEntity.polygons[i][j]);
                            }
                        }
                        else
                        {
                            GeometryEntity.polygons[i][j].FillColor = geometryInteractor.defaultFillColor;
                        }
                    }
                    catch
                    {
                        // Google map not available
                    }
                }
            }
        }