Revision 28790 branches/v2_0_0_prep/libraries/libFMap_dalfile/src/org/gvsig/fmap/dal/store/shp/utils/SHPMultiLine.java
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