ThinkGeo.com    |     Documentation    |     Premium Support

What are the units of measure used for "__tg_edit_circle_radius"?

I see that the current 15 beta now has FeatureDrawnEditOverlayEventArgs.ColumnValues["__tg_edit_circle_radius"] when drawing a circle what are those units of measure? I drew a small circle and the radius was 138365.8010475412 that does not appear to be meters.
image

It uses the unit of your current map (meters in your case), and you’re also correct that it’s not fully accurate.

When projecting the 3D Earth onto a 2D plane, some distortion is unavoidable. With Spherical Mercator (the projection your map is using), that distortion affects distance and area accuracy. As a result, a circle drawn on the map is not a true circle on the Earth’s surface, and the radius you see is based on the projected map—not the real-world distance.

If you need a more accurate measurement, you can use geodesic calculations. For example:

ellipseShape.GetArea(3857, AreaUnit.SquareMeters, DistanceCalculationMode.Haversine);

This calculates the area using a spherical model of the Earth and will give you a more accurate result.

This is a common question when working with map projections. Here’s a related discussion if you’d like to dig deeper:
EllipseShape Innacuracy issues - ThinkGeo UI for Desktop / WPF - ThinkGeo Discussion Forums

Ben,

Thank you. I did forget to do the adjustment. Going forward if using the BlazorTrackMode to generate a circle is using the dictionary key of __tg_edit_circle_radius going to be the best way to derive the radius? Or will there be a property added? Same with the center point using the keys of __tg_edit_circle_center_x and __tg_edit_circle_center_x, keys or a property later. I am going to code it for now as the dictionary keys. I can always change it later.

Thanks,
James R.

James,

I don’t think that’s the best way to use this internal key directly. Let me think about it, we would most likely add some parameters to FeatureDrawnEditOverlayEventArgs, something like following:

  public class FeatureDrawnEditOverlayEventArgs {
      public Feature DrawnFeature { get; }
      public bool IsCircle { get; }
      public double? CircleRadius { get; }
      public PointShape CircleCenter { get; }
  }

I will keep you posted.

Thanks,
Ben

Ben,

I will look for those changes.

Thanks,
James R.

Hi James,

We added FeatureDrawnEditOverlayEventArgs.GeometryInfo where you can get the Circle Information. Pull beta013 and have another try.

Thanks,
Ben