如何在Oracle816Spatial上编程(PPT18)



《如何在Oracle816Spatial上编程(PPT18)》由会员分享,可在线阅读,更多相关《如何在Oracle816Spatial上编程(PPT18)(18页珍藏版)》请在装配图网上搜索。
1、单击此处编辑母版标题样式,,单击此处编辑母版文本样式,,第二级,,第三级,,第四级,,第五级,,,,中国最大的资料库下载,*,如何在Oracle8.1.6 Spatial 上编程-邹德禹,,,一. 使用Oracle Spatial的前提条件,1.至少Professional5.5,,2.至少Oracle8.1.5,,3.Easyloader 上载工具,,,二.,使用Easyloader应注意的一个问题,对于 Professional6.0的用户,如果采用Oracle8.1.6作为其空间数据库,建议使用 Easyloader For Oralce8.1.6向Oracle数据库中上载Mapin
2、fo空间数据。,,,三. 如何在程序中连接Oracle8i,Oracle8i Spatial,,hdbc = Server_Connect(",ORAINET,", "UID=scott;PWD=tiger;SRVR=Orasrv"),,ODBC,,hdbc = Server_Connect(",QELIB,", ",DSN=O8idsn;,SRV=Orasrv;USR=scott;PWD=tiger"),,,四. 如何在下载数据时进行SQL查询,1 .在下载数据的同时,基于属性数据的SQL查询,,,四. 如何在下载数据时进行SQL查询,2 .在下载数据的同时,基于空间数据进行SQL查询,,,
3、五. 几个常用的Oracle Spatial空间函数,1.相交查询,,函数:SDO_FILETER,,功能:确定与某一指定空间对象具有相交关系的对象(集合),,使用:SDO_FILTER(geometry1, geometry2, params),,示例:,,SELECT A.gid FROM Polygons A, query_polys B,,WHERE B.gid = 1 AND,,SDO_FILTER(A.Geometry, B.Geometry, 'querytype = WINDOW') = 'TRUE';,,,五. 几个常用的Oracle Spatial空间函数,1.相交查询,,
4、函数:SDO_RELATE,,功能:确定与某一指定空间对象具有相交关系的对象(集合),,使用:SDO_RELATE(geometry1, geometry2, params),,示例:,,SELECT A.gid FROM Polygons A, query_polys B WHERE B.gid = 1,,AND SDO_RELATE(A.Geometry, B.Geometry,,,'mask=ANYINTERACT querytype = WINDOW') = 'TRUE',,,五. 几个常用的Oracle Spatial空间函数,1.相交查询,,函数:SDO_WITHIN_DIST
5、ANCE,,功能:查找距某个指定对象,一定距离范围内的所有其它对象,,使用:,SDO_WITHIN_DISTANCE,(T.column, aGeom, params),,示例:,SELECT A.GID,,FROM POLYGONS A,,WHERE SDO_WITHIN_DISTANCE(A.Geometry, mdsys.sdo_geometry(3,NULL,NULL,mdsys.sdo_elem_info(1,3,3),,,mdsys.sdo_ordinates(x1,y1,x2,y2)),'distance = 10') = 'TRUE',,,五. 几个常用的Oracle Spat
6、ial空间函数,2.缓冲区分析,,函数:sdo_buffer,,功能:生成缓冲区,,使用:SDO_GEOM.SDO_BUFFER (geometry, dim_array, distance),,,,五. 几个常用的Oracle Spatial空间函数,3.面积,长度计算函数,,函数:sdo_area,,功能:计算二维区域对象的面积,,使用:SDO_GEOM.AREA (geometry, dim_array),,,示例:,,,update counties set AREA =,mdsys.sdo_geom.sdo_area (geom, (select diminfo from sdo_g
7、eom_metadata where table_name = 'counties' and column_name = 'GEOM')),,,五. 几个常用的Oracle Spatial空间函数,3.面积,长度计算函数,,函数:sdo_length,,功能:计算空间对象的长度或是周长,,使用: SDO_GEOM.LENGTH (geometry, dim_array),,说明:如果指定的空间对象为线型,则此函数计算该对象的长度,对于指定的区域型对象,则计算此对象的周长(包括其中的洞)。,,,六. 如何保存与刷新DBMS表,1.保存DBMS表,,commit table Tablename,,
8、2.刷新DBMS表,,server refresh Tablename,,,七. 几个问题如何解决,1.点、线、面样式丢失,,现象,:,,,七. 几个问题如何解决,1.点、线、面样式丢失,,解决办法,:,利用Easyloader上载Mapinfo表之前,先在表中增加几个属性字段,将点线面的样式特性当作对象的属性值保存到表中,并连同表的其它属性一起上载到Oracle数据库中。当用户通过程序将该表从Oracle Spatial中下载到Mapinfo中后,再根据点、线、面的样式信息,利用程序将点、线、面的样式恢复出来。,,,七. 几个问题如何解决,2.无法向Oracle Spatial中上载文本对象
9、,,现象,:,,,七. 几个问题如何解决,2.无法向Oracle Spatial中上载文本对象,,解决办法:,利用Easyloader上载Mapinfo表之前,先在表中增加几个属性字段,将文本对象的信息(如:文本对象的内容、文本样式等)当作对象的属性值保存到表中,并连同表的其它属性一起上载到Oracle数据库中。当用户通过程序将该表从Oracle Spatial中下载到Mapinfo中后,再根据保存在表中的文本对象的信息,利用程序为每个记录再重新创建一具文本对象。,,,七. 几个问题如何解决,2.无法向Oracle Spatial中上载文本对象,,解决办法:,利用Easyloader上载Mapinfo表之前,先在表中增加几个属性字段,将文本对象的信息(如:文本对象的内容、文本样式等)当作对象的属性值保存到表中,并连同表的其它属性一起上载到Oracle数据库中。当用户通过程序将该表从Oracle Spatial中下载到Mapinfo中后,再根据保存在表中的文本对象的信息,利用程序为每个记录再重新创建一具文本对象。,,,
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。