Sumário Itens Encontrados: 484PART 1 OverviewCHAPTER 1 Spatial Information Management 3CHAPTER 2 Overview of Oracle Spatial 19CHAPTER 3 Location-Enabling Your Applications 37PART 2 Basic SpatialCHAPTER 4 The SDO_GEOMETRY Data Type 55CHAPTER 5 Loading, Transporting, and Validating Spatial Data 115CHAPTER 6 Geocoding 151CHAPTER 7 Manipulating SDO_GEOMETRY in Application Programs 207PART 3 Spatial and Network AnalysisCHAPTER 8 Spatial Indexes and Operators 243CHAPTER 9 Geometry Processing Functions 305CHAPTER 10 Network Modeling 345CHAPTER 11 The Routing Engine 417PART 4 VisualizationCHAPTER 12 Defining Maps Using MapViewer 437CHAPTER 13 Using Maps in Your Applications 503PART 5 Spatial in ApplicationsCHAPTER 14 Sample Applications 581CHAPTER 15 Case Studies 623CHAPTER 16 Tips, Common Mistakes, and Common Errors 663PART 6 AppendixesAPPENDIX A Additional Spatial Analysis Functions 689APPENDIX B Linear Referencing 701APPENDIX C Topology Data Model in Oracle 713APPENDIX D Storing Raster Data in Oracle 725APPENDIX E Three-Dimensional Modeling Using Point Cloudsand TINs in Oracle 743INDEX 757Using Spatial Information in Various Industries 5Sources of Spatial Data 7Managing and Analyzing Spatial Data 7Storing Spatial Data in a Database 11Spatial Analysis 14Benefits of Oracle Spatial 15Summary 18References 18CHAPTER 2 Overview of Oracle Spatial 19Technology and Architecture Overview 19Getting Started with Oracle Spatial 22Data Model: Storing Spatial Data 22Location-Enabling 22Query and Analysis 24Visualizing Spatial Data 27Advanced Spatial Engine 29Oracle Spatial Technology Products 30Locator 30Spatial Option 32What to Expect in an Oracle Spatial Install 33Installing Oracle Spatial in the Database 34Upgrades 34Understanding a Spatial Install 35Checking the Version of a Spatial Install 36Summary 36vCHAPTER 3 Location-Enabling Your Applications 37Adding Location Information to Tables 38Application-Specific Data 38Geographic Data 42Metadata for Spatial Tables 45Dictionary View for Spatial Metadata 45Populating Spatial Metadata for Your Application 49Additional Information for Visualization and Network Analysis 50Summary 51Types of Spatial Geometries in Oracle 56Points 56Line Strings 56Polygons and Surfaces 57Solids 57Collections 58Logical Implementation of SDO_GEOMETRY 58Spatial Data in SQL/MM and OGC 59SDO_GEOMETRY Type, Attributes, and Values 60SDO_GTYPE Attribute 61SDO_SRID Attribute 63SDO_POINT Attribute 72SDO_ELEM_INFO and SDO_ORDINATES Attributes 74Simple Two-Dimensional Geometry Examples 76Point 76Line String: Connected by Straight Lines 78Line String: Connected by Arcs 79Polygon: Ring (Boundary) Connected by Straight Lines 80Polygon: Ring (Boundary) Connected by Arcs 82Rectangle Polygon 82Circle Polygon 83Complex Two-Dimensional Geometry Examples 84Constructing Complex Geometries 85SDO_ELEM_INFO for Compound Elements 86SDO_ELEM_INFO for Voided Polygon Element 87Compound Line String Example 87Compound Polygon Example 88Polygon with a Void 89Collections 91Three-Dimensional Examples 95Three-Dimensional Points, Lines, and Polygons 97Composite Surfaces 102Simple Solid 105Composite Solid 110Collections 112Summary 114Inserting Data into an SDO_GEOMETRY Column 116Loading and Converting Spatial Data 117Loading from Text Files Using SQL*Loader 117Transporting Spatial Data Between Oracle Databases 120Loading from External Formats 122Converting Between SDO_GEOMETRY and WKT/WKB 124Converting SDO_GEOMETRY Data in GML 124Extruding a Two-Dimensional Geometry to Three Dimensions 129Validating Spatial Data 132Validation Functions 132Validation Criteria 133Composite Solids 140Collections 141Debugging Spatial Data 142REMOVE_DUPLICATE_VERTICES 142EXTRACT 143APPEND 146GETNUMELEM, GETNUMVERTICES, and GETVERTICES 147EXTRACT3D 147Miscellaneous Functions 149Summary 149What Is Geocoding? 151Architecture of the Oracle Geocoder 153Parsing the Input Address 153Searching for the Address 154Computing the Spatial Coordinates 154Setting Up the Reference Data for the Geocoder 156Parameter Tables 156Data Tables 157Using Geocoder Functions 158GEOCODE_AS_GEOMETRY 158GEOCODE 161GEOCODE_ALL 176Geocoding Using Structured Addresses 182GEOCODE_ADDR 182GEOCODE_ADDR_ALL 184Reverse Geocoding 184REVERSE_GEOCODE 184Geocoding Business Data 186Adding the Spatial Column 186Geocoding the Addresses: The âNaiveâ Approach 187Address Verification and Correction 188Automatic Geocoding 193The Geocoding Server 196Architecture 196Installation and Configuration 198Using the Geocoder: XML Queries and Responses 200Summary 206CHAPTER 7 Manipulating SDO_GEOMETRYin Application Programs 207Manipulating Geometries Using PL/SQL 209VARRAY Manipulation Primer 211Reading and Writing SDO_GEOMETRY Objects 215Creating New Geometries 215Extracting Information from Geometries 217Modifying Existing Geometries 219Manipulating Geometries in Java 223Using the JGeometry Class 223Using 3D Geometries: the J3D_Geometry Class 229Extracting Elements from 3D Geometries: theElementExtractor Class 229Using Standard Notations: WKT, WKB, GML 232Using ESRI Shapefiles 235Summary 240Spatial Indexes 245Inserting Metadata for a Spatial Layer Prior to Indexing 246Creating a Spatial Index 247Spatial Indexing Concepts 247Spatial Index Parameters 249Spatial Operators 253Syntax of Spatial Operators 253Semantics of Spatial Operators 254Evaluation of Spatial Operators 255A Closer Look at Spatial Operators 256SDO_WITHIN_DISTANCE Operator 256SDO_NN Operator 261Operators for Spatial Interactions (Relationships) 268Hints for Spatial Operators 280Advanced Spatial Index Features 287Function-Based Spatial Indexes 287Local Partitioned Spatial Indexes 290Parallel Indexing 293Online Index Rebuilds 294Spatial Joins 295Three-Dimensional Analysis 298Summary 303Buffering Functions 307Relationship Analysis Functions 310SDO_DISTANCE 310SDO_CLOSEST_POINTS 313RELATE 315Geometry Combination Functions 320SDO_INTERSECTION 321SDO_UNION 323SDO_DIFFERENCE 323SDO_XOR 325Geometric Analysis Functions 326Area, Length, and Volume Functions 326MBR Functions 330Miscellaneous Geometric Analysis Functions 333Aggregate Functions 337Aggregate MBR Function 337Other Aggregate Functions 338Summary 343General Network Modeling Concepts 347Examples of Networks 348Oracle Network Data Model 349Data Structures: The Network Tables 351Node Table 352Link Table 352Path Table 353Path Link Table 354Network Metadata 354Defining Networks 355âAutomaticâ Network Definition 355âManualâ Network Definition 357Defining Multiple Networks on the Same Tables 359Dropping a Network 363Creating Spatial Indexes on Network Tables 363Getting Information About a Network 364Verifying Network Connectivity 365Example Network 366Analyzing and Managing Networks Using the Java API 370Analyzing Networks: The NetworkManager Class 370Limiting the Search Space: The SystemConstraint Class 384Advanced Analysis: Network Constraints 385Network Structures: The Network, Node, Link, and Path Classes 391Creating Networks: The NetworkFactory Class 394Debugging Network Structures 396Analyzing Networks Using the PL/SQL API 397Using a Memory Object 399Analyzing Networks 400Creating and Updating Networks 403Using Network Constraints 405The Network Editor 412Starting the Editor 412Using the Loaded Network 414Example Data: The Streets of San Francisco 415Summary 416Architecture 418Installation and Configuration 420Data Structures 422Example Data: The Streets of San Francisco 424Partitioning 425Using the Router: XML Queries and Responses 427Routing Requests 430Routing Options 431Pregeocoded Start and End Locations 431Geographic Start and End Locations 432Batch Routing 432Summary 434CHAPTER 12 Defining Maps Using MapViewer 437Why Use Maps in Location-Enabled Applications? 437Overview of MapViewer and Oracle Maps 440Oracle MapViewer 440Oracle Maps 442Getting Started 443Load the Sample Data 444Location-Enable the Application Data 445Load the Geographical Data 445Load Maps, Themes, Style, and Map Cache Definitionsfor MapViewer 445Define a Data Source 446Install Example Applications 446Configuring MapViewer 448Using the Administration Console 449Configuration Parameters 452Defining Maps 457Using Map Builder 458Using Styles 461Using Themes 474Using Maps 484Defining Map Caches 491The USER_SDO_CACHED_MAPS View 491Managing Caches Using the MapViewer Console 491Creating a New Map Cache 493Creating Map Caches Using SQL 495Cache Data Structures 498Exporting Cache Definitions 498Purging and Refreshing Cache 498Using External Data Sources 499Summary 502CHAPTER 13 Using Maps in Your Applications 503Overview of MapViewerâs APIs 503XML, Java, JSPs, and PL/SQL 503JavaScript and Ajax: Oracle Maps 505Choosing an API 506Anatomy of a Map Request 507What: The Information That Should Appear on the Map 507Where: The Geographical Area to Be Covered by the Map 508How: The Format and Size of the Resulting Map 508Interacting with Maps 509Controlling the Level of Detail: Zoom In and Zoom Out 509Controlling the Area Shown on the Map: Pan and Recenter 509Selecting Features: Identify 510Choosing the Information to Appear on the Map: Layer Control 510Oracle Maps: The JavaScript API 510Displaying a Map 511Interacting with Maps: Zooming and Panning 514Adding Map Decorations 515Adding Generic Decorations 515Creating an Overview Map 516Rectangular (Marquee) Zooming 517Adding Dynamic Information: Theme-Based FOIs 519Adding Individual FOIs 523Controlling Styles 524Capturing User Input: Tools and Selectors 525Responding to Events 528Using the Java API 530Map Requests 530Zooming and Panning 533Theme Control 535Style Control 540Identification and Queries 540Dynamic Features 543Legends 543Map Decorations 545Using the Map Cache 546Discovering Data Sources, Maps, Themes 547Using JSP Tags 547Using the XML API 552Simple Map Requests 553Adding Themes to a Base Map 555Using Multiple Data Sources 556Constructing a Map from Themes 557Dynamic Themes 558Dynamic Features 561Legends 563The XML Map Response 565Using the PL/SQL API 566Installing the API 566A Simple Example 567Using the Administrative API 568Browsing Map Definitions 568Managing the MapViewer Server 570Restarting MapViewer 573Web Map Service (OGC WMS) Interface 573The GetCapabilities Request 573The GetMap Request 575The GetFeatureInfo Request 576Spatial Reference Systems (SRS) Mapping 578Summary 578Data Preparation and Setup 582Loading the Geographical Data 582Location-Enabling the Application Data 582Loading Map, Theme, Style, and Map Cache Definitionsfor MapViewer 583Applications Setup 583The JavaScript Application 584Application Walk-Through 584Under the Hood 589The Java (JSP) Application 603Application Walk-Through 603Under the Hood 610Summary 622Overview of the Case Studies 623Spatial Information for Managing the London Bus Network 624BusNet 625Spatial Data and Oracle Spatial in BusNet 626User Interface for Spatial Data in BusNet 628BusNet Conclusions 630P-Info: A Mobile Application for Police Forces 631P-Info Functionality 632P-Info Architecture 633Use of Oracle Spatial in P-Info 635Measurable Added Value of P-Info 637Risk Repository for Hazardous Substances 638RRGS Technology 640Use of Oracle Spatial in the RRGS 642From Hazardous Substances to Risk Management 643USGS National Land Cover Visualization and Analysis Tool 644The Architecture of USGS Visualization and Analysis Tool 647Oracle Spatial in USGS Visualization and Analysis Tool 648Benefits of USGS Visualization and Analysis Tool 651U.S. Department of Defense MilitaryHOMEFRONT LBS 652The Architecture of MilitaryHOMEFRONT LBS 654Oracle Spatial in MilitaryHOMEFRONT 657Mobile MilitaryINSTALLATIONS 660Benefits of MilitaryHOMEFRONT LBS 662Summary 662CHAPTER 16 Tips, Common Mistakes, and Common Errors 663Tips 663Data Modeling and Loading 663Performance of Spatial Operator Query 666Performance of Other Spatial Processing Functions 670Performance of Inserts, Deletes, and Updates 672Best Practices for Scalability and Manageability of Spatial Indexes 673Common Mistakes 678Bounds, Longitude and Latitude, and Tolerance for Geodetic Data 678NULL Values for SDO_GEOMETRY 678Use GEOCODE or GEOCODE_ALL 678Specify âINDEXTYPE is mdsys.spatial_indexâ in CREATE INDEX 678Always Use Spatial Operators in the WHERE Clause 679Use Spatial Functions When No Spatial Index Is Available 679Do Not Move, Import, or Replicate MDRT Tables 680Network Metadata 680Map Metadata 681Common Errors 681ORA-13226: Interface Not Supported Without a Spatial Index 681ORA-13203: Failed to Read USER_SDO_GEOM_METADATA View 681ORA-13365: Layer SRID Does Not Match Geometry SRID 681ORA-13223: Duplicate Entry for inSDO_GEOM_METADATA 682ORA-13249, ORA-02289: Cannot Drop Sequence/Table 682ORA-13249: Multiple Entries in sdo_index_metadata Table 682ORA-13207: Incorrect Use of the Operator 682ORA-13000: Dimension Number Is Out of Range 682ORA-00904: Invalid Identifier 683ORA-00939: Too Many Arguments for Function 683ORA-13030: Invalid Dimensionality for the SDO_GEOMETRY,or ORA-13364: Layer Dimensionality Does Not Match GeometryDimensions 684Summary 685APPENDIX A Additional Spatial Analysis Functions 689Tiling-Based Analysis 689TILED_BINS 689TILED_AGGREGATES 691Neighborhood Analysis 694AGGREGATES_FOR_GEOMETRY 694AGGREGATES_FOR_LAYER 695Clustering Analysis 696SPATIAL_CLUSTERS 696Refining the Candidates for Site Selection 697Geometry Simplification for Speeding Up Analysis 698Summary 699APPENDIX B Linear Referencing 701Concepts and Definitions 702Measure 702Linear Referenced Segments 702Direction 702Shape Points 702Offset 703Typical Application 703Creating Linear Referenced Geometries 705SDO_GTYPE in LRS Geometries 705Constructing LRS Geometries 706Metadata 707Spatial Indexes and Spatial Operators on LRS Geometries 707Dynamic Segmentation Operations 707Clip a Segment 707Locate a Point 708Project a Point 709Intersecting LRS Segments with Standard Geometries 710Validation of LRS Segments 710Dynamic Segmentation on 3D Geometries 711Other Operations 711Summary 712Sharing Boundaries 714Benefits of the Topology Data Model 715Storing a Topology Data Model in Oracle 715Operating on a Topology in Oracle 718Creating a Topology 718Populating a Topology 719Associating a Feature Layer with a Topology 719Inserting, Updating, and Populating Feature Layers 720Updating Topological Elements 721Querying for Topological Relationships 723Hierarchical Feature Model 723Summary 724The SDO_GEORASTER Data Type 726Storage for SDO_GEORASTER Data 728Metadata in SDO_GEORASTER Data 731Populating SDO_GEORASTER Columns 731Manipulating Raster Objects 732Generating Pyramids 733Subsetting 734Georeferencing 734Attaching Bitmap Masks 736Registering NODATA Values 737Using Compression in GeoRaster 738Visualizing Raster Data in Oracle MapViewer 739Summary 741and TINs in Oracle 743Storing Large Point Sets 744The SDO_PC Data Type 744Populating a Point Cloud 745Querying a Point Cloud 748Other Manipulation Functions for Point Clouds 749Storing Triangulated Irregular Networks 749The SDO_TIN Data Type 750Populating a TIN 751Querying a TIN 754Other Manipulation Functions for TINs 755Summary 755