Revision 28790 branches/v2_0_0_prep/libraries/libFMap_dalfile/src/org/gvsig/fmap/dal/store/shp/utils/SHPMultiLine.java

View differences:

SHPMultiLine.java
56 56
import org.gvsig.fmap.geom.primitive.GeneralPathX;
57 57
import org.gvsig.fmap.geom.primitive.Point;
58 58
import org.gvsig.fmap.geom.primitive.Surface;
59
import org.gvsig.fmap.geom.primitive.impl.Point2D;
59 60
import org.gvsig.fmap.geom.util.Converter;
60 61
import org.slf4j.Logger;
61 62
import org.slf4j.LoggerFactory;
......
287 288
		PathIterator theIterator = g.getPathIterator(null, Converter.FLATNESS); //polyLine.getPathIterator(null, flatness);
288 289
		double[] theData = new double[6];
289 290
		int numParts = 0;
291
		Point2D pFirst=null;
290 292
		while (!theIterator.isDone()) {
291 293
			//while not done
292 294
			int theType = theIterator.currentSegment(theData);
......
304 306
						arrayPoints = new ArrayList();
305 307
						arrayParts.add(new Integer(0));
306 308
					} else {
309
						if (m_type==SHP.POLYGON2D ||
310
								m_type==SHP.POLYGON3D ||
311
								m_type==SHP.POLYGONM)
312
							arrayPoints.add(new Point2D(pFirst.getX(),
313
									pFirst.getY()));
307 314
						arrayParts.add(new Integer(arrayPoints.size()));
308 315
					}
309 316

  
310 317
					numParts++;
311

  
318
					pFirst=new Point2D(theData[0], theData[1]);
312 319
					try {
313 320
						arrayPoints.add(geomManager.createPoint(theData[0], theData[1], SUBTYPES.GEOM2D));
314 321
					} catch (CreateGeometryException e1) {
......
342 349
//					System.out.println("SEG_CLOSE");
343 350

  
344 351
					// A?adimos el primer punto para cerrar.
345
				Point firstPoint = (Point) arrayPoints.get(0);
346
					try {
347
						arrayPoints.add(geomManager.createPoint(firstPoint.getX(),
348
								firstPoint.getY(), SUBTYPES.GEOM2D));
349
					} catch (CreateGeometryException e) {
350
						logger.error("Error creating a point", e);
351
					}
352
					arrayPoints.add(new Point2D(pFirst.getX(),
353
							pFirst.getY()));
352 354

  
353 355
					break;
354 356
			} //end switch

Also available in: Unified diff