在基于ArcEngine的三维开发时,如何在ArcSceneControl中获取实时x,y,z坐标并显示到状态栏:
很明显,要让鼠标在三维场景视图ArcSceneControl中移动时,在状态栏实时显示xyz坐标,肯定要用到的是OnMouseMove事件。
首先添加该事件,然后在状态栏添加三个显示坐标值的控件,可以是文本框、标签等,能显示坐标文本就行了。这里就不赘述了,比较简单。
下面看最核心的代码,就是如何获取xyz坐标值:
barEditItemX.EditValue = "";
barEditItemY.EditValue = "";
barEditItemZ.EditValue = ""; //三个显示坐标的控件。根据需要自己设置就行,不一定是这种
IHit3DSet pHit3Dset = null;
axSceneControlMain.SceneGraph.LocateMultiple(axSceneControlMain.SceneGraph.ActiveViewer,
e.x, e.y, esriScenePickMode.esriScenePickAll, false, out pHit3Dset);
pHit3Dset.OnePerLayer();//
IHit3D pHit3D;
int i;
//遍历结果集
for (i = 0; i < pHit3Dset.Hits.Count; i++)
{
pHit3D = pHit3Dset.Hits.get_Element(i) as IHit3D;
if (pHit3D.Owner is ILayer)
{
barEditItemX.EditValue = pHit3D.Point.X.ToString();
barEditItemY.EditValue = pHit3D.Point.Y.ToString();
barEditItemZ.EditValue = pHit3D.Point.Z.ToString();//三个显示的控件,也换成自己使用的就行
}
}
接口可以查对象模型图,方法都在里面。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有