ArcGIS Enterprise
Waarom zijn de kolommen SHAPE.AREA en SHAPE.LEN leeg bij een Oracle Spatial Feature Class?
Oorzaak
Het on the fly berekenen van deze eigenschappen voor objecten in het formaat SDO_GEOMETRY tijdens het bewerken in ArcMap zou een invloed op de performance kunnen hebben. Daarom heeft ESRI ervoor gekozen de standaardkolommen SHAPE.AREA en SHAPE.LEN niet te vullen.
Antwoord
Het Oracle Spatial (SDO_GEOMETRY) opslagformaat houdt de oppervlakte- en omtrekeigenschappen niet bij voor ruimtelijke objecten, waardoor de kolommen SHAPE.AREA en SHAPE.LEN niet berekend worden. Andere opslagformaten zoals SDEBINARY, ST_GEOMETRY of SDELOB houden deze eigenschappen wél bij. De kolommen SHAPE.AREA en SHAPE.LEN worden dan wel gevuld.
Gebruik de functie “Calculate Geometry” in ArcMap om de eigenschappen oppervlakte en omtrek te berekenen. De kolommen SHAPE.AREA en SHAPE.LEN zijn gereserveerd en kunnen niet gebruikt worden om de oppervlakte en omtrek hierin te laten berekenen. Maak hiervoor twee nieuwe kolommen aan, bv. een kolom met de naam “OPPERVLAKTE” en een kolom “OMTREK”. Kies hiervoor bij “Data Type” voor DOUBLE. Met dit datatype worden alle waarden opgeslagen. Laad de Feature Class vervolgens in ArcMap. Start een edit sessie (indien de layer “registered as versioned” is). Open de attribuuttabel. Rechtermuisklik op de kolom OPPERVLAKTE en kies voor “Calculate Geometry”. Kies voor “Area” om de oppervlakte te laten berekenen; “Perimeter” berekent de omtrek. Let op: deze waarden zijn statisch en worden dus niet automatisch bijgewerkt wanneer de geometrie van het ruimtelijk object gewijzigd wordt.
Er zijn alternatieven om met ArcObjects of op SQL niveau de oppervlakte en omtrek van SDO_GEOMETRY objecten te laten berekenen. Bekijk hiervoor onderstaand Esri technical article, deze is geschreven voor versie 9.3.1 maar nog steeds relevant voor versie 10.x:
FAQ: How can I get the area and length of features stored in Oracle Spatial?
https://support.esri.com/en/technical-article/000007099