sde用sql实现erase

概述:

本文讲述基于Arc SDE forOracle实现erase空间分析计算。


实现流程:


1、叠加计算

判断叠加,非叠加部分即为一部分所要结果,叠加部分进入第二步;

2、合并计算

根据objectid进行union计算;

3、差异计算

用原始数据data1和合并计算后的结果进行差异计算,所得的结果即为另一部分所要结果。

 

相关sde函数介绍:

1、sde.st_intersection(st_geometryshape1,  st_geometry shape2)

         语法:

                   参数:(st_geometry shape1,  st_geometryshape2)

                   返回值:st_geometry shape

         解释:

                   Returns a geometry that represents the shared portion of shape1 andshape2.

         示意:



2、sde.st_union(st_geometryshape1,  st_geometry shape2)

         语法:

                   参数:(st_geometry shape1,  st_geometryshape2)

                   返回值:st_geometry shape

         解释:

                   Returns a geometry that represents the point set union of theGeometries.

         示意:


3、sde.st_difference(st_geometryshape1,  st_geometry shape2)

         语法:

                   参数:(st_geometry shape1,  st_geometryshape2)

                   返回值:st_geometry shape

         解释:

                   Returns a geometry thatrepresents that part of geometry A that does not intersect with geometry B.

         示意:


说明:

看到图3,很多人就开始问了:erase的效果不就是图3的效果吗,为什么还要那么多步?是的,对于两两的geometry来说,difference结果即为我们想要的erase的结果,但是,对于两个图层来说,difference后的结果是整个data2的结果,并且结果中会有一些叠加与重复。为什么会出现这样的结果呢,我想sde的算法实现中,也是两两做的计算,因此,计算的结果就是整个data2的结果。举例:A为data1的一个要素,B、C分别为data2的两个要素,在sde中,difference计算的结果为图4,1和2分别为计算后的结果,并重叠在一起显示,但是实际中,我们想要的及全国是图5。


图4

图5

实现sql实例:

1、计算叠加

insert intohx2q_risk_result_temp(objid,shape)

  select *

    from (select a.objectid,sde.st_intersection(a.shape, b.shape) as shape

            from hx2q_project a, hx2q_landnormb

           where a.ptcode = 'm01'

             and b.ptcode = 'm01'

             and a.status = '开工'

             and b.confirm = '已取得'

             and a.flag = 0

             and b.flag = 0)

   where sde.st_area(shape) > 0

2、计算union

3、计算difference

insert intoHX2Q_RISK_RESULT

  (objid, ptcode, Shape, objectid)

select a.objectid,

       a.ptcode,

       sde.st_difference(a.shape, b.shape) asshape,

       SDE.version_user_ddl.NEXT_ROW_ID('HX2Q','36') as objectid

  from hx2q_project a, hx2q_risk_result_temp b

 where a.objectid = b.objid

4、获取非叠加

insert intoHX2Q_RISK_RESULT

  (objid, ptcode, Shape, objectid)

select objectid,

       ptcode,

       shape,

       SDE.version_user_ddl.NEXT_ROW_ID('HX2Q','36')

  from hx2q_project

 where objectid not in (select distinct objidfrom hx2q_risk_result_temp)

 and ptcode = 'm01' and flag = 0 and status = '开工'

说明:

1、difference计算中,where后的条件是必须的;

2、union计算是通过后台程序实现的。





本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/27824.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SDE常用函数

