search
HomeDatabaseMysql TutorialArcGIS10.2发布Oracle Spatial存储的Feature Service的编辑问题

环境: ArcGIS Desktop10.2 ArcGIS Server 10.2 ArcSDE10.2 Oracle 11.2.0.3 问题描述:根据ArcGIS10.2 的新特性,ArcGIS Server10.2可以发布原生的数据库存储的Feature Service。也就是说,我可以发布在没有任何ArcSDE环境下的使用Oracle Spatial存储的数据

环境:

ArcGIS Desktop10.2

ArcGIS  Server 10.2

ArcSDE10.2

Oracle 11.2.0.3


问题描述:根据ArcGIS10.2 的新特性,ArcGIS Server10.2可以发布原生的数据库存储的Feature Service。也就是说,我可以发布在没有任何ArcSDE环境下的使用Oracle Spatial存储的数据的Feature Service,直接编辑Oracle Spatial数据。但是我发布完相关服务,可以进行数据删除,在进行新增数据的时候没有反应。查看浏览器的F12信息,

报:Rowbuffer creation failed.

ArcGIS10.2发布Oracle Spatial存储的Feature Service的编辑问题


但是,通过ArcGIS10.2连接非ArcSDE环境的数据库,也可以创建Oracle Spatial存储的数据,这个数据发布Feature Service 编辑数据没有任何问题。

ArcGIS10.2发布Oracle Spatial存储的Feature Service的编辑问题

帮助上如下所示:

http://resources.arcgis.com/en/help/main/10.2/index.html#/What_s_new_in_ArcGIS_10_2/016w0000005s000000/

Publishing feature services from databases
Prior to 10.2, you could only publish a map service with feature access enabled (a feature service) to ArcGIS Server if the database contained a geodatabase. At 10.2, you can publish editable feature services from supported database management systems. See the ArcGIS database management system requirements for a list of supported databases and spatial data types.


Beginning with ArcGIS 10.2, you should use ArcGIS Server feature services to publish data from a database rather than using ArcGIS Spatial Data Server feature services, as these have been deprecated.

延伸阅读:

也就是说,我在不用安装ArcSDE库的情况下,可以使用ArcGIS Server10.2发布Oracle(Oracle Spatial)、SQLServer(Geometry、Geography)、PostgreSQL(PostGIS Geometry)存储的Feature Service。


非常纳闷,这本来是ArcGIS10.2的新特性,怎么就不能编辑呢?


经过N天的沟通和研究,我发现了一个问题。而问题出在我自己的数据上。

我的Oracle有两个实例,一个实例安装了SDE库,另一个实例就是一个非SDE库的环境,我构造的Oracle Spatial数据,是使用ArcGIS Desktop连接SDE库,创建了SDO_Geometry的要素类,然后通过Oracle的EXP/IMP的方法导入到非SDE库,这样也能达到模拟Oracle Spatial数据存储的环境,但是正是这个数据导致了相关问题。


首先我们看一下原生的Oracle Spatial数据的结构:

SQL> desc  MDSYS.SDO_GEOMETRY
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 SDO_GTYPE                                          NUMBER
 SDO_SRID                                           NUMBER
 SDO_POINT                                          MDSYS.SDO_POINT_TYPE
 SDO_ELEM_INFO                                      MDSYS.SDO_ELEM_INFO_ARRAY
 SDO_ORDINATES                                      MDSYS.SDO_ORDINATE_ARRAY

--------------------------------------------------------------------------------------------

Blog:               http://blog.csdn.net/linghe301
Weibo:            http://www.weibo.com/linghe301
--------------------------------------------------------------------------------------------


但是,在SDE环境下,通过桌面创建的Oracle Spatial数据的结构
SQL> desc wgs_p
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 OBJECTID                                  NOT NULL NUMBER(38)
 SHAPE                                              MDSYS.SDO_GEOMETRY
 SE_ANNO_CAD_DATA                                   BLOB


ArcGIS不光创建了MDSYS.SDO_GEOMETRY以外,还创建了一个SE_ANNO_CAD_DATA字段。


