Tamas, Sorry the sample code had wrong data source names. Here is the corrected sample code..
var spatialReference = new OSGeo.OSR.SpatialReference(""); spatialReference.ImportFromProj4("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"); var driver = OSGeo.OGR.Ogr.GetDriverByName("ESRI Shapefile"); DataSource dataSourceToIntersectOn = driver.Open(@"C:\Temp\gdal_32\Polygon.shp", 0); Layer layerToIntersectOn = dataSourceToIntersectOn.GetLayerByIndex(0); DataSource dataSourceToIntersect = driver.Open(@"C:\Temp\gdal_32\Polyline.shp", 0); Layer layerToIntersect = dataSourceToIntersect.GetLayerByIndex(0); var intersectedShapeData = driver.CreateDataSource(@"C:\Temp\gdal_32", new string[] { }); wkbGeometryType wkbGeometryType = layerOriginal.GetLayerDefn().GetGeomType(); Layer intersectedLayer = intersectedShapeData.CreateLayer("intersection", spatialReference, wkbGeometryType, new string[] { }); OSGeo.OGR.SWIGTYPE_p_void callback_data = new OSGeo.OGR.SWIGTYPE_p_void(new IntPtr(5), false, layerToIntersect); OSGeo.OGR.SWIGTYPE_p_GDALProgressFunc callback = new SWIGTYPE_p_GDALProgressFunc(new IntPtr(5), false, layerToIntersect); layerToIntersect.Intersection(layerToIntersectOn, intersectedLayer, new string[] { "SKIP_FAILURES=YES" }, callback, callback_data); // Line where it fails Thanks, Dheeraj On Thu, Oct 10, 2013 at 1:16 PM, Dheeraj Reddy Mamidi < drmam...@rothwellgroup.com> wrote: > Hi Tamas, > > Thanks for your response. In fact I don't require progress notification, > but I am not able to ignore those arguments (pass them as null). If I pass > them as null I get error "Attempt to dereference null GDALProgressFunc". If > I just pass those arguments initializing them they way I am doing below in > the sample code, I get "Attempted to read or write protected memory. > This is often an indication that other memory is corrupt." error. > > I am using Gdal 1.10 library. > > Here is the sample code.. > > var spatialReference = new OSGeo.OSR.SpatialReference(""); > spatialReference.ImportFromProj4("+proj=longlat +ellps=WGS84 +datum=WGS84 > +no_defs"); > > var driver = OSGeo.OGR.Ogr.GetDriverByName("ESRI Shapefile"); > > DataSource dataSourceToIntersectOn = > driver.Open(@"C:\Temp\gdal_32\Polygon.shp", 0); > Layer layerToIntersectOn = dataSourceCookieCutter.GetLayerByIndex(0); > > DataSource dataSourceToIntersect = > driver.Open(@"C:\Temp\gdal_32\Polyline.shp", 0); > Layer layerToIntersect = dataSourceOriginal.GetLayerByIndex(0); > > var intersectedShapeData = driver.CreateDataSource(@"C:\Temp\gdal_32", new > string[] { }); > wkbGeometryType wkbGeometryType = > layerOriginal.GetLayerDefn().GetGeomType(); > Layer intersectedLayer = intersectedShapeData.CreateLayer("intersection", > spatialReference, wkbGeometryType, new string[] { }); > > OSGeo.OGR.SWIGTYPE_p_void callback_data = new > OSGeo.OGR.SWIGTYPE_p_void(new IntPtr(5), false, layerToIntersect); > > OSGeo.OGR.SWIGTYPE_p_GDALProgressFunc callback = new > SWIGTYPE_p_GDALProgressFunc(new IntPtr(5), false, layerToIntersect); > > layerToIntersect.Intersection(layerToIntersectOn, intersectedLayer, new > string[] { "SKIP_FAILURES=YES" }, callback, callback_data); // Line where > it fails > > > The data that I am trying to intersect (shapefiles are attached). > > > Thanks, > Dheeraj > > > > > > On Thu, Oct 10, 2013 at 12:33 PM, Tamas Szekeres <szeker...@gmail.com>wrote: > >> Dheeraj, >> >> I don't think the OSGeo.OGR.Layer.Intersection supports progress >> notification. You might probably have encountered a bug which should be >> fixed. Do you have a sample code to reproduce this issue? I would >> specifically interested in the actual geometries have been passed to the >> function. >> >> Best regards, >> >> Tamas >> >> >> >> 2013/10/10 Dheeraj Reddy Mamidi <drmam...@rothwellgroup.com> >> >>> Hi list, >>> >>> I have troubles with C# bindings of OGR. I was trying to perform >>> intersection on two feature classes (shape file formats) using >>> OSGeo.OGR.Layer.Intersection(), but have problems making it work. I >>> keep getting an error saying "AccessViolationException was unhandled. >>> Attempted to read or write protected memory. This is often an indication >>> that other memory is corrupt. >>> >>> Is the above error something to do with SWIGTYPE_p_GDALProgressFunc >>> callback and OSGeo.OGR.SWIGTYPE_p_void callback_data arguments? I tried >>> passing those parameters null as suggested by some in the forums but I >>> keep getting the error "Attempt to dereference null GDALProgressFunc". >>> I am not sure what that means. >>> >>> And when I instantiate callback as new SWIGTYPE_p_GDALProgressFunc() >>> and new callback_data as new SWIGTYPE_p_void(), I don't get error Attempt >>> to dereference null GDALProgressFunc, but still have error saying >>> AccessViolationException >>> was unhandled. Attempted to read or write protected memory. This is often >>> an indication that other memory is corrupt. >>> >>> Can someone please help me figure this out and let me know how to make >>> use of OSGeo.OGR.Layer.Intersection() in the right way with c# >>> bindings. Thank you. >>> >>> Thanks, >>> Dheeraj >>> >>> >>> >>> _______________________________________________ >>> gdal-dev mailing list >>> gdal-dev@lists.osgeo.org >>> http://lists.osgeo.org/mailman/listinfo/gdal-dev >>> >> >> > > > -- > > -- Dheeraj Reddy Mamidi
_______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev