コード例 #1
0
 public void Créer_Click(object sender, RoutedEventArgs e)
 {
     if (ComboBoxChoixObjet.SelectedIndex == 1)
     {
         PoiWindow poiWindow = new PoiWindow();
         poiWindow.Owner = this;
         poiWindow.ShowDialog();
         if (poiWindow.Poi != null)
         {
             myPersonalMapData.ObservableCollection.Add(poiWindow.Poi);
             UpdateMainWindow();
         }
         poiWindow.Close();
     }
     else if (ComboBoxChoixObjet.SelectedIndex == 2)
     {
         PolylineWindow polylineWindow = new PolylineWindow();
         polylineWindow.Owner = this;
         polylineWindow.ShowDialog();
         if (polylineWindow.Polyline != null)
         {
             myPersonalMapData.ObservableCollection.Add(polylineWindow.Polyline);
             UpdateMainWindow();
         }
         polylineWindow.Close();
     }
     else if (ComboBoxChoixObjet.SelectedIndex == 3)
     {
         PolygonWindow polygonWindow = new PolygonWindow();
         polygonWindow.Owner = this;
         polygonWindow.ShowDialog();
         if (polygonWindow.Polygon != null)
         {
             myPersonalMapData.ObservableCollection.Add(polygonWindow.Polygon);
             UpdateMainWindow();
         }
         polygonWindow.Close();
     }
     ListBox.SelectedIndex = 0;
 }
コード例 #2
0
        private void Modifier_Click(object sender, RoutedEventArgs e)
        {
            if (myPersonalMapData.ObservableCollection.Count == 0)
            {
                return;
            }
            int position = ListBox.SelectedIndex;

            ICartoObj i = myPersonalMapData.ObservableCollection.ElementAt(position);

            if (i is POI)
            {
                POI       p         = i as POI;
                PoiWindow poiWindow = new PoiWindow(p);
                poiWindow.ShowDialog();
                myPersonalMapData.ObservableCollection[position] = poiWindow.Poi;
                ListBox.SelectedIndex = position;
                poiWindow.Close();
            }
            if (i is Polyline)
            {
                Polyline       p = i as Polyline;
                PolylineWindow polylineWindow = new PolylineWindow(p);
                polylineWindow.ShowDialog();
                myPersonalMapData.ObservableCollection[position] = polylineWindow.Polyline;
                ListBox.SelectedIndex = position;
                polylineWindow.Close();
            }
            if (i is Polygon)
            {
                Polygon       p             = i as Polygon;
                PolygonWindow polygonWindow = new PolygonWindow(p);
                polygonWindow.ShowDialog();
                myPersonalMapData.ObservableCollection[position] = polygonWindow.Polygon;
                ListBox.SelectedIndex = position;
                polygonWindow.Close();
            }
            UpdateMainWindow();
        }