Tips:如果存储 CAD 和注记属性,则会向业务表中添加一个附加列。
SDO_GEOMETRY 类型无法存储 ArcGIS 存储必定支持的所有类型的几何元素。当需要存储这些元素时(由创建要素类时所指定的几何类型标记决定),ArcGIS 会向业务表中添加名为 SE_ANNO_CAD_DATA 的列。

每当 ArcGIS 检测到数据源中含有 CAD 数据时,ArcGIS 就会将 CAD 数据的简单几何表示写入 SDO_GEOMETRY 值中并将未修改的 CAD 数据写入 SE_ANNO_CAD_DATA 值中。如果数据源中不含 CAD 数据,ArcGIS 会将 SE_ANNO_CAD_DATA 值设置为 NULL。SE_ANNO_CAD_DATA 属性包含来自大量 ArcGIS 组件的数据:

  • 来自 ArcSDE CAD 客户端的 AutoCAD 或 MicroStation 数据 
  • 来自 ArcMap 的三次样条和贝塞尔曲线等参数对象 
  • 来自 ArcGIS Spatial Analyst 扩展模块的表面片 

我尝试是否是这个字段导致的问题,进行相关测试,该字段并不是导致该问题的原因。


而且我还发现,使用桌面在SDE环境下创建的带有Oracle Spatial存储的表的结构是

-- Create table
create table SDO
(
  OBJECTID         INTEGER not null,
  SHAPE            MDSYS.SDO_GEOMETRY,
  SE_ANNO_CAD_DATA BLOB
)
tablespace SDE
  pctfree 0
  initrans 4
  maxtrans 255;
-- Create/Recreate indexes 
create unique index R95_SDE_ROWID_UK on SDO (OBJECTID)
  tablespace SDE
  pctfree 0
  initrans 4
  maxtrans 255;
使用桌面,在非SDE环境下创建的Oracle Spatial存储的要素类的结构是
-- Create table
create table AAB
(
  OBJECTID INTEGER not null,
  SHAPE    MDSYS.SDO_GEOMETRY
)
tablespace ESRI
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
-- Add comments to the columns 
comment on column AAB.OBJECTID
  is 'ESRI auto-incrementing';
-- Create/Recreate primary, unique and foreign key constraints 
alter table AAB
  add primary key (OBJECTID)
  using index 
  tablespace ESRI
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
我曾经试图去比较两者的区别,但是感觉有深层次的差别,其实是没有找到具体原因。


也就是说,非SDE环境下(ArcGIS Desktop或者SQL语句)创建的OracleSpatial存储的数据可以发布要素服务,而且可以编辑,但是在SDE环境下发布的要素类,将该表迁移到非SDE环境下发布Feature Service服务,编辑就报错。


最后,解决方法:使用该功能,建议在非SDE环境下直接创建,而不能是其他迁移过来的数据。

--------------------------------------------------------------------------------------------

Blog:               http://blog.csdn.net/linghe301
Weibo:            http://www.weibo.com/linghe301
--------------------------------------------------------------------------------------------


其他扩展:关于Oracle Spatial

将数据以Oracle Spatial进行存储,Oracle也有一个关于投影的系统表,还有一个管理这些空间数据的系统表。


关于空间数据系统表

 将 SDO_GEOMETRY 列添加到业务表时,它还会将所需的 Oracle Spatial 元数据记录添加到 USER_SDO_GEOM_METADATA 视图。此元数据包括表名称、SDO_GEOMETRY 列名称、空间参考 ID 和坐标维度信息。

ArcGIS10.2发布Oracle Spatial存储的Feature Service的编辑问题

关于投影的系统表,可以查看MDSYS.CS_SRS,相关的SRID信息必须在该表里面,如果没有,你的数据显示就会有相关问题。

ArcGIS10.2发布Oracle Spatial存储的Feature Service的编辑问题


关于Oracle Spatial的空间索引:

数据库中有好多的MDRT打头的表,而这些表的字段都是一样的,那这些表是做什么用呢?


