需求如标题
在网上找了很久,都是一些数学公式,但是套过来之后,发现结果不正确,最后还是翻阅oracle的官方文档。
http://docs.oracle.com/cd/E24693_01/appdev.11203/e11830/sdo_util.htm
要找的过程在这里边。
SDO_UTIL.POINT_AT_BEARING
Format
SDO_UTIL.POINT_AT_BEARING(
start_point IN SDO_GEOMETRY,
bearing IN NUMBER,
distance IN NUMBER
) RETURN SDO_GEOMETRY;
看描述
Description
Returns a point geometry that is at the specified distance and bearing from the start point.
bearing
Number of radians, measured clockwise from North. Must be in the range of either -pi to pi or 0 to 2*pi. (Either convention on ranges will work).
distance
Number of meters from start_point and along the initial bearing direction to the computed destination point. Must be less than one-half the circumference of the Earth.
大概满足我的需求。这段话意思应该是,返回一个点,改点的位置在起始点按照指定方位的一段距离上
(bearing应该是方位的意思),其实就是弧度。
那么这个弧度怎么得知呢?
继续往下看,
To compute the bearing and tilt from a start point to an end point, you can use the SDO_UTIL.BEARING_TILT_FOR_POINTS procedure.
也就是说,如果我知道两个点,那么这个线段的弧度我就可以算出来,理论上,线段上所有的点坐标也就可以算出来了。
所以,point1,point2 ,距离point1距离200米的点的坐标怎么求呢?
首先,用
SDO_UTIL.BEARING_TILT_FOR_POINTS(
start_point IN SDO_GEOMETRY,
end_point IN SDO_GEOMETRY,
tol IN NUMBER,
bearing OUT NUMBER,
tilt OUT NUMBER
) RETURN SDO_GEOMETRY;
SDO_UTIL.BEARING_TILT_FOR_POINTS(point1,point2,0.00005,radians,tilt) 计算出radians,tilt 一个顺时针,一个逆时针,我需要用顺时针的弧度。
然后再用radians和point1和距离,计算线段上的点。
当然,如果线段不足200米,那么点就飞到外边了。
GEOMETRY point3 :=SDO_UTIL.BEARING_TILT_FOR_POINTS(point1,ra,200);
此时point3就得出了。
分享到:
相关推荐
7. **Topology**: Oracle Spatial支持拓扑规则,确保空间数据的完整性,例如确保线段在端点相遇,避免空间对象的重叠或交叉。 8. **GIS集成**: Oracle Spatial可以与常见的GIS(地理信息系统)软件,如ArcGIS、QGIS...
### Oracle Spatial与ArcGIS连接知识点解析 #### 一、引言 随着信息技术的发展,空间数据管理变得日益重要。许多组织正在转向使用Oracle Spatial作为其核心数据库系统,这主要是因为Oracle Spatial能够提供强大的...
2. SDO_GEO_ABBREV:Oracle Spatial的几何对象类型,如SDO_POINT表示点,SDO_LINESTRING表示线,SDO_POLYGON表示面。 3. SRID(Spatial Reference Identifier):定义了坐标系统的唯一标识符,确保空间数据的正确...
- **空间数据存储**:Oracle Spatial 支持多种空间数据模型,如矢量(点、线、多边形)和栅格(图像)。它可以处理大量的空间数据,并且与标准 SQL 结合,方便数据管理。 - **空间索引**:提供高效的索引技术,如 ...
在Java开发环境中,Oracle Spatial 提供了对应的jar包,如 `sdoutl.jar`、`sdoapi.jar` 和 `sdotype.jar`,以便开发者能够集成空间功能到他们的应用程序中。 `sdoutl.jar`:这是 Oracle Spatial 的输出库,包含了...
首先,Oracle Spatial提供了数据模型,包括点、线、面等基本空间对象,以及更复杂的空间关系,如覆盖、邻接和包含等。这些数据模型使得我们能够精确地表示地理实体,并进行精确的空间操作。 其次,Oracle Spatial...
除了基本的数据存储之外,Oracle Spatial还提供了丰富的函数和操作符,可以用于执行空间数据之间的各种运算,如距离计算、空间关系判断等。这些操作使得开发者可以在SQL语句中直接处理空间数据,而无需编写额外的...
- Oracle Spatial提供了专门的空间数据类型和索引机制,可以存储和索引各种复杂的空间对象,如点、线、面等几何图形。 - 支持多种空间索引类型,包括R-tree索引等,确保空间数据的高效检索。 2. **空间数据的操作...
Oracle Spatial是Oracle数据库的一个扩展模块,专门用于处理地理空间数据,提供高级的空间查询、分析和可视化功能。在“Oracle Spatial学生指导”中,你将深入理解如何利用这个强大的工具进行地理信息系统(GIS)的...
### Oracle Spatial 拓扑和网络数据模型 #### 一、引言 Oracle Spatial 提供了一种强大且灵活的方式来管理空间数据。它不仅支持基本的空间数据类型,还提供了丰富的功能来处理复杂的地理信息,其中包括拓扑数据模型...
1. **数据模型**:Oracle Spatial 使用标准的 Simple Features for SQL 规范,定义了如何存储和操作几何对象,如点、线、多边形等。 2. **查询**:开发者可以使用 SQL 扩展进行空间查询,例如,查找距离某点一定范围...
这些工具不仅包括基本的空间操作,如距离计算、面积计算等,还支持空间关系的查询,例如点与多边形的包含关系、线段与区域的相交关系等。 4. 管理工具:Oracle Spatial还包括一组用于数据管理的工具,用于创建、...
3. **空间数据模型**:讨论了Oracle Spatial支持的不同空间数据模型,如点、线、面等,以及如何选择合适的数据类型。 4. **数据导入与导出**:详细阐述如何将空间数据导入Oracle Spatial,以及如何将数据导出到其他...
1. 空间数据模型:理解Oracle Spatial采用的几何对象模型,如点、线、多边形及其组合体,以及如何创建和操作这些对象。 2. 数据导入导出:掌握如何将外部空间数据导入Oracle Spatial,以及如何导出数据以供其他应用...
- **三维类型与函数**:Oracle Spatial 11g 引入了针对点、线、多边形和实体的三维类型,并支持针对大量三维点数据的专用类型。这些类型可以用来表示使用激光扫描仪等工具获取的三维点集(即“点云”)。此外,还...
Oracle Spatial支持多种空间数据模型,包括点、线、面等基本几何类型,以及更复杂的空间对象,如多边形和几何集合。它集成在Oracle数据库中,提供了一套完整的空间数据管理解决方案,包括数据导入、导出、索引构建和...
[Packt Publishing] Oracle Spatial 应用扩展 (英文版) [Packt Publishing] Applying and Extending Oracle Spatial (E-Book) ☆ 图书概要:☆ Overview Understand how to develop Oracle Spatial data models ...
【Oracle和Oracle Spatial简介】 Oracle是一家全球知名的信息管理软件提供商,自1977年成立以来,已成为全球最大的关系型数据库管理系统供应商。Oracle是第一个商业化的关系型数据库系统,并且是最早在其所有产品中...
### Oracle Spatial for Oracle Database 11g:关键知识点解析 #### 一、Oracle Spatial与位置数据的重要性 在当今高度移动化且互联互通的世界中,位置数据变得越来越重要。无论是专业应用还是消费者应用程序,很...
这个压缩包"oracle spatial.zip"包含了关于这个模块的开发文档,特别是针对 GeoRaster 的部分,GeoRaster 是 Oracle Spatial 提供的一种高效存储和管理大型栅格地理数据(如卫星图像、遥感数据或地图切片)的工具。...