文字显示结果
组合搜索  计算机图书分类目录
 
所在位置: 图书 -> 在线试读 -> 数据库 -> Oracle  
 
ORACLE SPATIAL空间信息管理--ORACLE DATABASE 11G

ORACLE SPATIAL空间信息管理--ORACLE DATABASE 11G

  本书涵盖了Oracle数据库中空间信息管理的所有内容。尤其是:● 介绍了空间信息管理的主要概念以及它们怎样与数据库概念和工具相关联。● 描述了Oracle Spatial所提供的用于存储、检索、分析和可视化空间信息的工具。● 介绍了例子、应用和案例研究,帮助你很方便地将上述概念和工具结合到你的应用中。虽然大多数概念上的讨论一般都具有有效性,但本书是介绍空间信息管理—— Oracle Database 11g产品的最新版本。书中各章节着重介绍了Oracle Spatial技术在电子商务中的应用。与这些应用相关的所有特性都将进行详细的讨论,并附有本书提供的基于样本数据的可运行例子。附录涵盖了与高度专业化的GIS应用相关的题目,并为每个题目提供了一个总体的概述,要想了解细节,请参考Oracle文档。以下是本书每章所包含的主要内容:● 安装:前言之后的...
作者:
Ravi Kothuri   Albert Godfrind   Euro Beinat   
出版社:
清华大学出版社   清华文康   
条形码:
9787302211594
性质:
免费
电子书定价:
0 华初币  
 
 
 
 
 
 
       
 
作者序
     
 
1
 第4章 SDO_GEOMETRY数据类型
 

在第3章,我们讨论了怎样location-enable应用数据,及怎样把地理数据组织到不同的但都含有SDO_GEOMETRY列的表中。在本章,我们重点考虑使用Oracle SDO_ GEOMETRY类型对不同类型的位置信息予以存储和建模。SDO_GEOMETRY类型能够存储许多不同类型的空间数据,其中包括:

       ,可用来存储实体的位置坐标,例如,客户场所、店面位置、交货地点等。

       线串(line string),可用来存储某一路段的位置及形状。

       多边形,可用来存储城市的边界、商业区等。

       复杂的几何体,如多重多边形,可用来存储德克萨斯州、夏威夷和加州等地的边界。

首先,我们解释一下SDO_GEOMETRY的结构,包括各种属性和相应值。不同属性的值可用来存储不同类型的几何数据。

接下来,我们会讨论怎样为如点、线串、多边形这样的简单几何体构建SDO_GEOMETRY对象(作为一个应用开发者,你极有可能和这些简单的几何体打交道)

最后,我们将展示怎样构建更为复杂的几何体,如多重多边形。这些知识有益于即时定义感兴趣的空间区域。在第8章和第9章,你将会看到如何用已经构建好的几何体在应用中执行空间分析。在本章中,通过一些适用于一个典型的商业应用的例子,我们来说明这些不同的SDO_GEOMETRY数据对象的潜在用途。

本章所构建的SDO_GEOMETRY类型的示例,都存储在geometry_examples表中。程序清单4-1是创建这个表的一个示例。

程序清单4-1  创建一个存储所有几何示例的表

SQL>CREATE TABLE geometry_examples

(

name         VARCHAR2(100),

description VARCHAR2(100),

geom         SDO_GEOMETRY

);

这个geometry_examples表中,包含了对名称、几何体的描述以及相应的SDO_GEOMETRY对象。可以把这张表用作即时构建合适几何类型的一个快速参考。对于简单的类型,可能只需要修改geom列中的坐标值。

 
4.1 Oracle中空间几何体的类型 在线阅读 免费
4.2 SDO_GEOMETRY类型、属性和值 在线阅读 免费
4.3 简单二维几何体的例子 在线阅读 免费
4.4 复杂二维几何体的例子 在线阅读 免费
4.5 三维几何体的例子 在线阅读 免费
4.6 本章小结 在线阅读 免费
 
2
 第7章 在应用程序中操作SDO_GEOMETRY
 

到目前,你已经明白了怎样用SDO_GEOMETRY类型去定义和加载空间对象。也明白了怎样用SQL*PlusSQL语言中读取空间对象。在本章中,我们涵盖了怎样在PL/SQLJava程序语言中操作SDO_GEOMETRY对象的内容。

注意,在大多数情况下,你都不需要为操作SDO_GEOMETRY类型而在程序中写出显式代码。也就是说,你可以在SQL语言中直接检验SDO_GEOMETRY的内容。例如,可以如程序清单7-1所示,从一个SDO_GEOMETRY对象中获取地理坐标。