MDRT_$: 用来存储与空间索引相关的信息。这些表与常规表不一样,不能做复制,删除,新建等。如果对这些表进行操作后,会导致其对应的空间索引无效,因此必须重新将该索引删除重建。
    SQL> ALTER TABLE MDRT_1F89F$ MOVE STORAGE(INITIAL 1M) ;
            ALTER TABLE MDRT_1F89F$ MOVE STORAGE(INITIAL 1M)
           ORA-30967: 不允许在路径表上直接执行操作
具体如下:


    不应当将MDRT表从一个表空间移动到另一个表空间:如果这样做,相应的空间索引将不可用,所有基于表索引的空间操作符都将失效。在这种情况下,恢复的唯一方法就是删除并重建空间索引。为了避免这些问题,应确保数据库管理员知道这个限制并在执行一些优化时不要移动MDRT表。可以在创建空间索引时使用tablespace参数来指定MDRT表需要的表存储空间。
    
    不应该删除/修改MDRT表或MDRS序列:当它们与任何空间索引都不关联时(在正常的情况下,这种情况是不能发生的),可以删除它们。可以通过检查USER_SDO_INDEX_METADATA视图来确定所有的MDRT表与用户的空间索引是否相关联。
  SQL> SELECT sdo_index_name, sdo_index_table, sdo_rtree_seq_name  FROM USER_SDO_INDEX_METADATA; 


    不应当显式地导出MDRT表:当导入一个表时,如含有空间索引的customers表,相应的空间索引信息同样被导出。在导入的过程中,空间索引(和相应的MDRT表)将被重建。不需要导入或导出任何MDRT表(或MDRS序列)。


    不应当将MDRT表复制到一个复制型数据库中:如果想复制一个用户表,如customers表,所有你要复制的就是那个customers表。你需要显式地在复制实例上创建空间索引。
 

--------------------------------------------------------------------------------------------

Blog:               http://blog.csdn.net/linghe301
Weibo:            http://www.weibo.com/linghe301
--------------------------------------------------------------------------------------------


Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
PHP8.1发布:引入curl多个请求并发处理PHP8.1发布:引入curl多个请求并发处理Jul 08, 2023 pm 09:13 PM

PHP8.1发布:引入curl多个请求并发处理近日,PHP官方发布了最新版本的PHP8.1,其中引入了一个重要的特性:curl多个请求并发处理。这个新特性为开发者提供了一个更加高效和灵活的方式来处理多个HTTP请求,极大地提升了性能和用户体验。在以往的版本中,处理多个请求往往需要通过创建多个curl资源,并使用循环来分别发送和接收数据。这种方式虽然能够实现目

最低3999元!消费级真AR眼镜雷鸟X2正式发布最低3999元!消费级真AR眼镜雷鸟X2正式发布Oct 13, 2023 pm 05:25 PM

【CNMO新闻】北京时间10月13日14点,雷鸟科技正式召开了雷鸟创新新品发布会。在此次发布会上,雷鸟为消费者带来了消费级真AR眼镜——雷鸟X2,新品售价4999元,首发用户可享4499元,而所有此前购买过雷鸟产品或者类似友商产品的用户,则可享受3999元的优惠价。雷鸟X2采用无线一体化设计,能够像普通眼镜那般,不会遮挡正常眼神。新眼镜还配备有前置摄像头,拥有5P镜头和1600万像素,可以带来第一视角画面,同时其还支持息屏拍照,只需滑动镜角就可以更好的捕捉那些稍纵即逝的画面。新AR眼镜还配备有光

马自达计划于2024年发布全新马自达6车型马自达计划于2024年发布全新马自达6车型Sep 30, 2023 pm 02:21 PM

