Michael,

When I fist started looking hard at the method, I realized that
"center of mass" could mean different things to different people. I
don't have time now to explore the differernt ways this center of mass
could be defined and the different ways this method could be
implemented, but it sounds like a fun homework assignment. :]

The PIROL team did a great job on the org.openjump.core.apitools code.
That is why I decided to add my own methods to the existing classes,
instead of baking my own. Please don't view my questions or
suggestions as criticism. The contributions of PIROL to OpenJUMP have
been great.

I especially like the AttributeInfo class, and I wish the original
AttributeType class had looked like it or something similar.

Landon

P.S. - For the time being I removed the getCenterOfMass method from my
revamped FeatureCollectionTools class. I did this because I didn't
know the appropriate way to fix it. If all we need to do is replace
calls to getCoordinate with getCentroid, I can prepare a patch for
this as well.

2009/6/24 Michaël Michaud <michael.mich...@free.fr>:
> 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
>

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

Reply via email to