GraphicLayer+MapTip

原文地址:http://www.gisall.com/html/76/139076-3862.html

Query 允许从ArcGIS Server的地图服务中的要素图层中查询要素,或者通过MapIt Spatial Data Service在SQL Server中查询空间表。可以通过空间或者属性查询。

查询结果返回时,可以使用.net向他们的几何和属性展示出来。要执行一个查询任务,需要定义用户接口和执行逻辑。

    示例中的查询任务使用一个TextBox空间定义查询,一个Button执行查询任务。然后在启用了MapIt的Graphic Layer中显示。

    1、还是要先定义个含有TiledMapServiceLayer的Map。

    2、为Query 任务创建输入接口。

    示例中使用TextBox做定义查询,并使用Button执行查询。

    (1)在main page 中定义一个Canvas 来承载任务的输入接口。由于Silverlight渲染Canvas的速度是最快的,因此选择Canvas作为容器元素。   

<Canvas HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,7,0" Width="250" >
</Canvas>
  (2) 在canvas中定义个矩形作为输入接口的背景。
  (3) 添加一个TextBlock告诉用户如何使用该任务
  (4) 为指定查询定义TextBox,并在TEXT中添加一个默认查询语句。
  (5) 为执行查询添加一个Button,为Click事件指定一个handler。实现这个handler以进行查询。
<Canvas HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,7,0" Width="250" >
<Rectangle Fill="#CC5C90B2" Stroke="Gray" RadiusX="10" RadiusY="10" Width="230" Height="55" />
<TextBlock Text="Type a query and click Execute" Foreground="White" FontSize="10" Margin="10,5,0,0" />
<TextBox x:Name="QueryTextBox" Width="150" Margin="15,22,0,0" Text="POP07_SQMI > 500" />
<Button x:Name="QueryButton" Content="Execute" Margin="168,23,0,0" Click="QueryButton_Click" />
</Canvas>
 
 
  3、为查询任务创建输出接口
    为了显示输出结果,在这里需要定义一个Graphic Layer,一个SimpleFillSymbol作为静态源。
然后为显示查询结果的属性指定Maptips。MapTips将使用DictionaryConverter类来启用对查询结果属性的绑定。
 
  (1)在XML中添加两个命名空间。
    xmlns:esriConverters="clr-namespace:ESRI.ArcGIS.Client.ValueConverters;assembly=ESRI.ArcGIS.Client"
xmlns:esriSymbols="clr-namespace:ESRI.ArcGIS.Client.Symbols;assembly=ESRI.ArcGIS.Client"
>
  (2)指定一个DictionaryConverter 作为应用程序的资源。DictionaryConverter 允许指定绑定到一个特定的Dictionary Key。
 
  (3) 添加一个SimpleFillsymbol,随后在code-behind中将应用这个符号到任务的结果。
   
  (4)在Map控件中添加Graphiclayer。
 
  (5)在Graphiclayer中添加Maptip。先为Maptip的内容指定背景和边界,可以使用StackPanel。背景色则为在Grid中指定的颜色,
边界颜色则在Border中指定。按这样的方式配置的容器元素,Maptip将自动调整大小。
  
  (6)为州的名称添加textblock 并指定数据绑定到图形中要素的 STATE_NAME 属性。在此,使用前面定义的DictionaryConverter。
在MapTip元素中,DataContext是当前要素的Attribute属性。该属性是一个Dictionary,在这个Dictionary中,字段名和这个字段的属性值是key。
自DictionaryConverter启用了绑定到Dictionary中的key,并且Maptip元素中的DataContext是一个Dictionary,则DictionaryConverter可以用于在Maptip中指定绑定到字段名称的数据。
 
  (7)定义一个StackPanel来承载人口密度标注和值。在其中为标注添加TextBlock。再为人口密度值添加一个TextBlock,使用DictionaryConverter 绑定到 POP07_SQMI 字段。

原文地址:http://bbs.esrichina-bj.cn/ESRI/thread-58286-1-1.html

graphicLayer的maptip问题
编辑器加载中...

原文地址:https://www.cnblogs.com/hl3292/p/2111473.html