Hi,

It seems, that the table GEOMETRY_COLUMNS is not used,
if the geometry column is declared like
CONNECTION 'ODBC:GEO,GEOPOINTS(theGeom)'

Omitting the geometry column 
CONNECTION 'ODBC:GEO,GEOPOINTS'

and renaming the table GEOMETRY_COLUMNS in the MDB, 
gets a different response for MapServer 5.6.1 and 6.0.1.

MapServer 5.6.1 raises an error
OGR error. Pointer 'hGeom' is NULL in 'OGR_G_GetGeometryType'.

MapServer 6.0.1 loops through all features
Rejecting feature (shapeid = 511, tileid=0) of incompatible type for this
layer
and returns an empty result


To get the MapServer request use DEBUG in the mapfile

CONFIG "MS_ERRORFILE" "GEOPOINTS.log"
DEBUG 5 #on map and layer level

Then you should get a likewise entry
[Fri Mar 02 17:20:31 2012].156000 msOGRFileWhichShapes: Setting spatial
filter to 2577984.190625 5679829.870625 2579058.409375 5680904.089375

Funny thing with MapServer 6.0.x
spatial filter used to request the features in the logfile 
is much larger (5843.071787m on every side) than the BBOX 
from the request, what results also in a larger feature set.

MapServer 5.6.1 uses a spatial filter the same 
as the BBOX from the request and the response shows
only features for this extent.

Arnd



-----Ursprüngliche Nachricht-----
Von: mapserver-users-boun...@lists.osgeo.org
[mailto:mapserver-users-boun...@lists.osgeo.org] Im Auftrag von Donald Kerr
Gesendet: Donnerstag, 1. März 2012 23:49
An: mapserver-users@lists.osgeo.org
Betreff: [mapserver-users] Mapserver WFS - ODBC RDBMS - GEOMETRY_COLUMNS
andSPATIAL_REF_SYS Tables

Hi List,

I have a point layer set up for WFS requests that connects to a Microsoft
Access database with two tables structured as follows:

Table: GEOMETRY_COLUMNS

Fields:
F_TABLE_NAME
F_GEOMETRY_COLUMN
GEOMETRY_TYPE
SRID

Values:
MyData
geom
POINT
27700

Table: MyData (Contains about 8,000 records)

Fields:
UniqueID
NameStr
Geom
XMIN
YMIN
XMAX
YMAX

Values:
1
Smiths
POINT(265377 665516)
265377
665516
265377
665516

In my layer, I have:

CONNECTIONTYPE OGR
CONNECTION "ODBC:overlays,FullOIs(geom)"
DATA "FullOIs"

A GetFeature request works well and quite speedily so I think that the the
query is run against the database is using the XMIN, YMIN, XMAX and YMAX
columns to restrict the data returned. During debugging, the following query
appeared in the response as recorded by Firebug in Firefox but I can't
replicate that (if anyone can tell me how to confirm that the BBox is being
used as follows that would be appreciated):

SELECT * FROM MyData WHERE XMAX > 176077.07205091 AND XMIN < 340988.92794909
AND YMAX > 583498.46091313 AND YMIN < 748311.53908687

The problem that I have relates to the GEOMETRY_COLUMNS table which I know
is not being used.

If I remove the geometry column from the connection string, i.e. change
CONNECTION "ODBC:overlays,FullOIs(geom)" to CONNECTION
"ODBC:overlays,FullOIs" - remove the word "(geom), it does not find the
geometry column from the GEOMETRY_COLUMNS table. It would appear that this
table is being completely ignored.

I have tried all sorts of combinations and field names and have also created
a SPATIAL_REF_SYS table with values that I use in a working PostGIS database
to no avail.

I previously used an OVF file but I think that may be limited to point
layers whereas, when I get this working as I want to, I would like to extend
this type of connection to line and polygon layers.

Can anyone advise please?

Many thanks.

Regards,

Donald

_______________________________________________
mapserver-users mailing list
mapserver-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users

_______________________________________________
mapserver-users mailing list
mapserver-users@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/mapserver-users

Reply via email to