首页 / 浏览问题 / 三维GIS / 问题详情
如何获取模型旋转后的RotationZ
66EXP 2017年10月26日
你好,我编辑模型,移动了位置,并做了旋转。我获取Feature3D.Geometry.Position数值的确有变化,可是Feature3D.Geometry.RotationZ一直是0.要如何获取变化后的RotationZ?

if (null == sceneControl || string.IsNullOrWhiteSpace(layerName))
                return;
            var layerKML = m_SceneControlHelper.GetLayer3DKML(sceneControl, layerName);
            if (null == layerKML||null== layerKML.Features|| layerKML.Features.Count<=0)
                return;
            var features = layerKML.Features.GetFeatureArray(Feature3DSearchOption.AllFeatures);
            if (null == features || features.Length <= 0)
                return;
            features.ToList().ForEach(feature =>
            {
                if (string.IsNullOrWhiteSpace(feature.Name))
                    throw new Exception("if(string.IsNullOrWhiteSpace(feature.Name))");
                var smID = Convert.ToInt32(feature.Name);
                Dictionary<string, object> values = new Dictionary<string, object>();
                values.Add(LocalConstsFields.Height, feature.Geometry.Position.Z);
                values.Add(LocalConstsFields.RotationZ, feature.Geometry.RotationZ);
                var geometry = new GeoPoint { X = feature.Geometry.Position.X, Y = feature.Geometry.Position.Y };
                RecordsetHelper.UpdateGeometry(LocalVariables.SpatialDatasourceConnectionInfo, layerName, smID, geometry, values);
            });

1个回答

您好,您的问题已收到,目前正在进行测试。
5,560EXP 2017年10月27日
请问什么时候会有解决办法?
额请问您问的是组件吗?我看到var下意识以为是插件客户端了。

组件的话,rotationZ在feature3D.Geometry.Geometry中。
这个我知道,请看我写的代码,现在的问题是我编辑模型,移动了位置,并做了旋转。我获取Feature3D.Geometry.Position数值的确有变化,可是Feature3D.Geometry.RotationZ一直是0.要如何获取变化后的RotationZ?
feature3D.Geometry.Geometry.rotationZ哈,不是Feature3D.Geometry.RotationZ
没有feature3D.Geometry.Geometry.rotationZ,只有Feature3D.Geometry.RotationZ,你仔细看下。
额我写的简化版,完整版是

((feature3D.Geometry as GeoPlacemark).Geometry as Geometry3D).RotationZ
非常感谢
...