2016-12-06 2 views
0

У меня есть база данных оракула, с которым когда я рассматриваю в SQL Dev Я получаюOracle пространственных данных

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

Когда я получить доступ к этому с помощью Entity Framework 6 координата становится байтовый массив, содержащий около 800 пунктов.

Я знаю, что эти данные используются для построения многоугольника на карте, но я не имею ни малейшего представления о том, как идти о преобразовании этого в X, Y координаты, так что я могу построить с leaflet.js

+0

координаты поля типа данных геометрии? – markg

ответ

0

Отвечу предполагая КООРДИНАТ поле на самом деле тип данных ГЕОМЕТРИЯ в Oracle, и, следовательно, может хранить точку , линии или функции Polygon (поэтому концепция lat lon действительно применяется, если вы вычисляете центроид).

Во всех вызовах, которые я делаю, я обычно использую эту функцию, чтобы превратить геометрию в ее представление хорошо известного текста (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' 

, который возвращает й = долготу, у = ш, но быть что если у вас сложная геометрия, центроид может быть очень обманчивым, в зависимости от того, что вы делаете.

НТН

G $

0

Im не конечно, если вы можете обрабатывать объект geom в 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

Смежные вопросы