svn-gvsig-desktop / trunk / libraries / libWMSv0 / src / com / iver / wmsclient / WMSClient.java @ 189
History | View | Annotate | Download (4.95 KB)
1 |
package com.iver.wmsclient; |
---|---|
2 |
|
3 |
import org.exolab.castor.xml.ValidationException; |
4 |
|
5 |
import java.awt.geom.Rectangle2D; |
6 |
|
7 |
import java.io.IOException; |
8 |
|
9 |
import java.net.URL; |
10 |
|
11 |
|
12 |
/**
|
13 |
* Interfaz con los m?todos que necesitamos de un cliente WMS. Se pueden a?adir
|
14 |
* m?s m?todos en funci?n de las necesidades que vayan surgiendo
|
15 |
*
|
16 |
* @author Fernando Gonz?lez Cort?s
|
17 |
*/
|
18 |
public interface WMSClient { |
19 |
/**
|
20 |
* Realiza la negociaci?n de la versi?n con el servidor WMS, se guarda toda
|
21 |
* la informaci?n obtenida de la petici?n GetCapabilities si la
|
22 |
* negociaci?n es exitosa y lanza una UnsupportedVersionException en caso
|
23 |
* contrario.
|
24 |
*
|
25 |
* @param host DOCUMENT ME!
|
26 |
*
|
27 |
* @return Objeto Capabilities. El objeto devuelto tendr? root a null si no
|
28 |
* se pudo leer la respuesta completamente. Tendr? root a null y
|
29 |
* version a null si no se pudo leer la version de la respuesta
|
30 |
*
|
31 |
* @throws UnsupportedVersionException Si el servidor no soporta ninguna de
|
32 |
* las versiones que soporta el cliente
|
33 |
* @throws IllegalStateException Si se intenta invocar el m?todo y no ha
|
34 |
* sido establecido previamente el par?metros host
|
35 |
* @throws IOException si se produce un error en la comunicaci?n con el
|
36 |
* servidor
|
37 |
*/
|
38 |
public Capabilities getCapabilities(URL host) |
39 |
throws UnsupportedVersionException, IllegalStateException, IOException; |
40 |
|
41 |
/**
|
42 |
* Realiza una peticion GetMap y devuelve los bytes del fichero retornado
|
43 |
* por el servidor
|
44 |
*
|
45 |
* @param queryInfo Objeto que contiene la informaci?n necesaria para
|
46 |
* realizar la peticion. El campo version de este objeto no viene
|
47 |
* definido y ha de ser establecido por las distintas
|
48 |
* implementaciones antes de invocar a cualquier otro m?todo del
|
49 |
* objeto
|
50 |
*
|
51 |
* @return array de bytes del fichero retornado. Si el servidor responde
|
52 |
* con una excepcion WMS que el cliente entiende, se lanza una
|
53 |
* WMSException con el mensaje de error contenido. Si se lanza una
|
54 |
* excepci?n que no se entiende se devuelve tal cual. Por tanto es
|
55 |
* posible que si no salta la excepci?n se devuelva c?digo que no
|
56 |
* es una respuesta correcta de informaci?n correcto
|
57 |
*
|
58 |
* @throws WMSException Si el servidor WMS devuelve un error propio del
|
59 |
* protocolo
|
60 |
* @throws IOException Si se produce un error de comunicaci?n con el
|
61 |
* servidor
|
62 |
* @throws NoSuchFieldException Si no se ha establecido uno de los campos
|
63 |
* obligatorios de las peticiones GetMap
|
64 |
* @throws ValidationException Si no se entiende la respuesta del servidor
|
65 |
*/
|
66 |
public byte[] doMapQuery(MapQuery queryInfo) |
67 |
throws WMSException, IOException, NoSuchFieldException, |
68 |
ValidationException; |
69 |
|
70 |
/**
|
71 |
* Crea un MapQuery con los datos de la versi?n correspondientes
|
72 |
* a la versi?n del cliente. Deber? de ser esta mapQuery la
|
73 |
* que se pase como par?metro a doMapQuery
|
74 |
*
|
75 |
* @return DOCUMENT ME!
|
76 |
*/
|
77 |
public MapQuery createQuery();
|
78 |
|
79 |
/**
|
80 |
* Obtiene la version como un string x.y.z
|
81 |
*
|
82 |
* @return N?mero de la versi?n
|
83 |
*/
|
84 |
public String getVersion(); |
85 |
|
86 |
/**
|
87 |
* Obtiene el bounding box de una capa para el SRS solicitado
|
88 |
*
|
89 |
* @param t Array con los names de las capas desde la raiz hasta aquella de
|
90 |
* la cual se quiere obtener su bounding box
|
91 |
* @param srs SRS para la que se quiere el bounding box
|
92 |
*
|
93 |
* @return Bounding box de la capa, o null si no se puede encontrar dicho
|
94 |
* boundingbox
|
95 |
*/
|
96 |
public Rectangle2D getBoundingBox(String[] t, String srs); |
97 |
|
98 |
/**
|
99 |
* Realiza una petici?n feature info y devuelve un array de bytes con la
|
100 |
* respuesta
|
101 |
*
|
102 |
* @param query Objeto query con la informaci?n de la peticion. El objeto
|
103 |
* MapQuery que hay dentro de este objeto debe ser el mismo (o
|
104 |
* contener la misma informaci?n) que el que se us? para obtener
|
105 |
* el mapa sobre el cual se est? haciendo la query
|
106 |
*
|
107 |
* @return bytes devueltos del servidor
|
108 |
*
|
109 |
* @throws WMSException Si el servidor WMS devuelve un error propio del
|
110 |
* protocolo
|
111 |
* @throws IOException Si se produce un error de comunicaci?n con el
|
112 |
* servidor
|
113 |
* @throws NoSuchFieldException Si no se ha establecido uno de los campos
|
114 |
* obligatorios de las peticiones GetFeatureInfo
|
115 |
* @throws ValidationException Si no se entiende la respuesta del servidor
|
116 |
*/
|
117 |
public byte[] doFeatureInfo(FeatureInfoQuery query) |
118 |
throws WMSException, IOException, NoSuchFieldException, |
119 |
ValidationException; |
120 |
|
121 |
/**
|
122 |
* Obtiene los formatos en los que se le puede pedir informaci?n al
|
123 |
* servidor
|
124 |
*
|
125 |
* @return array de strings con los nombres de los formatos que se pueden
|
126 |
* pedir al servidor
|
127 |
*/
|
128 |
public String[] getInfoFormats(); |
129 |
} |