Exemple #1
0
            private IGeometry ReadWkb(OgrGeometryType type, OgrGeometry geom)
            {
                var b = new byte[geom.WkbSize()];

                geom.ExportToWkb(b);
                return(Reader.Read(b));
            }
Exemple #2
0
        public void QueryShape(IGeometry pGeometry)
        {
            if (pGeometry == null)
            {
                return;
            }

            try
            {
                OSGeo.OGR.Geometry ogrGeometry = m_currentOGRFeature.GetGeometryRef();

                //export geometry from OGR to WKB
                int    wkbSize   = ogrGeometry.WkbSize();
                byte[] wkbBuffer = new byte[wkbSize];
                ogrGeometry.ExportToWkb(wkbBuffer);

                //import geometry from WKB to ESRI Shape
                IWkb pWKB = pGeometry as IWkb;
                pWKB.ImportFromWkb(wkbSize, ref wkbBuffer[0]);

                pGeometry.SpatialReference = m_pDataset.SpatialReference;
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(" Error: " + ex.Message);
                pGeometry.SetEmpty();
            }
        }
Exemple #3
0
        /// <summary>
        /// Ogr to DotSpatial at geometry level
        /// </summary>
        /// <param name="geometry">Ogr Geometry</param>
        /// <returns>GeoAPI/DotSpatial IGeometry</returns>
        public static GeoAPI.Geometries.IGeometry Ogr2DSGeometry(OSGeo.OGR.Geometry geometry)
        {
            geometry.FlattenTo2D();
            Byte[] wkbGeometry = new Byte[geometry.WkbSize()];
            geometry.ExportToWkb(wkbGeometry, OSGeo.OGR.wkbByteOrder.wkbXDR);

            NetTopologySuite.IO.WKBReader wkbReader = new NetTopologySuite.IO.WKBReader();
            return(wkbReader.Read(wkbGeometry));
        }
Exemple #4
0
 private static Geometry ParseOgrGeometry(OgrGeometry ogrGeometry, GeoAPI.Geometries.IGeometryFactory factory)
 {
     if (ogrGeometry != null)
     {
         //Just in case it isn't 2D
         ogrGeometry.FlattenTo2D();
         var wkbBuffer = new byte[ogrGeometry.WkbSize()];
         ogrGeometry.ExportToWkb(wkbBuffer);
         var geom = GeometryFromWKB.Parse(wkbBuffer, factory);
         if (geom == null)
         {
             Debug.WriteLine("Failed to parse '{0}'", ogrGeometry.GetGeometryType());
         }
         return(geom);
     }
     return(null);
 }
Exemple #5
0
 private static Geometry ParseOgrGeometry(OgrGeometry ogrGeometry)
 {
     if (ogrGeometry != null)
     {
         //Just in case it isn't 2D
         ogrGeometry.FlattenTo2D();
         byte[] wkbBuffer = new byte[ogrGeometry.WkbSize()];
         ogrGeometry.ExportToWkb(wkbBuffer);
         Geometry geom = GeometryFromWKB.Parse(wkbBuffer);
         if (geom == null)
         {
             Debug.WriteLine(string.Format("Failed to parse '{0}'", ogrGeometry.GetGeometryType()));
         }
         return(geom);
     }
     return(null);
 }
Exemple #6
0
        public void QueryShape(IGeometry pGeometry)
        {
            if (pGeometry == null)
            {
                return;
            }

            try
            {
                OSGeo.OGR.Geometry ogrGeometry = m_currentOGRFeature.GetGeometryRef();

                // Flatten the geometry and ommit Z value until we add manual
                // Z-value zupport
                // See:
                // https://github.com/RBURHUM/arcgis-ogr/issues/11
                //
                //
                ogrGeometry.FlattenTo2D();

                //export geometry from OGR to WKB
                int    wkbSize   = ogrGeometry.WkbSize();
                byte[] wkbBuffer = new byte[wkbSize];
                ogrGeometry.ExportToWkb(wkbBuffer);

                //import geometry from WKB to ESRI Shape
                IWkb pWKB = pGeometry as IWkb;
                pWKB.ImportFromWkb(wkbSize, ref wkbBuffer[0]);

                pGeometry.SpatialReference = m_pDataset.SpatialReference;
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(" Error: " + ex.Message);
                pGeometry.SetEmpty();
            }
        }
Exemple #7
0
 private static Geometry ParseOgrGeometry(OgrGeometry ogrGeometry, GeoAPI.Geometries.IGeometryFactory factory)
 {
     if (ogrGeometry != null)
     {
         //Just in case it isn't 2D
         ogrGeometry.FlattenTo2D();
         var wkbBuffer = new byte[ogrGeometry.WkbSize()];
         ogrGeometry.ExportToWkb(wkbBuffer);
         var geom = GeometryFromWKB.Parse(wkbBuffer, factory);
         if (geom == null)
             Debug.WriteLine("Failed to parse '{0}'", ogrGeometry.GetGeometryType());
         return geom;
     }
     return null;
 }
Exemple #8
0
 private static Geometry ParseOgrGeometry(OgrGeometry ogrGeometry)
 {
     if (ogrGeometry != null)
     {
         //Just in case it isn't 2D
         ogrGeometry.FlattenTo2D();
         byte[] wkbBuffer = new byte[ogrGeometry.WkbSize()];
         ogrGeometry.ExportToWkb(wkbBuffer);
         Geometry geom = GeometryFromWKB.Parse(wkbBuffer);
         if (geom == null)
             Debug.WriteLine(string.Format("Failed to parse '{0}'", ogrGeometry.GetGeometryType()));
         return geom;
     }
     return null;
 }