Going from memory,
there should be a geometry class binding for multypolygon likewwise there
is one for polygon.
You should create the geometry with a proper type when you create the
schema/feature type.



Regards,
Simone Giannecchini
==
Our support, Your Success! Visit http://opensdi.geo-solutions.it for more
information.
==

Ing. Simone Giannecchini
@simogeo
Founder/Director

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054  Massarosa (LU)
Italy
phone: +39 0584 962313
fax:     +39 0584 1660272
mob:   +39  333 8128928

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------


On Fri, Jan 17, 2014 at 12:47 PM, Andreas Bergmann <bergmann...@gmail.com>wrote:

> Is the type MultiPolygon not supported?
> Which type do I have to use in order to store a 'multi part polygon' in a
> shapefile?
>
> Regards,
> Andreas
>
>
> 2014/1/17 Andrea Aime <andrea.a...@geo-solutions.it>
>
>> On Fri, Jan 17, 2014 at 9:56 AM, Andreas Bergmann 
>> <bergmann...@gmail.com>wrote:
>>
>>> Hi,
>>>
>>> I get an exception when I try to create shapefiles with geometries
>>> loaded from an Oracle Spatial database.
>>>
>>>
>>> 1) I fetch a geometry with hibernate spatial and use the type
>>> MultiPolygon
>>>
>>> ...
>>>     @Column(name="GEOM")
>>>     @Type(type = "org.hibernate.spatial.GeometryType")
>>>     public MultiPolygon getGeom() {
>>>         return this.Geom;
>>>     }
>>> ...
>>>
>>> 2) Then I try to store the geometry as a shapefile, I adapapted the
>>> example Java code for this:
>>>  SimpleFeatureType schema = feature.getFeatureType();
>>>
>>>             CoordinateReferenceSystem dataCRS =
>>> schema.getCoordinateReferenceSystem();
>>>             CoordinateReferenceSystem worldCRS = CRS.decode(epsg);
>>>
>>>             DataStoreFactorySpi factory = new
>>> ShapefileDataStoreFactory();
>>>             Map<String, Serializable> create = new HashMap<String,
>>> Serializable>();
>>>             create.put("url", url);
>>>             create.put("create spatial index", Boolean.TRUE);
>>>             DataStore dataStore = factory.createNewDataStore(create);
>>>             SimpleFeatureType featureType =
>>> SimpleFeatureTypeBuilder.retype(schema, worldCRS);
>>>             dataStore.createSchema(featureType);
>>>
>>>             Transaction transaction = new
>>> DefaultTransaction("Reproject");
>>>             FeatureWriter<SimpleFeatureType, SimpleFeature> writer
>>>                     =
>>> dataStore.getFeatureWriterAppend(featureType.getTypeName(), transaction);
>>>             try {
>>>                 SimpleFeature copy = writer.next();
>>>                 copy.setAttributes(feature.getAttributes());
>>>
>>>                 Geometry geometry = (Geometry)
>>> feature.getDefaultGeometry();
>>>                 Geometry outputGeometry = transformGeometry(geometry,
>>> dataCRS, worldCRS, true);
>>>
>>>                 copy.setDefaultGeometry(outputGeometry);
>>>                 writer.write();
>>>                 transaction.commit();
>>>
>>>             }
>>> 3) But I get an exception from the SimpleFeatureBuilder
>>>  org.geotools.data.DataSourceException: Cannot create a shape file
>>> whose geometry type is class com.vividsolutions.jts.geom.Geometry
>>>
>>> What can I do about this? I expected that 
>>> com.vividsolutions.jts.geom.Geometry
>>> should work.
>>>
>>
>> A shapefile can only contain a single type of geometry, so you have to
>> specify which one you're going to use,
>> either point, line or polygon. "Geometry" implies you can store any type
>> of geometry in the column, something
>> that a spatial database can do, but a shapefile cannot.
>>
>> Cheers
>> Andrea
>>
>> --
>> == Our support, Your Success! Visit http://opensdi.geo-solutions.it for
>> more information ==
>>
>> Ing. Andrea Aime
>> @geowolf
>> Technical Lead
>>
>> GeoSolutions S.A.S.
>> Via Poggio alle Viti 1187
>> 55054  Massarosa (LU)
>> Italy
>> phone: +39 0584 962313
>> fax: +39 0584 1660272
>> mob: +39  339 8844549
>>
>> http://www.geo-solutions.it
>>  http://twitter.com/geosolutions_it
>>
>> -------------------------------------------------------
>>
>
>
>
> ------------------------------------------------------------------------------
> CenturyLink Cloud: The Leader in Enterprise Cloud Services.
> Learn Why More Businesses Are Choosing CenturyLink Cloud For
> Critical Workloads, Development Environments & Everything In Between.
> Get a Quote or Start a Free Trial Today.
>
> http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
> _______________________________________________
> GeoTools-GT2-Users mailing list
> GeoTools-GT2-Users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
>
>
------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
GeoTools-GT2-Users mailing list
GeoTools-GT2-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to