root / trunk / libraries / libFMap / docs / FMap desarrollador.html @ 14390
History | View | Annotate | Download (4.25 KB)
1 | 1651 | fernando | <!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> |