| java.lang.Object fr.ign.cogit.geoxygene.spatial.geomroot.GM_Object
All known Subclasses: fr.ign.cogit.geoxygene.spatial.geomaggr.GM_Aggregate, fr.ign.cogit.geoxygene.spatial.geomprim.GM_Primitive, fr.ign.cogit.geoxygene.spatial.geomcomp.GM_Complex,
GM_Object | abstract public class GM_Object implements Cloneable(Code) | | Classe mère abstraite pour la géométrie, selon la norme OGC Topic 1 / ISO 19107.
Cette classe définit les opérations communes aux différents objets géométriques qui en héritent.
Toutes les opérations doivent se faire dans le même système de coordonnées.
Un objet géométrique est en fait une combinaison d'un système de référence de coordonnées (CRS),
et d'une géométrie munie de coordonnées (CoordGeom).
Les methodes geometriques font par defaut appel a la bibliotheque JTS (jts.jar, version 1.4),
via des appels aux methodes de la classe util.algo.JtsAlgorithms. Attention, bien souvent, ces méthodes
ne fonctionnent que sur des primitives ou des agrégats homogènes (GM_MultiTruc).
http://www.vividsolutions.com/jts/jtshome.htm
Historiquememt, les methodes faisaient appel aux fonctions geometriques d'Oracle
et a la bibliotheque fournie par Oracle sdoapi.zip,
via des appels aux methodes de la classe util.algo.OracleAlgorithms,
qui elles-memes appellent des methodes datatools.oracle.SpatialQuery.
Ces methodes ont ete gardees et portent le suffixe "Oracle".
Pour les appeler, il est nécessaire d'établir une connection à Oracle,
c'est pourquoi on passe une "Geodatabase" en paramètre de chaque fonction.
On suppose qu'il existe dans la base, dans le schéma utilisateur,
une table TEMP_REQUETE, avec une colonne GID (NUMBER) et une colonne GEOM (SDO_GEOMETRY).
Cette table est dédiée aux requêtes spatiales.
De même, le paramètre tolérance est exigé par Oracle.
ARNAUD 12 juillet 2005 : mise en commentaire de ce qui se rapporte à Oracle
pour isoler la compilation. A décommenter pour utiliser Oracle.
author: Thierry Badard & Arnaud Braun version: 1.2 version: 19.02.2007 : ajout de la méthode intersectsStrictement |
Field Summary | |
protected int | CRS Identifiant du système de coordonnées de référence (CRS en anglais). |
Method Summary | |
public double | area() | public GM_Object | buffer(double distance) Calcule de buffer sur l'objet (avec JTS). | public GM_Object | buffer(double distance, int nSegments) Calcule de buffer sur l'objet (avec JTS) en indiquant le nombre de segments approximant la partie courbe. | public GM_Object | centroid() Centre de gravité de l'objet (avec JTS). | public Object | clone() Clone l'objet. | public boolean | contains(GM_Object geom) Predicat topologique sur la relation de contenance (avec JTS). | public GM_Object | convexHull() Enveloppe convexe de l'objet (avec JTS). | abstract public DirectPositionList | coord() Renvoie la liste des DirectPosition de l'objet. | public boolean | crosses(GM_Object geom) Predicat topologique crosses (avec JTS). | public GM_Object | difference(GM_Object geom) Différence avec l'objet passé en paramètre (avec JTS). | public int | dimension() Dimension maximale de l'objet (point 0, courbe 1, surface 2) (avec JTS). | public boolean | disjoint(GM_Object geom) Predicat topologique sur la relation de disjonction (avec JTS).
Returns true if the DE-9IM intersection matrix for the two Geometrys is FF*FF****. | public double | distance(GM_Object geom) Distance entre this et l'objet passe en parametre (avec JTS). | public GM_Envelope | envelope() Rectangle englobant minimum de l'objet (en 2D) sous forme de GM_Envelope. | public boolean | equals(GM_Object geom) Predicat topologique sur la relation d'egalite (!= equalsExact) (avec JTS). | public boolean | equalsExact(GM_Object geom) | public boolean | equalsExact(GM_Object geom, double tolerance) | public static void | exportImage(GM_Object[] geoms, String path, Color foreground, Color background, int width, int height) Exporte des géométries dans une image. | public static void | exportSvgz(GM_Object[] geoms, String path, Color foreground, Color background, int width, int height) Exporte des géométries dans un fichier SVG compressé. | public void | exportWkt(String path, boolean append) Exporte la géométrie dans un fichier texte au format WKT. | public int | getCRS() Renvoie l' identifiant du système de coordonnées de référence. | public GM_Object | intersection(GM_Object geom) Intersection avec l'objet passé en paramètre (avec JTS).
Renvoie un GM_Aggregate vide si les objets sont disjoints. | public boolean | intersects(GM_Object geom) Predicat topologique sur la relation d'intersection (avec JTS). | public boolean | intersectsStrictement(GM_Object geom) Teste l'intersection stricte entre la géométrie manipulée et celle passée en
paramètre, i.e. | public boolean | isEmpty() Renvoie true si la geometrie est vide (avec JTS). | public boolean | isSimple() Renvoie TRUE si l'objet n'a pas de point d'auto-intersection ou d'auto-tangence (avec JTS). | public boolean | isValid() Renvoie TRUE si la geometrie est valide au sens JTS. | public boolean | isWithinDistance(GM_Object geom, double distance) Teste si la distance entre cette géométrie et geom est inférieure à la distance passée en paramètre. | public double | length() | public GM_Polygon | mbRegion(Geodatabase data) Rectangle englobant minimum de l'objet (en 2D) sous forme de GM_Polygon.
Le but est d'obtenir une region contenant l'objet.
Tout autre implémentation serait possible : le but serait de supporter des méthodes d'indexation
qui n'utilisent pas les rectangles minimaux englobants. | public int | numPoints() Nombre de points de l'objet (avec JTS). | public boolean | overlaps(GM_Object geom) Predicat topologique sur la relation de recouvrement (avec JTS).
Returns true if the DE-9IM intersection matrix for the two Geometrys is T*T***T**
(for two points or two surfaces), or 1*T***T** (for two curves) . | public String | relate(GM_Object geom) Returns the DE-9IM intersection matrix for the two Geometrys. | public void | setCRS(int crs) Affecte une valeur au système de coordonnées de référence. | public GM_Object | symmetricDifference(GM_Object geom) Différence symétrique avec l'objet passé en paramètre (avec JTS).
La différence symétrique (opérateur booléan XOR) est la différence de l'union avec l'intersection. | public String | toString() Ecrit la géométrie dans une chaine de caractere au format WKT. | public boolean | touches(GM_Object geom) Predicat topologique sur la relation de contact (avec JTS). | public GM_Object | translate(double tx, double ty, double tz) Translation de l'objet (avec JTS). | public GM_Object | union(GM_Object geom) Union avec l'objet passé en paramètre (avec JTS). | public boolean | within(GM_Object geom) Predicat topologique sur la relation d'interieur (avec JTS).
Returns true if the DE-9IM intersection matrix for the two Geometrys is T*F**F***. |
CRS | protected int CRS(Code) | | Identifiant du système de coordonnées de référence (CRS en anglais).
Par défaut, vaut 41014 : identifiant du Lambert II carto.
Dans la norme ISO, cet attribut est une relation qui pointe vers la classe SC_CRS (non implémentée)
|
area | public double area()(Code) | | Aire de l'objet (avec JTS)
|
buffer | public GM_Object buffer(double distance)(Code) | | Calcule de buffer sur l'objet (avec JTS).
Les distances negatives sont acceptees (pour faire une érosion).
|
buffer | public GM_Object buffer(double distance, int nSegments)(Code) | | Calcule de buffer sur l'objet (avec JTS) en indiquant le nombre de segments approximant la partie courbe.
Les distances negatives sont acceptees (pour faire une érosion).
|
centroid | public GM_Object centroid()(Code) | | Centre de gravité de l'objet (avec JTS). Le résultat n'est pas nécessairement dans l'objet.
|
contains | public boolean contains(GM_Object geom)(Code) | | Predicat topologique sur la relation de contenance (avec JTS).
Returns true if geom.within(this) returns true.
|
convexHull | public GM_Object convexHull()(Code) | | Enveloppe convexe de l'objet (avec JTS).
|
coord | abstract public DirectPositionList coord()(Code) | | Renvoie la liste des DirectPosition de l'objet.
Méthode abstraite redéfinie dans les sous-classes.
Cette méthode se comporte différemment selon le type d'objet géométrique.
|
crosses | public boolean crosses(GM_Object geom)(Code) | | Predicat topologique crosses (avec JTS).
Returns true if the DE-9IM intersection matrix for the two Geometrys is T*T******
(for a point and a curve, a point and an area or a line and an area),
0******** (for two curves) .
|
difference | public GM_Object difference(GM_Object geom)(Code) | | Différence avec l'objet passé en paramètre (avec JTS).
Returns a Geometry representing the points making up this Geometry that do not make up "geom".
|
dimension | public int dimension()(Code) | | Dimension maximale de l'objet (point 0, courbe 1, surface 2) (avec JTS).
|
disjoint | public boolean disjoint(GM_Object geom)(Code) | | Predicat topologique sur la relation de disjonction (avec JTS).
Returns true if the DE-9IM intersection matrix for the two Geometrys is FF*FF****.
|
distance | public double distance(GM_Object geom)(Code) | | Distance entre this et l'objet passe en parametre (avec JTS).
Returns the minimum distance between this Geometry and the Geometry geom.
|
envelope | public GM_Envelope envelope()(Code) | | Rectangle englobant minimum de l'objet (en 2D) sous forme de GM_Envelope.
|
equals | public boolean equals(GM_Object geom)(Code) | | Predicat topologique sur la relation d'egalite (!= equalsExact) (avec JTS).
Returns true if the DE-9IM intersection matrix for the two Geometrys is T*F**FFF*.
|
equalsExact | public boolean equalsExact(GM_Object geom)(Code) | | This et l'objet passe en parametre appartiennent a la meme classe et ont exactement les memes coordonnees (avec JTS)
|
equalsExact | public boolean equalsExact(GM_Object geom, double tolerance)(Code) | | This et l'objet passe en parametre appartiennent a la meme classe et ont les memes coordonnees à une tolérance près (avec JTS)
|
exportImage | public static void exportImage(GM_Object[] geoms, String path, Color foreground, Color background, int width, int height)(Code) | | Exporte des géométries dans une image.
Le format de l'image (.jpg ou .png par defaut) est determiné par l'extension du nom de fichier,
a mettre dans le parametre "path".
Le tableau de couleur permet d'affecter des couleurs différentes aux géométries.
Exemple : GM_Object.exportImage(new GM_Object[] {geom1, geom2},"/home/users/truc/essai.jpg",
new Color[] {Color.RED, Color.BLUE}, Color.WHITE, 150, 80)
|
exportSvgz | public static void exportSvgz(GM_Object[] geoms, String path, Color foreground, Color background, int width, int height)(Code) | | Exporte des géométries dans un fichier SVG compressé.
Donner dans la variable "path" le chemin et le nom du fichier (avec l'extension .svgz)
Le tableau de couleur permet d'affecter des couleurs différentes aux géométries.
Exemple : GM_Object.exportSvgz(new GM_Object[] {geom1, geom2},"/home/users/truc/essai.jpg",
new Color[] {Color.RED, Color.BLUE}, Color.WHITE, 150, 80)
|
exportWkt | public void exportWkt(String path, boolean append)(Code) | | Exporte la géométrie dans un fichier texte au format WKT.
Si append = false, un nouveau fichier est systematiquement cree.
Si append = true, et que le fichier existe deja, la geometrie est ajoutee a la fin du fichier;
si le fichier n'existe pas, il est cree.
|
getCRS | public int getCRS()(Code) | | Renvoie l' identifiant du système de coordonnées de référence.
|
intersection | public GM_Object intersection(GM_Object geom)(Code) | | Intersection avec l'objet passé en paramètre (avec JTS).
Renvoie un GM_Aggregate vide si les objets sont disjoints.
|
intersects | public boolean intersects(GM_Object geom)(Code) | | Predicat topologique sur la relation d'intersection (avec JTS).
Returns true if disjoint returns false.
|
intersectsStrictement | public boolean intersectsStrictement(GM_Object geom)(Code) | | Teste l'intersection stricte entre la géométrie manipulée et celle passée en
paramètre, i.e. l'intersection sans les cas où les géométries sont simplement
adjacentes (intersection = point ou ligne) ou sont contenues l'une dans
dans l'autre
Parameters: GM_Object - geom boolean |
isEmpty | public boolean isEmpty()(Code) | | Renvoie true si la geometrie est vide (avec JTS).
|
isSimple | public boolean isSimple()(Code) | | Renvoie TRUE si l'objet n'a pas de point d'auto-intersection ou d'auto-tangence (avec JTS).
Cette opération n'est pas applicable aux objets fermés (ceux pour lesquels isCycle() = TRUE).
|
isValid | public boolean isValid()(Code) | | Renvoie TRUE si la geometrie est valide au sens JTS. Utile pour debugger.
|
isWithinDistance | public boolean isWithinDistance(GM_Object geom, double distance)(Code) | | Teste si la distance entre cette géométrie et geom est inférieure à la distance passée en paramètre.
|
length | public double length()(Code) | | Longueur de l'objet (avec JTS)
|
mbRegion | public GM_Polygon mbRegion(Geodatabase data)(Code) | | Rectangle englobant minimum de l'objet (en 2D) sous forme de GM_Polygon.
Le but est d'obtenir une region contenant l'objet.
Tout autre implémentation serait possible : le but serait de supporter des méthodes d'indexation
qui n'utilisent pas les rectangles minimaux englobants.
|
numPoints | public int numPoints()(Code) | | Nombre de points de l'objet (avec JTS).
|
overlaps | public boolean overlaps(GM_Object geom)(Code) | | Predicat topologique sur la relation de recouvrement (avec JTS).
Returns true if the DE-9IM intersection matrix for the two Geometrys is T*T***T**
(for two points or two surfaces), or 1*T***T** (for two curves) .
|
relate | public String relate(GM_Object geom)(Code) | | Returns the DE-9IM intersection matrix for the two Geometrys.
|
setCRS | public void setCRS(int crs)(Code) | | Affecte une valeur au système de coordonnées de référence.
|
symmetricDifference | public GM_Object symmetricDifference(GM_Object geom)(Code) | | Différence symétrique avec l'objet passé en paramètre (avec JTS).
La différence symétrique (opérateur booléan XOR) est la différence de l'union avec l'intersection.
Returns a set combining the points in this Geometry not in other, and the points in other not in this Geometry.
|
toString | public String toString()(Code) | | Ecrit la géométrie dans une chaine de caractere au format WKT.
|
touches | public boolean touches(GM_Object geom)(Code) | | Predicat topologique sur la relation de contact (avec JTS).
Returns true if the DE-9IM intersection matrix for the two Geometrys
is FT*******, F**T***** or F***T****.
|
translate | public GM_Object translate(double tx, double ty, double tz)(Code) | | Translation de l'objet (avec JTS).
|
union | public GM_Object union(GM_Object geom)(Code) | | Union avec l'objet passé en paramètre (avec JTS).
Renvoie éventuellement un aggrégat si les objets sont disjoints.
|
within | public boolean within(GM_Object geom)(Code) | | Predicat topologique sur la relation d'interieur (avec JTS).
Returns true if the DE-9IM intersection matrix for the two Geometrys is T*F**F***.
|
|
|