svn-gvsig-desktop / trunk / libraries / libFMap / docs / FMap desarrollador.html @ 4578
History | View | Annotate | Download (4.25 KB)
1 |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
---|---|
2 |
<HTML>
|
3 |
<HEAD>
|
4 |
<META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1"> |
5 |
<TITLE></TITLE> |
6 |
<META NAME="GENERATOR" CONTENT="OpenOffice.org 1.1.1 (Linux)"> |
7 |
<META NAME="CREATED" CONTENT="20050307;9023300"> |
8 |
<META NAME="CHANGED" CONTENT="20050307;9551600"> |
9 |
<STYLE>
|
10 |
<!--
|
11 |
@page { size: 21.59cm 27.94cm }
|
12 |
-->
|
13 |
</STYLE>
|
14 |
</HEAD>
|
15 |
<BODY LANG="es-ES" DIR="LTR"> |
16 |
<H1>Sistema de temas vectoriales de FMap.</H1> |
17 |
<P>Para distinguir capas de FMap de capas de software a las primeras
|
18 |
nos referiremos como “temas” a partir de ahora.</P> |
19 |
<P>Un tema en FMap está implementado en tres capas, desde |
20 |
abajo hacia arriba, la capa de driver, la capa de adaptador y la capa |
21 |
de interfaz.</P>
|
22 |
<P><BR><BR> |
23 |
</P>
|
24 |
<CENTER>
|
25 |
<TABLE WIDTH=299 BORDER=1 CELLPADDING=4 CELLSPACING=3> |
26 |
<COL WIDTH=136> |
27 |
<COL WIDTH=136> |
28 |
<TR VALIGN=TOP> |
29 |
<TD WIDTH=136> |
30 |
<P ALIGN=CENTER>Tema</P> |
31 |
</TD>
|
32 |
<TD WIDTH=136> |
33 |
<P ALIGN=CENTER>Operaciones</P> |
34 |
</TD>
|
35 |
</TR>
|
36 |
<TR>
|
37 |
<TD COLSPAN=2 WIDTH=283 VALIGN=TOP> |
38 |
<P ALIGN=CENTER>Adaptación</P> |
39 |
</TD>
|
40 |
</TR>
|
41 |
<TR>
|
42 |
<TD COLSPAN=2 WIDTH=283 VALIGN=TOP> |
43 |
<P ALIGN=CENTER>Driver</P> |
44 |
</TD>
|
45 |
</TR>
|
46 |
</TABLE>
|
47 |
</CENTER>
|
48 |
<P><BR><BR> |
49 |
</P>
|
50 |
<P>La capa del driver viene definida por la implementación de |
51 |
una de las subinterfaces hijas de VectorialDriver, elegida en función
|
52 |
de la naturaleza del origen de los datos (Base de datos, fichero, |
53 |
servidor WFS). Además de esta interfaz puede ser necesario
|
54 |
implementar otras interfaces adicionales que ayudan a la definición
|
55 |
del origen de datos (BoundedShapes). La única finalidad de
|
56 |
esta capa es la de extraer la información del origen de datos
|
57 |
físico en entidades propias de FMap y proporcionarselas a la
|
58 |
capa superior.</P>
|
59 |
<P>La capa de adaptación viene definida por la interfaz |
60 |
VectorialAdapter. Esta capa se encarga de, dada una implementación
|
61 |
de la capa inferior (driver) proporcionar a la capa superior una |
62 |
interfaz común, de forma que la capa superior pueda operar con
|
63 |
datos vectoriales de manera transparente a su origen de datos. Ésta
|
64 |
es la capa en la que se implementa toda la “inteligencia” |
65 |
de la fuente de datos: cacheado, indexado espacial interno de FMap, |
66 |
pool de conexiones, ...</P>
|
67 |
<P>La capa de interfaz consiste en todo aquello que accede a la capa
|
68 |
de adaptación. Se puede subdividir en dos: la subcapa de tema
|
69 |
y la subcapa de operaciones.</P>
|
70 |
<P>La subcapa de tema es la que da “personalidad” al |
71 |
tema. Esta capa se encarga de darle un nombre, asociar el tema con |
72 |
una leyenda, darle capacidad de selección, ...</P> |
73 |
<P>Una de las funcionalidades que le da la subcapa de tema al mismo
|
74 |
es la de realizar operaciones sobre los datos, dando así lugar
|
75 |
a la otra subcapa, la de operaciones.</P>
|
76 |
<P>La subcapa de operaciones está definida por unas |
77 |
estrategias y unos visitors que se explicarán más |
78 |
adelante. Baste decir que se encuentran en ésta los algoritmos
|
79 |
realizados sobre el adaptador (selección por punto, selección |
80 |
por geometría, ...).</P> |
81 |
<P>Para tener una visión más global del sistema de |
82 |
capas de FMap se puede comentar que la interfaz DataStore de geotools |
83 |
se situaría en el nivel de Adaptación.</P> |
84 |
<H1>Subcapa de operaciones</H1> |
85 |
<P>Las operaciones que se pueden realizar sobre una capa vienen dadas
|
86 |
por la interfaz FeatureVisitor. En dicha interfaz se define una |
87 |
operación sobre una fuente de datos sin especificar la
|
88 |
estrategia de recorrido de las geometrías (aleatoria,
|
89 |
secuencial, indexada, ...). La estrategia de recorrido viene definida |
90 |
por la implementación concreta de la interfaz Strategy. Dicha
|
91 |
clase implementará una estrategia de recorrido y delegará |
92 |
la operación en el FeatureVisitor concreto que operará |
93 |
sobre las geometrías.
|
94 |
</P>
|
95 |
<P>El recorrido se realiza sobre el adaptador, por lo que una
|
96 |
estrategia sirve para cualquier fuente de datos (para cualquier |
97 |
implementación de la capa driver). Por otro lado, el vísitor |
98 |
no define la estrategia de recorrido y por lo tanto es independiente |
99 |
del tipo de acceso del adaptador (secuencial o aleatorio).</P>
|
100 |
<P><BR><BR> |
101 |
</P>
|
102 |
</BODY>
|
103 |
</HTML>
|