程序清单7-1  提取坐标

SQL> SELECT b.name,

b.location.sdo_point.x b_long,

b.location.sdo_point.y b_lat

FROM branches b

WHERE b.id=42 ;

 

NAME                         B_LONG           B_LAT

--------------------- ----------     ----------

BANK OF AMERICA        -122.4783     37.7803596

这个例子展示了一种简单但很强大的用来从对象中提取信息的技术:点表示法。运用该技术可以从几何对象中提取任意的标量值:换句话说就是指几何类型(SDO_GTYPE)、空间参考系ID(SDO_SRID)和点结构中的XYZ坐标(SDO_POINT.X.Y.Z)

这种技术是通用的,它适用于所有的对象类型,而不仅仅是SDO_GEOMETRY类型。这种技术的优点就是产生的结果集中不包含任何对象类型——只是一些简单的类型,因此这种结果集可以用任意的应用工具进行处理,而不需要操作对象。

<DIV style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: windowtext 0.5pt solid; PADDING-LEFT: 0cm; PADDING-BOTTOM: 1pt; BORDER-LEFT: medium none; PADDING-TOP: 1pt; BORDER-BOTTOM: windowtext 0.5pt solid">

警告:

要想使用该技术,必须使用一个表别名(如程序清单7-1中的b)。如果没有使用表别名,你的查询将会出现“ORA-00904:无效标识”的错误。

</DIV>

在大多数的应用方案中,你需要从SDO_GEOMETRY中,如程序清单7-1所示,提取信息或者基于空间关系用空间操作和函数来选择数据(将在第8章和第9章中讨论)。程序清单7-2中展示了对指定分店0.25英里内的客户选择。对于这样的空间选择,你所需要做的就是在SQL语句的where子句中使用被称为SDO_WITHIN_DISTANCE的空间操作。

程序清单7-2  简单的空间查询

SELECT c.name, c.phone_number

FROM branches b, customers c

WHERE b.id=42

AND SDO_WITHIN_DISTANCE(c.location,b.location,'distance=0.25 unit=mile')

= 'TRUE';

 

NAME                                  PHONE_NUMBER

----------------------------------- ---------------

GLOWA GARAGE                          415-7526677

PUERTOLAS PERFORMANCE                 415-7511701

TOPAZ HOTEL SERVICE                   415-9744400

CLEMENT STREET GARAGE                 415-2218868

ST MONICA ELEMENTARY SCHOOL           NULL

在你的应用程序中包含如程序清单7-1或程序清单7-2所示的SQL语句,与包含其他规则查询并没有什么不同。它们可以包含一些空间谓词(操作符或函数,这些内容将在第8章和第9章中讨论),但是返回规则的数据类型。它们能够被任何的程序语言接受和处理。

虽然如此,在一些情况下,你仍需要去调用指定的函数。在这些情况下,需要为SDO_GEOMETRY对象的读写而开发特定的代码。这通常是Oracle Spatial的一种高级用法,且在实际中起着重要作用。

下面是需要操作SDO_GEOMETRY数据的典型案例:

       高级位置分析:在一个商业应用中,对于新分店的位置、合适的销售区域或跟踪一辆送货车的路径,可能需要创建不同的几何体。除了创建几何体以外,可能还需要知道如何更新已有的几何体。你可能会为此类的创建和操作创建新的函数。

       数据转换:也许你需要加载数据,而对于这些数据格式没有标准的转换器。许多商业工具提供了格式转换功能,但是在许多情况下,一些传统数据库仍以指定的私有格式存储空间和()属性数据。这在向Oracle Spatial中导入CAD/CAM图表时是一个经常遇到的问题。在所有这些情况下,你需要在外部格式和Oracle Spatial对象间创建一个接口。

       可视化分析:也许你想编写自己的图形地图渲染器,而不使用标准的组件,如Oracle MapViewer。这种需求也许不是很频繁,但是注意到:有很多特殊的浏览工具都从Oracle Spatial中获取对象用来在电脑、手持设备和手机上显示。创建这些工具的公司需要开发一些能够在SDO_GEOMETRY列中进行深度访问空间对象的软件,用来进行有效的可视化。

这些任务不仅需要由应用程序产生SQL语句——你更需要知道的是,在用来编写该应用的程序语言中如何操作Oracle对象(因为SDO_GEOMETRY是一个对象类型)。在本章接下来的内容中,我们涵盖了怎样在PL/SQLJava中对SDO_GEOMETRY数据进行操作的内容。我们描述的操作类型如下:

       把对象映射为特定语言的数据结构

       向应用程序中读/SDO_GEOMETRY对象

       SDO_GEOMETRY对象中提取信息

       在程序中创建新的SDO_GEOMETRY对象

       修改已有的SDO_GEOMETRY对象(PL/SQL)

