ArcGIS API for Silverlight QueryTask 查询方法使用

private void InitAnimation()
        {
            QueryTask queryTask = new QueryTask("http://192.168.0.1:6080/arcgis/rest/services/···");
            queryTask.ExecuteCompleted += QueryTask_ExecuteCompleted;
            ESRI.ArcGIS.Client.Tasks.Query query = new ESRI.ArcGIS.Client.Tasks.Query();
            query.ReturnGeometry = true;
            //query.Where = "FractureSurfaceID" + "=" + "1" + " or " + "FractureSurfaceID" + "=" + "2";支持任何合法的SQL Where语句
            query.Where = "1=1";
            query.OutSpatialReference = new SpatialReference(102100); //输出要素的坐标系
            query.OutFields.Add("*"); //想要查询的字段  "*"表示全部字段
            queryTask.ExecuteAsync(query);
        }
        private void QueryTask_ExecuteCompleted(object sender, ESRI.ArcGIS.Client.Tasks.QueryEventArgs args)
        {
            FeatureSet featureSet = args.FeatureSet;
            GraphicsLayer graphicsLayer = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer;

            SpatialReference SR = graphicsLayer.SpatialReference;
            //一一读取查询的结果
            if (featureSet != null && featureSet.Features.Count > 0)
            {
                for (int i = 0; i < featureSet.Features.Count; i++)
                {
                    Graphic selectedFeature = featureSet.Features[i]; 
                    //查询结果高亮闪烁显示
                    selectedFeature.Symbol = LayoutRoot.Resources["StrobeMarkerSymbol"] as ESRI.ArcGIS.Client.Symbols.Symbol;
                    graphicsLayer.Graphics.Add(selectedFeature);
                }
            }
            else
            {

            }
        }
<Grid.Resources>
            <esri:MarkerSymbol x:Key="StrobeMarkerSymbol">
                <esri:MarkerSymbol.ControlTemplate>
                    <ControlTemplate>
                        <Canvas>
                            <VisualStateManager.VisualStateGroups>
                                <VisualStateGroup x:Name="CommonStates">
                                    <VisualState x:Name="Normal">
                                        <Storyboard RepeatBehavior="ForEver">

                                            <DoubleAnimation BeginTime="0"
																 Storyboard.TargetName="ellipse" Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleX)"
																 From="1" To="10" Duration="00:00:01" />

                                            <DoubleAnimation BeginTime="0"
																 Storyboard.TargetName="ellipse" Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleY)"
																 From="1" To="10" Duration="00:00:01" />

                                            <DoubleAnimation BeginTime="0"
																 Storyboard.TargetName="ellipse" Storyboard.TargetProperty="(UIElement.Opacity)"
																 From="1" To="0" Duration="00:00:01" />
                                        </Storyboard>
                                    </VisualState>
                                    <!--<VisualState x:Name="Normal" />-->
                                </VisualStateGroup>
                            </VisualStateManager.VisualStateGroups>
                            <Ellipse Height="10" Width="10" Canvas.Left="-5" Canvas.Top="-5" 
										 RenderTransformOrigin="0.5,0.5" x:Name="ellipse"
										 IsHitTestVisible="True"
										 >
                                <Ellipse.RenderTransform>
                                    <ScaleTransform />
                                </Ellipse.RenderTransform>
                                <Ellipse.Fill>
                                    <RadialGradientBrush>
                                        <GradientStop Color="#00FF0000" />
                                        <GradientStop Color="#FFFF0000" Offset="0.25"/>
                                        <GradientStop Color="#00FF0000" Offset="0.5"/>
                                        <GradientStop Color="#FFFF0000" Offset="0.75"/>
                                        <GradientStop Color="#00FF0000" Offset="1"/>
                                    </RadialGradientBrush>
                                </Ellipse.Fill>
                            </Ellipse>
                            <Ellipse Height="10" Width="10" Canvas.Left="-5" Canvas.Top="-5" 
										 Fill="#FFFF0000" x:Name="ellipse1"/>
                        </Canvas>
                    </ControlTemplate>
                </esri:MarkerSymbol.ControlTemplate>
            </esri:MarkerSymbol>
        </Grid.Resources>


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值