Revision 11204 trunk/libraries/libGPE-GML/src/org/gvsig/gpe/gml/writer/GPEGmlWriterHandler.java
GPEGmlWriterHandler.java | ||
---|---|---|
11 | 11 |
import org.gvsig.gpe.gml.GMLTags; |
12 | 12 |
import org.gvsig.gpe.gml.writer.features.ElementWriter; |
13 | 13 |
import org.gvsig.gpe.gml.writer.features.FeatureMemberWriter; |
14 |
import org.gvsig.gpe.gml.writer.geometries.BoundedByWriter; |
|
14 | 15 |
import org.gvsig.gpe.gml.writer.geometries.BoxWriter; |
16 |
import org.gvsig.gpe.gml.writer.geometries.InnerBoundaryIs; |
|
17 |
import org.gvsig.gpe.gml.writer.geometries.LineStringMemberWriter; |
|
15 | 18 |
import org.gvsig.gpe.gml.writer.geometries.LineStringWriter; |
16 | 19 |
import org.gvsig.gpe.gml.writer.geometries.LinearRingWriter; |
20 |
import org.gvsig.gpe.gml.writer.geometries.MultiLineStringWriter; |
|
21 |
import org.gvsig.gpe.gml.writer.geometries.MultiPointWriter; |
|
22 |
import org.gvsig.gpe.gml.writer.geometries.MultiPolygonWriter; |
|
23 |
import org.gvsig.gpe.gml.writer.geometries.PointMemberWriter; |
|
17 | 24 |
import org.gvsig.gpe.gml.writer.geometries.PointWriter; |
25 |
import org.gvsig.gpe.gml.writer.geometries.PolygonMemberWriter; |
|
18 | 26 |
import org.gvsig.gpe.gml.writer.geometries.PolygonWriter; |
19 | 27 |
import org.gvsig.gpe.xml.writer.GPEXmlWriterHandler; |
20 | 28 |
|
... | ... | |
64 | 72 |
* |
65 | 73 |
* $Id$ |
66 | 74 |
* $Log$ |
67 |
* Revision 1.3 2007-04-13 07:17:57 jorpiell |
|
75 |
* Revision 1.4 2007-04-13 13:16:00 jorpiell |
|
76 |
* Add the multiple geometries |
|
77 |
* |
|
78 |
* Revision 1.3 2007/04/13 07:17:57 jorpiell |
|
68 | 79 |
* Add the writting tests for the simple geometries |
69 | 80 |
* |
70 | 81 |
* Revision 1.2 2007/04/12 17:06:44 jorpiell |
... | ... | |
79 | 90 |
* @author Jorge Piera LLodr? (jorge.piera@iver.es) |
80 | 91 |
*/ |
81 | 92 |
public class GPEGmlWriterHandler extends GPEXmlWriterHandler{ |
93 |
//In GML there is only one label. It the consumer |
|
94 |
//try to add more labels the driver will be report |
|
95 |
//one exception |
|
82 | 96 |
private boolean oneLayer = false; |
97 |
|
|
98 |
//Used for the multi-geometries |
|
99 |
private boolean isMultiple = false; |
|
100 |
|
|
101 |
//Used to close the labels |
|
83 | 102 |
private String currentFeature = null; |
84 |
private String currentElement = null; |
|
103 |
private String currentElement = null;
|
|
85 | 104 |
|
86 | 105 |
public GPEGmlWriterHandler(String format, File file,GPEErrorHandler errorHandler) throws IOException { |
87 | 106 |
super(format, file, errorHandler); |
... | ... | |
231 | 250 |
*/ |
232 | 251 |
public void startPoint(String id, double x, double y, double z, String srs) { |
233 | 252 |
try { |
234 |
PointWriter.start(writer, x, y, z, srs, id); |
|
253 |
if (isMultiple){ |
|
254 |
PointMemberWriter.start(writer, x, y, z, srs, id); |
|
255 |
}else{ |
|
256 |
PointWriter.start(writer, x, y, z, srs, id); |
|
257 |
} |
|
235 | 258 |
} catch (IOException e) { |
236 | 259 |
getErrorHandler().addError(e); |
237 | 260 |
} |
... | ... | |
243 | 266 |
*/ |
244 | 267 |
public void endPoint() { |
245 | 268 |
try { |
246 |
PointWriter.end(writer); |
|
269 |
if (isMultiple){ |
|
270 |
PointMemberWriter.end(writer); |
|
271 |
}else{ |
|
272 |
PointWriter.end(writer); |
|
273 |
} |
|
247 | 274 |
} catch (IOException e) { |
248 | 275 |
getErrorHandler().addError(e); |
249 | 276 |
} |
... | ... | |
256 | 283 |
*/ |
257 | 284 |
public void startLineString(String id, double[] x, double[] y, double[] z, String srs) { |
258 | 285 |
try { |
259 |
LineStringWriter.start(writer, x, y, z, srs, id); |
|
286 |
if (isMultiple){ |
|
287 |
LineStringMemberWriter.start(writer, x, y, z, srs, id); |
|
288 |
}else{ |
|
289 |
LineStringWriter.start(writer, x, y, z, srs, id); |
|
290 |
} |
|
260 | 291 |
} catch (IOException e) { |
261 | 292 |
getErrorHandler().addError(e); |
262 | 293 |
} |
... | ... | |
268 | 299 |
*/ |
269 | 300 |
public void endLineString() { |
270 | 301 |
try { |
271 |
LineStringWriter.end(writer); |
|
302 |
if (isMultiple){ |
|
303 |
LineStringMemberWriter.end(writer); |
|
304 |
}else{ |
|
305 |
LineStringWriter.end(writer); |
|
306 |
} |
|
272 | 307 |
} catch (IOException e) { |
273 | 308 |
getErrorHandler().addError(e); |
274 | 309 |
} |
... | ... | |
280 | 315 |
*/ |
281 | 316 |
public void startBbox(String id, double[] x, double[] y, double[] z, String srs) { |
282 | 317 |
try { |
283 |
BoxWriter.start(writer, x, y, z, srs, id);
|
|
318 |
BoundedByWriter.start(writer, x, y, z, srs, id);
|
|
284 | 319 |
} catch (IOException e) { |
285 | 320 |
getErrorHandler().addError(e); |
286 | 321 |
} |
... | ... | |
292 | 327 |
*/ |
293 | 328 |
public void endBbox() { |
294 | 329 |
try { |
295 |
BoxWriter.end(writer);
|
|
330 |
BoundedByWriter.end(writer);
|
|
296 | 331 |
} catch (IOException e) { |
297 | 332 |
getErrorHandler().addError(e); |
298 | 333 |
} |
... | ... | |
328 | 363 |
*/ |
329 | 364 |
public void startPolygon(String id, double[] x, double[] y, double[] z, String srs) { |
330 | 365 |
try { |
331 |
PolygonWriter.start(writer, x, y, z, srs, id); |
|
366 |
if (isMultiple){ |
|
367 |
PolygonMemberWriter.start(writer, x, y, z, srs, id); |
|
368 |
}else{ |
|
369 |
PolygonWriter.start(writer, x, y, z, srs, id); |
|
370 |
} |
|
332 | 371 |
} catch (IOException e) { |
333 | 372 |
getErrorHandler().addError(e); |
334 | 373 |
} |
... | ... | |
340 | 379 |
*/ |
341 | 380 |
public void endPolygon() { |
342 | 381 |
try { |
343 |
PolygonWriter.end(writer); |
|
382 |
if (isMultiple){ |
|
383 |
PolygonMemberWriter.end(writer); |
|
384 |
}else{ |
|
385 |
PolygonWriter.end(writer); |
|
386 |
} |
|
344 | 387 |
} catch (IOException e) { |
345 | 388 |
getErrorHandler().addError(e); |
346 | 389 |
} |
347 | 390 |
} |
391 |
|
|
392 |
/* |
|
393 |
* (non-Javadoc) |
|
394 |
* @see org.gvsig.gpe.writers.GPEWriterHandler#startInnerBoundary(java.lang.String, double[], double[], double[], java.lang.String) |
|
395 |
*/ |
|
396 |
public void startInnerBoundary(String id, double[] x, double[] y, double[] z, String srs) { |
|
397 |
try { |
|
398 |
InnerBoundaryIs.start(writer, x, y, z); |
|
399 |
} catch (IOException e) { |
|
400 |
getErrorHandler().addError(e); |
|
401 |
} |
|
402 |
} |
|
403 |
|
|
404 |
/* |
|
405 |
* (non-Javadoc) |
|
406 |
* @see org.gvsig.gpe.writers.GPEWriterHandler#endInnerBoundary() |
|
407 |
*/ |
|
408 |
public void endInnerBoundary() { |
|
409 |
try { |
|
410 |
InnerBoundaryIs.end(writer); |
|
411 |
} catch (IOException e) { |
|
412 |
getErrorHandler().addError(e); |
|
413 |
} |
|
414 |
} |
|
415 |
|
|
416 |
/* |
|
417 |
* (non-Javadoc) |
|
418 |
* @see org.gvsig.gpe.writers.GPEWriterHandler#startMultiPoint(java.lang.String, java.lang.String) |
|
419 |
*/ |
|
420 |
public void startMultiPoint(String id, String srs) { |
|
421 |
isMultiple = true; |
|
422 |
try { |
|
423 |
MultiPointWriter.start(writer, srs, id); |
|
424 |
} catch (IOException e) { |
|
425 |
getErrorHandler().addError(e); |
|
426 |
} |
|
427 |
} |
|
428 |
|
|
429 |
/* |
|
430 |
* (non-Javadoc) |
|
431 |
* @see org.gvsig.gpe.writers.GPEWriterHandler#endMuliPoint() |
|
432 |
*/ |
|
433 |
public void endMuliPoint() { |
|
434 |
isMultiple = false; |
|
435 |
try { |
|
436 |
MultiPointWriter.end(writer); |
|
437 |
} catch (IOException e) { |
|
438 |
getErrorHandler().addError(e); |
|
439 |
} |
|
440 |
} |
|
441 |
|
|
442 |
/* |
|
443 |
* (non-Javadoc) |
|
444 |
* @see org.gvsig.gpe.writers.GPEWriterHandler#startMultiLineString(java.lang.String, java.lang.String) |
|
445 |
*/ |
|
446 |
public void startMultiLineString(String id, String srs) { |
|
447 |
isMultiple = true; |
|
448 |
try { |
|
449 |
MultiLineStringWriter.start(writer, srs, id); |
|
450 |
} catch (IOException e) { |
|
451 |
getErrorHandler().addError(e); |
|
452 |
} |
|
453 |
} |
|
454 |
|
|
455 |
/* |
|
456 |
* (non-Javadoc) |
|
457 |
* @see org.gvsig.gpe.writers.GPEWriterHandler#endMultiLineString() |
|
458 |
*/ |
|
459 |
public void endMultiLineString() { |
|
460 |
isMultiple = false; |
|
461 |
try { |
|
462 |
MultiLineStringWriter.end(writer); |
|
463 |
} catch (IOException e) { |
|
464 |
getErrorHandler().addError(e); |
|
465 |
} |
|
466 |
} |
|
467 |
|
|
468 |
/* |
|
469 |
* (non-Javadoc) |
|
470 |
* @see org.gvsig.gpe.writers.GPEWriterHandler#startMultiPolygon(java.lang.String, java.lang.String) |
|
471 |
*/ |
|
472 |
public void startMultiPolygon(String id, String srs) { |
|
473 |
isMultiple = true; |
|
474 |
try { |
|
475 |
MultiPolygonWriter.start(writer, srs, id); |
|
476 |
} catch (IOException e) { |
|
477 |
getErrorHandler().addError(e); |
|
478 |
} |
|
479 |
} |
|
480 |
|
|
481 |
/* |
|
482 |
* (non-Javadoc) |
|
483 |
* @see org.gvsig.gpe.writers.GPEWriterHandler#endMultiPolygon() |
|
484 |
*/ |
|
485 |
public void endMultiPolygon() { |
|
486 |
isMultiple = false; |
|
487 |
try { |
|
488 |
MultiPolygonWriter.end(writer); |
|
489 |
} catch (IOException e) { |
|
490 |
getErrorHandler().addError(e); |
|
491 |
} |
|
492 |
} |
|
348 | 493 |
} |
Also available in: Unified diff