root / trunk / docs / FMap / FMap desarrollador.html @ 11445
History | View | Annotate | Download (4.8 KB)
1 | 1935 | vcaballero | <!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 | <link href="../style.css" rel="stylesheet" type="text/css"> |
||
15 | </HEAD>
|
||
16 | <BODY LANG="es-ES" DIR="LTR"> |
||
17 | <table width="91%" border="0"> |
||
18 | <tbody>
|
||
19 | <tr>
|
||
20 | <td class="Nivel2"><a href="#sistema"><strong><font color="#ffffff">SISTEMA DE TEMAS VECTORIALES DE FMAP </font></strong></a></td> |
||
21 | </tr>
|
||
22 | </tbody>
|
||
23 | </table>
|
||
24 | <table width="91%" border="0"> |
||
25 | <tbody>
|
||
26 | <tr>
|
||
27 | <td class="Nivel2"><a href="#subcapa"><strong><font color="#ffffff">SUBCAPA DE OPERACIONES </font></strong></a></td> |
||
28 | </tr>
|
||
29 | </tbody>
|
||
30 | </table>
|
||
31 | <p> </p> |
||
32 | <H1> </H1> |
||
33 | <H1><a name="sistema"></a>Sistema de temas vectoriales de FMap.</H1> |
||
34 | <P>Para distinguir capas de FMap de capas de software a las primeras
|
||
35 | nos referiremos como “temas” a partir de ahora.</P> |
||
36 | <P>Un tema en FMap está implementado en tres capas, desde |
||
37 | abajo hacia arriba, la capa de driver, la capa de adaptador y la capa |
||
38 | de interfaz.</P>
|
||
39 | <P><BR><BR> |
||
40 | </P>
|
||
41 | <CENTER>
|
||
42 | <TABLE WIDTH=299 BORDER=1 CELLPADDING=4 CELLSPACING=3> |
||
43 | <COL WIDTH=136> |
||
44 | <COL WIDTH=136> |
||
45 | <TR VALIGN=TOP> |
||
46 | <TD WIDTH=136> |
||
47 | <P ALIGN=CENTER>Tema</P> |
||
48 | </TD>
|
||
49 | <TD WIDTH=136> |
||
50 | <P ALIGN=CENTER>Operaciones</P> |
||
51 | </TD>
|
||
52 | </TR>
|
||
53 | <TR>
|
||
54 | <TD COLSPAN=2 WIDTH=283 VALIGN=TOP> |
||
55 | <P ALIGN=CENTER>Adaptación</P> |
||
56 | </TD>
|
||
57 | </TR>
|
||
58 | <TR>
|
||
59 | <TD COLSPAN=2 WIDTH=283 VALIGN=TOP> |
||
60 | <P ALIGN=CENTER>Driver</P> |
||
61 | </TD>
|
||
62 | </TR>
|
||
63 | </TABLE>
|
||
64 | </CENTER>
|
||
65 | <P><BR><BR> |
||
66 | </P>
|
||
67 | <P>La capa del driver viene definida por la implementación de |
||
68 | una de las subinterfaces hijas de VectorialDriver, elegida en función
|
||
69 | de la naturaleza del origen de los datos (Base de datos, fichero, |
||
70 | servidor WFS). Además de esta interfaz puede ser necesario
|
||
71 | implementar otras interfaces adicionales que ayudan a la definición
|
||
72 | del origen de datos (BoundedShapes). La única finalidad de
|
||
73 | esta capa es la de extraer la información del origen de datos
|
||
74 | físico en entidades propias de FMap y proporcionarselas a la
|
||
75 | capa superior.</P>
|
||
76 | <P>La capa de adaptación viene definida por la interfaz |
||
77 | VectorialAdapter. Esta capa se encarga de, dada una implementación
|
||
78 | de la capa inferior (driver) proporcionar a la capa superior una |
||
79 | interfaz común, de forma que la capa superior pueda operar con
|
||
80 | datos vectoriales de manera transparente a su origen de datos. Ésta
|
||
81 | es la capa en la que se implementa toda la “inteligencia” |
||
82 | de la fuente de datos: cacheado, indexado espacial interno de FMap, |
||
83 | pool de conexiones, ...</P>
|
||
84 | <P>La capa de interfaz consiste en todo aquello que accede a la capa
|
||
85 | de adaptación. Se puede subdividir en dos: la subcapa de tema
|
||
86 | y la subcapa de operaciones.</P>
|
||
87 | <P>La subcapa de tema es la que da “personalidad” al |
||
88 | tema. Esta capa se encarga de darle un nombre, asociar el tema con |
||
89 | una leyenda, darle capacidad de selección, ...</P> |
||
90 | <P>Una de las funcionalidades que le da la subcapa de tema al mismo
|
||
91 | es la de realizar operaciones sobre los datos, dando así lugar
|
||
92 | a la otra subcapa, la de operaciones.</P>
|
||
93 | <P>La subcapa de operaciones está definida por unas |
||
94 | estrategias y unos visitors que se explicarán más |
||
95 | adelante. Baste decir que se encuentran en ésta los algoritmos
|
||
96 | realizados sobre el adaptador (selección por punto, selección |
||
97 | por geometría, ...).</P> |
||
98 | <P>Para tener una visión más global del sistema de |
||
99 | capas de FMap se puede comentar que la interfaz DataStore de geotools |
||
100 | se situaría en el nivel de Adaptación.</P> |
||
101 | <H1><a name="subcapa"></a>Subcapa de operaciones</H1> |
||
102 | <P>Las operaciones que se pueden realizar sobre una capa vienen dadas
|
||
103 | por la interfaz FeatureVisitor. En dicha interfaz se define una |
||
104 | operación sobre una fuente de datos sin especificar la
|
||
105 | estrategia de recorrido de las geometrías (aleatoria,
|
||
106 | secuencial, indexada, ...). La estrategia de recorrido viene definida |
||
107 | por la implementación concreta de la interfaz Strategy. Dicha
|
||
108 | clase implementará una estrategia de recorrido y delegará |
||
109 | la operación en el FeatureVisitor concreto que operará |
||
110 | sobre las geometrías.
|
||
111 | </P>
|
||
112 | <P>El recorrido se realiza sobre el adaptador, por lo que una
|
||
113 | estrategia sirve para cualquier fuente de datos (para cualquier |
||
114 | implementación de la capa driver). Por otro lado, el vísitor |
||
115 | no define la estrategia de recorrido y por lo tanto es independiente |
||
116 | del tipo de acceso del adaptador (secuencial o aleatorio).</P>
|
||
117 | <P><BR><BR> |
||
118 | </P>
|
||
119 | </BODY>
|
||
120 | </HTML> |