コード例 #3
0
        private void Map_KeyDown(object sender, KeyEventArgs e)
        {
            Console.WriteLine("Map_KeyDown");
            if (e.Key == Key.Enter)
            {
                Console.WriteLine(collectionCoordonnees.Count);
                if (collectionCoordonnees.Count > 1)
                {
                    if (collectionCoordonnees.Count > 2 && collectionCoordonnees[0].IsPointClose(new Coordonnees(collectionCoordonnees[collectionCoordonnees.Count - 1].Latitude, collectionCoordonnees[collectionCoordonnees.Count - 1].Longitude), 0.001))
                    {
                        //Cree la surface
                        //Modifier tout les elements en Coordonnees
                        for (int i = 0; i < collectionCoordonnees.Count; i++)
                        {
                            if (collectionCoordonnees[i] is POI)
                            {
                                collectionCoordonnees[i] = new Coordonnees(collectionCoordonnees[i].Latitude, collectionCoordonnees[i].Longitude);
                            }
                        }
                        collectionCoordonnees.RemoveAt(collectionCoordonnees.Count - 1);
                        PolygonWindow polygonWindow = new PolygonWindow();
                        polygonWindow.Collection  = collectionCoordonnees;
                        polygonWindow.Remplissage = "Red";
                        polygonWindow.Contour     = "Black";
                        polygonWindow.Opacite     = 0.5;
                        polygonWindow.ShowDialog();
                        if (polygonWindow.Polygon != null)
                        {
                            myPersonalMapData.ObservableCollection.Add(polygonWindow.Polygon);
                            collectionCoordonnees.Clear();
                        }
                        polygonWindow.Close();
                    }
                    else
                    {
                        //Modifier le dernier element en POI
                        Coordonnees coordonnees = collectionCoordonnees[collectionCoordonnees.Count - 1];
                        collectionCoordonnees.RemoveAt(collectionCoordonnees.Count - 1);
                        POI poi = new POI("Fin", new Coordonnees(coordonnees.Latitude, coordonnees.Longitude));
                        collectionCoordonnees.Add(poi);

                        //Fabrique la polyline
                        PolylineWindow polylineWindow = new PolylineWindow();
                        polylineWindow.Collection  = collectionCoordonnees;
                        polylineWindow.Couleur     = "Black";
                        polylineWindow.Epaisseur   = "5";
                        polylineWindow.Description = ((POI)collectionCoordonnees[0]).Description + " vers " + ((POI)collectionCoordonnees[collectionCoordonnees.Count - 1]).Description;
                        polylineWindow.ShowDialog();
                        if (polylineWindow.Polyline != null)
                        {
                            //Ajoute tout
                            myPersonalMapData.ObservableCollection.Add(polylineWindow.Polyline);
                            collectionCoordonnees.Clear();
                        }
                        else
                        {
                            POI         p     = (POI)collectionCoordonnees[collectionCoordonnees.Count - 1];
                            Coordonnees coods = new Coordonnees(p.Latitude, p.Longitude);
                            collectionCoordonnees.RemoveAt(collectionCoordonnees.Count - 1);
                            collectionCoordonnees.Add(coods);
                        }
                        polylineWindow.Close();
                    }
                    UpdateMainWindow();
                }
            }
            e.Handled = true;
        }
コード例 #4
0
        private void Map_DoubleClick(object sender, MouseEventArgs e)
        {
            Console.WriteLine("Double click!");
            Point    mousePosition = e.GetPosition(Map);
            Location mouseLocation = Map.ViewportPointToLocation(mousePosition);
            bool     pinPresent    = false;

            //Tester si on click sur une pin
            for (int i = 0; i < myPersonalMapData.ObservableCollection.Count; i++)
            {
                ICartoObj obj = myPersonalMapData.ObservableCollection[i];
                if (obj is POI)
                {
                    Coordonnees coords = new Coordonnees(((POI)obj).Latitude, ((POI)obj).Longitude);
                    if (coords.IsPointClose(new Coordonnees(mouseLocation.Latitude, mouseLocation.Longitude), 0.001))
                    {
                        Console.WriteLine("trouve: des = {0}", ((POI)obj).Description);
                        PoiWindow poiWindow = new PoiWindow((POI)obj);
                        poiWindow.ShowDialog();
                        myPersonalMapData.ObservableCollection[i] = poiWindow.Poi;
                        poiWindow.Close();
                        pinPresent = true;
                        break;
                    }
                }
                if (obj is Polyline)
                {
                    foreach (ICartoObj cartoObj in ((Polyline)obj).Collection)
                    {
                        if (((Coordonnees)cartoObj).IsPointClose(new Coordonnees(mouseLocation.Latitude, mouseLocation.Longitude), 0.001))
                        {
                            ListBox.SelectedItem = ((Polyline)obj).Description;
                            PolylineWindow polylineWindow = new PolylineWindow((Polyline)obj);
                            polylineWindow.ShowDialog();
                            myPersonalMapData.ObservableCollection[ListBox.SelectedIndex] = polylineWindow.Polyline;
                            polylineWindow.Close();
                            pinPresent = true;
                            break;
                        }
                    }
                }
                e.Handled = true;
            }

            if (!pinPresent)
            {
                //Créé une pin ou trajet
                POI       poi       = new POI("", new Coordonnees(mouseLocation.Latitude, mouseLocation.Longitude));
                PoiWindow poiWindow = new PoiWindow();
                poiWindow.Latitude    = poi.Latitude.ToString();
                poiWindow.Longitude   = poi.Longitude.ToString();
                poiWindow.Description = "";
                poiWindow.ShowDialog();
                if (poiWindow.Poi != null)
                {
                    myPersonalMapData.ObservableCollection.Add(poiWindow.Poi);
                }
                poiWindow.Close();
            }
            UpdateMainWindow();
        }