yjinf
路人甲
路人甲
  • 注册日期2004-09-20
  • 发帖数47
  • QQ
  • 铜币253枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1318回复:2

我这种思路对不对?

楼主#
更多 发布于:2005-03-31 16:31
要在地图上实时显示一些设备的状态,设备状态我用的是专题图方法,状态值从数据库中取出。我首先绑定数据源到图层,然后在定时器中使用Dataset.Refresh从数据源中更新数据并更新专题图。这种思路应该是正确的吧?

但是我发现每次在定时器中调用Dataset.Refresh时,整个图形画面都闪烁一下,我定的时间又比较短(3秒钟‘),所以画面就过3秒闪一下过3秒闪一下。

不知道这种问题怎样解决?MapX中有没有显示缓存之类的机制?
喜欢0 评分0
chaimin1400
路人甲
路人甲
  • 注册日期2003-10-11
  • 发帖数315
  • QQ
  • 铜币533枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2005-03-31 21:16
<P> 动画图层在地图图元需要频繁更新的地方尤为实用,例如实时的应用程序。例如,您可以开发车队管理应用程序,在其中将每个车辆表示为一个点对象。您可以使用全球定位卫星 (Global Positioning Satellite, GPS) 技术接收当前的车辆坐标,然后更新点对象,在地图上显示当前的车辆位置。在此类型的应用程序中,地图对象不断变化,如果正在更新的对象存储在动画图层中而不是常规图层中,地图的重新绘制将会更加迅速。
 AnimationLayer 最初设置为空。您可以将 Layer 对象分配给属性,令该图层称为动画图层(可以是常规图层或用户绘图图层)。将图层分配给 AnimationLayer 属性时,它将在所有图层顶部绘制,包括注释图层和选择。该图层还处于 Layer 集合的相同位置上。浮动对象,类似图例,将仍然显示在动画图层的 顶部,尽管它们由于已经剪切而无需每次重新绘制。如果正常的图层用作动画图层,选择和标记仍然 有效。</P><P> 示例</P><P> Set Map1.Layers.AnimationLayer = Map1.Layers(3)</P><P> 该属性可用于确定当前哪一图层是动画图层(如有):</P><P> for each lyr in Map1.Layers
 if Map1.Layers.AnimationLayer = lyr then ...
 end if
 next</P><P> 要关闭动画图层,可以将该图层指定为空:</P><P> Set Map1.Layers.AnimationLayer = nothing</P>
举报 回复(0) 喜欢(0)     评分
yjinf
路人甲
路人甲
  • 注册日期2004-09-20
  • 发帖数47
  • QQ
  • 铜币253枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2005-04-01 09:29
<P>我用过动画图层,并不能改善我说的问题。我觉得我的问题主要出在定时地Dataset.Refresh,对于一幅数据量比较大的地图,什么都不干,就是定时地Dataset.Refresh,它也会闪烁的.</P><P>“在调用 Refresh 方法之后,数据将从原始数据源重新读取,并使用由 Dataset 中的字段定义的聚集方法重新聚集。任何基于 Dataset 的主题将更新以体现新的数据。”</P><P>我再想用什么方法可以替代掉Dataset.Refresh并提高刷新效率呢?</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部