bentley map 更新 oracle spatial 数据实验

本帖最后由 背风的阴凉地儿 于 2014-1-8 11:26 编辑

这个实验过程是12年初,为了一个项目做的技术可行性实验,实验的目的检验 map 实时更新 oracle spatial 数据的可行性。
数据数据是某勘测院提供,数据格式为 ArcGIS 的 mdb. 基础地形数据。同时有对应的 dgn 原始测量数据。

  实验过程涉及的软件包括, arcgis, bentley map , fme.

基本情况介绍:
   现在国内应用 microstation 来做地形图的部门,大多前段采用 microstation 采集数据,然后用 geographic 构面,处理文字的属性关联,然后入 arcgis 库。这套流程基本比较顺利,也效率比较高。
   但是更新的问题比较大,在修测时,如果流程过于严格,对外业人员要求太高,并且外业测图费用越来越离谱,外业队伍根本养不起能把这些软件玩的很熟的队伍。那么在更新时势必要和新入库一样,将数据重新制作一遍。
   本实验的目的看是否可以对外业不做要求,直接采用图形对比的方式,用 map 更新地理空间库。

   基本思路:
     数据最终存储 oracle spatial 库。
     外业的数据只要求将新增要素放在特殊层。采用图形对比的方式更新。

   要求:
     数据只有一份,arcgis sde 也可以直接连接。
     bentley map 也可以直接check out 查看。
     任何一方修改,其他软件都可以看到效果。

  关于录屏说明:
     我本来对每一个步骤都做了录屏,但是网站上传不能大于 1m, 我就只截里面的一些图吧,如果想看录屏操作,请直接联系我。
  并且里面的数据是某勘测院的实际数据,还没有征求甲方的同意,暂时就不惹事了。

已邀请:

背风的阴凉地儿

赞同来自:

本帖最后由 背风的阴凉地儿 于 2014-1-8 11:41 编辑

 步骤一:建立 oracle spatial 原始库
     要求,arcgis , map 都能访问。
     
     这里麻烦的地方是, ArcGIS SDE , Bentley Map 都是在标准 oracle spatial 格式的基础上扩展了一些特殊字段,或者要求才可以连接的。实验了很多种方法,才可以三方都显示,并且互操作。
     Oracle spatial ,我想我应该是研究的比较深的,直接写过解析各种图形,拼 sql 语句来入库,包括投影,还有栅格数据都自己写过解析程序。
     FME 经常使用,ArcGIS 开发入门。

     下面是原来实验过程的记录:
 1)首先恢复 Arcgis 库,采用 FME 将 Arcgis mdb 库以 oracle spatial 的方式入到 Arcgis SDE 库中。
2)为了实验以后分区管理,我给数据集前面加了前缀,便于管理各个片区的数据,这里加了 QD_T2_。
3)把标准 oracle spatial 数据注册成 Arc SDE 数据。
sdelayer -o register -l QD_T2_BOOL,GEOM -e l+ -C OBJECTID,SDE -u sde -p sde -i esri_sde -t SDO_GEOMETRY
4)数据在 bentley map 中注册,查询更新,需要两个条件。一个是有一个关键字段,一个是需要关键字段建立序列。
每个数据集加一个 fid 的字段。
UPDATE QD_T2_BOOL SET FID=OBJECTID
ALTER TABLE QD_T2_BOOL MODIFY (FID NOT NULL);
ALTER TABLE QD_T2_BOOL ADD CONSTRAINT QD_T2_BOOL_PK PRIMARY KEY ( FID ) ENABLE;
CREATE SEQUENCE QD_T2_BOOL_SEQ INCREMENT BY 1 START WITH 1 MINVALUE 1 CACHE 20 ORDER;
5)最后在 Arcgis 要察看数据,需要更新索引。要不然看不到数据。
create index QD_T2_BOOL_GI on QD_T2_BOOL(GEOM) indextype is mdsys.spatial_index;

实验过程:
最开始直接用 arcCatalog 导入 mdb 到 sde,选择存储为 oracle spatial 的 SDE_GEOMETRY 存储,发现在 bentley map 下无法查询,更新。
原因是bentley map 对数据有要求,1)must have a geometry column (SDO_GEOMETRY) 2)The feature table must have a primary key constraint consisting of a single numeric or string/character column 3)The table fields must be of a common type, not a user defined type.
就是最后这个条件不满足, SDE 在入库时会给数据集添加一个 SE_ANNO_CAD_DATA 的 blob 字段。
This column is extra data for CAD and annotation features (e.g. true curves).

