如何使用ArcGIS中的动态显示技术
答案:1 悬赏:30 手机版
解决时间 2021-01-07 17:41
- 提问者网友:嗝是迷路的屁
- 2021-01-06 20:51
如何使用ArcGIS中的动态显示技术
最佳答案
- 五星知识达人网友:一把行者刀
- 2021-01-06 21:50
如何使用动态显示技术
3.1概述
这个介绍主要说明如何有效地使用ArcGIS Framework中的动态显示技术。介绍当前的一些使用方法和需求,演示一些GIS中需要采用动态显示技术的例子,以及一些接口的使用介绍。
3.2 Dynamic map在动态显示技术中的使用
推荐使用基于DynamicMap类的IDynamicMap接口,来使Dynamic map可用或不可用。
下面是IDynamicMap使用代码:
[C#]
//Cast the dynamic map from the focus map.
IDynamicMap dynamicMap = m_hookHelper.FocusMap as IDynamicMap;
//Make sure to switch into dynamic mode.
if (!dynamicMap.DynamicMapEnabled)
dynamicMap.DynamicMapEnabled = true;
[VB.NET]
' Cast the dynamic map from the focus map.
Dim dynamicMap As IDynamicMap = CType(m_hookHelper.FocusMap, IDynamicMap)
' Make sure to switch into dynamic mode.
If (Not dynamicMap.DynamicMapEnabled) Then
dynamicMap.DynamicMapEnabled = True
End If
(上述或以下有可能涉及的代码都是.net例子,但是最近我自己完成了vc6.0的Demons)
当设置Dynamic map为Enable,那么动态显示将使用OPenGL的render context来绘制基本的地图图层和动态图层。
3.3 Dynamic mode下的绘图
以下是两种Dynamic mode绘图方式:
(1) 实现IDynaimcLayer接口中的DrawDynamicLayer方法
(2) 监听动态显示的两个事件:
IDynamicMapEvents.BeforeDynamicDraw;
IDynamicMapEvents.AfterDynamicDraw;
3.3.1 绘图方式的两种选择(事实是本质的draw都是OpenGL方法)
(1)使用AO的API
(2)直接调用OpenGL的API
默认情况下OpenGL的纹理(texture)可用。需要注意的是,在最初需要开始利用OpenGL的方法时,要求关闭OpenGL 2D texture flag。
3.4绘图方式采用使用AO的API
[C#]
//Set the marker symbol.
m_dynamicSymbolProps.set_DynamicGlyph(esriDynamicSymbolType.esriDSymbolMarker,
m_markerGlyphs[2]);
//Draw a marker symbol.
DynamicDisplay.DrawMarker(m_point);
3.1概述
这个介绍主要说明如何有效地使用ArcGIS Framework中的动态显示技术。介绍当前的一些使用方法和需求,演示一些GIS中需要采用动态显示技术的例子,以及一些接口的使用介绍。
3.2 Dynamic map在动态显示技术中的使用
推荐使用基于DynamicMap类的IDynamicMap接口,来使Dynamic map可用或不可用。
下面是IDynamicMap使用代码:
[C#]
//Cast the dynamic map from the focus map.
IDynamicMap dynamicMap = m_hookHelper.FocusMap as IDynamicMap;
//Make sure to switch into dynamic mode.
if (!dynamicMap.DynamicMapEnabled)
dynamicMap.DynamicMapEnabled = true;
[VB.NET]
' Cast the dynamic map from the focus map.
Dim dynamicMap As IDynamicMap = CType(m_hookHelper.FocusMap, IDynamicMap)
' Make sure to switch into dynamic mode.
If (Not dynamicMap.DynamicMapEnabled) Then
dynamicMap.DynamicMapEnabled = True
End If
(上述或以下有可能涉及的代码都是.net例子,但是最近我自己完成了vc6.0的Demons)
当设置Dynamic map为Enable,那么动态显示将使用OPenGL的render context来绘制基本的地图图层和动态图层。
3.3 Dynamic mode下的绘图
以下是两种Dynamic mode绘图方式:
(1) 实现IDynaimcLayer接口中的DrawDynamicLayer方法
(2) 监听动态显示的两个事件:
IDynamicMapEvents.BeforeDynamicDraw;
IDynamicMapEvents.AfterDynamicDraw;
3.3.1 绘图方式的两种选择(事实是本质的draw都是OpenGL方法)
(1)使用AO的API
(2)直接调用OpenGL的API
默认情况下OpenGL的纹理(texture)可用。需要注意的是,在最初需要开始利用OpenGL的方法时,要求关闭OpenGL 2D texture flag。
3.4绘图方式采用使用AO的API
[C#]
//Set the marker symbol.
m_dynamicSymbolProps.set_DynamicGlyph(esriDynamicSymbolType.esriDSymbolMarker,
m_markerGlyphs[2]);
//Draw a marker symbol.
DynamicDisplay.DrawMarker(m_point);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