2016-12-06 133 views
0

我有其中當我在SQL開發查看Oracle數據庫I得到甲骨文空間數據

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

當我訪問6的座標此使用實體框架成爲包含大約800項的字節數組。

我知道這個數據是用來在地圖上繪製多邊形,但我對如何去轉換到這個X不知道,Y座標,這樣我可以積leaflet.js

+0

是座標字段中的幾何數據類型? – markg

回答

0

我會回答假設座標字段實際上是Oracle中的幾何數據類型,因此可以存儲點,線條或多邊形要素(因此,如果計算質心,緯度的概念才真正適用)。

在我所做的所有調用中,我通常使用此函數將幾何轉換爲其已知文本(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' 

其返回x =經度,Y =土地增值稅,但要意識到如果你有複雜的幾何形狀,質心可能是非常具有誤導性的,這取決於你在做什麼。

HTH

G $

0

我不是確定你是否可以在EF中處理幾何對象。只需在您的模型上創建並添加專欄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)) 
+0

不幸的是,我不能編輯數據庫...任何其他的想法? – DaGeezah

+0

不確定,請檢查這篇文章是否有幫助。 https://mapoholic.wordpress.com/2015/12/01/display-oracle-spatial-data-on-a-leaflet-map/ –

+0

是啊,已經讀過 - 要求在數據庫中添加函數我相信 – DaGeezah