any specific reason why you added it to the class in the sigle package? ..ede

On 9/22/2020 12:25, Giuseppe Aruta wrote:
Done

Il giorno mar 22 set 2020 alle ore 12:06 <edgar.sol...@web.de 
<mailto:edgar.sol...@web.de>> ha scritto:

    Peppe, some comments inline below ..ede

    On 9/22/2020 11:30, jump-pilot-svn--- via Jump-pilot-devel wrote:
     > Revision: 6508
     > http://sourceforge.net/p/jump-pilot/code/6508 
<http://sourceforge.net/p/jump-pilot/code/6508>
     > Author:   ma15569
     > Date:     2020-09-22 09:30:06 +0000 (Tue, 22 Sep 2020)
     > Log Message:
     > -----------
     > added two method to valid and to union by attribute a FeatureCollection
     >
     > Modified Paths:
     > --------------
     >      
core/trunk/src/org/openjump/sigle/utilities/geom/FeatureCollectionUtil.java
     >
     > Modified: 
core/trunk/src/org/openjump/sigle/utilities/geom/FeatureCollectionUtil.java
     > ===================================================================
     > --- 
core/trunk/src/org/openjump/sigle/utilities/geom/FeatureCollectionUtil.java       
2020-09-22 09:26:19 UTC (rev 6507)
     > +++ 
core/trunk/src/org/openjump/sigle/utilities/geom/FeatureCollectionUtil.java       
2020-09-22 09:30:06 UTC (rev 6508)
     > @@ -8,12 +8,23 @@
     >
     >
    SNIP
     >
     >   /**
     >    * This class can check if a FeatureCollection has only one Geometry 
Type
     > @@ -22,7 +33,8 @@
     >    * @author Erwan Bocher
     >    * @author Olivier Bedel
     >    * @version 2005-08-10
     > - *
     > + * @author Giuseppe Aruta [2020-07-22]
     > + * added two method to valid and to union by attribute a 
FeatureCollection
     >    */
     >
     >   public class FeatureCollectionUtil {
     > @@ -90,4 +102,88 @@
     >                       return AttributesList;
     >
     >   }
     > +     /**
     > +      * Method to make a FeatureCollection valid
     > +      * @param fc
     > +      */

    can you add to the javadoc exactly what is the method doing to make it 
valid? why wasn't it valid before?

     > +             public static void 
validFeatureCollection(FeatureCollection fc) {
     > +                     MakeValidOp makeValidOp = new MakeValidOp();
     > +                      makeValidOp.setPreserveGeomDim(true);
     > +                  makeValidOp.setPreserveDuplicateCoord(false);
     > +                  for (Feature feature  : fc.getFeatures()) {
     > +                       Geometry validGeom = 
makeValidOp.makeValid(feature.getGeometry());
     > +                       feature.setGeometry(validGeom);
     > +                     }
     > +               // return fc;
     > +                }
     > +
     > +             /**
     > +              * Mathod to merge geometries of a FeaureCollection 
according

    probably "Method to merge geometries of a FeatureCollection according"

     > +              * to an attribute
     > +              * @param featureCollection
     > +              * @param value

    what is the value. looks like the attribute name to me. please javadoc it

     > +              * @throws Exception
     > +              */
     > +              public static void 
unionByAttributeValue(FeatureCollection featureCollection, String value) throws 
Exception {
     > +                       FeatureSchema schema = 
featureCollection.getFeatureSchema();
     > +                   if (featureCollection.getFeatures().size() > 1 &&
     > +                                     
featureCollection.getFeatures().get(0).getGeometry() != null) {
     > +                             
featureCollection.getFeatures().get(0).getGeometry().getFactory();
     > +                     }
     > +                     else {
     > +                             Logger.error(
     > +                                 
I18N.get("ui.plugin.analysis.DissolvePlugIn.needs-two-features-or-more"));
     > +                       // return null;
     > +                     }
     > +                     FeatureSchema newSchema;
     > +                         newSchema = schema;
     > +                     Map<Object, FeatureCollection> map = new 
HashMap<Object, FeatureCollection>();
     > +                     for (Feature feature  : 
featureCollection.getFeatures()) {
     > +                          Object key = feature.getAttribute(value);
     > +                          if (!map.containsKey(key)) {
     > +                              FeatureCollection fd = new 
FeatureDataset(featureCollection.getFeatureSchema());
     > +                              fd.add(feature);
     > +                              map.put(key, fd);
     > +                          }  else {
     > +                              map.get(key).add(feature);
     > +                          }
     > +                      }
     > +                     
featureCollection.removeAll(featureCollection.getFeatures());
     > +                         for (Iterator<Object> i = 
map.keySet().iterator() ; i.hasNext() ; ) {
     > +                             Object key = i.next();
     > +                             FeatureCollection fca = map.get(key);
     > +                             if (fca.size() > 0) {
     > +                               Feature feature = union(fca);
     > +                               feature.setAttribute(value, key);
     > +                               Feature newFeature = new 
BasicFeature(newSchema);
     > +                                 // Copy feature attributes in 
newFeature
     > +                               for (int j = 0, max = 
newSchema.getAttributeCount() ; j < max ; j++) {
     > +                                     newFeature.setAttribute(j, 
feature.getAttribute(newSchema.getAttributeName(j)));
     > +                              }
     > +                               featureCollection.add(newFeature);
     > +                             }
     > +                         }
     > +                    // return featureCollection;
     > +                  }
     > +
     > +
     > +                  private static Feature union(FeatureCollection fc) {
     > +                      GeometryFactory factory = new GeometryFactory();
     > +                      Collection<Geometry> geometries  = new 
ArrayList<Geometry>();
     > +                      for (Feature f :  fc.getFeatures()) {
     > +                          Geometry g = f.getGeometry();
     > +                          geometries.add(g);
     > +                      }
     > +                      Geometry unioned = UnaryUnionOp.union(geometries);
     > +                       FeatureSchema schema = fc.getFeatureSchema();
     > +                      Feature feature = new BasicFeature(schema);
     > +                      if (geometries.size()==0) {
     > +                          
feature.setGeometry(factory.createGeometryCollection(new Geometry[]{}));
     > +                      }
     > +                      else {
     > +                          feature.setGeometry(unioned);
     > +                      }
     > +                      return feature;
     > +                  }
     > +
     >   }
     >
     >
     >
     > _______________________________________________
     > Jump-pilot-devel mailing list
     > Jump-pilot-devel@lists.sourceforge.net 
<mailto:Jump-pilot-devel@lists.sourceforge.net>
     > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel 
<https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel>
     >



    _______________________________________________
    Jump-pilot-devel mailing list
    Jump-pilot-devel@lists.sourceforge.net 
<mailto:Jump-pilot-devel@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel 
<https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel>



_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel



_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to