odbc OGRVRTDataSource does not work in layerdefinition as of gdal 1.3.2
Huub Fleuren
hfl at HOME.NL
Sun May 14 13:30:46 PDT 2006
Hi List,
I have the following OVF file which defines an ODBC (msaccess)
OGRVRTDataSource.
I'm testing this with gdal 1.3.2
<OGRVRTDataSource>
<OGRVRTLayer name='kpxy'>
<SrcDataSource>ODBC:admin/admin at anwb</SrcDataSource>
<SrcSQL>SELECT k.kp_nr as kp_nr,k.x as x, k.y as y, w.wcode as
wcode, w.ocode as ocode FROM wwall w, kpxy k WHERE NOT (k.soort LIKE
'D') and (w.x > 190000) and (w.x < 200000) and (w.y > 500000)
and (w.y < 520000) and (w.nummer = k.kp_nr)</SrcSQL>
<GeometryType>wkbPoint</GeometryType>
<LayerSRS>WGS84</LayerSRS>
<GeometryField encoding='PointFromColumns' x='x' y='y'/>
</OGRVRTLayer>
</OGRVRTDataSource>
ogrinfo test.ovf -sql "select count(*) from kpxy"
ERROR 4: Update access not supported for VRT datasources.
Had to open data source read-only.
INFO: Open of `test.ovf'
using driver `VRT' successful.
Layer name: kpxytest
Geometry: Point
Feature Count: 1
Layer SRS WKT:
(unknown)
count_*: Integer (0.0)
OGRFeature(kpxytest):0
count_* (Integer) = 375
I copied the test.ovf into the layer definition. (see complete layerdef
further)
To my surprise there are no points selected.
I ( sometimes ) get the following error
====
<?xml version='1.0' encoding="ISO-8859-1" standalone="no" ?>
<!DOCTYPE ServiceExceptionReport SYSTEM
"http://schemas.opengeospatial.net/wms/1.1.0/exception_1_1_0.dtd">
<ServiceExceptionReport version="1.1.0">
<ServiceException>
msDrawMap(): Image handling error. Failed to draw layer named
'kpxytest'.
msOGRFileOpen(): OGR error. Open failed for OGR connection
`<OGRVRTDataSource>
<OGRVRTLayer name='kpxytest'>
<SrcDataSource>ODBC:admin/admin at anwb</SrcDataSource>
<SrcSQL>SELECT k.kp_nr as kp_nr'.
Parse error at EOF, not all elements have been closed,
starting with SrcSQL
</ServiceException>
</ServiceExceptionReport>
msOGRFileOpen(<OGRVRTDataSource>
<OGRVRTLayer name='kpxy'>
<SrcDataSource>ODBC:admin/admin at anwb</SrcDataSource>
<SrcSQL>SELECT k.kp_nr as kp_nr,k.x as x, k.y as y, w.wcode as
wcode, w.ocode as ocode FROM wwall w, kpxy k WHERE NOT (k.soort LIKE
'D') and (w.x > 190000) and (w.x < 200000) and (w.y > 500000)
and (w.y < 520000) and (w.kruispunt = k.kp_nr)</SrcSQL>
<GeometryType>wkbPoint</GeometryType>
<LayerSRS>WGS84</LayerSRS>
<GeometryField encoding='PointFromColumns' x='x' y='y'/>
</OGRVRTLayer>
</OGRVRTDataSource>)...
OGROPen(<OGRVRTDataSource>
<OGRVRTLayer name='kpxy'>
<SrcDataSource>ODBC:admin/admin at anwb</SrcDataSource>
<SrcSQL>SELECT k.kp_nr as kp_nr)
====
LAYERDEF
The complete LAYER definiton looks like this
LAYER
debug on
NAME kpxytest
TYPE POINT
CONNECTIONTYPE OGR
#CONNECTION "c:/inetpub/wwwroot/cgi-bin/mapserv40/virtual.ovf" # the
name and path to the virtual.ovf file, relative to shapepath may work?
# zie ook:
http://mapserver.gis.umn.edu/cgi-bin/wiki.pl?VirtualSpatialData
# http://www.remotesensing.org/gdal/ogr/ogr_sql.html
#
CONNECTION "<OGRVRTDataSource>
<OGRVRTLayer name='kpxytest'>
<SrcDataSource>ODBC:admin/admin at anwb</SrcDataSource>
<SrcSQL>SELECT k.kp_nr as kp_nr,k.x as x, k.y as y, w.wcode as
wcode, w.ocode as ocode FROM wwall w, kpxy k WHERE NOT (k.soort LIKE
'D') and (w.x > 190000) and (w.x < 200000) and (w.y > 500000)
and (w.y < 520000) and (w.nummer = k.kp_nr)</SrcSQL>
<GeometryType>wkbPoint</GeometryType>
<LayerSRS>WGS84</LayerSRS>
<GeometryField encoding='PointFromColumns' x='x' y='y'/>
</OGRVRTLayer>
</OGRVRTDataSource>"
LABELITEM "kp_nr"
STATUS ON
DUMP false
MINSCALE 0
MAXSCALE 150000
CLASS
NAME 'kpxy'
STYLE
COLOR 0 0 255
SYMBOL 'circle'
OUTLINECOLOR 0 0 0
SIZE 7
END
LABEL
COLOR 132 31 31
SHADOWCOLOR 255 255 255
SHADOWSIZE 2 2
TYPE TRUETYPE
FONT arial-bold
SIZE 8
ANTIALIAS TRUE
POSITION CR
# POSITION AUTO
PARTIALS FALSE
MINDISTANCE 10
BUFFER 1
END # end of label
END
METADATA
WMS_TITLE "Virtual kruispunten"
WMS_ABSTRACT "Virtual xy ovf layer."
WMS_SRS "EPSG:28992"
END
END
How can it be explained?. Can i get it to work? Is this a bug?
Regards, Huub (excuse for the fuss in the previous thread)
More information about the MapServer-users
mailing list