[Gdal-dev] OGR C API question

Markus Neteler neteler at itc.it
Mon Mar 22 09:21:26 EST 2004


Dear list members,

inspired by
 gdal/ogr/ogr_capi_test.c

I had implemented a spatial filter in v.in.ogr (GRASS 5.7).
This was functional last year, but testing it with the current
GDAL-CVS, it doesn't work any longer. It always imports the
full map.


Code snippet below, if needed, the full C code is here:
http://freegis.org/cgi-bin/viewcvs.cgi/grass51/vector/v.in.ogr/main.c?rev=1.31&content-type=text/vnd.viewcvs-markup

The variables xmin, ymin, xmax, ymax are defined (checked with
debug output).

[... main.c ...]

        OGRGeometryH Ogr_oRing=NULL, poSpatialFilter=NULL;

[...]
    if ( spat_opt->answer ) {
[...]
        G_debug( 2, "cut out with boundaries: %f %f %f %f",xmin,ymin,xmax,ymax);

	poSpatialFilter = OGR_G_CreateGeometry( wkbPolygon );
	Ogr_oRing = OGR_G_CreateGeometry( wkbLineString );
        OGR_G_AddPoint(Ogr_oRing, xmin, ymin, 0);
        OGR_G_AddPoint(Ogr_oRing, xmin, ymax, 0);
        OGR_G_AddPoint(Ogr_oRing, xmax, ymax, 0);
        OGR_G_AddPoint(Ogr_oRing, xmax, ymin, 0);
        OGR_G_AddPoint(Ogr_oRing, xmin, ymin, 0);
        OGR_G_AddGeometryDirectly(poSpatialFilter, Ogr_oRing);
	
        OGR_L_SetSpatialFilter(Ogr_layer, poSpatialFilter );

Does anyone see why this doesn't work any longer? The spatial filter is
simply ignored.

Thanks in advance

 Markus




More information about the Gdal-dev mailing list