最后还是用 FME 转换比较好,其实也可以用其他软件入库。
过程比较繁琐,就不录屏了,对最后入好的 Oracle Spatial ArcSDE 库数据进行浏览。
视频中可以看到现在 xfm 也可以像属性表一样浏览,定位,操作等等。
原来 geographic 中的拓扑整饰,拓扑生成工具还都在。

  

背风的阴凉地儿

赞同来自:

步骤二:Bentley Geospatial Administrator 研究
  
  待续

背风的阴凉地儿

赞同来自:

步骤三: geographic 作业环境

实际上注册了 oracle spatial 库,就可以在里面编辑,修改,更新数据了。

但那只是存在于理论层面的,在实际作业根本不可行。

那么还是需要一个采编环境。



看视频实际上导入 geographic 工程是简单的,但是他需要我们的数据库符合 geographic 的规则。
feature 表必须有,在 mscatalog 中必须注册用户表。
用户表必须存在,而且每张表都要有 mslink 和 mapid 两个字段。
还要有 ugcommand 和 ugfeature 表,用来读放置命令和线型信息。
这些表我简单加了下,可能不是很完整。


在视频中能看到实际上填写属性时还有很多需要改进的地方,比如 gb ,mslink 等可以提取的。
这个在 Bentley Geospatial Administrator 都可以定制,可以修改对话框,也支持直接开发。


  待续

背风的阴凉地儿

赞同来自:

  步骤四:数据更新解决方案

    待续

背风的阴凉地儿

赞同来自:

步骤五:bentley v8i map 新东西

待续

背风的阴凉地儿

赞同来自:

步骤五: 线面手工更新
   待续

背风的阴凉地儿

赞同来自:

最后总结:
  应用 map 理论上可以做到对 oracle spatial 数据的实时更新,但是如果要在国内落地生根,还需要大量的工作要做。
  比如,图面的曲线,弧线要素,似乎现在不支持,而且图形不对不容易。
     图面的文本要素,而且地形图图式对注记有非常高的要求,可能需要很多智慧才能实现,首先图形的文本和 GIS 的文本就不是一个表示方法,而且牵扯到各个软件的显示区别。
     

  待续

xyhou

赞同来自:

> forum.php?mod=redirect&goto=findpost&pid=34826&ptid=7816
最后总结:
  应用 map 理论上可以做到对 oracle spatial 数据的实时更新,但是如果要在国内落地生根 ...


我们干过同样的事。
你说的很多问题都能解决,不过是自己开发系统,直接操作oracle spatial。

xyhou

赞同来自:

> forum.php?mod=redirect&goto=findpost&pid=34820&ptid=7816
 步骤一:建立 oracle spatial 原始库
     要求,arcgis , map 都能访问。
     


我测试时用了另外两种方式也可以实现map和arcgis都能访问
方法一,使用oracle的shp2sdo工具将shp数据导入到oracle spatial;
方法二,将dgn数据使用bentley map的dgn2sdo工具将dgn数据导入到oracle spatial。
当然,这两种方法都要使用sde命令注册,和自己写触发器创建唯一的fid,还有就是要用oracle spatial创建空间索引。

xyhou

赞同来自:

> forum.php?mod=redirect&goto=findpost&pid=34822&ptid=7816
步骤三: geographic 作业环境

实际上注册了 oracle spatial 库,就可以在里面编辑,修改,更新数 ...


“实际上注册了 oracle spatial 库,就可以在里面编辑,修改,更新数据了。

但那只是存在于理论层面的,在实际作业根本不可行。”

{:soso_e179:}{:soso_e181:}

快乐小乞丐

赞同来自:

则个绝对要顶
不知道这个技术到底怎么样啊,好几年前我也测试过,但是发现没有办法行通
不知道国内现在有没有单位已经使用这个技术了呢

快乐小乞丐

赞同来自:

不知道视频文件能否给我发一份呢!

shanzhu

赞同来自:

使用Geospatial Server(Project Wise的地理空间扩展)三层架构+ Connector for ArcGIS可以在线、离线的直接编辑ArcSDE数据。

要回复问题请先登录注册