| java.lang.Object fr.ign.cogit.geoxygene.contrib.geometrie.Distances
Distances | abstract public class Distances (Code) | | Méthodes statiques de calcul de distance.
English: Computation of distances (static methods)
author: Mustière/Bonin version: 1.0 |
Method Summary | |
public static boolean | associationSurfaces(GM_Object A, GM_Object B, double min, double coeff) Mesure d'association entre deux surfaces (cf. | public static boolean | associationSurfacesRobuste(GM_Object A, GM_Object B, double min, double coeff, double minDouglas, double maxDouglas) Test d'association "robuste" entre deux surfaces (cf. | public static double | completude(GM_Polygon A, GM_Polygon B) Mesure dite "Complétude" entre 2 surfaces. | public static double | completude(GM_MultiSurface A, GM_MultiSurface B) Mesure dite "Complétude" entre 2 GM_MultiSurface. | public static double | distance(DirectPosition dp1, DirectPosition dp2) Distance euclidienne entre 2 points (en 2D ou 3D si les points ont un Z). | public static double | distance(DirectPosition M, GM_LineString L) Distance euclidienne d'un point P à une ligne. | public static double | distance2D(DirectPosition dp1, DirectPosition dp2) Distance euclidienne calculée en 2 dimensions XY, même sur des objets 3D. | public static double | distanceMoyenne(GM_LineString L1, GM_LineString L2) Distance moyenne entre deux polylignes,
définie comme le rapport de l'aire séparant deux polylignes
sur la moyenne de leurs longueurs. | public static double | distancePointSegment(DirectPosition M, DirectPosition A, DirectPosition B) | public static double | distanceSurfacique(GM_Polygon A, GM_Polygon B) Distance surfacique entre deux GM_Polygon. | public static double | distanceSurfacique(GM_MultiSurface A, GM_MultiSurface B) Distance surfacique entre deux GM_MultiSurface. | public static double | distanceSurfaciqueRobuste(GM_Polygon A, GM_Polygon B, double min, double max) Distance surfacique "robuste" entre deux polygones.
Il s'agit ici d'une pure bidouille pour contourner certains bugs de JTS:
Si JTS plante au calcul d'intersection, on filtre les surfaces avec Douglas et Peucker,
progressivement avec 10 seuils entre min et max. | public static double | distanceSurfaciqueRobuste(GM_MultiSurface A, GM_MultiSurface B) Distance surfacique entre deux GM_MultiSurface.
Cette méthode contourne des bugs de JTS, qui sont trop nombreux sur les agrégats.
En contrepartie, cette méthode n'est valable que si les GM_Polygon composant A [resp. | public static double | ecartSurface(GM_LineString L1, GM_LineString L2) Mesure d'écart entre deux polylignes, défini comme une approximation de la
surface séparant les polylignes. | public static double | exactitude(GM_Polygon A, GM_Polygon B) Mesure dite "Exactitude" entre 2 surfaces. | public static double | exactitude(GM_MultiSurface A, GM_MultiSurface B) Mesure dite "Exactitude" entre 2 GM_MultiSurface. | public static double | hausdorff(GM_LineString L1, GM_LineString L2) Approximation (très proche) de la distance de Hausdorff entre deux lignes. | public static double | hausdorff(GM_LineString L, GM_Point P) Distance de Hausdorff entre un point P et une ligne L.
C'est-à-dire distance au point P du point intermédiaire de
la ligne L le plus éloigné du point P. | public static double | premiereComposanteHausdorff(GM_LineString L1, GM_LineString L2) Approximation de la première composante de Hausdorff d'une ligne vers une autre.
Elle est calculee comme le maximum des distances des points intermédiaires
de la première ligne L1 à l'autre ligne L2. | public static boolean | proche(DirectPosition dp1, DirectPosition dp2, double distance) Est-ce que les deux points sont distants de moins du seuil passé en paramètre ?
Méthode optimisée pour accélérer les requêtes spatiales. | public static double | surfaceIntersection(GM_MultiSurface A, GM_MultiSurface B) Surface de l'intersection.
Cette méthode contourne des bugs de JTS, qui sont trop nombreux sur les agrégats.
En contrepartie, cette méthode n'est valable que si les GM_Polygon composant A [resp. | public static double | surfaceUnion(GM_MultiSurface A, GM_MultiSurface B) Surface de l'union.
Cette méthode contourne des bugs de JTS, qui sont trop nombreux sur les agrégats.
En contrepartie, cette méthode n'est valable que si les GM_Polygon composant A [resp. |
associationSurfaces | public static boolean associationSurfaces(GM_Object A, GM_Object B, double min, double coeff)(Code) | | Mesure d'association entre deux surfaces (cf. [Bel Hadj Ali 2001]).
Definition : associationSurfaces(A,B) = vrai si
- Surface(intersection) > min (min etant la resolution minimum des deux bases)
- ET (Surface(intersection) > surface(A) * coeff
- OU Surface(intersection) > surface(B) * coeff )
associationSurfaces(A,B) = faux sinon.
|
associationSurfacesRobuste | public static boolean associationSurfacesRobuste(GM_Object A, GM_Object B, double min, double coeff, double minDouglas, double maxDouglas)(Code) | | Test d'association "robuste" entre deux surfaces (cf. [Bel Hadj Ali 2001]).
Il s'agit ici d'une pure bidouille pour contourner certains bugs de JTS:
Si JTS plante au calcul , on filtre les surfaces avec Douglas et Peucker,
progressivement avec 10 seuils entre min et max. Min et Max doivent être fixer donc de
l'ordre de grandeur de la précision des données sinon le calcul risque d'être trop faussé.
Definition : associationSurfaces(A,B) = vrai si
- Surface(intersection) > min (min etant la resolution minimum des deux bases)
- ET (Surface(intersection) > surface(A) * coeff
- OU Surface(intersection) > surface(B) * coeff )
associationSurfaces(A,B) = faux sinon.
|
completude | public static double completude(GM_Polygon A, GM_Polygon B)(Code) | | Mesure dite "Complétude" entre 2 surfaces.
Ref : [Bel Hadj Ali 2001]
Définition : Surface(A inter B) / Surface(B)
|
completude | public static double completude(GM_MultiSurface A, GM_MultiSurface B)(Code) | | Mesure dite "Complétude" entre 2 GM_MultiSurface.
Ref : [Bel Hadj Ali 2001]
Définition : Surface(A inter B) / Surface(B)
|
distanceMoyenne | public static double distanceMoyenne(GM_LineString L1, GM_LineString L2)(Code) | | Distance moyenne entre deux polylignes,
définie comme le rapport de l'aire séparant deux polylignes
sur la moyenne de leurs longueurs.
IMPORTANT: la méthode suppose que les lignes sont orientées globalement
dans le même sens.
|
distanceSurfacique | public static double distanceSurfacique(GM_Polygon A, GM_Polygon B)(Code) | | Distance surfacique entre deux GM_Polygon.
Définition : 1 - surface(intersection)/surface(union)
Ref [Vauglin 97]
NB: renvoie 2 en cas de problème lors du calcul d'intersection avec JTS
(bug en particulier si les surfaces sont dégénérées ou trop complexes).
|
distanceSurfacique | public static double distanceSurfacique(GM_MultiSurface A, GM_MultiSurface B)(Code) | | Distance surfacique entre deux GM_MultiSurface.
Définition : 1 - surface(intersection)/surface(union)
Ref [Vauglin 97]
NB: renvoie 2 en cas de problème lors du calcul d'intersection avec JTS
(bug en particulier si les surfaces sont dégénérées ou trop complexes).
|
distanceSurfaciqueRobuste | public static double distanceSurfaciqueRobuste(GM_Polygon A, GM_Polygon B, double min, double max)(Code) | | Distance surfacique "robuste" entre deux polygones.
Il s'agit ici d'une pure bidouille pour contourner certains bugs de JTS:
Si JTS plante au calcul d'intersection, on filtre les surfaces avec Douglas et Peucker,
progressivement avec 10 seuils entre min et max. Min et Max doivent être fixer donc de
l'ordre de grandeur de la précision des données sinon le calcul risque d'être trop faussé.
Définition : 1 - surface(intersection)/surface(union)
Ref [Vauglin 97]
NB: renvoie 2 en cas de problème lors du calcul d'intersection avec JTS
(bug en particulier si les surfaces sont dégénérées ou trop complexes).
|
distanceSurfaciqueRobuste | public static double distanceSurfaciqueRobuste(GM_MultiSurface A, GM_MultiSurface B)(Code) | | Distance surfacique entre deux GM_MultiSurface.
Cette méthode contourne des bugs de JTS, qui sont trop nombreux sur les agrégats.
En contrepartie, cette méthode n'est valable que si les GM_Polygon composant A [resp. B]
ne s'intersectent pas entre elles.
Définition : 1 - surface(intersection)/surface(union)
Ref [Vauglin 97]
NB: renvoie 2 en cas de problème résiduer lors du calcul d'intersection avec JTS
(bug en particulier si les surfaces sont dégénérées ou trop complexes).
|
ecartSurface | public static double ecartSurface(GM_LineString L1, GM_LineString L2)(Code) | | Mesure d'écart entre deux polylignes, défini comme une approximation de la
surface séparant les polylignes.
Plus précisément, cet écart est égal à la somme, pour chaque point P de L1,
de (distance de P à L2) * (moyenne des longueurs des segments autour de P)
NB: Ce n'est pas une distance au sens mathématique du terme,
et en particulier cet écart n'est pas symétrique: ecart(L1,L2) != ecart(L2,L1)
|
exactitude | public static double exactitude(GM_Polygon A, GM_Polygon B)(Code) | | Mesure dite "Exactitude" entre 2 surfaces.
Ref : [Bel Hadj Ali 2001]
Définition : Surface(A inter B) / Surface(A)
|
exactitude | public static double exactitude(GM_MultiSurface A, GM_MultiSurface B)(Code) | | Mesure dite "Exactitude" entre 2 GM_MultiSurface.
Ref : [Bel Hadj Ali 2001]
Définition : Surface(A inter B) / Surface(A)
|
hausdorff | public static double hausdorff(GM_LineString L1, GM_LineString L2)(Code) | | Approximation (très proche) de la distance de Hausdorff entre deux lignes.
Elle est calculee comme le maximum des distances d'un point intermediaire
d'une des lignes a l'autre ligne. Dans certains cas cette definition
diffère de la définition theorique pure car la distance de Hausdorff ne se
realise pas necessairement sur un point intermediaire. Mais cela est rare
sur des données réelles. Cette implementation est un bon compromis entre
simplicité et précision.
|
hausdorff | public static double hausdorff(GM_LineString L, GM_Point P)(Code) | | Distance de Hausdorff entre un point P et une ligne L.
C'est-à-dire distance au point P du point intermédiaire de
la ligne L le plus éloigné du point P.
|
premiereComposanteHausdorff | public static double premiereComposanteHausdorff(GM_LineString L1, GM_LineString L2)(Code) | | Approximation de la première composante de Hausdorff d'une ligne vers une autre.
Elle est calculee comme le maximum des distances des points intermédiaires
de la première ligne L1 à l'autre ligne L2.
|
proche | public static boolean proche(DirectPosition dp1, DirectPosition dp2, double distance)(Code) | | Est-ce que les deux points sont distants de moins du seuil passé en paramètre ?
Méthode optimisée pour accélérer les requêtes spatiales.
|
surfaceIntersection | public static double surfaceIntersection(GM_MultiSurface A, GM_MultiSurface B)(Code) | | Surface de l'intersection.
Cette méthode contourne des bugs de JTS, qui sont trop nombreux sur les agrégats.
En contrepartie, cette méthode n'est valable que si les GM_Polygon composant A [resp. B]
ne s'intersectent pas entre elles.
NB: renvoie -1 en cas de problème résiduer lors du calcul d'intersection avec JTS
(bug en particulier si les surfaces sont dégénérées ou trop complexes).
|
surfaceUnion | public static double surfaceUnion(GM_MultiSurface A, GM_MultiSurface B)(Code) | | Surface de l'union.
Cette méthode contourne des bugs de JTS, qui sont trop nombreux sur les agrégats.
En contrepartie, cette méthode n'est valable que si les GM_Polygon composant A [resp. B]
ne s'intersectent pas entre elles.
NB: renvoie -1 en cas de problème résiduer lors du calcul d'intersection avec JTS
(bug en particulier si les surfaces sont dégénérées ou trop complexes).
|
|
|