Revision 3532
trunk/libraries/libRemoteServices/src/org/gvsig/remoteClient/wms/WMSProtocolHandler.java | ||
---|---|---|
5 | 5 |
import java.io.DataOutputStream; |
6 | 6 |
import java.io.File; |
7 | 7 |
import java.io.FileOutputStream; |
8 |
import java.io.FileReader; |
|
8 | 9 |
import java.io.IOException; |
9 | 10 |
import java.io.InputStream; |
10 | 11 |
import java.io.OutputStream; |
... | ... | |
16 | 17 |
|
17 | 18 |
import org.gvsig.remoteClient.exceptions.ServerErrorException; |
18 | 19 |
import org.gvsig.remoteClient.exceptions.WMSException; |
20 |
import org.gvsig.remoteClient.utils.CapabilitiesTags; |
|
19 | 21 |
import org.gvsig.remoteClient.utils.Utilities; |
22 |
import org.kxml2.io.KXmlParser; |
|
20 | 23 |
|
21 | 24 |
import com.devx.io.TempFileManager; |
22 | 25 |
|
... | ... | |
210 | 213 |
public String getFeatureInfo(WMSStatus status, int x, int y, int featureCount) |
211 | 214 |
{ |
212 | 215 |
URL request = null; |
216 |
StringBuffer output = new StringBuffer(); |
|
213 | 217 |
try |
214 | 218 |
{ |
215 | 219 |
//TODO: |
... | ... | |
225 | 229 |
{ |
226 | 230 |
System.out.println(request.toString()); |
227 | 231 |
File f = new File("featureInfo.xml"); |
228 |
DataOutputStream dos = new DataOutputStream(new FileOutputStream(f)); |
|
229 |
|
|
232 |
DataOutputStream dos = new DataOutputStream(new FileOutputStream(f)); |
|
230 | 233 |
OutputStream bos = null; |
231 | 234 |
|
232 | 235 |
byte[] buffer = new byte[1024*256]; |
... | ... | |
234 | 237 |
//long readed = 0; |
235 | 238 |
for (int i = is.read(buffer); i>0; i = is.read(buffer)){ |
236 | 239 |
dos.write(buffer, 0, i); |
240 |
output.append(buffer); |
|
237 | 241 |
//readed += i; |
238 | 242 |
} |
239 | 243 |
dos.close(); |
240 | 244 |
|
241 |
return null; |
|
245 |
StringBuffer sb = new StringBuffer(); |
|
246 |
sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>"); |
|
247 |
int tag; |
|
248 |
KXmlParser kxmlParser = null; |
|
249 |
kxmlParser = new KXmlParser(); |
|
250 |
kxmlParser.setInput(new FileReader(f)); |
|
251 |
tag = kxmlParser.nextTag(); |
|
252 |
if ( kxmlParser.getEventType() != KXmlParser.END_DOCUMENT ) |
|
253 |
{ |
|
254 |
//tag = kxmlParser.nextTag(); |
|
255 |
while(tag != KXmlParser.END_DOCUMENT) |
|
256 |
{ |
|
257 |
switch(tag) |
|
258 |
{ |
|
259 |
case KXmlParser.START_TAG: |
|
260 |
sb.append("<" + kxmlParser.getName() + ">\n"); |
|
261 |
break; |
|
262 |
case KXmlParser.END_TAG: |
|
263 |
sb.append("</" + kxmlParser.getName() + ">\n"); |
|
264 |
break; |
|
265 |
case KXmlParser.TEXT: |
|
266 |
sb.append(kxmlParser.getText()); |
|
267 |
break; |
|
268 |
} |
|
269 |
tag = kxmlParser.next(); |
|
270 |
} |
|
271 |
} |
|
272 |
System.out.println(sb.toString()); |
|
273 |
return sb.toString(); |
|
274 |
//return output.toString() ; |
|
242 | 275 |
} |
243 | 276 |
catch(Exception e) |
244 | 277 |
{ |
... | ... | |
282 | 315 |
req = req + getHost() + symbol + "REQUEST=GetFeatureInfo&SERVICE=WMS&"; |
283 | 316 |
req = req + "QUERY_LAYERS="+Utilities.Vector2CS(status.getLayerNames()); |
284 | 317 |
req = req + "&VERSION=" + getVersion() + "&"; |
318 |
req = req + "INFO_FORMAT=application/vnd.ogc.gml&"; |
|
285 | 319 |
req = req + getPartialQuery(status); |
286 | 320 |
req = req + "&x="+x + "&y="+y; |
287 | 321 |
if (status.getExceptionFormat() != null) { |
Also available in: Unified diff