首页 / 浏览问题 / 组件GIS / 问题详情
动态图层模型定位
8EXP 2017年04月20日
动态图层中的三维模型如何实现查询并定位?

1个回答

如果是动态图层里的对象,那么可以通过该对象的索引或标签得到该对象(DynamicLayer.get()),然后获取该对象的中心点,场景飞到这个中心点即可(scene.flyToPoint())。
1,430EXP 2017年04月20日
怎么获取动态图层对象?

通过地图对象获取到动态图层集合,再通过索引获取到指定的动态图层对象,如

map.getDynamicLayers().get(),具体接口的描述说明及使用,建议查看联机帮助文档

示例项目Dynamiclayer里应该如何获取到有具体值的动态图层?
通过索引获取到DynamicLayer(如:DynamicLayers.get(0)),然后从动态图层里通过索引或标签获取到对象Geometry(如:DynamicLayer.get(0))。
DynamicLayers如何获取

map.getDynamicLayers(),建议你去看看联机帮助文档和示范代码

怎么通过SceneControl拿到map?
直接贴具体代码吧,就以示例项目Dynamiclayer来做
动态图层只支持地图里显示,场景SceneControl并没有动态图层这个说法,也不支持。
DynamicLayer这个示例不就是场景的应用么?怎么能说场景没有动态图层这个说法呢
//初始化动态图层
                if (m_layer3DDynamicObject == null)
                {
                    m_layer3DDynamicObject = m_sceneControl.Scene.Layers.Add("DynamicLayer", Layer3DType.DynamicModel, true, "test") as Layer3DDynamicObject;
                    m_layer3DDynamicObject.UpdateInterval = 1200;
                }

没有动态图层这个说法那这个注释是什么情况?

或者说,有如下需求可以用什么方法去实现:

  1. 当不想往记录集中添加几何对象,而又需要这个几何对象的时候,就可以把这个几何对象临时添加到动态图层。
  2. 当需要对目标进行动态跟踪的时候,如果把目标放到记录集中,要实现动态跟踪就得不断地刷新整个图层,这样会大大影响效率,如果将这个需要进行跟踪的目标放到动态图层上,这样可以获得更好的性能。
  3. 3.当需要进行批量地往记录集中添加几何对象的时候,可以先将这些对象临时放在动态图层上,确信需要添加之后再把动态图层上的几何对象批量地添加到记录集中。
哦,明白了,咱们java组件没有开这个接口,你说的是.net产品,我们.net组件产品的同事给你回复哈。
场景中动态图层主要是用于动画展示,只能添加或者删除,没有查询的接口;

关于你说的其他两种情况,你可以使用跟踪图层(trackinglayer),而不是动态图层,跟踪图层提供增删改查的方法。
通过跟踪图层查询到的模型怎么高亮显示?就是模型数量比较多的时候能够让人一眼看出查的具体是哪个模型
直接给对象设置一个明显的风格:

GeoStyle3D style3d = new GeoStyle3D();            
style3d.FillForeColor = Color.Red;
geo.Style3D = style3d;
现在有个问题,使用跟踪图层添加模型几次后模型不见了,只有在运行程序的一瞬间才能看到模型一闪而过,这是什么情况?
...