using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; using Xamarin.Forms; using Xamarin.Forms.Maps; namespace MyMaps { public partial class MainPage : ContentPage { public MainPage() { InitializeComponent(); scrollEnabledCheckBox.CheckedChanged += OnCheckBoxCheckedChanged; zoomEnabledCheckBox.CheckedChanged += OnCheckBoxCheckedChanged; moveRegionCheckBox.CheckedChanged += OnCheckBoxCheckedChanged; } void OnButtonClicked(object sender, EventArgs e) { Button button = sender as Button; switch (button.Text) { case "Street": mapa.MapType = MapType.Street; break; case "Satellite": mapa.MapType = MapType.Satellite; break; case "Hybrid": mapa.MapType = MapType.Hybrid; break; } } void OnCheckBoxCheckedChanged(object sender, CheckedChangedEventArgs e) { CheckBox checkBox = sender as CheckBox; switch (checkBox.StyleId) { case "scrollEnabledCheckBox": mapa.HasScrollEnabled = !mapa.HasScrollEnabled; break; case "zoomEnabledCheckBox": mapa.HasZoomEnabled = !mapa.HasZoomEnabled; break; case "showUserCheckBox": mapa.IsShowingUser = !mapa.IsShowingUser; break; case "showTrafficCheckBox": mapa.TrafficEnabled = !mapa.TrafficEnabled; break; case "moveRegionCheckBox": mapa.MoveToLastRegionOnLayoutChange = !mapa.MoveToLastRegionOnLayoutChange; break; } } private void BtnAddPin_Clicked(object sender, EventArgs e) { Pin teatrWielkiPin = new Pin { Position = new Position(51.7730037, 19.4698157), Label = "Teatr Wielki", Address = "Łódź, ul.Narutowicza", Type = PinType.Place }; teatrWielkiPin.MarkerClicked += OnMarkerClickedAsync; mapa.Pins.Add(teatrWielkiPin); } async void OnMarkerClickedAsync(object sender, PinClickedEventArgs e) { e.HideInfoWindow = true; string pinName = ((Pin)sender).Label; await DisplayAlert("Pin Clicked", $"{pinName} was clicked.", "Ok"); } static Random Random = new Random(Environment.TickCount); private void BtnRandomPositon_Clicked(object sender, EventArgs e) { double Latitude = Random.Next(90); double Longitude = Random.Next(360); Position randomPosition = new Position(Latitude, Longitude); mapa.MoveToRegion(new MapSpan(randomPosition, 10, 10)); } private void BtnGoHome_Clicked(object sender, EventArgs e) { mapa.MoveToRegion(new MapSpan(new Position(51.7730037, 19.4698157), 0.1, 0.1)); } } }