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); }
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); }
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; }
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(); }
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; }
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; }
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); }); }); }
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)); }
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; }
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(); }
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]); } }
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); }
public void UpdateCamera(Xamarin.Forms.GoogleMaps.Map mapRendering, Size mapSize, double pixelDensity) { UpdateCamera(mapRendering.CameraPosition.Target.ToLatLong(), mapRendering.CameraPosition.Zoom, mapSize, pixelDensity); }
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 }
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); }
/// <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 } } } }