Personal tools
You are here: Home gvSIG Projects gvSIG Desktop Documentation Developers documentation org.gvsig.fmap.geom 2.0.0 The geometry model General model structure
gvSIG Desktop
gvSIG Desktop

Cached time 11/21/13 17:23:54 Clear cache and reload

 
Document Actions

General model structure

by Joaquin Jose del Cerro Murciano last modified 2010-09-06 16:09

This document explains the general structure of the new geometry model.

.. include-document:: org.gvsig.fmap.geom/reference-links
   :rest:

The new geometry model has two important characteristics:

* It's developed from the old gvSIG's geometry model, trying to do the lowest impact on the developed code.

* We try to approach to the ISO19107_ model.

To understand the new model you must know this two characteristics because, besides we try to have a model similar to the ISO19107_ model, in some cases it wasn't possible to do it and we had to do some contradictions of what the ISO's model says to keep the compatibility with the written code.

The next figure shows the main hierarchy of the new geometry model:

.. figure:: img/geometry.png
   :alt: TEXTO
   :align: center

In this figure, we can see the Geometry_ class and all the inherit classes of it. The depency with *java.awt.Shape* is kept for backward compatibility reasons, but it's possible that in future versions it disappears.

Exists three main geometry types:

* *Primitives* (inherited from Primitive_): It's the most basic geometry type. Points, lines and polygons are examples of primitive geometries.
* *Complex*  (inherited from Complex_): It must have a similar behavior with the primitive geometries (all of them have the same interface), but are built with the union of several polygons, a polygon with filled polygons, a curve composed with several curves...
* *Aggregate* (inherited from Aggregate_): They are composed from the union of several primitive or complex geometries.

All the existing geometries must implement one of this three interfaces, depending of the geometry's kind. There're a detailed explanation of each one on the ISO19107_'s especification.

View source document


Powered by Plone CMS, the Open Source Content Management System

This site conforms to the following standards: