Hi Jody, Yes, the data type is a generic “Geometry” and not a specific one.
I’ll do some test adding a specific data type column and inform you about result. Thanks for suggestion Bruno Inviato da Outlook per iOS<https://aka.ms/o0ukef> ________________________________ Da: Jody Garnett <jody.garn...@gmail.com> Inviato: Monday, April 29, 2024 10:40:42 PM A: Bruno Lombardi <bruno.lomba...@live.it> Cc: geotools-devel@lists.sourceforge.net <geotools-devel@lists.sourceforge.net> Oggetto: Re: [Geotools-devel] Possible bug in KML Export Hi Bruno, The lml format is not very active these days, I am trying to determine why others have not run into this problem - does your PostGIS table have a generic "Geometry" type (rather thank Point, or Polygon, or MultiLineString?) You would be implementing a new feature, so it would be good to confirm the abilities of the KML standard, and be sure to include a test case :D -- Jody Garnett On Apr 26, 2024 at 6:47:09 AM, Bruno Lombardi <bruno.lomba...@live.it<mailto:bruno.lomba...@live.it>> wrote: Hi, I've found some difficulty exporting Feature to KML. Here's my piece of code: Encoder encoder = new Encoder(new FCKMLConfiguration()); encoder.setIndenting(true); PipedInputStream in = new PipedInputStream(); try { PipedOutputStream out = new PipedOutputStream(in); new Thread(new Runnable() { public void run() { try { encoder.encode(polyFeatures, KML.kml, out); } catch (IOException e) { log.error("", e); } finally { try { out.close(); } catch (IOException e) { log.error("", e); } after.run(); } } }).start(); } catch (IOException e) { log.error("Problem generating export", e); } return in; All works correctly but, if feature contains a "multigeometry" retrieved from PostGIS data base, the KML entry is empy: <kml:MultiGeometry/> I've changed the MultiGeometryTypeBinding in this way: @Override public Object getProperty(Object object, QName name) throws Exception { GeometryCollection gc = (GeometryCollection) object; if ("AbstractGeometryGroup".equals(name.getLocalPart()) || KML.Geometry.getLocalPart().equals(name.getLocalPart())) { Geometry[] g = new Geometry[gc.getNumGeometries()]; for (int i = 0; i < g.length; i++) { g[i] = gc.getGeometryN(i); } return g; } return super.getProperty(object, name); } It works! I don't know if the change is correct since I do not know so deeply the code but, if it make sense I would do a pull_request for the change. Thanks for you fantastic works! _______________________________________________ GeoTools-Devel mailing list GeoTools-Devel@lists.sourceforge.net<mailto:GeoTools-Devel@lists.sourceforge.net> https://lists.sourceforge.net/lists/listinfo/geotools-devel
_______________________________________________ GeoTools-Devel mailing list GeoTools-Devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geotools-devel