public bool IsPointClose(Coordonnees coordonneesPoint, double precision) { /*double differenceLatitude, differenceLongitude; * differenceLatitude = Math.Abs(this.Latitude - coordonneesPoint.Latitude); * differenceLongitude = Math.Abs(this.Longitude - coordonneesPoint.Longitude); * * if (differenceLatitude <= precision && differenceLongitude <= precision) * { * return true; * } * else * return false;*/ double x1, y1, distance; x1 = base.Latitude; y1 = base.Longitude; distance = MathUtilFct.Distance2Points(coordonneesPoint.Latitude, coordonneesPoint.Longitude, x1, y1); if (distance <= precision) { //Console.WriteLine("Le point est proche !"); return(true); } //Console.WriteLine("Le point est trop eloigné !"); return(false); }
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); }
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); }