Страница 1 из 1
Как отобразить 3D объекты из Oracle 11g в ArcScene 10.2?
Добавлено: 03 апр 2015, 14:24
empirik
Oracle 11 умеет работать с пространственными данными. Уже есть часть продуктов которые могут читать ее и отображать. Но тут встала проблема при внедрении ArcGiS 10.2. Данные хранятся в специальных столбцах типа MDSYS.SDO_GEOMETRY. Что-то сложнее 4-х угольника ArcGis отказывается понимать. Кто-нибудь решал подобную задачу по совмещению ArcScence и Oracle Spatial? Если решали, то что делали ? Очень важно остаться в этом формате.
Re: Как отобразить 3D объекты из Oracle 11g в ArcScene 10.2?
Добавлено: 03 апр 2015, 22:43
SergeyRyzhkov
Часть продуктов которые умеют читать и понимать,по крайней мере я,уже использовал в 1999 году. Что именно не получается?
[ Сообщение с мобильного устройства ]
Re: Как отобразить 3D объекты из Oracle 11g в ArcScene 10.2?
Добавлено: 03 апр 2015, 23:48
empirik
Прочитать геометрию из базы данных сложнее четырех угольника. У нас есть продукт который может читать и писать 3D. Но вот ArcSde не может читать сложную геометрию из 2-х и более полигонов. У всех объектов SRID выставлен в NULL.
Когда их читает ArcSde то она их не отображает, хотя говорит, что строки есть
Re: Как отобразить 3D объекты из Oracle 11g в ArcScene 10.2?
Добавлено: 04 апр 2015, 00:09
SergeyRyzhkov
Честно,не совсем понял,что за четырёхугольник и т.д. Мы в спешл загоняли мультипатчи 3д и читали в сцене,все через арксде. Я в понедельник постаоаюсь помочь,с тел тяжело писать
[ Сообщение с мобильного устройства ]
Re: Как отобразить 3D объекты из Oracle 11g в ArcScene 10.2?
Добавлено: 04 апр 2015, 20:29
empirik
Попробую внести ясность. Мы создаем таблицу
Код: Выделить всё
CREATE TABLE TEST.TEST_GEOMETRY
(
OID INTEGER,
CAPTION VARCHAR2(60 BYTE),
GEOMETRY MDSYS.SDO_GEOMETRY
)
COLUMN GEOMETRY NOT SUBSTITUTABLE AT ALL LEVELS
TABLESPACE USERS
RESULT_CACHE (MODE DEFAULT)
PCTUSED 0
PCTFREE 10
INITRANS 1
MAXTRANS 255
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING;
insert into MDSYS.SDO_GEOM_METADATA_TABLE
values ('TEST', 'TEST_GEOMETRY', 'GEOMETRY', mdsys.sdo_dim_array (mdsys.sdo_dim_element('X', -100000, 100000, 0.001),
mdsys.sdo_dim_element('Y', -100000, 100000, 0.001),
mdsys.sdo_dim_element('Z', -1000, 1000, 0.001)),NULL);
CREATE INDEX TEST.TEST_GEOMETRY_idx ON TEST.TEST_GEOMETRY(GEOMETRY) INDEXTYPE IS MDSYS.SPATIAL_INDEX;
После этого добавляем две записи. Вот эту запись он отображает.
Код: Выделить всё
insert into TEST.TEST_GEOMETRY (OID,CAPTION,GEOMETRY) values (2,'Test2',MDSYS.SDO_GEOMETRY(3003, NULL, NULL,
MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1),
MDSYS.SDO_ORDINATE_ARRAY(
1.5,0,0,
2.5,1,0,
1.5,2,0,
0.5,2,0,
0.5,0,0,
1.5,0,0)));
А вот эту запись он не отображает.
Код: Выделить всё
insert into TEST.TEST_GEOMETRY (OID,CAPTION,GEOMETRY) values (2,'Test2',MDSYS.SDO_GEOMETRY(3003, NULL, NULL,
MDSYS.SDO_ELEM_INFO_ARRAY(1,1003,1),
MDSYS.SDO_ORDINATE_ARRAY(
1.5,0,1,
2.5,1,2,
1.5,2,1,
0.5,2,2,
0.5,0,1,
1.5,0,2)));
Re: Как отобразить 3D объекты из Oracle 11g в ArcScene 10.2?
Добавлено: 05 апр 2015, 11:47
SergeyRyzhkov
Вроде все нормально. Завтра глянем.
Единственно что сразу бросается,вторая запись - полигон не замыкается.
[ Сообщение с мобильного устройства ]
Re: Как отобразить 3D объекты из Oracle 11g в ArcScene 10.2?
Добавлено: 05 апр 2015, 21:21
empirik
Простите. Залил косячный пример. Если конечную точку поправить, то отображается. Но вот пример, взятый из документации не отображается.
Код: Выделить всё
insert into TEST.TEST_GEOMETRY values(5,'TEST5',
SDO_Geometry (3003,NULL,NULL ,
SDO_Elem_Info_Array(1,1006,2,1,1003,1,16,1003,1),
SDO_Ordinate_Array(
0.5,0.0,0.0,
0.5,1.0,0.0,
0.0,1.0,1.0,
0.0,0.0,1.0,
0.5,0.0,0.0,
1.5,0.0,0.0,
2.5,1.0,0.0,
1.5,2.0,0.0,
0.5,2.0,0.0,
0.5,0.0,0.0,
1.5,0.0,0.0
)));
Взят вот с этой страницы
http://isu.ifmo.ru/docs/doc111/appdev.1 ... schema.htm
Re: Как отобразить 3D объекты из Oracle 11g в ArcScene 10.2?
Добавлено: 06 апр 2015, 13:23
SergeyRyzhkov
Сейчас нет возможности поэкспериментировать

,
попробуйте проверить на валидность геометрии.
http://docs.oracle.com/cd/B19306_01/app ... m#BGHFDDBF
ЗЫ: SDO_Elem_Info_Array(1,1006,2,1,1003,1,16,1003,1) - какой-то странный
ЗЫЗЫ: Все замкнули в геометрии?
Re: Как отобразить 3D объекты из Oracle 11g в ArcScene 10.2?
Добавлено: 16 апр 2015, 16:29
empirik
Добрались до тех поддержки ArcGis. Ответ был следующим.
ArcScene "не понимает" замкнутые объемные фигуры, если это не мультипачи (которые можно сделать только в БГД-СУБД, а не в простой СУБД, насколько я знаю). Если нужны замкнутые объемы, то их придется делать из 2 половинок.
У меня как раз был такой объект замкнутый. Так вот вопрос что такое этот мультипач? И как его записать в базу?
Я ни как не могу найти какому типу геометрии (GTYPE) он должен соотвествовать.