ThinkGeo.com    |     Documentation    |     Premium Support

Converting radius to miles

Hello,


I am adding a circle to a layer with a radius of 10 miles.


EllipseShape ellipseShape = new EllipseShape(pointShape, 10, 10, GeographyUnit.DecimalDegree, DistanceUnit.Mile);


When I use the following, I get:

features.GetBoundingBox().Width = 0.374189340478466

features.GetBoundingBox().Height = 0.289645418627046


I am storing values in a datatable and need to be able to create the layer again.


My question is what units are the width and height stored in? and how do I convert them back to miles so that I can use the following:


EllipseShape ellipseShape = new EllipseShape(pointShape, radiusWidth, radiusHeight, GeographyUnit.DecimalDegree, DistanceUnit.Mile);


Where radiusWidth, is some multiple of features.GetBoundingBox().Width (0.374189340478466) = 10 miles.


Thanks, Steven



Hello Steven,



The width and height you get is in decimal degree, you need to convert the width and height to miles.



The following method specifies how to get the width in mile.EllipseShape ellipseShape = new EllipseShape(new PointShape(0, 0), 10, 10, GeographyUnit.DecimalDegree, DistanceUnit.Mile);
RectangleShape extent = ellipseShape.GetBoundingBox();
double width = DecimalDegreesHelper.GetDistanceFromDecimalDegrees(extent.UpperLeftPoint, extent.UpperRightPoint, DistanceUnit.Mile);

If you have any questions please let me know.



Thanks,

Howard