Xamarin的Telerik UI?下载30天免费试用

选择

RadMap控件公开选择功能。它允许用户从每个ShapefileLayer应用的源中选择一个或多个形状。该特性为用户的操作提供了可视化和程序化的反馈。

的以下成员ShapefileLayer类都与选材有关:

  • SelectionMode: Enum属性,指示将选择什么。它可以接收以下值:

    • 没有一个;
    • 单身;
    • 多个。
  • SelectedShape(类型的IShape):定义当前选择的形状实例。当启用多重选择时,此值将设置为第一个选定的形状。

  • SelectedShapes(类型的ObservableCollection < IShape >):读取当前所选形状的集合。当选择是单一的,只有一个形状可以被选择-因此集合将有count = 1。

  • SelectedShapeStyle(类型的MapShapeStyle):通过提供的StrokeWidth, StrokeColor和FillColor属性定义所选形状的外观。有关MapShapeStyle用法的更多详细信息,请参见形状样式的话题。

下面的代码片段展示了如何做到这一点SelectionMode应用:

        < / telerikMap: RadMap >

在哪里数据源mapshaperreader的.shp和.dbf文件分别设置为:

var assembly = this.GetType().Assembly;var source = MapSource.FromResource("SDKBrowser.Examples.MapControl.world. "轴马力”,装配);var dataSource = MapSource.FromResource("SDKBrowser.Examples.MapControl.world. "dbf”、装配);this.reader.Source =源;this.reader.DataSource = dataSource;

检查下面的RadMap与几个选定的形状将看起来像:

地图多重选择

下面的代码段演示了如何以编程方式选择某个形状。在本例中,使用的ESRI文件包含世界地图,因此所选择的形状是一个国家。该示例使用形状属性来遍历所有可用的形状。

让我们选择/取消选择“France”,例如,点击按钮:

下面是事件处理程序:

private void SelectFranceClicked(对象发送者,EventArgs e) {var shape = this.GetItemFromCountryName("France");if (shape != null) {this.mapShapeLayer.SelectedShapes.Add(shape);}} private void DeselectFranceClicked(对象发送者,EventArgs e) {var shape = this.GetItemFromCountryName("France");if (shape != null && this. mapshapelayer . selectedshape . contains (shape)) {this. mapshapelayer . selectedshape . remove (shape);}} private IShape GetItemFromCountryName(string countryName) {foreach (var shape in this.reader.Shapes) {var name = shape. getattribute ("CNTRY_NAME").ToString();if (name == countryName){返回形状;}}返回null;}

结果如下:

地图程序化选择

的“映射/选择”文件夹中可以找到样例程序化选择示例浏览器应用程序

另请参阅

在本文中
Baidu
map