Hi,
Oracle does not by default limit which geometries can be stored into SDO_GEOMETRY. However, there will be a geometry type constraint if spatial
index is created like
CREATE INDEX CONSTRAINED_SPATIAL_IDX ON TABLE(GEOM)
INDEXTYPE IS MDSYS.SPATIAL_INDEX
PARAMETERS ('layer_gtype=POLYGON');
It is possible to check the geometry type of a table by reading info from the index metadata table. By the way, DB admins do not necessarily know
that uDig/Geoserver user needs such select rights.
In case of views, Oracle does not offer any way for checking the geometry type. Well, it might be possible to trace where the geometry comes into
the view and check if the mother table has geometry type constraint. But that info is not necessarily true, the view can be like SELECT SDO_GEOM.SDO_CENTROID(GEOM,0.01) and then there are points in the view even the original table may contain polygons. Therefore
automatic detection of geometry type of views is impossible or hard or at least difficult and unreliable, also with other datastores. There can always be some tailor made function that is used in a view and who knows what sort of geometries it is sending before
having a try.
However, it seems that someone has been thinking about this when making Geotools Oracle plugin.
http://docs.geotools.org/latest/userguide/library/jdbc/oracle.html
Follow the instructions and register your view into the geometry metadata table and it should work.
-Jukka Rahkonen-
Lähettäjä: udig-users-bounces@xxxxxxxxxxxxxxxxxxxxx [mailto:udig-users-bounces@xxxxxxxxxxxxxxxxxxxxx]
Puolesta Jody Garnett
Lähetetty: 10. syyskuuta 2013 3:41
Vastaanottaja: Frank Gasdorf
Kopio: Röthig, Tom; Peilke, Hendrik; udig-users@xxxxxxxxxxxxxxxxxxxxx
Aihe: Re: [udig-users] Detecting geometry type of Oracle views
It is easy to configure Oracle with a generic SDO_GEOMETRY data type, rather than something more specific like SDO_POINT (ie specific GTYPE restriction).
And the GeoTools library we use for data access will only report a specific Geometry type when it can figure it out. I cannot remember where it gets that information from, perhaps the spatial index or
The default style should be flexible enough to support mixed content (ie if you do have SDO_GEOMETRY you can store points, lines and polygons in the same table).
As this is fairly common, in PostGIS as well as Oracle, we have the radio buttons int the style editor so you can switch your layer to Point if you "know" it only contains points for example.
Not sure about the generator for default styling in uDIG if the type is Geoemtry. Maybe it guesses and uses LineStings as Default.. @Jody: could you jump in ?
2013/9/4 Peilke, Hendrik <hendrik.peilke@xxxxxxxxx>
Hi,
when I added a database view from an Oracle Spatial database as a layer to my map in uDig 1.4, I discovered that the geometry type of that layer wasn’t determined
correctly (line instead of polygon). Adding the underlying table directly as a layer to the map gives the right layer type (polygon). This is not a single case scenario, but happened to me every time I tried to add a polygon view. Can I configure something
inside the database to let uDig know the type of the view layer?
Regards,
Hendrik Peilke
IBYKUS AG für Informationstechnologie, Erfurt / HRB 108616 - D-Jena / Vorstand: Helmut C. Henkel, Dr. Lutz Richter
Vorsitzender des Aufsichtsrates: Dr. Wolfgang Habel
_______________________________________________
udig-users mailing list
udig-users@xxxxxxxxxxxxxxxxxxxxx
http://lists.refractions.net/mailman/listinfo/udig-users