[Gvsig_english] Work with geometry

erwan bocher erwan.bocher at gmail.com
Mon Mar 13 09:27:43 CET 2006


Hi, Hi,

I have a problem to use jumpBridge because in my FMap version (gvSIG 0.6)
the method jts_to_igeometry doesn't exist.
I put the jumpBridge package with jump feature at this link
http://projetsigle.free.fr/temp/jumpBridge.jar.

Is it possible to look  it?

Thanks

R1.


On 3/13/06, erwan bocher <erwan.bocher at gmail.com> wrote:
>
> Hi,
>
>  A bridge  with gvSIG and JUMP it's a powerful idea. We'll be able to
> integrate OpenJUMP plugins in gvSIG. I test your method. I'd like to
> compile a small document to learn how to develop with gvsig.
>
> Happy to receive gvsig team in Rennes.
>
> Best regards.
>
> R1.
>
>
>
>
>
> On 3/12/06, Fran Peñarrubia <fpenarru at iver.es> wrote:
> >
> > Hi Erwan.
> >
> > I've been watching your tests. Keep going on, they are good and simple
> > examples.
> >
> > About using OpenJump, there are several ways to do that. And it's a good
> > exercise to do a bridge between both projects.
> >
> > Anyway, gvSIG will have a good geoprocessing set of tools in one month
> > or
> > so, we hope. Until then, here you are how can be done:
> >
> > You can do a driver around a FeatureDataSet (wrap it) and operate with
> > this FeatureDataSet. gvSIG will work with this new layer like the other
> > ones (I didn't try it, but with some little modifications, it should
> > do).
> >
> > I attach the JumpDriver class, and this is how you can test it:
> >
> >         JumpDriver jumpDriver = new JumpDriver();
> >         FeatureSchema featureSchema = new FeatureSchema();
> >         featureSchema.addAttribute("GEOMETRY", AttributeType.GEOMETRY);
> >
> >         FeatureDataset fc = new FeatureDataset(featureSchema);
> >
> >         jumpDriver.setFeatureDataSet(fc);
> >         FLayer lJump = LayerFactory.createLayer("JumpLayer",
> >                 jumpDriver,ProjectionPool.get("EPSG:23030"));
> >         mapContext.getLayers ().addLayer(lJump);
> >
> > You will need to do some mapping to avoid return the geometry field.
> >
> > About SQL language and/or scripting in gvSIG, we can talk in detail in a
> > few days :-).
> >
> > Have fun, and let me know if you can "connect" Jump and gvSIG.
> >
> > PS: I paste the JumpDriver.java here to avoid problems with antivirus
> > and
> > so on:
> >
> > package jumpBridge;
> >
> > import java.awt.geom.Rectangle2D;
> > import java.io.IOException;
> > import java.sql.Types;
> > import java.util.Date;
> >
> > import com.hardcode.gdbms.engine.data.DataSourceFactory;
> > import com.hardcode.gdbms.engine.data.driver.DriverException;
> > import com.hardcode.gdbms.engine.data.driver.ObjectDriver;
> > import com.hardcode.gdbms.engine.data.edition.DataWare ;
> > import com.hardcode.gdbms.engine.values.Value;
> > import com.hardcode.gdbms.engine.values.ValueFactory;
> > import com.iver.cit.gvsig.fmap.core.FShape;
> > import com.iver.cit.gvsig.fmap.core.IGeometry;
> > import com.iver.cit.gvsig.fmap.core.v02.FConverter ;
> > import com.iver.cit.gvsig.fmap.drivers.DriverAttributes;
> > import com.iver.cit.gvsig.fmap.drivers.VectorialDriver;
> > import com.vividsolutions.jump.feature.AttributeType;
> > import com.vividsolutions.jump.feature.Feature ;
> > import com.vividsolutions.jump.feature.FeatureDataset;
> >
> > public class JumpDriver implements VectorialDriver, ObjectDriver {
> >
> >         private FeatureDataset featDataSet = null;
> >         public int getShapeType() {
> >                 return FShape.MULTI;
> >         }
> >
> >         public int getShapeCount() throws IOException {
> >                 return featDataSet.size();
> >         }
> >
> >         public DriverAttributes getDriverAttributes() {
> >                 return null;
> >         }
> >
> >         public Rectangle2D getFullExtent() throws IOException {
> >                 return FConverter.convertEnvelopeToRectangle2D(
> > featDataSet.getEnvelope());
> >         }
> >
> >         public IGeometry getShape(int index) throws IOException {
> >                 Feature feat = featDataSet.getFeature(index);
> >                 return FConverter.jts_to_igeometry(feat.getGeometry());
> >         }
> >
> >         public void reLoad() throws IOException {
> >                 // TODO Auto-generated method stub
> >
> >         }
> >
> >         public String getName() {
> >                 return "JUMP Driver to gvSIG";
> >         }
> >
> >         public int[] getPrimaryKeys() throws DriverException {
> >                 // TODO Auto-generated method stub
> >                 return null;
> >         }
> >
> >         public void write(DataWare dataWare) throws DriverException {
> >                 // TODO Auto-generated method stub
> >
> >         }
> >
> >         public void setDataSourceFactory(DataSourceFactory dsf) {
> >                 // TODO Auto-generated method stub
> >
> >         }
> >
> >         public Value getFieldValue(long rowIndex, int fieldId) throws
> > DriverException {
> >                 Feature feat = featDataSet.getFeature((int) rowIndex);
> >                 Object att = feat.getAttribute(fieldId);
> >                 Value val = ValueFactory.createNullValue();
> >                 if (att instanceof Integer)
> >                         val = ValueFactory.createValue
> > (((Integer)att).intValue());
> >                 if (att instanceof Double)
> >                         val = ValueFactory.createValue
> > (((Double)att).doubleValue());
> >                 if (att instanceof Date)
> >                         val = ValueFactory.createValue((Date)att);
> >                 if (att instanceof String)
> >                         val = ValueFactory.createValue((String)att);
> >
> >                 return val;
> >         }
> >
> >         public int getFieldCount() throws DriverException {
> >                 return featDataSet.getFeatureSchema().getAttributeCount();
> >         }
> >
> >         public String getFieldName(int fieldId) throws DriverException {
> >                 //TODO: Un mapping entre los campos reales y otros
> > excluyendo el de tipo
> > Geometry
> >                 // para que no aparezca en la tabla
> >                 return featDataSet.getFeatureSchema
> > ().getAttributeName(fieldId);
> >         }
> >
> >         public long getRowCount() throws DriverException {
> >                 return featDataSet.size();
> >         }
> >
> >         public int getFieldType(int i) throws DriverException {
> >                 AttributeType attType = featDataSet.getFeatureSchema
> > ().getAttributeType(i);
> >                 if ( attType.toString().equals("INTEGER"))
> >                         return Types.INTEGER;
> >                 if (attType.toString().equals("DOUBLE"))
> >                         return Types.DOUBLE;
> >                 if ( attType.toString().equals("DATE"))
> >                         return Types.DATE;
> >                 if (attType.toString().equals("STRING"))
> >                         return Types.VARCHAR;
> >
> >
> >                 return 0;
> >         }
> >
> >         public FeatureDataset getFeatureDataSet() {
> >                 return featDataSet;
> >         }
> >
> >         public void setFeatureDataSet(FeatureDataset featDataSet) {
> >                 this.featDataSet = featDataSet;
> >         }
> >
> > }
> >
> >
> > -----Original Message-----
> > From: "erwan bocher" <erwan.bocher at gmail.com>
> > To: gvsig_internacional at runas.cap.gva.es
> > Date: Sun, 12 Mar 2006 14:50:50 +0100
> > Subject: [Gvsig_english] Work with geometry
> >
> > >  Hola,
> > >
> > > I tried to integrate OpenJUMP -Viatoris- geoprocessing menu in gvSIG.
> > > First
> > > I have create small examples functionalities :
> > > list layers
> > > list fields layer
> > > add shape layer...
> > >
> > > Now, I'd like to work with geometry. Based on example send by
> > Francisco
> > > José
> > > Peñarrubia I used JTS library for spatial processing but I don't know
> > > how to
> > > transform my geometries in a Flayer in gvSIG.
> > > To compare in OpenJUMP. My geometry is stored in a feature storing in
> > a
> > > featurecollection.
> > >
> > > If I want to convert a polygon layer to a linearRing layer I use this
> > > method
> > > :
> > >
> > > FeatureCollection fc = layer.getFeatureCollectionWrapper(); //layer is
> >
> > > the
> > > layer selected in OJ
> > > FeatureSchema fs = fc.getFeatureSchema(); // Pienso que es el modelo
> > en
> > > Fmap
> > > ?
> > > FeatureCollection resultfc = new FeatureDataset(fc.getFeatureSchema());
> >
> > > //The new featureCollection
> > >
> > > Feature feat;
> > >
> > > for (Iterator it = fc.iterator(); it.hasNext();){
> > > feat = (Feature)it.next(); //feat of layer selected in OJ
> > > Geometry geom = feat.getGeometry(); //geometry of feat
> > >
> > > for (int i = 0; i < feat.getGeometry().getNumGeometries(); i++) { //If
> > > they
> > > are more than two object in feat
> > > Feature newFeat = new BasicFeature(fs);//The new feature
> > > FeatureUtil.copyAttributes(feat, newFeat);//Mapping attributes
> > > newFeat.setGeometry(geom.getBoundary());//New geometry creation
> > > resultfc.add(newFeat);// add new feature in the new featureCollection
> > >
> > > }
> > > }
> > > context.getLayerManager().addLayer("Convert",layer.getName()
> > > +"_LinearRing"
> > > , resultfc);
> > > // Add the new featureCollection as a layer in OpenJUMP. The name of
> > > the new
> > > layer = source layer name + _LinearRing
> > >
> > >
> > > So my questions is:
> > >
> > > Is it possible to present a method to realise identic work with FMap ?
> > >
> > >
> > > Moreover I'm interested to use GDBMS to create a spatial SQL language
> > > as
> > > existing in PostGIS but using layers load in gvSIG. However gvSIG
> > works
> > > with
> > > GDBMS-0.8-SNAPSHOT. Is it planned to integrate the last  GDBMS (GDBMS
> > > 1.0) ?
> > >
> > > In attached file you can find my gvSIG examples.
> > >
> > > Best regards
> > >
> > > R1.
> > >
> >
> >
> > _______________________________________________
> > Gvsig_internacional mailing list
> > Gvsig_internacional at runas.cap.gva.es
> > http://runas.cap.gva.es/mailman/listinfo/gvsig_internacional
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://runas.cap.gva.es/pipermail/gvsig_internacional/attachments/20060313/09830685/attachment-0001.htm


More information about the Gvsig_internacional mailing list