SDE常用函数 arcgis sde库常用函数:(示例使用Oracle数据库) 1、ST_AsText 返回表示几何的文本字符串(wkt) sde.st_astext(shape) SELECT SDE.ST_ASTEXT(SHAPE) FROM TEXT结果: 2、ST_Geometry ST_Geometry 通过文本(wkt,坐…

Sentaurus SDE

Sentaurus SDE visual

sde方面的一些疑问(笔记)

sde: (1)ArcSDE 服务自 ArcGIS 10.3 起不再可用。但是,ArcGIS 10.3.1 和更高版本的客户端仍可以使用 ArcSDE 服务连接到 10.1 或 10.2.x 版本的地理数据库。 http://desktop.arcgis.com/zh-cn/arcmap/latest/manage-data/admini…

Sentaurus TCAD学习之SDE

Sentaurus TCAD学习之Sde 分析IGBT例子中SDE代码 分析IGBT例子中SDE代码 ; Using DF-ISE coordinate system for structure generation //使用DF-ISE坐标系生成结构 (sde:set-process-up-direction "z");---------------------------------------------------------…

SDE:Stochastic Differential Equation 简述

一、ODE vs. SDE 常微分方程(ODE)的基本形式为: 一般来说其解是一条确定的曲线,而随机微分方程(SDE),其结果是一个随机的过程,最终得到是的多种样本轨道。 那么在ODE方程里加入随机性主要有两种方式: 1、随机化初值…

ArcEngine连接sde并读取数据

第一步:创建空数据库 打开SQL Server 2012,新建一个空的数据库,我这里命名为TestGDB 第二步:建立SDE数据库 打开ArcMap,在ArcToolbox中选择数据管理工具下的地理数据库管理,点击创建企业级地理数据库。…

ArcCatalog连接PostgreSQL创建SDE库

本文默认环境已经安装好ArcGIS及PostgreSQL。 1.将 ArcGIS桌面程序安装目录下的文件([Installdir]\DatabaseSupport\PostgreSQL\9.2\Windows64)拷贝到postgresql安装目录下的lib文件夹 2.将32位的postgresql library 安装目录 bin文件夹的5个dll文件&…

配置 SDE 的 st_geometry

终于搞好了软件,搞好了 SDE 的 Post,现在还有一个问题,即使用 SQL 直接操作 sde for oralce,只有这种操作,才最高效,也是该项目的最终目标。 马上找了一个测试 sql 语句做试验: select sde.ST…

SDE —— 扩展SDE表空间容量

扩展SDE表空间容量 起因解决总体流程 查看表空间基本属性查看表空间物理存储文件位置及状态信息查看表空间中各“段类型(Segment)”创建新的物理存储文件以扩展表空间重设原有数据文件的大小使指定表空间物理文件容量自动增加使表空间自动扩容&#xff0…

CSND近期推出的猿如意到底怎么样?

CSND近期推出的猿如意到底怎么样? 投稿测评正文 猿如意传送门 猿如意下载地址:猿如意-程序员的如意兵器,工具代码,一搜就有 猿如意使用了几次了,今天来想分享一下我对于猿如意的使用感受吧!! 先说结论&#xff1a…

匆匆遭遇猿如意

刚刚收到一条消息,说有一个csdn的猿如意可以测试了,我就下载了一个,根据提示下载了,然后开始体验。 一、ChatGPT 谁让这个东西最近这么热呢,所以,我第一个就体验这个东东了,结果,结…

高效好用的开发工具箱——猿如意

目录 前言: 1.我常用的功能介绍 2.主要功能chatGPT测评 3.我的使用体验和改进建议 前言: 猿如意是一款帮助开发的效率工具,集成了许多有用的工具和文档教程。帮助开发者提升开发效率,帮你从“问题”找到“答案”。尤其是12月…

mongodb偶尔报错com.mongodb.MongoSocketReadException: Prematurely reached end of stream

项目开发中,链接mongodb的项目,偶尔报错com.mongodb.MongoSocketReadException: Prematurely reached end of stream 报错的详细信息: 2022-07-11 08:34:00.001 INFO 1 --- [ scheduling-1] o.s.d.mongodb.core.convert.QueryMapper :…

【强烈推荐】程序员平时使用最多的绘图软件之一!!!

draw.io 之前画图一般都是使用processOn(https://www.processon.com/),缺点就是只能通过网站画图,并且存在云端,不花钱想白嫖,只能画几张。 像我这种家庭条件,怎么用得起,而且我喜欢把东西存…

聊聊最适合程序员的画图工具

画图工具 没问题,直接坦白讲,我用了 2 年的画图工具是:draw.io。 我的图解文章里的图片全是在 draw.io 这个工具画的,写了那么久的图解文章,再加上我工作中也有画图的习惯,累计也有在上面画了接近 1000 张…

一款国内外流行的绘图软件,Visio国产类似工具!

如果大家因为价格较高、电脑系统限制、运行环境限制、操作不习惯等原因,想要寻找Visio的替代品,那我真心推荐你试下国产软件亿图图示。 亿图图示可替代Visio的优势和理由有7个: 1、跨平台设计,云端储存 关键词:兼容…

科研画图都用什么软件?

在看一些文章的时候,经常感觉有些概念图画的非常精致漂亮,但是不知道是用什么软件画的,各位大神都习惯使用什么样的软件呢 兔森破兔样 ,原以为遇到无脑喷子是大V们的特权,今天… 20 人赞同 注意题主问的是科研文章中的…

OpenAI 人工智能绘图工具 DALLE 好用吗?

用朴素的语言,还原你天马星空的想象。 喜悦 早上,终于收到了 OpenAI 的通知 —— 漫长的排队后,我可以用 DALLE 了。 这款人工智能绘图工具让我种草了多长时间?其实都快忘了,哈哈。查了一下,我是 4 月 7 日…

Web在线聊天室(完结) --- 注册用户+ip地址

注册用户 注册用户接口设计前端异步回调ajax函数编写servlet实现注册业务逻辑操作数据库插入新用户实现效果 项目发布地址 注册用户 接口设计 请求: POST /register {name: xxx,password: xxx,nickName: "蔡徐坤",signature: "我擅长唱跳rap篮球", } 响应…

IP获取方法二:太平洋网络IP地址查询Web接口

接口列表: (1)ip.jsp(2)ipJson.jsp(3)jsAlert.jsp(4)jsDom.jsp(5)jsFunction.jsp(6)jsLabel.jsp(7)jsWrite.jsp(8)whois/index.jsp(9)ipAreaCoord.jsp(10)ipAreaCoordJson.jsp 接口参数:param ip:可指定IP地址,不指定则取request.getRemoteAddr()的值。…