我们总会不失时机地用商业应用中典型的任务来对这些类型的操作进行举例说明,如创建新的分店位置,创建新的销售区域和更新运送路径等。然而,如上所述,此类操作在不同的应用中可以被用于各种不同的目的。

 
7.1 用PL/SQL操作几何体 在线阅读 免费
7.2 在Java中操作几何体 在线阅读 免费
7.3 本章小结 在线阅读 免费
 
3
 第9章 几何处理函数
 

为了运行本章的例子,需要导入以下数据集:

imp spatial/spatial file=app_data_with_loc.dmp ignore=y full=y

imp spatial/spatial file=citybldgs.dmp full=y ignore=y

imp spatial/spatial file=map_large.dmp full=y ignore=y

 

 

在第8章,我们讨论了如何使用空间索引和相关空间操作符进行邻近分析(proximity analysis)。在本章,我们将描述几何处理函数,也称作空间函数(只要是无歧义),并使用这些函数来实现这个功能。与空间操作符相比,这些几何处理函数具有如下特点:

       不需要空间索引

       与带空间索引的空间操作符相比,能够提供更详细的分析

       可出现在SQL语句的select列表中(以及带where子句的select列表中)

我们在表9-1中增加了更多类型的分析以补充第8章的客户分析和销售地区分析。这些新增加的分析使用了本章所描述的空间函数,在表中用黑体表示。

在表9-1中的分析要比使用空间索引和相关操作符的表8-1中的分析更加详细。在本章,你将学习空间函数,这些空间函数可对SDO_GEOMETRY对象进行复杂的分析。这些空间函数可分为以下几个主要的类别:

       缓冲函数:SDO_BUFFER函数在已有的SDO_GEOMETRY对象周围创建一个缓冲。这个对象可以是任何类型—— 点、线、多边形或它们的组合。例如,你在branches表中点位置的周围创建缓冲。这些在企业/分支机构位置周围创建的缓冲池可能代表这些企业/分支机构的销售区域。

       关系分析函数:这些函数决定了两个SDO_GEOMETRY对象之间的关系。例如,使用这些函数,你可以计算一个潜在的顾客和分支机构(企业)位置之间的距离(之后你可以知道这个客户是否在这个分支机构0.25英里的范围内)。或者,你也可以确定一个客户或者提供商是否在一个分支机构位置周围的特定缓冲区域中。

       几何组合函数:这些函数执行交、并和其他基于成对几何体上的几何体组合功能。你可以使用这些函数来确认相交(或重叠)的成对销售区域并且找到相交的区域。你可以针对在这些相交区域里的客户进行促销活动。

       几何分析函数:这些函数执行分析,比如计算单个几何体的面积。例如,两个销售区域的重叠区域,你可以计算出面积并且检查这个面积(重叠区域的面积)是否非常大。如果是,那么相应的分支机构位置可被标志为进行合并的潜在的候选区。

       聚合函数:前面的分析函数分析了单个的或者成对的几何体。Oracle Spatial也有聚合函数,它可以对任意空间几何体集而非单个的或者成对的几何体进行聚合分析。这些几何体集可通过SQL语句中的WHERE子句采用任意选择标准而产生。

9-1  使用几何处理函数扩大表8-1中的邻近分析

<DIV align=center>

   

客户分析

 

 

 

 

确定最接近一个分支机构或者竞争对手或在某一指定的半径范围内的客户。如果客户接近竞争对手,你要进行适当的促销活动来留住客户。你可能希望对不惜花费多大代价都想留住的GOLD客户进行针对性的分析。确定一个合适的地区创建一个新的分支机构(也就是说,一个新的业务单位)来迎合一批客户

销售区域分析

在分支机构或竞争对手位置周围建立销售区域(也就是说,0.25英里缓冲)。确定这些销售区域中的哪些区域相互覆盖或者覆盖了州和国家的边界。如果分支机构的销售区域在很大程度上出现重叠,那么你就可以合并这些分支机构。在分支机构和竞争对手周围创建缓冲,以表示销售区域或覆盖范围。找出两个销售区域的重叠部分,确定重叠部分的面积,检查这部分的客户数量等。如果数量超过阈值并且客户数量是可观的,你可以考虑合并销售区域(也就是说,合并相应的分支机构)。确定所有分支机构(或储存地点)的总覆盖面积。这表明这个城市/国家的哪些地方的商业很景气,哪些地方的商业不景气。进而确定竞争对手(或者是一个特定的竞争对手)的覆盖范围,并且瞄准不在这个覆盖范围的客户

