Nice, it works. Thanks a lot for this good advise!
Sorry for the second post, my email client had a crash :)

Cheers
Fritz

Am 03.12.2012 um 13:50 schrieb Jody Garnett <[email protected]>:

> Yep this is a pain, only a few implementations support user defined feature 
> ids.
> 
> There are two things:
> - check the capabilities of the datastore to see if it supports this 
> functionality
> - use a "user data" hint to enable the extra functionality
> 
> Here is the example from the documentation:
> 
> if( featureStore.getQueryCapabilities().isUseExisingFIDSupported() ){
>     // featureStore allows us to create our own featureIDs
>     SimpleFeatureBuilder b = new 
> SimpleFeatureBuilder(featureStore.getSchema());
>     DefaultFeatureCollection collection = new 
> DefaultFeatureCollection(null,featureStore.getSchema());
> 
>     String typeName = b.getFeatureType().getTypeName();
>     for( FeatureIterator iter=features.features(); iter.hasNext(); ){
>         SimpleFeature feature = (SimpleFeature) iter.next();
> 
>         b.init( feature ); // take feature into a builder to modify
>         b.featureUserData(Hints.USE_EXISTING_FID, Boolean.TRUE);
>         feature = b.buildFeature( typeName+"."+System.currentTimeMillis() );
> 
>         collection.add( feature );
>     }
>     featureStore.addFeatures(collection);
> }
> else {
>    // allow featurestore to create featureIDs
>    featureStore.addFeatures( features );
> }
> And the link:
> 
> http://docs.geotools.org/latest/userguide/library/data/featuresource.html#adding-data
> 
> -- 
> Jody Garnett
> 
> On Monday, 3 December 2012 at 10:38 PM, Fritz Richter wrote:
> 
>> Hi together,
>> I'm playing around now for hours an simply can not make it run.
>> 
>> I try to store a feature into postgis, which is almost working perfectly, 
>> except the feature id.
>> 
>> Polygon polygon = GisUtils.convertToPolygon(tile);
>> builder.set("updated", new Date());
>> builder.set("geom", polygon);
>> ...
>> SimpleFeature feature = builder.buildFeature(featureId);
>> 
>> In my case the featureID is set to "18/12/12". When I look into the database 
>> table, the id looks like this "fid--50250c12_13b60c20cc4_-7061".
>> I really do not know, why my featureId is not used but the stange id appears.
>> 
>> Any help?
>> 
>> My db definition looks like this:
>> CREATE TABLE result
>> (
>>   tile_id text NOT NULL,
>>   updated timestamp without time zone NOT NULL,
>>   geom geometry,
>> ...
>>   CONSTRAINT pk_result PRIMARY KEY (tile_id ),
>>   CONSTRAINT enforce_dims_geom CHECK (st_ndims(geom) = 2),
>>   CONSTRAINT enforce_geotype_geom CHECK (geometrytype(geom) = 
>> 'POLYGON'::text OR geom IS NULL),
>>   CONSTRAINT enforce_srid_geom CHECK (st_srid(geom) = 4326)
>> )
>> WITH (
>>   OIDS=FALSE
>> );
>> ALTER TABLE result
>>   OWNER TO postgres;
>> 
>> 
>> ------------------------------------------------------------------------------
>> Keep yourself connected to Go Parallel:
>> BUILD Helping you discover the best ways to construct your parallel projects.
>> http://goparallel.sourceforge.net
>> _______________________________________________
>> GeoTools-GT2-Users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
> 

------------------------------------------------------------------------------
Keep yourself connected to Go Parallel: 
BUILD Helping you discover the best ways to construct your parallel projects.
http://goparallel.sourceforge.net
_______________________________________________
GeoTools-GT2-Users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to