Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using Xamarin.Forms;
- using Xamarin.Forms.Maps;
- namespace MapDemoPage
- {
- public partial class PointListPage : ContentPage
- {
- class GeoObject
- {
- public string name { get; set; }
- public double latitude;
- public double longitude;
- public GeoObject(string s, double lat, double lon)
- {
- name = s; latitude = lat; longitude = lon;
- }
- }
- Map map = new Map();
- public PointListPage()
- {
- Label header = new Label
- {
- Text = "Map Demo Page",
- FontAttributes = FontAttributes.Bold,
- HorizontalOptions = LayoutOptions.Center
- };
- Picker picker = new Picker
- {
- Title = "Select a Point",
- ItemsSource = new List<GeoObject> {
- new GeoObject("Moscow", 55.755814, 37.617635),
- new GeoObject("Saint-Petersburg", 59.939095, 30.315868),
- new GeoObject("Sochi", 43.585525, 39.723062),
- new GeoObject("Velikiy Novgorod", 58.52131, 31.271),
- new GeoObject("Vladimir", 56.13655, 40.39658)
- }
- };
- picker.ItemDisplayBinding = new Binding("name");
- picker.SelectedIndexChanged += Picker_SelectedIndexChanged;
- // Build the page.
- Title = "Map Demo Page";
- Content = new StackLayout
- {
- Children =
- {
- header,
- picker,
- map
- },
- Padding = new Thickness(0, 20, 0, 0)
- };
- }
- //обработка выбора объекта в списке
- private void Picker_SelectedIndexChanged(object sender, EventArgs e)
- {
- var picker = (Picker)sender;
- int selectedIndex = picker.SelectedIndex;
- if (selectedIndex != -1)
- {
- var geoObject = (GeoObject)picker.ItemsSource[selectedIndex];
- Position position = new Position(geoObject.latitude,
- geoObject.longitude);
- map.MoveToRegion(new MapSpan(position, 0.01, 0.01));
- var pin = new Pin
- {
- Label = geoObject.name,
- Position = position
- };
- pin.Clicked += Pin_Clicked;
- map.Pins.Add(pin);
- }
- if (selectedIndex != 0 & selectedIndex != 1 & selectedIndex != 2 & selectedIndex != 4)
- {
- DisplayAlert("Velikiy Novgorod", $" Население 224 297 чел.",
- "OK");
- }
- if (selectedIndex != 0 & selectedIndex != 1 & selectedIndex != 2 & selectedIndex != 3)
- {
- DisplayAlert("Vladimir", $" Население 357 907 чел.",
- "OK");
- }
- }
- //обработка нажатия на карте
- private async void Pin_Clicked(object sender, EventArgs e)
- {
- var selectedItem = (Pin)sender;
- if (selectedItem != null)
- await DisplayAlert("Tapped!", $"{selectedItem.Label} was tapped!",
- "OK");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement