示例#1
0
        public double longueurPolyline()
        {
            int    i     = 0;
            double somme = 0;

            for (i = 0; i < (CollectionDeCoordonnes.Count - 1); i++)
            {
                somme = somme + MathUtilFct.LongueurD_unSegment(this.CollectionDeCoordonnes[i].Latitude, this.CollectionDeCoordonnes[i].Longitude, this.CollectionDeCoordonnes[i + 1].Latitude, this.CollectionDeCoordonnes[i + 1].Longitude);
            }

            return(somme);
        }
示例#2
0
        public double surfaceBoundingBox()
        {
            double valMax_X = 0, valMax_Y = 0, valMin_X, valMin_Y;
            int    i;

            for (i = 0; i < CollectionDeCoordonnes.Count; i++)
            {
                if (valMax_X < CollectionDeCoordonnes[i].Latitude)
                {
                    valMax_X = CollectionDeCoordonnes[i].Latitude;
                }
                if (valMax_Y < CollectionDeCoordonnes[i].Longitude)
                {
                    valMax_Y = CollectionDeCoordonnes[i].Longitude;
                }
            }

            valMin_X = valMax_X;
            valMin_Y = valMax_Y;
            for (i = 0; i < CollectionDeCoordonnes.Count; i++)
            {
                if (valMin_X > CollectionDeCoordonnes[i].Latitude)
                {
                    valMin_X = CollectionDeCoordonnes[i].Latitude;
                }
                if (valMin_Y > CollectionDeCoordonnes[i].Longitude)
                {
                    valMin_Y = CollectionDeCoordonnes[i].Longitude;
                }
            }

            double []   longueurCote = new double[4];
            Coordonnees coordonneesA = new Coordonnees(valMin_X, valMax_Y);
            Coordonnees coordonneesB = new Coordonnees(valMax_X, valMax_Y);
            Coordonnees coordonneesC = new Coordonnees(valMin_X, valMin_Y);
            Coordonnees coordonneesD = new Coordonnees(valMax_X, valMin_Y);

            longueurCote[0] = MathUtilFct.LongueurD_unSegment(coordonneesA.Latitude, coordonneesA.Longitude, coordonneesB.Latitude, coordonneesB.Longitude); //cote A-B
            longueurCote[1] = MathUtilFct.LongueurD_unSegment(coordonneesB.Latitude, coordonneesB.Longitude, coordonneesD.Latitude, coordonneesD.Longitude); //cote B-D
            longueurCote[2] = MathUtilFct.LongueurD_unSegment(coordonneesD.Latitude, coordonneesD.Longitude, coordonneesC.Latitude, coordonneesC.Longitude); //cote D-C
            longueurCote[3] = MathUtilFct.LongueurD_unSegment(coordonneesC.Latitude, coordonneesC.Longitude, coordonneesA.Latitude, coordonneesA.Longitude); //cote C-A

            double plusGrandCote = longueurCote[0], plusPetitCote;

            for (i = 1; i < 4; i++)
            {
                if (plusGrandCote < longueurCote[i])
                {
                    plusGrandCote = longueurCote[i];
                }
            }
            plusPetitCote = plusGrandCote;
            for (i = 0; i < 4; i++)
            {
                if (plusPetitCote > longueurCote[i])
                {
                    plusPetitCote = longueurCote[i];
                }
            }

            double surfaceBoundingBox;

            surfaceBoundingBox = plusPetitCote * plusGrandCote;

            return(surfaceBoundingBox);
        }