甲骨文空间数据

Oracle spatial data

我有一个 oracle 数据库,当我在 SQL Dev 中查看时,我得到

FID,COORDINATE,SPACIALKEY
-------------------------------
13,(BLOB),1137686671492382720

当我使用 entity framework 6 访问它时,坐标变成一个包含大约 800 个项目的字节数组。

我知道此数据用于在地图上绘制多边形,但我不知道如何将其转换为 X、Y 坐标以便我可以使用 leaflet.js[=11 进行绘制=]

我不确定您是否可以在 EF 中处理 geom 对象。只需在您的模型上创建附加列 geom_txt

UPDATE yourTable
SET geom_txt = COORDINATE.Get_WKT();

你得到一个 WKT 传单可以很容易地处理,像这样:

LINESTRING (30 10, 10 30, 40 40)
POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))

我会假设坐标字段实际上是 Oracle 中的 GEOMETRY 数据类型,因此可以存储点、线或多边形特征(因此经纬度的概念仅在计算质心时才真正适用)。

在我进行的所有调用中,我通常使用此函数将几何图形转换为其 Well Known Text (WKT) 表示形式。

SELECT SDO_UTIL.TO_WKTGEOMETRY(COORDINATE) AS WKT FROM YOUR_TABLE WHERE . . .;

大多数前端视觉技术处理 WKT。

如果出于某种原因您只需要经纬度,您可以使用几何本身的方法在像这样的质心上获得它

select 
SDO_GEOM.sdo_centroid(a.COORDINATE, m.diminfo).sdo_point.x as X,
SDO_GEOM.sdo_centroid(a.COORDINATE, m.diminfo).sdo_point.y as Y
from yourTable a ,  user_sdo_geom_metadata m
 WHERE m.table_name = 'yourTable' AND m.column_name = 'COORDINATE'

which returns x = lon, y=lat,但请注意,如果您有复杂的几何图形,质心可能会产生很大误导,具体取决于您的操作。

HTH

G$