[mapguide-dev] area calculation conversion to meters
Paul Spencer
pspencer at dmsolutions.ca
Sun Dec 3 14:11:37 EST 2006
Thanks Traian, it hurts my head too! All calculations will be
advertised as approximate, but I'd like them to be close to reality.
How can I construct a UTM coordinate system definition centered
around the meridian that crosses the centroid of the feature? Or
find the UTM Zone projection that contains the centroid of a feature
(I manually found it for the Sheboygan data and it gave decent
results)? Would I need to manually build an array of UTM Zone -> LL
mappings?
Cheers
Paul
On 3-Dec-06, at 12:58 PM, Traian Stanev wrote:
> I'm far from an expert either, but here is what makes sense to me...
>
> The simplest solution to me seems to transform to the nearest UTM
> Zone projection in meters and compute the area of the resulting
> geometry. I think this will be accurate enough for what you are
> doing, since it is very likely that the original data (for
> Sheboygan) was measured in that UTM zone and then converted to
> LatLon after the fact anyway. That's why it seems to me that this
> approach will give you exact results, even though in theory it is
> not exact (since the data can be far away from the UTM Zone's
> central meridian).
>
> Another, more generic approach, that would be good for small
> features, would be to construct a UTM coordinate system definition
> centered around the meridian that crosses the centroid of the
> feature. This will give you an LL-UTM transformation with the least
> distortion for the feature at hand.
>
> My hunch is that computing an exact area on the ellipsoid without
> projection involves elliptical integrals, since even the area of a
> whole ellipsoid involves those. Elliptic integrals have no closed
> form solution so you would need a numerical integration approach,
> which hurts my head even thinking about it.
>
>
> Traian
>
>
>
>
> -----Original Message-----
> From: Paul Spencer (External)
> Sent: Sat 12/2/2006 12:04 PM
> To: dev at mapguide.osgeo.org
> Cc:
> Subject: Re: [mapguide-dev] area calculation conversion to meters
>
> Trevor,
>
> That would work for GetLength() but I wonder if you need to adjust
> for latitude as well ... and it doesn't work for area. I pondered
> doing this for the square root of the area and then squaring the
> result ... I think that would work, but again it would have to be
> adjusted for the latitude ... or am I over-engineering this?
>
> Paul
>
> On 1-Dec-06, at 4:10 PM, Trevor Wekel wrote:
>
> > Hi Paul,
> >
> > For the most general case, I think you're on the right track.
> Most of
> > the geometry classes support the Transform() operation. The
> > MgCoordinateSystemTransform allows transformation from one
> coordinate
> > system to another. I'm not a coordinate system expert but from
> what I
> > understand most coordinate systems projections have an accurate
> sweet
> > spot in the center and become more inaccurate around the edges. I
> > wonder if there is a programmatic way to determine the
> appropriateness
> > of the target system? Possibly based on center point of the
> > projection?
> >
> > But if your target system is in decimal degrees, doesn't that
> imply a
> > direct mapping to the world space? Isn't a decimal degree some
> number
> > of meters? Could you just use
> > MgCoordinateSystem::ConvertCoordinateSystemUnitsToMeters(double
> units)
> > as the conversion factor? I suspect this may also work in the sweet
> > spot of projected systems as well.
> >
> > Thanks,
> > Trevor
> >
> > -----Original Message-----
> > From: Paul Spencer (External)
> > Sent: Thursday, November 30, 2006 3:03 PM
> > To: dev at mapguide.osgeo.org
> > Subject: [mapguide-dev] area calculation conversion to meters
> >
> > Hi all,
> >
> > I'm measuring the area and length of features using
> > MgGeometricEntity::GetArea() and GetLength() in the Sheboygan data.
> > This returns values in the units of the projection, which happens
> > to be
> > decimal degrees. Not so useful. I'd like the result to be in
> meters.
> >
> > Since this code needs to be generic, I've implemented some stuff to
> > transform the geometry into a coordinate system that supports
> meters.
> > This is not too accurate since I arbitrarily picked a World LCC
> > projection wkt :)
> >
> > What is the recommended way of doing this calculation?
> >
> > Cheers
> >
> > Paul
> >
> > +-----------------------------------------------------------------+
> > |Paul Spencer pspencer at dmsolutions.ca |
> > +-----------------------------------------------------------------+
> > |Chief Technology Officer |
> > |DM Solutions Group Inc http://www.dmsolutions.ca/ |
> > +-----------------------------------------------------------------+
> >
> >
> >
> >
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe at mapguide.osgeo.org
> > For additional commands, e-mail: dev-help at mapguide.osgeo.org
> >
> >
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe at mapguide.osgeo.org
> > For additional commands, e-mail: dev-help at mapguide.osgeo.org
> >
>
> +-----------------------------------------------------------------+
> |Paul Spencer pspencer at dmsolutions.ca |
> +-----------------------------------------------------------------+
> |Chief Technology Officer |
> |DM Solutions Group Inc http://www.dmsolutions.ca/ |
> +-----------------------------------------------------------------+
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe at mapguide.osgeo.org
> For additional commands, e-mail: dev-help at mapguide.osgeo.org
>
>
+-----------------------------------------------------------------+
|Paul Spencer pspencer at dmsolutions.ca |
+-----------------------------------------------------------------+
|Chief Technology Officer |
|DM Solutions Group Inc http://www.dmsolutions.ca/ |
+-----------------------------------------------------------------+
More information about the Mapguide_dev
mailing list