</DIV>

 

除了空间聚合函数,本章讨论的所有其他空间函数都是SDO_GEOM包的一部分。这就意味你可以在SQL语句中以SDO_GEOM.<function.name>的形式使用它们。这些函数可以出现在SQL语句中能出现用户定义的函数的任何地方。然而,空间聚合函数,只能出现在SQL语句的SELECT列表中。

对于三维的物体来说,只有以下的关系函数被Oracle 11g版本1支持:distance(距离,用于计算两个三维几何体之间的距离)closestpoints(最近的点,用于查找两个几何体之间最近的一对点),和anyinteract(任何相互作用,用于测定两个三维的几何体是否相交)。对于三维的物体,只有以下的几何分析函数被支持:length(长度)area(面积)volume(体积)。你可以通过SDO_GEOM PL/SQL包或者Java APIJ3D_Geometry类来使用这些函数。J3D_Geometry(最先在第7章讨论过)针对三维物体扩展了JGeometry类并且定义了实现这个功能的专用方法。

前面所讲的大部分空间函数使用一个或者两个SDO_GEOMETRY参数、一个容差参数和其他可选参数。这里所讲的容差参数与第8章所讲的是同一个意思。回顾一下,几何体的容差反映的是这样一个距离,两个点间的距离必须大于这个距离才被认为是两个相互独立的不同点(例如,容纳误差错误)。大地测量几何体[1](两个点之间的内插是地球表面的最短距离)的容差用米来表示,并且通常设置为0.1米或0.5米。对于非大地测量学的几何体,容差的设定是基于应用的。

本章,我们将依次介绍每一个空间函数。我们使用这些函数对两种数据集进行分析:

       商务应用的branchescustomers

       构成商务应用的地理数据的us_statesus_countiesus_parks

 
9.1 缓冲函数 在线阅读 免费
9.2 关系分析函数 在线阅读 免费
9.3 几何组合函数 在线阅读 免费
9.4 几何分析函数 在线阅读 免费
9.5 聚合函数 在线阅读 免费
9.6 本章小结 在线阅读 免费
 
4
 第13章 在应用程序中使用地图
 

在第12章,你已经了解了MapViewer(地图显示软件)的整体体系结构,知道了如何安装和配置它。也了解到怎样定义构成地图的不同元素:样式、主题,以及地图和地图缓存。在本章中,通过使用MapViewer中很多可用的应用程序接口,你将学习如何在应用程序中使用地图。

在本章,我们首先概述一下可用的APIs(应用程序接口)以及它们性能的比较。接着学习与地图进行交互的基本原则和机制。然后学习本章的其余内容。我们将提供可用APIs的详细描述—— 首先是新的Oracle地图(基于Ajax接口),然后是更多的经典Java接口,接着是最底层接口,如直接的XML格式的信息交互和管理性API(只有XML),它允许你的应用程序管理MapViewer服务器。

最后,我们简要地概述网络地图服务(WMS)APIWMS是由开放地理信息联盟(OGC)制定的国际标准,允许你发布可以使用任一WMS-capable工具访问的地图。

 
13.1 MapViewer的APIs概述 在线阅读 免费
13.2 剖析地图请求 在线阅读 免费
13.3 与地图进行交互 在线阅读 免费
13.4 Oracle地图:JavaScript API 在线阅读 免费
13.5 使用Java API 在线阅读 免费
13.6 使用XML API 在线阅读 免费
13.7 使用PL/SQL API 在线阅读 免费
13.8 使用管理性API 在线阅读 免费
13.9 网络地图服务(OGC WMS)接口 在线阅读 免费
13.10 本章小结 在线阅读 免费
 
5
 第16章 提示、常见失误和常见错误
 

 

现在你已经可以通过学习的许多技术来location-enable你的应用程序和在应用程序中纳入空间分析和可视化工具,在此,我们将给出一些建议。

首先,我们给出有关最佳实践的一些建议,换句话说,给出一些location-enable 你的应用程序的提示。其次,我们列举出一些粗心的用户在location-enable他们的商业应用程序时可能会有的常见失误。最后,我们列举在location-enable 你的应用程序时可能会碰到的错误及对应的校正措施。

 
16.1 提示 在线阅读 免费
16.2 常见失误 在线阅读 免费
16.3 常见错误 在线阅读 免费
16.4 本章小结 在线阅读 免费
 
Copyright © 2010 TianMei Technology All rights reserved. To comment on this site
  辽B-2-4-20100065