march 2007 oracle spatial user conference · 2007. 4. 13. · march 2007 rev the spatial engine...
TRANSCRIPT
![Page 1: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/1.jpg)
March 2007Oracle Spatial User Conference
![Page 2: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/2.jpg)
Oracle Spatial User Conference
March 8, 2007Henry B. GonzalezConvention Center
San Antonio, Texas USA
![Page 3: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/3.jpg)
Keath LongSenior GIS Analyst
March 2007Oracle Spatial User Conference
Matt SeidlCAD Analyst
![Page 4: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/4.jpg)
Oracle Spatial: Narrowing theGap Between CAD and GIS: ATopobase™ ImplementationCase Study
March 2007Oracle Spatial User Conference
![Page 5: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/5.jpg)
Presentation Road Map
• Organizational Background• LVVWD & AM/FM/GIS
• Our focus in spatial products and services
• Topobase Implementation• High level architecture
• Scalable interoperability
• Display model
• Connectivity model
• Multi-user concurrent editing environment
• Client-Server architecture flexibility
March 2007Oracle Spatial User Conference
![Page 6: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/6.jpg)
High Level ArchitectureMarch 2007Oracle Spatial User Conference
SDE SCHEMA
TOPOBASE SCHEMA
![Page 7: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/7.jpg)
Scalable Interoperability• Topobase API meets ArcObjects API
• Push button synchronization.
• Versioned edits performed in SDE.
• Final stopgap before data goes Live.
![Page 8: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/8.jpg)
D E M O N S T R A T I O N
Interoperability
![Page 9: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/9.jpg)
Synchronization Health• SQL query to test for synchronicity
SELECT COUNT(1)FROM tbamfm.waterline a,amfmsde.waterline_mv_view bWHEREa.idfeature = b.idfeature andMDSYS.SDO_RELATE( a.geom, --topobase geometry b.shape, --sde geometry 'mask=EQUALS querytype=WINDOW') <> 'TRUE';
![Page 10: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/10.jpg)
Display Models
• A Topobase Display Model is a Rule Basethat Determines Symbolization.
March 2007Oracle Spatial User Conference
Rule #1
If valve function =
gate then display:
Rule #2
If valve function =
hydrant then display:
![Page 11: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/11.jpg)
Display Models
• Behind the scenes, CASE statementsdetermine the correct symbol:
SELECT CASE WHEN vfunction = 10 --Gate Valve THEN '$en valve-gate ' END || CASE WHEN vfunction = 30 --Hydrant Valve THEN '$en valve-hydrant ' END AS the_caseFROM valveWHERE SDO_RELATE(geom,
(SELECT geom FROM tb_viewport WHERE id = '129-13'),
'mask=AnyInteract querytype=window') = 'TRUE'
March 2007Oracle Spatial User Conference
![Page 12: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/12.jpg)
D E M O N S T R A T I O N
Display Models
![Page 13: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/13.jpg)
Connectivity Model
• Network connectivity is modeled usingTopobase server-side feature rules.
• A feature rule is a PL/SQL code block that iscompiled as a row-level trigger (BEFOREINSERT, AFTER UPDATE, etc.)
• Example: A valve can havetwo network states, connectedand disconnected.
March 2007Oracle Spatial User Conference
![Page 14: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/14.jpg)
Connectivity Model
• Row-level triggers manage the valve’snetwork state, stored in the quality attribute:
CREATE OR REPLACE TRIGGER valve_bur BEFORE UPDATE ON valve FOR EACH ROWDECLARE hits NUMBER;BEGIN IF UPDATING('geom') THEN SELECT COUNT(*) INTO hits FROM waterline WHERE SDO_WITHIN_DISTANCE(geom, :new.geom, 'distance = 0.001') = 'TRUE'; IF hits = 0 THEN :new.quality := 0; ELSIF hits > 0 THEN :new.quality := 1; END IF; END IF;END;
March 2007Oracle Spatial User Conference
![Page 15: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/15.jpg)
Connectivity Model
• Waterline to waterline connectivity is alsomanaged via spatially-enabled triggers.
March 2007Oracle Spatial User Conference
LATERALTOUCHING
3+ PIPESTOUCHING
2 PIPESTOUCHING
END OFPIPE
![Page 16: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/16.jpg)
D E M O N S T R A T I O N
ConnectivityModel
![Page 17: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/17.jpg)
Multi-User Editing
• VPD (Virtual Private Database) aka row-levelsecurity was first introduced in Oracle 8i.
• Utilized by Topobase for versioned editingand long transactions.
March 2007Oracle Spatial User Conference
Edited WaterlineUser #1 Sees:
Original WaterlineUser #2 Sees:
![Page 18: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/18.jpg)
Rev the Spatial Engine
• Oracle Spatial is under the hood and fullyaccessible to VB.net
March 2007Oracle Spatial User Conference
SDO_AREASDO_BUFFERSDO_CENTROIDSDO_DIFFERENCESDO_DISTANCESDO_INTERSECTIONSDO_LENGTHSDO_UNION
SDO_FILTERSDO_NNSDO_RELATESDO_WITHIN_DISTANCE
![Page 19: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/19.jpg)
Rev the Spatial EngineMarch 2007Oracle Spatial User Conference
'Create the Output parameterDim PARM_OUT As Topobase.Data.Provider.DataParameterPARM_OUT = TBCommand.CreateParameter()PARM_OUT.ParameterName = "UNION_P"PARM_OUT.DbType = DbType.ObjectPARM_OUT.ObjectTypeName = "MDSYS.SDO_GEOMETRY"PARM_OUT.Direction = ParameterDirection.ReturnValue
'Declare the data provider and add the parameterDim TBCommand As New Topobase.Data.Provider.Command("", Me.Document.Connection)TBCommand.Parameters.Add(PARM_OUT)
'Execute the inline functionTBCommand.CommandType = CommandType.TextTBCommand.CommandText = "DECLARE BEGIN SELECT SDO_GEOM.SDO_UNION(" &strOldPerim & ", diminfo, " & strNewPerim & ", diminfo) INTO :UNION_P FROMuser_sdo_geom_metadata WHERE table_name = 'jobperimeter' AND column_name = 'geom';END;"TBCommand.ExecuteNonQuery()
'Extract the geometryDim dbGeom As Object, dr As Topobase.Data.Provider.DataReaderdbGeom = TBCommand.Parameters.Item("UNION_P").ValuegeomPerim = dr.ToSDOGeometry(dbGeom)
![Page 20: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/20.jpg)
D E M O N S T R A T I O N
VB.net Δ Oracle
![Page 21: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/21.jpg)
Implementation Benefits
• Immediate user acceptance.
• 82% reduction in managed code.
• More reliable data.
• 20% increase in project completion.
• Half million dollar savings / year.
• Performed 45,000 data edits so far.
March 2007Oracle Spatial User Conference
![Page 22: March 2007 Oracle Spatial User Conference · 2007. 4. 13. · March 2007 Rev the Spatial Engine Oracle Spatial User Conference 'Create the Output parameter Dim PARM_OUT As Topobase.Data.Provider.DataParameter](https://reader036.vdocuments.us/reader036/viewer/2022071607/614441a5aa0cd638b460bd29/html5/thumbnails/22.jpg)
AQ&