Herramientas Personales
Usted está aquí: Inicio Proyectos gvSIG gvSIG Desktop Documentación Documentación de desarrollo org.gvsig.fmap.geom 2.0.0 Las geometrías Registro de tipos de geometrías
gvSIG Desktop
gvSIG Desktop

Cached time 11/21/13 07:54:14 Clear cache and reload

 
Acciones de Documento

Registro de tipos de geometrías

por Jorge PieraÚltima modificación 06/09/2010 16:14

Este documento explica cómo se deben registrar los tipos de geometrías.

Todas las geometrías que se quieran utilizar en la aplicación tienen que tener un tipo (GeometryType) que ha tenido que ser registrado previamente. Si se intenta crear una geometría de un tipo que no haya sido registrado mediante el GeometryManager, se obtendrá una exceptión del tipo CreateGeometryException.

Para registrar un nuevo tipo de geometría primero hay que obtener una instancia del GeometryManager y a continuación se debe registrar la implementación del tipo de geometría para lo que tendremos que conocer el tipo y el subtipo de geometría. Los diferentes tipos de geometrías se encuentran definidos en TYPES mientras que los subtipos están en SUBTYPES.

En el siguiente ejemplo se muestra cómo registrar un punto en 2 dimensiones (se asume que existe una clase Point2D que hereda de Geometry).

geometryManager.registerGeometryType(Point2D.class, "Point2D", TYPES.POINT, SUBTYPES.GEOM2D);

El método registerGeometryType tiene 4 argumentos. El primero de ellos, es la clase que contiene la implementación de la geometría; el segundo es el nombre con el que se va a registrar y el tercero y el cuarto son el tipo y el subtipo de la geometría.

En este caso, lo que se está registrando es la geometría por defecto para el tipo punto en 2 dimensiones. Al invocar este método, el mánager asociará al tipo y al subtipo especificados la implementación de la geometría que se le pasa como primer parámetro, de forma que cuando se cree una geometría con esos tipos, el manager devolverá una instancia de la clase Point2D.

El siguiente ejemplo muestra cómo registrar un punto en 3D. El ejemplo asume que existe una clase Point3D que hereda de Geometry y que implementa a un punto en 3 dimensiones:

geometryManager.registerGeometryType(Point3D.class, "Point3D", TYPES.POINT, SUBTYPES.GEOM3D);

Otro ejemplo es el de registrar una geometría de tipo círculo. El ejemplo asume que existe una clase Circle2D que hereda de Geometry y que implementa a un círculo en 2 dimensiones:

geometryManager.registerGeometryType (Circle2D.class, "Circle2D", TYPES.CIRCLE, SUBTYPES.GEOM2D);

Hecho con Plone CMS, el Sistema de Gestión de Contenidos de Fuentes Abiertos

Este sitio cumple con los siguientes estándares: