Hi, I think you're right again. For a better result with non puntal geometries, one should use getCentroid instead of getCoordinate in getCenterOfMass method One could also compute something closer to a center of mass by using the area or the length of the feature as the "mass" of each feature Of course, computing getCentroid + getArea + getLength can take much more time than a single getCoordinate()
Michaël > While we are on the topic, could you guys look at the getCenterOfMass > method in the same class. Its supposed to act like the > Geometry.getCentroid method, but for a group of Feature objects. > However, I didn't see any use of the getCentroid method on the member > feature geometries from within the method. There is some math going on > in the method using coordinates obtained via the getCoordinate() > method, but I don't think it does what it is supposed to. > > I think we should clarify the purpose of the method in the javadoc > comment, or perhaps discuss alternate implementations of the > getCenterOfMass method. This might be a good discussion for the JTS > mailing list. > > I know you guys are busy. Only peek if you have time. I'll have a > revamped FeatureCollectionTools class ready by the end of the week I > hope. There should be some stuff in there I can port back to OJ after > you guys take a look. The revamped class will include a method to > compare the equality of FeatureCollections, which should be handy for > unit testing. > > SS > > On Wed, Jun 24, 2009 at 10:44 AM, Larry Becker<becker.la...@gmail.com> wrote: > >> Yes, you are right. The getCoordinate() only works when looping through a >> single feature's points. >> >> Larry >> >> On Wed, Jun 24, 2009 at 12:12 PM, Sunburned Surveyor >> <sunburned.surve...@gmail.com> wrote: >> >>> Thanks for the responses Larry and Michael. I have attached a text >>> file with my modified method. (Note: There are other changes to my >>> method that I would not include in the patch.) I believe that the use >>> of getCoordinate method should be replaced with the >>> getEnvelopeInternal method. >>> >>> But I could be wrong. >>> >>> SS >>> >>> On Wed, Jun 24, 2009 at 6:22 AM, Larry Becker<becker.la...@gmail.com> >>> wrote: >>> >>>> Hi SS, >>>> >>>> If you are talking about this code, it looks like it works to me: >>>> >>>> public static Envelope getEnvelopeForFeatures(Feature[] features){ >>>> Envelope env = null; >>>> Feature feat; >>>> >>>> for (int i=0; i<features.length; i++){ >>>> feat = features[i]; >>>> if (env==null){ >>>> env = new Envelope(feat.getGeometry().getCoordinate()); >>>> } else { >>>> env.expandToInclude(feat.getGeometry().getCoordinate()); >>>> } >>>> } >>>> >>>> return env; >>>> } >>>> >>>> regards, >>>> Larry >>>> >>>> 2009/6/24 Michaël Michaud <michael.mich...@free.fr> >>>> >>>>> Hi, >>>>> >>>>>> I believe there may be a bug in the getEnvelopeForFeatures method of >>>>>> the FeatureCollectionTools class. It uses the Geometry.getCoordinate >>>>>> method when it should use the Geometry.getEnvelopeInternal method. >>>>>> This may result in the calculation of an envolope that does not >>>>>> include the envelope of all features. >>>>>> >>>>>> >>>>> I think you're right. Using getCoordinate to compute an envelope is not >>>>> correct. >>>>> Feel free to fix it. You've got a correct implementation in >>>>> com.vividsolutions.jump.feature.FeatureDataset.getEnvelope(). >>>>> >>>>> Michaël >>>>> >>>>>> When I get my modified version of the getEnvelopeForFeature method >>>>>> tested I will submit a patch. >>>>>> >>>>>> SS >>>>>> >>>>>> >>>>>> >>>>>> ------------------------------------------------------------------------------ >>>>>> _______________________________________________ >>>>>> 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 >>>>> >>>> >>>> -- >>>> Larry Becker >>>> Integrated Systems Analysts, Inc. >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> >>>> _______________________________________________ >>>> 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 >>> >>> >> >> -- >> Larry Becker >> Integrated Systems Analysts, Inc. >> >> ------------------------------------------------------------------------------ >> >> _______________________________________________ >> 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 > > > ------------------------------------------------------------------------------ _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel