Revision 25516 trunk/extensions/extJDBC/src/com/iver/cit/gvsig/fmap/drivers/jdbc/postgis/PostGIS.java
PostGIS.java | ||
---|---|---|
52 | 52 |
import com.hardcode.gdbms.engine.values.Value; |
53 | 53 |
import com.hardcode.gdbms.engine.values.ValueWriter; |
54 | 54 |
import com.iver.cit.gvsig.fmap.core.FShape; |
55 |
import com.iver.cit.gvsig.fmap.core.FShapeM; |
|
55 | 56 |
import com.iver.cit.gvsig.fmap.core.GeneralPathX; |
56 | 57 |
import com.iver.cit.gvsig.fmap.core.IFeature; |
57 | 58 |
import com.iver.cit.gvsig.fmap.core.IGeometry; |
... | ... | |
276 | 277 |
geometry=ShapeMFactory.createPolyline2DM(new GeneralPathX(geometry.getInternalShape()),((IGeometryM)geometry).getMs()); //MCoord |
277 | 278 |
} |
278 | 279 |
} |
279 |
sqlBuf.append(" GeometryFromText( '" |
|
280 |
//MCoord |
|
281 |
if ((type == (FShape.LINE|FShape.M)) || (type == (FShape.POINT|FShape.M))){ |
|
282 |
sqlBuf.append(" GeometryFromText( '" |
|
283 |
+ ((FShapeM)geometry.getInternalShape()).toText() + "', " |
|
284 |
+ DefaultJDBCDriver.removePrefix(dbLayerDef.getSRID_EPSG()) + ")"); |
|
285 |
}else{ |
|
286 |
sqlBuf.append(" GeometryFromText( '" |
|
280 | 287 |
+ geometry.toJTSGeometry().toText() + "', " |
281 | 288 |
+ DefaultJDBCDriver.removePrefix(dbLayerDef.getSRID_EPSG()) + ")"); |
289 |
} |
|
282 | 290 |
|
283 | 291 |
// sqlBuf.deleteCharAt(sqlBuf.lastIndexOf(",")); |
284 | 292 |
sqlBuf.append(" ) "); |
... | ... | |
323 | 331 |
} |
324 | 332 |
} |
325 | 333 |
} |
326 |
sqlBuf.deleteCharAt(sqlBuf.lastIndexOf(",")); |
|
334 |
//If pos > 0 there is at least one field.. |
|
335 |
int pos = sqlBuf.lastIndexOf(","); |
|
336 |
if (pos > -1){ |
|
337 |
sqlBuf.deleteCharAt(pos); |
|
338 |
} |
|
327 | 339 |
if (feat.getGeometry() != null) |
328 |
{ |
|
329 |
sqlBuf.append(", " + dbLayerDef.getFieldGeometry()); |
|
340 |
{ |
|
341 |
if (pos > -1){ |
|
342 |
sqlBuf.append(","); |
|
343 |
} |
|
344 |
sqlBuf.append(" " + dbLayerDef.getFieldGeometry()); |
|
330 | 345 |
sqlBuf.append(" = "); |
331 |
sqlBuf.append(" GeometryFromText( '" |
|
346 |
//MCoord |
|
347 |
int type = feat.getGeometry().getGeometryType(); |
|
348 |
if ((type == (FShape.LINE|FShape.M)) || (type == (FShape.POINT|FShape.M))){ |
|
349 |
sqlBuf.append(" GeometryFromText( '" |
|
350 |
+ ((FShapeM)feat.getGeometry().getInternalShape()).toText() + "', " |
|
351 |
+ DefaultJDBCDriver.removePrefix(dbLayerDef.getSRID_EPSG()) + ")"); |
|
352 |
}else{ |
|
353 |
sqlBuf.append(" GeometryFromText( '" |
|
332 | 354 |
+ feat.getGeometry().toJTSGeometry().toText() + "', " |
333 | 355 |
+ DefaultJDBCDriver.removePrefix(dbLayerDef.getSRID_EPSG()) + ")"); |
356 |
} |
|
334 | 357 |
} |
335 | 358 |
sqlBuf.append(" WHERE "); |
336 | 359 |
sqlBuf.append(dbLayerDef.getFieldID() + " = " + feat.getID()); |
Also available in: Unified diff