protected override async void OnAppearing()
        {
            base.OnAppearing();
            Coördinaat coördinaat = (Coördinaat)BindingContext;

            Title = coördinaat.Nummer.ToString();                                 // Title is nummer attribuut coördinaat
            Oefeningen_Picker.ItemsSource = await App.Database.LijstOefeningen(); // itemsource == alle oefeningen die ooit aangemaakt zijn

            var BindingCoördinaat = (Coördinaat)BindingContext;

            if (BindingCoördinaat.IDOEfening != null)                                                // voorkomt dat bij iedere coördinaat standaard de eerste oefening wordt toegevoegd
            {
                Oefeningen_Picker.SelectedIndex = Convert.ToInt32(BindingCoördinaat.IDOEfening) - 1; // ID's beginnen vanaf 1, maar de index telt vanaf 0
            }
            else
            {
                Oefeningen_Picker.SelectedIndex = -1; // oftewel, niks staat geselecteerd in de picker
            }
            if (BindingCoördinaat.IDRoute == 1)       //RCS route mag niet worden bewerkt
            {
                Delete.IsEnabled            = false;
                Oefeningen_Picker.IsEnabled = false;
                Routeomschrijving.IsEnabled = false;
                Opslaan_Button.IsEnabled    = false;
                Reset_Button.IsEnabled      = false;
            }
        }
Exemple #2
0
        // dit event bevat alle handelingen die kunnen gebeuren als er op de map geklikt wordt
        private async void Map_Route_Toevoegen_MapClicked(object sender, MapClickedEventArgs e)
        {
            //longitude en latitude zijn vereist voor het maken van pins op de map
            double location1        = e.Position.Latitude;
            double location2        = e.Position.Longitude;
            int    NummerCoördinaat = CoördinatenRoute.Count + 1;

            //maak nieuwe pin aan op aangeklikte plek op de map
            Pin pin = new Pin
            {
                Label    = NummerCoördinaat.ToString(),
                Type     = PinType.Place,
                Position = new Position(location1, location2)
            };

            Map_Route_Toevoegen.Pins.Add(pin);
            PinsLijst.Add(pin);

            //maak object van class Coördinaat aan die bij de nieuwe route hoort
            coördinaat = new Coördinaat
            {
                Nummer     = NummerCoördinaat,
                Locatie1   = location1,
                Locatie2   = location2,
                IDOEfening = null,
                IDRoute    = await App.Database.KrijgRouteID() // hiermee krijg je het ID van de route die je nu aan het toevoegen bent
            };

            //voeg coördinaat object toe aan de list, maakt het mogelijk om later polylines te maken
            CoördinatenRoute.Add(coördinaat);

            //zodra er 2 of meer objecten in de eerder genoemde list zijn, wordt er een polyline getrokken tussen de laatste 2 Coördinaten / pins op de map
            if (CoördinatenRoute.Count >= 2)
            {
                Polyline polyline = new Polyline
                {
                    StrokeColor = Color.Blue,
                    StrokeWidth = 10,
                    Geopath     =
                    {
                        new Position(CoördinatenRoute[CoördinatenRoute.Count - 2].Locatie1, CoördinatenRoute[CoördinatenRoute.Count - 2].Locatie2), // pakt longitude en latitude van voorlaatste item in de list
                        new Position(CoördinatenRoute.Last().Locatie1, CoördinatenRoute.Last().Locatie2)                                            // pakt longitude en latitude van laatste item in de list
                    }
                };
                //voegt de net gemaakte polyline toe aan de map
                Map_Route_Toevoegen.MapElements.Add(polyline);
                PolylinesLijst.Add(polyline);
            }

            Route_Punt_Verwijderen.IsEnabled = true; // zorgt dat de knop werkt zodra er weer pins en polylines bestaan

            //event dat gebeurd als je op een al bestaande pin klikt
            pin.MarkerClicked += (s, args) =>
            {
                args.HideInfoWindow = true; // zorgt ervoor dat het popup-window met label en adres niet verschijnt
            };
        }
        private void Map_Route_Bewerken_MapClicked(object sender, MapClickedEventArgs e)
        {
            Route route = (Route)BindingContext; // vereist voor het krijgen van IDRoute
            //longitude en latitude zijn vereist voor het maken van pins op de map
            double location1        = e.Position.Latitude;
            double location2        = e.Position.Longitude;
            int    NummerCoördinaat = CoördinatenRoute.Count + 1;

            if (NieuwPunt.Count == 1)                             //hier wordt ervoor gezord dat er niet meerdere nieuwe pins tegelijk kunnen worden neergezet
            {
                Map_Route_Bewerken.Pins.Remove(NieuwPunt.Last()); //pin op de map
                NieuwPunt.Remove(NieuwPunt.Last());               // pin in pinslijst
                Map_Route_Bewerken.MapElements.Remove(polyline);  // polyline naar pin
            }
            Pin pin = new Pin                                     //maak nieuwe pin aan op aangeklikte plek op de map
            {
                Label    = NummerCoördinaat.ToString(),
                Type     = PinType.Place,
                Position = new Position(location1, location2)
            };

            pin.MarkerClicked += (s, args) => // verbergt de label die verschijnt als je op de pin klikt
            {
                args.HideInfoWindow = true;
            };
            Map_Route_Bewerken.Pins.Add(pin); //pin toevoegen aan de map
            NieuwPunt.Add(pin);

            coördinaat = new Coördinaat
            {
                Nummer     = NummerCoördinaat,
                Locatie1   = location1,
                Locatie2   = location2,
                IDOEfening = null,
                IDRoute    = route.IDRoute
            };

            polyline = new Polyline //maak nieuwe polyline tussen nieuwe pin en laatste pin in route
            {
                StrokeColor = Color.Red,
                StrokeWidth = 10,
                Geopath     =
                {
                    new Position(CoördinatenRoute.Last().Locatie1, CoördinatenRoute.Last().Locatie2), // pakt longitude en latitude van voorlaatste item in de list
                    new Position(coördinaat.Locatie1, coördinaat.Locatie2)                            // pakt longitude en latitude van laatste item in de list
                }
            };
            Map_Route_Bewerken.MapElements.Add(polyline); //polyline tekenen
        }
Exemple #4
0
        protected override async void OnAppearing()
        {
            base.OnAppearing();
            Oefeningen_Picker.ItemsSource = await App.Database.LijstOefeningen(); // itemsource = alle oefeningen die ooit aangemaakt zijn

            Coördinaat coördinaat = (Coördinaat)BindingContext;

            Title = coördinaat.Nummer.ToString();
            if (coördinaat.IDOEfening != null)                                                // voorkomt dat bij iedere coördinaat standaard de eerste oefening wordt toegevoegd
            {
                Oefeningen_Picker.SelectedIndex = Convert.ToInt32(coördinaat.IDOEfening) - 1; // ID's beginnen vanaf 1, maar de index telt vanaf 0
            }
            else
            {
                Oefeningen_Picker.SelectedIndex = -1; // oftewel, niks staat geselcteerd in de picker
            }
        }
 // Update coördinaat op basis van ID
 public Task <int> UpdateCoördinaat(Coördinaat coördinaat)
 {
     return(sqlite_database.UpdateAsync(coördinaat));
 }
 // Voeg coördinaat toe
 public Task <int> ToevoegenCoördinaat(Coördinaat coördinaat)
 {
     return(sqlite_database.InsertAsync(coördinaat));
 }
 // Verwijder coördinaat op basis van ID
 public Task <int> VerwijderCoördinaat(Coördinaat coördinaat)
 {
     return(sqlite_database.DeleteAsync(coördinaat));
 }