.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
方法:
- LocationRect
GetBestView ()
-获取代表该层的最佳视图的位置矩形。
首先,LocationRect
类的特殊类型Telerik.Maui.Controls.Compatibility.ShapefileReader
命名空间,它描述了一个矩形区域通过西北到东南的位置点。
有关点如何在地理坐标系统中定位的详细信息,请查看层的概述的话题。
因此,通过GetBestView
方法,地图将计算包含所有形状的区域,以及应用适当的缩放级别,以获得最佳视图。之后,可以将结果直接传递给SetView
Map实例的方法如下:
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;
选择
RadMap支持单个和多个形状选择,以帮助您在特定区域吸引注意力。你需要设置SelectionMode
属性的ShapefileLayer来启用选择。
SelectionMode
可以接收以下值:
*没有;*单;*多个。
读了选择主题,以获取有关此功能的详细信息。
样式
RadMap提供了将各种填充和描边颜色应用到形状的选项,以使地图与应用程序的设计一致。更多细节请检查样式篇文章。