ArcGIS Pro 3.2 API Reference Guide
ArcGIS.Core.Geometry Namespace / WktImportFlags Enumeration
Example Example

In This Topic
    WktImportFlags Enumeration
    In This Topic
    Specifies the flags that control the behavior of the GeometryEngine.ImportFromWKT method.
    Syntax
    Members
    MemberDescription
    WktImportDefaults Assumes the geometry comes from a trusted source and is topologically simple.
    WktImportNonTrusted Does not assume that the input string represents a topologically simple geometry.
    Example
    Import and Export Geometries to well-known Text
    // create a point with z, m
    MapPoint point = MapPointBuilderEx.CreateMapPoint(
             100, 200, 300, 400, SpatialReferences.WebMercator);
    
    // set the flags
    WktExportFlags wktExportFlags = WktExportFlags.WktExportDefaults;
    WktImportFlags wktImportFlags = WktImportFlags.WktImportDefaults;
    
    // export and import
    string wktString = GeometryEngine.Instance.ExportToWKT(wktExportFlags, point);
    MapPoint importPoint = GeometryEngine.Instance.ImportFromWKT(
          wktImportFlags, wktString, SpatialReferences.WebMercator) as MapPoint;
    
    double x = importPoint.X;       // x = 100
    double y = importPoint.Y;       // y = 200
    bool hasZ = importPoint.HasZ;   // hasZ = true
    double z = importPoint.Z;       // z = 300
    bool hasM = importPoint.HasM;   // hasM = true
    double m = importPoint.M;       // m = 400
    
    // export without z
    WktExportFlags exportFlagsNoZ = WktExportFlags.WktExportStripZs;
    wktString = GeometryEngine.Instance.ExportToWKT(exportFlagsNoZ, point);
    importPoint = GeometryEngine.Instance.ImportFromWKT(
      wktImportFlags, wktString, SpatialReferences.WebMercator) as MapPoint;
    
    x = importPoint.X;        // x = 100
    y = importPoint.Y;        // y = 200
    hasZ = importPoint.HasZ;  // hasZ = false
    z = importPoint.Z;        // z = 0
    hasM = importPoint.HasM;  // hasM = true
    m = importPoint.M;        // m = 400
    
    // export without m
    WktExportFlags exportFlagsNoM = WktExportFlags.WktExportStripMs;
    wktString = GeometryEngine.Instance.ExportToWKT(exportFlagsNoM, point);
    importPoint = GeometryEngine.Instance.ImportFromWKT(
      wktImportFlags, wktString, SpatialReferences.WebMercator) as MapPoint;
    
    x = importPoint.X;        // x = 100
    y = importPoint.Y;        // y = 200
    hasZ = importPoint.HasZ;  // hasZ = true
    z = importPoint.Z;        // z = 300
    hasM = importPoint.HasM;  // hasM = false
    m = importPoint.M;        // m = Nan
    
    // export without z, m
    wktString = GeometryEngine.Instance.ExportToWKT(
      exportFlagsNoZ | exportFlagsNoM, point);
    importPoint = GeometryEngine.Instance.ImportFromWKT(
      wktImportFlags, wktString, SpatialReferences.WebMercator) as MapPoint;
    
    x = importPoint.X;        // x = 100
    y = importPoint.Y;        // y = 200
    hasZ = importPoint.HasZ;  // hasZ = false
    z = importPoint.Z;        // z = 0
    hasM = importPoint.HasM;  // hasM = false
    m = importPoint.M;        // m = Nan
    
    Import and Export Geometries to well-known Binary
    // create a polyline
    List<Coordinate2D> coords = new List<Coordinate2D>
    {
      new Coordinate2D(0, 0),
      new Coordinate2D(0, 1),
      new Coordinate2D(1, 1),
      new Coordinate2D(1, 0)
    };
    
    Polyline polyline = PolylineBuilderEx.CreatePolyline(
                coords, SpatialReferences.WGS84);
    
    WkbExportFlags wkbExportFlags = WkbExportFlags.WkbExportDefaults;
    WkbImportFlags wkbImportFlags = WkbImportFlags.WkbImportDefaults;
    
    // export and import
    byte[] buffer = GeometryEngine.Instance.ExportToWKB(wkbExportFlags, polyline);
    Geometry geometry = GeometryEngine.Instance.ImportFromWKB(
                   wkbImportFlags, buffer, SpatialReferences.WGS84);
    Polyline importPolyline = geometry as Polyline;
    
    
    // alternatively, determine the size for the buffer
    int bufferSize = GeometryEngine.Instance.GetWKBSize(wkbExportFlags, polyline);
    buffer = new byte[bufferSize];
    // export
    bufferSize = GeometryEngine.Instance.ExportToWKB(
                    wkbExportFlags, polyline, ref buffer);
    // import
    importPolyline = GeometryEngine.Instance.ImportFromWKB(
             wkbImportFlags, buffer, SpatialReferences.WGS84) as Polyline;
    
    Inheritance Hierarchy

    System.Object
       System.ValueType
          System.Enum
             ArcGIS.Core.Geometry.WktImportFlags

    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3 or higher.
    See Also