为了展示如何创建点、线、面等几何体,在example包中建立了点构造函数(createPoint)、矩形构造函数(createRectangle)和线构造函数(createLine)。
1.点构造函数
点构造函数非常简单,只是对SDO_GEOMETRY构造函数的简单调用,具体实现代码如下所示:
在上面的代码中,仅仅声明了一个返回SDO_GEOMETRY类型的函数。然后,使用这个标准的SDO_GEOMETRY构造函数生成一个合适的点(使用提供的x、y和空间参考系数)将变得相当简单。除此之外,可以用这个新的构造函数来简化SQL语句。例如对一个ID=1的分店(branches数据表)地理位置进行更新:
update branches set location=createpoint(-122.48049,37.7805222,8307)where id=1;
注意:当函数的结果仅依赖于输入参数(且不依赖数据库的状态时),记得使用DETERMINISTIC关键字。当同样的参数被传入的时候,它可以帮助重用已缓冲的函数评估,这也将产生更好的全局性能。
2.矩形构造函数(www.xing528.com)
下面的示例程序example.createRectangle函数在分店(branches数据表)周围创建了一个新的几何体来表示销售区域。可以编写一个函数,通过从分店位置开始在二维上分别扩展一个指定的值,来定义分店的销售区域。下面的程序展示了怎样定义一个矩形形状。函数以矩形中心坐标、中心到各边的距离和任意一个坐标系ID作为输入参数。SDO_GEOMETRY构造函数中的SDOORDINATES属性存储在左下和右上顶点。代码如下:
可以在SQL语句的任何地方使用该函数。例如,下面的代码对一个矩形区域内的客户数目进行统计,按等级分组。代码如下:
运行结果如下:
3.线构造函数
在下面的程序中,通过line函数用起点和终点创建了一个新的线几何体。程序Code_7_58展示了这个函数的定义。代码如下:
本节主要阐述了PL/SQL的编程基础以及如何构建和读写SDO_GEOMETRY对象。只要掌握了这些基础性的知识,就可以通过Oracle官方文档的查询,快速掌握SDO_GEORASTER、SDO_TIN等多种空间数据对象编程。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。