ArcGIS Pro 2.6 API Reference Guide
ToEsriShape() Method

ArcGIS.Core.Geometry Namespace > Envelope Class > ToEsriShape Method : ToEsriShape() Method
Converts this envelope into an Esri shape formatted binary byte buffer. Note that the returned buffer will represent a polygon as there is not an Esri shape buffer for envelope geometry type.
public override byte[] ToEsriShape()
Public Overloads Overrides NotOverridable Function ToEsriShape() As Byte()

Return Value

The envelope as a formatted binary byte buffer.
// create an envelope
List<MapPoint> coordsZM = new List<MapPoint>
  MapPointBuilder.CreateMapPoint(1001, 1002, 1003, 1004),
  MapPointBuilder.CreateMapPoint(2001, 2002, Double.NaN, 2004),
  MapPointBuilder.CreateMapPoint(3001, -3002, 3003, 3004),
  MapPointBuilder.CreateMapPoint(1001, -4002, 4003, 4004)

Envelope envelope = EnvelopeBuilder.CreateEnvelope(coordsZM[0], coordsZM[2], SpatialReferences.WGS84);

// export and import
EsriShapeExportFlags exportFlags = EsriShapeExportFlags.esriShapeExportDefaults;
EsriShapeImportFlags importFlags = EsriShapeImportFlags.esriShapeImportDefaults;
byte[] buffer = GeometryEngine.Instance.ExportToEsriShape(exportFlags, envelope);
Polygon importedPolygon = GeometryEngine.Instance.ImportFromEsriShape(importFlags, buffer, envelope.SpatialReference) as Polygon;
Envelope importedEnvelope = importedPolygon.Extent;

// export without z,m
buffer = GeometryEngine.Instance.ExportToEsriShape(EsriShapeExportFlags.esriShapeExportStripZs | EsriShapeExportFlags.esriShapeExportStripMs, envelope);
importedPolygon = GeometryEngine.Instance.ImportFromEsriShape(importFlags, buffer, SpatialReferences.WGS84) as Polygon;
importedEnvelope = importedPolygon.Extent;

bool hasZ = importedEnvelope.HasZ;      // hasZ = false
bool hasM = importedEnvelope.HasM;      // hasM = false

// export with shapeSize
int bufferSize = GeometryEngine.Instance.GetEsriShapeSize(exportFlags, envelope);
buffer = new byte[bufferSize];

bufferSize = GeometryEngine.Instance.ExportToEsriShape(exportFlags, envelope, ref buffer);
importedPolygon = GeometryEngine.Instance.ImportFromEsriShape(importFlags, buffer, envelope.SpatialReference) as Polygon;
importedEnvelope = importedPolygon.Extent;

// or use the envelope and envelopeBuilder classes
buffer = envelope.ToEsriShape();
// buffer represents a polygon as there is not an envelope Esri shape buffer
// EnvelopeBuilder.FromEsriShape takes a polygon Esri shape buffer and returns the extent of the polygon.
importedEnvelope = EnvelopeBuilder.FromEsriShape(buffer);

Target Platforms: Windows 10, Windows 8.1, Windows 7

See Also


Envelope Class
Envelope Members
Overload List