En gvSIG 2.0 se ha construido un proyecto aparte para la librería de geometrías, que ha sido una evolución de lo que había en versiones anteriores, aprovechando para realizar una separación entre API, implementación y operaciones sobre geometrías.
Hay disponible documentación de desarrollo sobre la librería, donde podemos ver los principales cambios a nivel de API y una descripción sobre el modelo de geometrías que define la librería.
Uno de los cambios principales que nos podemos encontrar es que han desaparecido clases como FShape, que habrá que sustituir por los interfaces disponibles en la librería de geometrías, como Geometry y GeometryManager.
Por ejemplo, dónde se usaban las constantes de tipos de shape que definía la clase FShape, ahora existen dos opciones:
- Emplear operaciones sobre geometrías, que podemos asociar a tipos y/o subtipos de geometrías.
- Emplear las constantes de tipos y subtipos que se definen en los interfaces Geometry.TYPES y Geometry.SUBTYPES. Esta opción tiene un gran problema, y es que estos tipos y subtipos no son todos los que pueden existir, sino sólo los que se definen por defecto inicialmente. A partir de ahora una librería o extensión puede registrar los suyos propios, por lo que si usamos esta opción, en vez de la de registro de operaciones, nuestra funcionalidad puede no funcionar correctamente con estos otros tipos de geometrías.
En cualquier caso, si optamos por esta última opción, a continuación tenemos una tabla de equivalencias entre los tipos de shapes y los tipos de geometrías de la nueva librería:
FShape | Geometry.TYPES |
NULL | NULL |
POINT | POINT |
LINE | CURVE |
POLIGON | SURFACE |
TEXT | TEXT |
MULTI | GEOMETRY |
MULTIPOINT | MULTIPOINT |
CIRCLE | CIRCLE |
ARC | ARC |
ELLIPSE | ELLIPSE |
Z | (*) |
(*) En la librería de geometrías de gvSIG 2.0, cualquier tipo de geometría puede ser 2D, 3D, 2DM, etc. Esta característica se gestiona a través del subtipo de una geometría (ver Geometry.SUBTYPES para ver los subtipos predefinidos), por lo que no existe equivalente para esta constante en Geometry.TYPES .