新的Telerik UI。net MAUI?开始30天的免费试用

.NET MAUI映射形状文件层

ShapefileLayer类提供了一种将ESRI shapefile加载到Map中并可视化其中定义的形状的方法。您需要创建一个ShapefileLayer,并将其添加到收集的RadMap。

读取一个形状文件

ShapefileLayer提供了一个读者属性,用于从定义的shapefile读取数据。的读者是类型的Telerik.XamarinForms.Map.MapShapeReader并且有两个重要的属性,你需要应用,以便正确加载和可视化你的形状:

  • (类型的Telerik.Maui.Controls.Compatibility.Map.MapSource) -获取或设置指向要从中读取数据的.shp文件的MapSource。
  • 数据源(类型的Telerik.Maui.Controls.Compatibility.Map.MapSource-获取或设置指向*dbf文件的MapSource,其中包含形状文件中每个形状的数据(或属性)。

以上使用MapSource类提供了一些有用的静态方法来帮助加载shapefile:

  • FromResource(string资源,程序集sourceAssembly) /FromResource(string resource, Type resolvingType):你可以从两个覆盖中选择,轻松创建MapSource从所提供的嵌入式资源。

  • FromStream(流流)-返回一个MapSource从一个经过的流中。

  • FromFile(字符串文件)返回MapSource从传递的字符串中表示特定的文件路径。

此外,MapShapeReader提供只读形状属性,该属性可用于获取从Source读取的所有形状的列表。

获得最佳视野

ShapefileLayer提供了一种可视化形状的方法,以实现层的最佳视图。方法通过GetBestView方法:

  • LocationRectGetBestView ()-获取代表该层的最佳视图的位置矩形。

首先,LocationRect类的特殊类型Telerik.Maui.Controls.Compatibility.ShapefileReader命名空间,它描述了一个矩形区域通过西北到东南的位置点。

有关点如何在地理坐标系统中定位的详细信息,请查看层的概述的话题。

因此,通过GetBestView方法,地图将计算包含所有形状的区域,以及应用适当的缩放级别,以获得最佳视图。之后,可以将结果直接传递给SetViewMap实例的方法如下:

var bestView = this.mapShapeLayer.GetBestView();this.map.SetView (bestView);

标签

属性可以为ShapefileLayer中的每个形状添加标签ShapeLabelAttributeName属性中的一个属性。dbf文件在该层的DataSource属性中指定。

请看下面的例子:

        

在哪里数据源mapshaperreader的.shp和.dbf文件,分别定义为:

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

映射ShapeLayer标签

选择

RadMap支持单个和多个形状选择,以帮助您在特定区域吸引注意力。你需要设置SelectionMode属性的ShapefileLayer来启用选择。

SelectionMode可以接收以下值:

*没有;*单;*多个。

读了选择主题,以获取有关此功能的详细信息。

样式

RadMap提供了将各种填充和描边颜色应用到形状的选项,以使地图与应用程序的设计一致。更多细节请检查样式篇文章。

另请参阅

在本文中
找不到你需要的帮助?
Baidu
map