ArcGIS Server之高亮查询要素

ArcGIS Server之高亮查询要素 - [ArcGIS Server]

2009-12-01

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://geospatialthinking.blogbus.com/logs/52666699.html

GIS中,一般查询要素后,为提醒用户注意,都会在地图上用不同的颜色将要素高亮显示,或者以闪烁实现。

ArcGIS Server中,实现高亮查询要素有两种思路。一是在Manager中新建一个GraphicLayer层,这个层是在内层中的,然后在这个层上将需要高亮显示的要素重新画一遍。另一种思路是设置资源绘图功能的MapDescription属性的CustomGraphic属性。考虑到方法的难易程度,以及通用性,个人感觉用第一种方法更佳。第二种方法参见下面这篇博文:http://www.cnblogs.com/tuncaysanli/archive/2009/06/21/1507738.html

第一种方法的思路如下:

1.获得Manager里的GraphicResource,并在Resource里获取GraphicsLayer。

这个步骤有两个问题需要明确。一,GraphicResource是一种Resource,里面自然可以存1-n个Layer,而每一个Layer又是一个DataTable,两者之间是可以相互转换的。二,ArcGIS Server里的GraphicsLayer有2种,分别是ElementGraphicsLayer和FeatureGraphicsLayer。两种Layer最大的区别在于:ElementGraphicsLayer中可以存储不同类型的Geometry,类似于以前MO或者SO中的动态层,而且它不带属性信息;FeatureGraphicsLayer则相反,每一层只能存储同一几何类型的Geometry,且可以带属性信息。

2.获得查询要素的信息,并转化为Element,添加到ElementLayer中

GraphicElement element = new GraphicElement(geom, System.Drawing.Color.Yellow, System.Drawing.Color.Red);

从上面的代码我们可以发现,ESRI为GraphicElement提供了很多的构造函数,可以方便的新建GraphicElement。比如提供Element的颜色,选择的颜色,高亮的颜色,透明度等等,或者设置默认的style和选择状况下的style。

3.刷新地图,其中resourceName为GraphicResource的Name。

    public static void RefreshMap(Map map, string resourceName)
    {
        if (map.ImageBlendingMode == ImageBlendingMode.WebTier)
        {
            map.Refresh();
        }
        else if (map.ImageBlendingMode == ImageBlendingMode.Browser)
        {
            map.RefreshResource(resourceName);
        }
    }


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值