浏览问题
等待回复
精选文章
申请试用
资源中心
漏洞修复
注册
|
登录
SuperMap技术问答社区
我要
提问
智能客服
首页
/
浏览问题
/
桌面GIS
/
问题详情
如何获取三维缓冲区包含的网络数据集的对象
亚特兰蒂...
54EXP
2019年10月11日
通过三维线geometry创建了三维缓冲区geoModel3D,
Geometry3D geoModel3D = Geometrist3D.CreateBuffer(geometry, bufferAnalyst3DParameter, prjCoordSys);
然后遍历网络数据集得到recordset,通过SpatialQuery3D.SpatialQuery判断三维线和缓冲区的关系,应该是Contain,为什么得到的是Unknow呢,请问应该如何获取缓冲区内包含的三维线呢?
三维缓冲区,网络数据集,布尔运算
请
登录
或者
注册
后回答这个问题。
1个回答
您好,因为SpatialQuery3D.SpatialQuery支持的数据类型为点或者模型数据,你要判断它们之间的关系,用SpatialQuery3D.GetRelativePosition就行了。至于你说的如何获取缓冲区内包含的线?没太明白,你本身就是用线做的缓冲区,那个几何对象你肯定是已经有了呀
邬袁凯
2,432EXP
2019年10月12日
geometry是三维线,类型是GeoLine3D,通过geometry创建缓冲区得到geoModel3D。但是当我使用SpatialQuery3D.GetRelativePosition的时候(代码如下)会报错,提示geometry几何对象类型不合法。所以我通过SpatialQuery3D.SpatialQuery得到它们的关系,结果得到的PositionMode是Unknow。
Geometry3D geoModel3D = Geometrist3D.CreateBuffer(geometry, bufferAnalyst3DParameter, prjCoordSys);
SpatialQuery3D.GetRelativePosition(geometry,geoModel3D,);
我的需求是通过某一条三维线创建了一个缓冲区,然后需要获取这个缓冲区所包含的Network图层所有的三维线。
您好,我看了下SpatialQuery3D这个类是只能模型与模型 模型与点之间的,如果你要判断几何体包含三维线,可以给两种思路
1.把线转成点,再计算出线的中点,判断线的两个端点和线的中点与模型的关系去判断线与模型的关系(自己写算法)
2.把线缓冲成体,半径小一点,比如设置0.1,使其几乎和你原来的线体积差不多,然后让这个缓冲体与另外一个缓冲体做模型布尔运算BooleanOperator3D
谢谢您提供的思路,可以实现呢
您好,还需要请教一个问题,不使用高度量算,如何直接获取两条三维线之间的垂直间距呢?有相关函数或者思路可以提供吗
不太明白,两条线的垂直间距?可以理解成两个线的中点之间的距离
是的,需求是计算专题图的两条三维线之间的垂直间距,没有相关的函数是吧,这样操作的话就需要自己写算法实现了
您好,你要算距离就geometrist.Distance可以算,你要算高度就两点Z值相减就是了呀
请
登录
或者
注册
后再添加评论。
智能推荐
相关问题
相关文章
推荐教程
获取三维缓冲区内包含的对象
超图FAQ:请教一个问题,用三维网络数据集发数据服务,查看帮助文档中这个接口目前不支持三维的数据进行空间分析查询;但是客户构建二维面范围去做CONTAIN(包含关系)去做空间分析查询,返回的是所有数据的信息
批量生成缓存,生成一个scp文件,包含多个数据集,如何获取单个数据集的数据?
网络路径分析中,如何将缓冲区分析得到的面作为障碍点的权值
图例、打断线、缓冲区查询对三维数据集无效
.Net组件怎么获取三维网络数据集下的节点数据
如何获取点坐标根据该点生成缓冲区,最好有代码
winfrom 具体对象如何添加缓冲区
热门文章
查看更多>
关注我们
超图软件官网
SuperMap Online
地图慧
帮助中心
备案信息
技术资源中心
...