Esempio n. 1
0
        private void GetCoordonneesAndLocationNearClick(Location clickLocation, ref Coordonnees newCoordonnee, ref Location newLocation)
        {
            bool        stop             = false;
            Coordonnees clickCoordonnees = new Coordonnees(clickLocation.Latitude, clickLocation.Longitude);

            for (int i = MapData.ICartoObjs.Count() - 1; i >= 0 && !stop; i--)   // Reverse loop because the last element is the first showed on screen
            {
                ICartoObj iCartoObj = MapData.ICartoObjs[i];
                if (iCartoObj is POI poi)   // POI (Pushpin)
                {
                    if (poi.IsPointClose(clickCoordonnees, _PRECISION))
                    {
                        newCoordonnee.Latitude  = poi.Latitude;
                        newCoordonnee.Longitude = poi.Longitude;
                        newLocation.Latitude    = poi.Latitude;
                        newLocation.Longitude   = poi.Longitude;
                        stop = true;
                    }
                }
                else     // Polyline or Polygon (Coords of the element)
                {
                    IPointy iPointy = iCartoObj as IPointy;
                    for (int j = iPointy.Coordonnees.Count() - 1; j >= 0 && !stop; j--)   // Reverse loop because the last element is the first showed on screen
                    {
                        Coordonnees currentCoord = iPointy.Coordonnees[j];
                        if (currentCoord.IsPointClose(clickCoordonnees, _PRECISION))
                        {
                            newCoordonnee.Latitude  = currentCoord.Latitude;
                            newCoordonnee.Longitude = currentCoord.Longitude;
                            newLocation.Latitude    = currentCoord.Latitude;
                            newLocation.Longitude   = currentCoord.Longitude;
                            stop = true;
                        }
                    }
                }
            }
        }
