query on oraclespatial using OGR/OCI

FERNANDO SIMON simon at INF.UNIVALI.BR
Thu Oct 21 06:23:00 PDT 2004


Hi Pierre,
    I don't use OGR but your problem can be with the spatial index. I saw this
problem with the 10G version.
    In the 10G version the Oracle don't recommend use SDO_LEVEL when you create
the spatial index. In my tests problems appears when I set the SDO_LEVEL, the
result doesn't correspond whant I expected.
    I don't know if the problem occur with others Oracle Spatial versions. But
you can try  with or without SDO_LEVEL.


----------------------------------------------------------------
Fernando Simon - simon at inf.univali.br
Mapserver and Oracle Spatial developer
G10 - Laboratorio de Computacao Aplicada
http://g10.cttmar.univali.br
----------------------------------------------------------------


Quoting Pierre GIRAUD <bluecarto at FREE.FR>:

>  I'm still having difficulties to use mapserver queries on a oracle layer.
>  Before I report a bug, I would like someone to test the following SQL
> statement
> and mapfile, and agree that something is going wrong, or tell me I am
> missing
> something obvious.
>
>  Thx
>
>  Pierre GIRAUD
>  camptocamp.com
>
> ---------SQL statement--------------
> DROP table mytable;
>
> CREATE TABLE MYTABLE (
>   GID VARCHAR(20),
>   geometry MDSYS.SDO_GEOMETRY);
>
>
>
> insert into MYTABLE (GID,GEOMETRY) values (
>   '1',
>   mdsys.sdo_geometry(
>     '2003',
>     null,
>     null,
>     mdsys.sdo_elem_info_array(1,1003,1),
>     mdsys.sdo_ordinate_array(1,1, 1,4, 4,4, 4,1, 1,1))
> );
>
> insert into MYTABLE (GID,GEOMETRY) values (
>   '2',
>   mdsys.sdo_geometry(
>     '2003',
>     null,
>     null,
>     mdsys.sdo_elem_info_array(1,1003,1),
>     mdsys.sdo_ordinate_array(6,1, 6,4, 9,4, 9,1, 6,1))
> );
>
> insert into MYTABLE (GID,GEOMETRY) values (
>   '3',
>   mdsys.sdo_geometry(
>     '2003',
>     null,
>     null,
>     mdsys.sdo_elem_info_array(1,1003,1),
>     mdsys.sdo_ordinate_array(1,6, 1,9, 9,9, 9,6, 1,6))
> );
>
> delete from user_sdo_geom_metadata where table_name like 'MYTABLE';
>
> insert into user_sdo_geom_metadata (table_name,column_name,diminfo,srid)
> values ('MYTABLE','GEOMETRY',
> mdsys.SDO_DIM_ARRAY(mdsys.SDO_DIM_ELEMENT('X', 0, 10, 0.1),
> mdsys.SDO_DIM_ELEMENT('Y', 0, 10, 0.1)),
> NULL);
>
> drop index q_mytable;
>
> create index Q_MYTABLE on MYTABLE(GEOMETRY) indextype is
> MDSYS.spatial_index
> parameters ('SDO_LEVEL=6');
>
> ---------mapfile---------------
> NAME DEMO
> STATUS ON
> SIZE 500 300
> EXTENT 0 0 10 10
> IMAGECOLOR 255 255 255
>
>
> WEB
>   IMAGEPATH "/var/www/cartoserver_DGI_flash/www-data/images/"
>   IMAGEURL "cartogfx/"
> END
>
> LAYER
>   NAME squares
>   TYPE POLYGON
>   STATUS ON
> #  CONNECTIONTYPE oraclespatial
> #  CONNECTION "pierre/xbe9a51h at 192.168.226.149:1521/orcl"
>   CONNECTION "OCI:pierre/xbe9a51h at 192.168.226.149:1521/orcl"
>   CONNECTIONTYPE OGR
> #  DATA "select * from mytable"
>   DATA "mytable"
>   TEMPLATE "ttt"
>   CLASS
>    SIZE 10
>    COLOR 255 255 255
>    OUTLINECOLOR 200 200 200
>   END
> END
>
> END
>
>
>
> Selon bluecarto at free.fr:
>
> >  Hello,
> >
> > Following the good advices of Frank Warmerdam, I improve in using oracle
> > spatial
> > data with spatial indexes. For now, I know that I should not use sql
> > statements
> > in the mapfile but queries directly to the table :
> >
> >   DATA "my_table"
> > instead of
> >   DATA "select * from my_table"
> >
> > Both return the same images. Shapes are well drawn, and labeling is
> correct.
> >
> > But the first (more performant) statement doesn't give good results to a
> > query.
> > The data returned doesn't correspond to what is expected. And no shape is
> > highlighted.
> >
> > Do someone using Oracle have same problems ?
> >
> > Pierre GIRAUD
> > camptocamp.com
> >
> >
>




------------------------------------------------
Este e-mail foi enviado pelo webmail do curso de
       Ciência da Computação - UNIVALI



More information about the MapServer-users mailing list