马自达公司最近透露了备受期待的计划,据官方消息,全新的马自达6将于2024年上半年正式发布,并计划在同年年底上市销售。这款全新的马自达6将采用全新的后驱平台,为马自达的车型带来全新的驾驶动力体验马自达的欧洲开发与工程负责人JoachimKunz在最近的一次采访中表示,虽然他们正在开发新平台,但这一平台不会被用于生产全新一代的马自达5轿车,也不会用于其他大型运动轿车的制造。这一决策似乎反映了市场需求的变化,因为现今的消费者更加偏好SUV车型,而不是传统的轿车。Kunz进一步指出,尽管六缸发动机和后

长微博怎么发布长微博怎么发布Feb 29, 2024 pm 02:04 PM

在软件微博中可以安好需要发布不同格式的微博文章。有不少用户不太清楚长微博怎么发布。在发布页面的更多中选择长微博,完成编辑并发布即可。这篇长微博发布方法介绍就能够告诉大家具体内容,下面就是详细介绍,赶紧看看吧!微博使用教程长微博怎么发布答:在发布页面的更多中选择长微博,完成编辑并发布即可具体介绍:1、登陆微博,点击下方的【+】。2、选择右侧的【更多】。3、点击【长微博】。4、进行文章编辑后,点击【完成】。5、再点击右上角的【发布】。6、即可成功发布长微博了。

今日头条怎么发布自己的作品今日头条怎么发布自己的作品Feb 23, 2024 pm 09:19 PM

今日头条怎么发布自己的作品?今日头条中是可以发布喜爱的文章作品的,但是多数的小伙伴不知道今日头条如何的发布作品,接下来就是小编为用户带来的发布自己的作品方法图文教程,感兴趣的用户快来一起看看吧!今日头条怎么发布自己的作品1、首先打开今日头条APP,进入到主页面点击右下角【我的】专区;2、然后在我的专区,滑动选择【创作中心】服务功能;3、之后在创作中心的界面,点击右上角的【发布】;4、接着下方展开多功能栏,选择你需要发布作品的方式;5、最后编辑文章点击右上角的【发布】即可发布自己的作品。

全国首个DNA存储模型"ChatDNA"亮相发布全国首个DNA存储模型"ChatDNA"亮相发布May 29, 2023 pm 06:31 PM

5月22日消息,今天的中国日期。在浙江嘉善举办的祥符创新论坛转化医学产业高峰论坛取得了圆满成功。据ITBEAR科技资讯了解,该论坛旨在围绕精准医学及生命科学前沿热点问题展开讨论,并分享最新的诊断技术、基因测序等前沿领域的进展,以推动医学产业的健康发展。与会专家汇聚一堂,分享实践经验和创新思路。论坛期间,还举行了重磅发布和联盟签约仪式。上海人工智能研究院、祥符实验室以及转化医学国家科学中心(上海)联合发布了全国首个DNA存储领域预训练大模型——"ChatDNA"。该模型的发布将

RTX5090什么时候发布RTX5090什么时候发布Feb 18, 2024 pm 04:42 PM

50系显卡预计将会在2024年年底进行发布,从第四季开始将会陆续发布,不过50系显卡笔记本预计要等待27年才会进行发售。RTX5090什么时候发布:答:2024年年底之前1、自2024年第四季开始,NVIDIA首推50系列显卡,预计2024年内正式发布,5090与5080预计秋季冬季上市,70和60则定在2025年公布。同期,NVIDIA自产产品预定2023年面世。值得注意的是,50系列笔记型电脑推广需待时日,或需等到2027年前后方能问世。2、目前,初步预计RTX50系列显卡至少要到2024年

如何在uniapp中实现小程序开发和发布如何在uniapp中实现小程序开发和发布Oct 20, 2023 am 11:33 AM

如何在uni-app中实现小程序开发和发布随着移动互联网的发展,小程序成为了移动应用开发的一个重要方向。而uni-app作为一个跨平台的开发框架,可以同时支持多个小程序平台的开发,如微信、支付宝、百度等。下面将详细介绍如何使用uni-app开发和发布小程序,并提供一些具体的代码示例。一、小程序开发前准备在开始使用uni-app开发小程序之前,需要做一些准备工

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Repo: How To Revive Teammates
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SecLists

SecLists

SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment