Me2

Buffering an IElement that is in the Geographic Coordinate System (GCS)

Discussion created by Me2 on Apr 10, 2012
Latest reply on Apr 17, 2012 by Me2
Hi:

I need to properly buffer an element (IElement) that is on a data frame in Geographic Coordinate System.

The buffer distance can be linear (Km, miles, etc.) or angular (degrees). The element can be located anywhere on earth and I would like to minimize distance distortions.

The issue I am facing is well explained in the Esri cartography blog at http://blogs.esri.com/esri/arcgis/2009/07/15/the-buffer-wizard-in-arcmap/  (apparently one needs to be logged in to access the correct page). What I need to do is emulate through ArcObjects and VB.NET the ArcMap 8.x Buffer wizard's Buffer when its Processing Coordinate System (BPCS) is set to "Feature optimized coordinate system".


[INDENT]Feature optimized coordinate system �?? A BPCS is created for each feature being buffered, and each is based on an azimuthal equidistant projection created for each separate feature. For lines and polygons, the center point of each feature is calculated. [...] This setting also helps minimize distortion regardless of the spatial reference of the Data Frame. Though performance will be slower with this setting, it does offer the least distortion when buffering point features. [/INDENT]


The way I translate this in ArcObject is that I need to create a generic azimuthal equidistant projection and then customize it for the element (either a point element or the center of the element envelope). I think I have found the way to get the generic azimuthal equidistant projection, but would appreciate your help in customizing it/optimizing it to any element.

    Dim pSpatRefFact As ESRI.ArcGIS.Geometry.ISpatialReferenceFactory

    'Set the spatial reference factory to a new spatial reference environment
    pSpatRefFact = New ESRI.ArcGIS.Geometry.SpatialReferenceEnvironment

    'Create a projected coordinate system using the available projected coordinate systems
    Dim pProjCoordSys As ESRI.ArcGIS.Geometry.IProjectedCoordinateSystem = pSpatRefFact.CreateProjectedCoordinateSystem(ESRI.ArcGIS.Geometry.esriSRProjCSType.esriSRProjCS_World_AzimuthalEquidistant)

    'Optimizing the projected coordinate system for an IElement
    pProjCoordSys.??????  = ??????

Thanks,
Dennis

Outcomes