首页 / 浏览问题 / 组件GIS / 问题详情
iObject中场景选点问题
匿名
2017年07月14日
使用版本为8.1 描述下问题 在三维地下管线的程序中加入了示例程序的场景测量功能 这个测量功能只能把点选在模型对象或者是sceneControl的地面模型对象上 不能点在没有实体的位置 也就是说 只要我的地下管线周围没有填充任何对象物体 换句话说 在地下空间除了三维管线模型之外的空间都没法点上点

针对此种情况 有没有什么解决方法?

1个回答

您好,这种情况获取到的点是在地面上的,您可以自己在程序里看一下,点是获取到了的。
5,985EXP 2017年07月14日
意思是在内存里是获取到了点的信息 但是没有在场景里显示出来?
我在三维管线区域使用了sceneControl.Scene.GlobalImage.AddExcavationRegion函数 在场景中空出一个范围
您这边是要做一个什么功能?
就是做一个断面分析 需要在场景中 更准确的说 是在地下场景中选点拉出线 与线相交的管线对象执行断面分析
您是通过什么方法获取的点对象?鼠标点击?
嗯 是的
鼠标点击的部分 我打算从场景量算的程序中截取
你是怎么截取到点对象的?通过Scene.PixelToGlobe 方法 ?,还是在track事件里面e.Geometry?
使用Tracking3DEventHandler类 事件里面有用到e.Geometry
Tracking3DEventHandler类以及 Tracked3DEventHandler类都用到了 在Tracked3DEventHandler类中 使用了Geometry3D geometry = e.Geometry;
emmmm ,,, 这个Geometry3D是获取三维模型几何对象的类。。。。
在bd_sceneControl.MouseUp += SceneControlMouseUp;

SceneControlMouseUp中用到了Scene.PixelToGlobe方法
你可以看一下您获取到的对象是否为空,对象是什么类型的?点?线?另外使用了sceneControl.Scene.GlobalImage.AddExcavationRegion做了一个填挖方?然后出现了什么问题啊,该对象所处范围不是透明显示的?
是这样 在程序中的量测功能可以正常使用 在地形模型以及地下管线模型都是获取到了点 但是也仅仅只能在模型对象处获取点

使用sceneControl.Scene.GlobalImage.AddExcavationRegion做的挖方是为了把我地下三维管线暴露出来 该范围是透明显示的

我现在的问题是 需要在没有对象的地方选点 选取不了
这样吧 我把我的问题重新说下 我现在需要在sceneControl上载入的地下空间的任意位置 划线 这条线截取涉及到的管线 就是我拿来做分析用的数据 我现在需要一个方法 来绘制这样的一根线

想问下 有什么方法能做到 然后由这条断面线与管线相交 如何去检测 用什么方法
绘制线您可以注册一个鼠标点击事件,记录鼠标点击的位置,使用Scene.PixelToGlobe()将屏幕点转换成坐标点,再有获取到的一系列点,构成一个线对象,GeoLine3D(Point3Ds),另外你的管线是什么类型的对象,矢量线对象还是模型对象?
三维线数据集 匹配 三维模型符号 这个怎么算
您试一下这个Geometrist3D.HasIntersection 方法,看能查出相交不
好的 辛苦了 下午写程序看下
...