Esempio n. 2
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();
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            Console.WriteLine("------------------------------------------------------------");
            Console.WriteLine("---------créer et afficher 2 objets de chaque sorte---------");
            Console.WriteLine("------------------------------------------------------------");
            Console.WriteLine("------------------COORDONNEES------------------");
            Coordonnees C1 = new Coordonnees();

            Console.WriteLine("Constructeur par defaut de Coordonnees : C1");
            Console.WriteLine(C1.ToString());
            Console.WriteLine("Methode DRAW");
            C1.Draw();

            Console.WriteLine("C1 lat = 1, long = 1");
            C1.Latitude  = 1;
            C1.Longitude = 1;
            Console.WriteLine(C1.ToString());
            Console.WriteLine("Methode DRAW");
            C1.Draw();

            Coordonnees C2 = new Coordonnees(1, 2);

            Console.WriteLine("Constructeur initialisation Coordonnees : C2(1, 2)");
            Console.WriteLine(C2.ToString());
            Console.WriteLine("Methode DRAW");
            C2.Draw();

            bool returnIsPointClose;

            Console.WriteLine("IsPointClose entre C1(lat/long) : " + C1.Latitude + "/" + C1.Longitude + " et C2(lat/long) : " + C2.Latitude + " / " + C2.Longitude);
            Console.WriteLine("Precision = 1.0");
            returnIsPointClose = C1.IsPointClose(C2, 1.0);
            if (returnIsPointClose)
            {
                Console.WriteLine("Point proche...");
            }
            else
            {
                Console.WriteLine("Point pas proche...");
            }

            Console.WriteLine("IsPointClose entre C1(lat/long) : " + C1.Latitude + "/" + C1.Longitude + " et C2(lat/long) : " + C2.Latitude + " / " + C2.Longitude);
            Console.WriteLine("Precision = 0.1");
            returnIsPointClose = C1.IsPointClose(C2, 0.1);
            if (returnIsPointClose)
            {
                Console.WriteLine("Point proche...");
            }
            else
            {
                Console.WriteLine("Point pas proche...");
            }

            Console.WriteLine("------------------POI------------------");
            POI Sraing = new POI();

            Console.WriteLine(Sraing.ToString());
            Console.WriteLine("Latitude" + Sraing.Latitude);
            Console.WriteLine("Longitude" + Sraing.Longitude);
            Console.WriteLine("Methode DRAW");
            Sraing.Draw();

            Console.WriteLine("IsPointClose entre Sraing(lat/long) : " + Sraing.Latitude + "/" + Sraing.Longitude + " et C2(lat/long) : " + C2.Latitude + " / " + C2.Longitude);
            Console.WriteLine("Precision = 100");
            returnIsPointClose = Sraing.IsPointClose(C2, 100);
            if (returnIsPointClose)
            {
                Console.WriteLine("Point proche...");
            }
            else
            {
                Console.WriteLine("Point pas proche...");
            }

            Console.WriteLine("IsPointClose entre Sraing(lat/long) : " + Sraing.Latitude + "/" + Sraing.Longitude + " et C2(lat/long) : " + C2.Latitude + " / " + C2.Longitude);
            Console.WriteLine("Precision = 10");
            returnIsPointClose = Sraing.IsPointClose(C2, 10);
            if (returnIsPointClose)
            {
                Console.WriteLine("Point proche...");
            }
            else
            {
                Console.WriteLine("Point pas proche...");
            }

            Console.WriteLine("------------------POLYLINE------------------");
            List <Coordonnees> tabCoordonnees = new List <Coordonnees>();

            tabCoordonnees.Add(C1);
            tabCoordonnees.Add(C2);
            Polyline P1 = new Polyline(tabCoordonnees, Colors.Red, 5);

            Console.WriteLine("Polyline avec C1 et C2, red, 5...");
            Console.WriteLine(P1);
            Console.WriteLine("Methode DRAW");
            P1.Draw();

            Polyline P2 = new Polyline();

            Console.WriteLine("Polyline constructeur par defaut");
            Console.WriteLine(P2.ToString());

            Console.WriteLine("Polyline nbr de coordonnees differentes : ");
            Console.WriteLine("P2: ");
            Console.WriteLine(P2.GetNbPoints());
            Console.WriteLine("P1: ");
            Console.WriteLine(P1.GetNbPoints());
            Console.WriteLine("P1 --> changement de coordonnees : Coordonnees[] tabCoordonnees2 = { C1, C2, C1 };");
            List <Coordonnees> tabCoordonnees2 = new List <Coordonnees>();

            tabCoordonnees2.Add(C1);
            tabCoordonnees2.Add(C2);
            tabCoordonnees2.Add(C1);
            P1.CollectionDeCoordonnes = tabCoordonnees2;
            Console.WriteLine("P1: ");
            Console.WriteLine(P1.GetNbPoints());

            Console.WriteLine("Polyline P3 avec comme coordonnees (lat,long): (1,1) / (2,3) / (3,1)");
            List <Coordonnees> triangle = new List <Coordonnees>();

            triangle.Add(new Coordonnees(1, 1));
            triangle.Add(new Coordonnees(2, 3));
            triangle.Add(new Coordonnees(3, 1));
            Polyline    P3        = new Polyline(triangle, Colors.Green, 1);
            Coordonnees pointEN22 = new Coordonnees(2, 2);

            Console.WriteLine("IsPointClose entre P3 et pointEN22 (lat/long) : " + pointEN22.Latitude + " / " + pointEN22.Longitude);
            Console.WriteLine("Precision = 0.5");
            returnIsPointClose = P3.IsPointClose(pointEN22, 0.5);
            if (returnIsPointClose)
            {
                Console.WriteLine("Point proche...");
            }
            else
            {
                Console.WriteLine("Point pas proche...");
            }

            Console.WriteLine("Meme IsPointClose MAIS avec une precision de 1.0");
            returnIsPointClose = P3.IsPointClose(pointEN22, 1);
            if (returnIsPointClose)
            {
                Console.WriteLine("Point proche...");
            }
            else
            {
                Console.WriteLine("Point pas proche...");
            }

            Polyline droiteTest = new Polyline();

            droiteTest.CollectionDeCoordonnes.Add(new Coordonnees(1, 1));
            droiteTest.CollectionDeCoordonnes.Add(new Coordonnees(4, 2));
            Console.WriteLine("Coordonnées de la droite : ");
            droiteTest.Draw();
            Console.WriteLine("IsPointClose avec cette droite : avec 2,2 et une precision de 1");
            Console.WriteLine("return de isPointClose : {0}", droiteTest.IsPointClose(new Coordonnees(2, 2), 1.0));
            Console.WriteLine();
            Console.WriteLine("IsPointClose avec cette droite : {0} avec 2,3 et une precision de 1", droiteTest.ToString());
            Console.WriteLine("return de isPointClose : {0}", droiteTest.IsPointClose(new Coordonnees(2, 3), 1.0));


            Console.WriteLine("------------------POLYGON------------------");
            Polygon PN1 = new Polygon(tabCoordonnees, Colors.BurlyWood, Colors.Transparent, 0.5);

            Console.WriteLine("Polygon avec C1 et C2, couleur remplissage=BurlyWood, couleur de contour=Transparent, opacite = 0.5");
            Console.WriteLine(PN1);
            Console.WriteLine("Methode DRAW");
            PN1.Draw();

            Console.WriteLine("set de opacite à 10 (interdit)");
            PN1.Opacite = 10;
            Console.WriteLine("nouvelle valeur de opacite : " + PN1.Opacite);

            Console.WriteLine("constructeur avec opacite à -1 (interdit)");
            Polygon PN3 = new Polygon(tabCoordonnees, Colors.BurlyWood, Colors.Transparent, -1);

            Console.WriteLine(PN3);

            Polygon PN2 = new Polygon();

            Console.WriteLine("Polygon constructeur par defaut");
            Console.WriteLine(PN2);
            Console.WriteLine("Methode DRAW");
            PN2.Draw();

            Console.WriteLine("Polygon nbr de coordonnees differentes : ");
            Console.WriteLine("PN2: ");
            Console.WriteLine(PN2.GetNbPoints());
            Console.WriteLine("PN1: ");
            Console.WriteLine(PN1.GetNbPoints());
            Console.WriteLine("PN1 --> changement de coordonnees : Coordonnees[] tabCoordonnees3 = { C1, C2, C1, new Coordonnees(19, 9) };");
            List <Coordonnees> tabCoordonnees3 = new List <Coordonnees>();

            tabCoordonnees3.Add(C1);
            tabCoordonnees3.Add(C2);
            tabCoordonnees3.Add(C1);
            tabCoordonnees3.Add(new Coordonnees(19, 9));
            PN1._collectionDeCoordonnees = tabCoordonnees3;
            Console.WriteLine("PN1: ");
            Console.WriteLine(PN1.GetNbPoints());

            Console.WriteLine("Polygon PNtriangle avec comme coordonnees (lat,long): (1,1) / (2,3) / (3,1)");
            Polygon     PNtriangle = new Polygon(triangle, Colors.DarkRed, Colors.Blue, 50.0);
            Coordonnees pointEN42  = new Coordonnees(4, 2);

            Console.WriteLine("IsPointClose entre PNtriangle et pointEN42 (lat/long) : " + pointEN42.Latitude + " / " + pointEN42.Longitude);
            Console.WriteLine("Precision = 1.0");
            returnIsPointClose = PNtriangle.IsPointClose(pointEN42, 1.0);
            if (returnIsPointClose)
            {
                Console.WriteLine("Point proche...");
            }
            else
            {
                Console.WriteLine("Point pas proche...");
            }

            Console.WriteLine("IsPointClose entre PNtriangle et pointEN22 (lat/long) : " + pointEN22.Latitude + " / " + pointEN22.Longitude);
            Console.WriteLine("Precision = 1.0");
            returnIsPointClose = PNtriangle.IsPointClose(pointEN22, 1.0);
            if (returnIsPointClose)
            {
                Console.WriteLine("Point proche...");
            }
            else
            {
                Console.WriteLine("Point pas proche...");
            }

            Console.WriteLine("-------------------------------------------------------------------------------------------------------");
            Console.WriteLine("---------ajouter ses objets dans une liste générique d'objet de type CartoOjb (List<CartoObj>)---------");
            Console.WriteLine("-------------------------------------------------------------------------------------------------------");
            List <CartoObj> listeDeCartoObj = new List <CartoObj>();

            listeDeCartoObj.Add(C1);
            listeDeCartoObj.Add(C2);
            listeDeCartoObj.Add(Sraing);
            listeDeCartoObj.Add(P1);
            listeDeCartoObj.Add(P2);
            listeDeCartoObj.Add(PN1);
            listeDeCartoObj.Add(PN2);
            listeDeCartoObj.Add(PN3);

            Console.WriteLine();
            Console.WriteLine("----------------------------------------------------------------------");
            Console.WriteLine("---------afficher cette liste en utilisant le mot clé foreach---------");
            Console.WriteLine("----------------------------------------------------------------------");
            int i = 0;

            foreach (CartoObj o in listeDeCartoObj)
            {
                Console.Write("Elm[{0}]", i);
                o.Draw();
                Console.WriteLine();
                i++;
            }

            Console.WriteLine();
            Console.WriteLine("-------------------------------------------------------------------------------");
            Console.WriteLine("---------afficher la liste des objets implémentant l'interface IPointy---------");
            Console.WriteLine("-------------------------------------------------------------------------------");
            i = 0;
            foreach (CartoObj o in listeDeCartoObj)
            {
                if (o is IPointy)
                {
                    Console.Write("Elm[{0}]", i);
                    i++;
                    o.Draw();
                    Console.WriteLine();
                }
            }

            Console.WriteLine();
            Console.WriteLine("-----------------------------------------------------------------------------------------");
            Console.WriteLine("---------afficher la liste des objets qui n'implémentent pas l'interface IPointy---------");
            Console.WriteLine("-----------------------------------------------------------------------------------------");
            i = 0;
            foreach (CartoObj o in listeDeCartoObj)
            {
                if (!(o is IPointy))
                {
                    Console.Write("Elm[{0}]", i);
                    i++;
                    o.Draw();
                    Console.WriteLine();
                }
            }

            Console.WriteLine();
            Console.WriteLine("---------------------------------------------------------------------");
            Console.WriteLine("---------Créer une liste générique de 5 Polyline, l’afficher---------");
            Console.WriteLine("---------------------------------------------------------------------");
            List <Polyline> listeGeneriquePolyline = new List <Polyline>();

            listeGeneriquePolyline.Add(P1);
            P2.CollectionDeCoordonnes = tabCoordonnees3;
            listeGeneriquePolyline.Add(P2);
            listeGeneriquePolyline.Add(P3);
            listeGeneriquePolyline.Add(new Polyline(tabCoordonnees, Colors.Black, 19));

            i = 0;
            foreach (Polyline P in listeGeneriquePolyline)
            {
                Console.WriteLine("listeGeneriquePolyline[{0}]", i);
                P.Draw();
                Console.WriteLine();
                i++;
            }

            Console.WriteLine();
            Console.WriteLine("-----------------------------------------------------------------------------------");
            Console.WriteLine("---------la trier par ordre de longueur croissante1 , l’afficher à nouveau---------");
            Console.WriteLine("-----------------------------------------------------------------------------------");
            listeGeneriquePolyline.Sort();
            i = 0;
            foreach (Polyline P in listeGeneriquePolyline)
            {
                Console.WriteLine("listeGeneriquePolyline[{0}]", i);
                Console.WriteLine("longueur totale : {0}", P.longueurPolyline());
                P.Draw();
                Console.WriteLine();
                i++;
            }



            Console.WriteLine();
            Console.WriteLine("-------------------------------------------------------------------------------------------------");
            Console.WriteLine("---------la trier par ordre croissante de surface de bounding box , l’afficher à nouveau---------");
            Console.WriteLine("-------------------------------------------------------------------------------------------------");
            MyPolylineBoundingBoxComparer triParSurface = new MyPolylineBoundingBoxComparer();

            listeGeneriquePolyline.Sort(triParSurface);
            i = 0;
            foreach (Polyline P in listeGeneriquePolyline)
            {
                Console.WriteLine("listeGeneriquePolyline[{0}]", i);
                Console.WriteLine("surface : {0}", P.surfaceBoundingBox());
                P.Draw();
                Console.WriteLine();
                i++;
            }

            Console.WriteLine("Find P1 ? {0}", listeGeneriquePolyline.Find(x => x.Id == P1.Id));

            Console.WriteLine();
            Console.WriteLine("-------------------------------------------------------------------------------------------------------------------");
            Console.WriteLine("---------la trier par ordre croissante de nombre d'objet (différent) de coordonnees , l’afficher à nouveau---------");
            Console.WriteLine("-------------------------------------------------------------------------------------------------------------------");
            NbrCoordonneesComparer triParNbrDeCoordonnees = new NbrCoordonneesComparer();

            listeGeneriquePolyline.Sort(triParNbrDeCoordonnees);
            i = 0;
            foreach (Polyline P in listeGeneriquePolyline)
            {
                Console.WriteLine("listeGeneriquePolyline[{0}]", i);
                Console.WriteLine("nbr de coordonnees differentes : {0}", P.GetNbPoints());
                P.Draw();
                Console.WriteLine();
                i++;
            }


            Console.WriteLine();
            Console.WriteLine("-----------------------------------");
            Console.WriteLine("---------MyPersonalMapData---------");
            Console.WriteLine("-----------------------------------");

            //MyPersonalMapData TestmyPersonalMapData = new MyPersonalMapData();
            //Console.WriteLine("MyPersonalMapData : constructeur par defaut");
            //Console.WriteLine(TestmyPersonalMapData.ToString());

            //Console.WriteLine("\nConstructeur avec paramètres...");
            //string nom;
            //Console.Write("Saisir votre nom : "); nom = Console.ReadLine();
            //string prenom;
            //Console.Write("Saisir votre prenom : "); prenom = Console.ReadLine();
            //string email;
            //Console.Write("Saisir votre email : "); email = Console.ReadLine();


            ObservableCollection <ICartoObj> newObservableCollectionCartoObj = new ObservableCollection <ICartoObj>();

            newObservableCollectionCartoObj.Add(Sraing);
            newObservableCollectionCartoObj.Add(P1);
            newObservableCollectionCartoObj.Add(PNtriangle);
            MyPersonalMapData Test2myPersonalMapData = new MyPersonalMapData("zeevaert", "arnaud", "*****@*****.**", newObservableCollectionCartoObj);

            Console.WriteLine("MyPersonalMapData : new MyPersonalMapData(zeevaert, arnaud, [email protected], listeDeCartoObj);");
            Console.WriteLine(Test2myPersonalMapData.ToString());



            //newObservableCollectionCartoObj.ge



            string inutile;



            inutile = Console.ReadLine();
        }
        static void Main(string[] args)
        {
            //Constructeur par defaut
            Coordonnees c1     = new Coordonnees();
            POI         poi1   = new POI();
            Polyline    PolyL1 = new Polyline();
            Polygon     PolyG1 = new Polygon();

            //Constructeur d'initialisation
            Coordonnees c2 = new Coordonnees(2, 2);
            Coordonnees c3 = new Coordonnees(4, -2);
            Coordonnees c4 = new Coordonnees(1, -5);
            Coordonnees c5 = new Coordonnees(-3, 0);
            Coordonnees c6 = new Coordonnees(5, 5);

            POI poi2 = new POI("Magnée", c3);

            Coordonnees[] tab1   = { new Coordonnees(2, 0), new Coordonnees(-4, 0), new Coordonnees(-4, -4) };
            Coordonnees[] tab2   = { c3, c2, c4, c5, c6 };
            Coordonnees[] tab3   = { new Coordonnees(3, 3), new Coordonnees(3, 8), new Coordonnees(2, 8) };
            Coordonnees[] tab4   = { new Coordonnees(-3, 3), new Coordonnees(0, 5), new Coordonnees(5, 2), new Coordonnees(2, -4), new Coordonnees(-2, -3) };
            Coordonnees[] tabref = { new Coordonnees(0, 0), new Coordonnees(6, 0) };

            Polyline PolyL2 = new Polyline(tab1, Colors.Blue, 10);
            Polygon  PolyG2 = new Polygon(tab2, Colors.Lime, Colors.Aqua, 1);

            Polyline pol1      = new Polyline(tab1, Colors.Azure, 5);
            Polyline pol2      = new Polyline(tab2, Colors.CornflowerBlue, 2);
            Polyline pol3      = new Polyline(tab3, Colors.Coral, 7);
            Polyline pol4      = new Polyline(tab4, Colors.DarkRed, 9);
            Polyline Reference = new Polyline(tabref, Colors.DarkBlue, 2);

            MyPolylineBoundingBoxComparer pcomp = new MyPolylineBoundingBoxComparer();
            CartoObjComparer ocomp = new CartoObjComparer();

            //Liste générique
            List <CartoObj> cartoObj = new List <CartoObj>()
            {
                c1,
                c2,
                poi1,
                poi2,
                PolyL1,
                PolyL2,
                PolyG1,
                PolyG2
            };

            List <Polyline> polyline = new List <Polyline>()
            {
                pol1,
                pol2,
                pol3,
                pol4
            };

            Console.WriteLine("==============================================");
            Console.WriteLine("------ c1 (Cpd) ---------");
            Console.WriteLine(c1);
            Console.WriteLine("------ poi1 (Cpd) -------");
            Console.WriteLine(poi1);

            Console.WriteLine("\n==============================================");
            Console.WriteLine("------ c2 (Cinit) -------");
            Console.WriteLine(c2);
            Console.WriteLine("------ poi2 (Cinit) -----");
            Console.WriteLine(poi2);

            Console.WriteLine("\n==============================================");
            Console.WriteLine("------ PolyL1 (Cpd) -----");
            PolyL1.Draw();
            Console.WriteLine("\n------ PolyG1 (Cpd) -----");
            PolyG1.Draw();

            Console.WriteLine("\n==============================================");
            Console.WriteLine("------ PolyL2 (Cinit) -----");
            PolyL2.Draw();
            Console.WriteLine("\n------ PolyG2 (Cinit) -----");
            PolyG2.Draw();

            Console.WriteLine("\n==============================================");
            Console.WriteLine("\nc1 IsPointClose c2");
            Console.WriteLine("---> " + c1.IsPointClose(new Coordonnees(1, 6), 6));

            Console.WriteLine("\npoi1 IsPointClose poi2");
            Console.WriteLine("---> " + poi1.IsPointClose(poi2, 4.9));

            Console.WriteLine("\nPolyline IsPointClose c");
            Console.WriteLine("---> " + PolyL2.IsPointClose(new Coordonnees(-3, -4), 1.1));

            Console.WriteLine("\nPolygon IsPointClose c");
            Console.WriteLine("---> " + PolyG2.IsPointClose(new Coordonnees(-3, 3), 0));

            Console.WriteLine("\nNbrPoint PolyLline");
            Console.WriteLine("---> " + PolyL2.GetNumberOfPoint());

            Console.WriteLine("\nNbrPoint Polygon");
            Console.WriteLine("---> " + PolyG2.GetNumberOfPoint());

            Console.WriteLine("\n==============================================");
            Console.WriteLine("\nAffichage de la liste générique de CartoObj\n");
            foreach (CartoObj c in cartoObj)
            {
                c.Draw();
            }

            Console.WriteLine("\n==============================================");
            Console.WriteLine("\nAffichage des CartoObj IPointy\n");
            foreach (CartoObj c in cartoObj)
            {
                if (c is IPointy)
                {
                    c.Draw();
                    Console.WriteLine("-----> is Ipointy\n");
                }
            }

            Console.WriteLine("\n==============================================");
            Console.WriteLine("\nAffichage des CartoObj qui ne sont pas IPointy\n");
            foreach (CartoObj c in cartoObj)
            {
                if (!(c is IPointy))
                {
                    Console.WriteLine(c + " is not Ipointy");
                }
            }

            Console.WriteLine("\n==============================================");
            Console.WriteLine("\nAffichage de la liste générique de polyline\n");
            foreach (Polyline p in polyline)
            {
                p.Draw();
                Console.WriteLine("Longueur du Polyline = " + MathUtile.Longueur(p.Collection) + "\n");
            }

            Console.WriteLine("\n==============================================");
            Console.WriteLine("\nAffichage des polyline trier par ordre de longueur\n");
            polyline.Sort();
            foreach (Polyline p in polyline)
            {
                p.Draw();
                Console.WriteLine("Longueur du Polyline = " + MathUtile.Longueur(p.Collection) + "\n");
            }

            Console.WriteLine("\n==============================================");
            Console.WriteLine("\nAffichage des polyline trier par ordre de surface de BoundingBox\n");
            polyline.Sort(pcomp);
            foreach (Polyline p in polyline)
            {
                p.Draw();
                Console.WriteLine("Surface de la BoundingBox = " + p.PolylineBoundingBox() + "\n");
            }

            Console.WriteLine("\n==============================================");
            Console.WriteLine("\nRecherche si une liste de Polyline contient un polyline de même longueur qu'un polyline de reference\n");
            double longueur = MathUtile.Longueur(Reference.Collection);

            Polyline res = polyline.Find(x => MathUtile.Longueur(x.Collection) == longueur);

            if (res == null)
            {
                Console.WriteLine("Aucune Polyline trouver");
            }
            else
            {
                Console.WriteLine("Longueur polyline de reference = " + longueur);
                Console.WriteLine("Longueur polyline trouver = " + MathUtile.Longueur(res.Collection));
                res.Draw();
            }

            Console.WriteLine("\n==============================================");
            Console.WriteLine("\nAffichage des polyline qui sont proche d'un point\n");
            int cpt = 0;

            foreach (Polyline p in polyline)
            {
                if ((p.IsPointClose(new Coordonnees(0, 0), 1)) == true)
                {
                    Console.WriteLine("Ce polyline est proche du point");
                    p.Draw();
                    cpt++;
                }
            }
            if (cpt == 0)
            {
                Console.WriteLine("Aucun Polyline n'est proche du point...");
            }

            Console.WriteLine("\n==============================================");
            Console.WriteLine("\nAffichage d'une liste de CartoObj trier par nombre de point\n");
            cartoObj.Sort(ocomp);
            foreach (CartoObj c in cartoObj)
            {
                c.Draw();
                Console.WriteLine("Nombre de point -------> " + c.NbrPointCarto() + "\n");
            }

            Console.ReadKey();
        }