FAQ: Why does ArcSDE for Oracle 9i geodetic feature classes require Oracle or later?


Why does ArcSDE for Oracle 9i geodetic feature classes require Oracle or later?


Through a series of related questions, this article explains why Oracle is needed to correctly view Oracle Spatial geodetic features with ArcGIS.

How is zooming and panning performed in ArcGIS?

ArcGIS builds a rectangle shape that encompasses the new area to be viewed. Then, ArcGIS passes this rectangle to ArcSDE as a spatial filter in a query from all displayed feature classes. ArcSDE returns all features from the queried feature classes that intersect the spatial filter.

What is a geodetic feature class in Oracle 9i?

A geodetic feature class is defined by Oracle as a feature class with a coordinate system whose well-known text representation begins with “GEOGCS”. The well-known text representation is found in the Oracle Spatial table MDSYS.CS_SRS, and is referenced therein by an Oracle Spatial SRID.

What is a very large single part geodetic polygon (VLSPGP)?

For the purposes of this discussion, a very large single part geodetic polygon is one with an area greater than half the surface of the Earth.

Why are VLSSGP’s not supported by Oracle 9i?

Goedetic polygons can be very large and wrap around the Earth, spanning the poles or lying anywhere on the surface of the Earth. The boundary of any single polygon could be thought to enclose the area on one side or the other of the polygon boundary, which leads to some ambiguity. Oracle Spatial resolves the ambiguity by inferring the polygon’s interior through the size (area) of the polygon. Of the two possible interiors, the one that has an area measurement smaller than half the surface area of the Earth is considered to be the real interior of the polygon. Consequently, no geodetic polygon stored in Oracle Spatial can be larger than half the area of the Earth’s surface.

How can we use VLSPGP’s as spatial filters?

There are times when a user wishes to zoom to an area larger than half the Earth’s surface. Changes were made to the ArcSDE 8.2 QFE (CQ00164540) to incorporate Oracle’s MDSYS.SDO_CS.VIEWPORT_TRANSFORM. This function accepts a polygon, in this case, our spatial filter polygon. If the polygon is a VLSPGP, the function returns a two-part geodetic polygon that encompasses the same area as the original VLSPGP. Otherwise, it returns the original polygon. ArcSDE uses the result as the spatial filter.

Why is Oracle 9i version or later required?

There was an issue with MDSYS.SDO_CS.VIEWPORT_TRANSFORM that caused it to return the wrong results when the rectangle used for the spatial filter encompasses exactly the whole Earth. This was fixed in Oracle For more information, please see Oracle Document #156751.1, “9.0.1.X Patch Sets - List of Bug Fixes by Problem Type” or Oracle Bug #2004111, “SDO_CS.VIEWPORT_TRANSFORM incorrect results with (-180, -90, 180, 90) viewport”.

Related Information