GIS派-shaoge

GIS, 2DGIS, 3DGIS, WEBGIS,3DWEBGIS

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

PandaGIS的SkyLine开发教程(1)__三维场景下的矢量数据的属性查询方法和对象闪烁

使用SkyLine平台进行三维GIS系统开发,可以在三维场景中加载各种二维矢量数据,有常见的Shp数据,KML数据,还有以WFS形式发布的矢量数据等。这样我们就面临一个新的问题,那就是二维矢量数据在三维场景下的查询
   
   通常我们把Shp格式的数据导入三维场景中,无论直接导入还是以流的方式导入,都能够进行对象查询。对于线型对象,只要能够捕捉到线对象,就能进行属性查询,而导入的面对象,则要注意对于面的透明度这一属性进行设置,不能为零,否则无法捕捉到面对象。
      对于线闪烁和面闪烁则通过改变其线宽,边界颜色,填充颜色和透明度来实现。以下是线闪烁和面闪烁的相关代码,以供学习
            if (tempObj.ObjectType == TerraExplorerX.ObjectTypeCode.OT_POLYLINE)
            {
               //保存原有属性
                FgColor = tempObj.FgColor;
                FgAlpha = tempObj.FgAlpha;
                LineWidth = tempObj.LineWidth;

                tempObj.LineWidth = LineWidth + 3;
                tempObj.FgColor = 255;
                tempObj.FgAlpha = 1;
            }
            if (tempObj.ObjectType == TerraExplorerX.ObjectTypeCode.OT_POLYGON)
            {
                //保存原有属性
                FgColor = tempObj.FgColor;
                FgAlpha = tempObj.FgAlpha;
                LineWidth = tempObj.LineWidth;
                BgColor = tempObj.BgColor;
                BgAlpha = tempObj.BgAlpha;

                tempObj.LineWidth = LineWidth + 3;
                tempObj.BgColor = 65535;
                tempObj.BgAlpha = 0.36;
                tempObj.FgColor = 255;
                tempObj.FgAlpha = 1;
            }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (bVisable)
            {
                //隐藏对象
                tempObj.Visible = 0;
            }
            else
            {
                //显示对象
                tempObj.Visible = 1;
            }
            bVisable = !bVisable;
        }

posted on 2009-08-06 13:05  shaoge  阅读(2335)  评论(2编辑  收藏  举报