| 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).
|
|
|