欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

ArcGis Runtime SDK for .Net

程序员文章站 2023-12-26 15:27:39
...

1:全新的Map控件 MapView
在之前的版本包含两个控件,一个MapView,主要显示Map的容器,另一个是Map,主要是图层的集合,在新版本这两个控件集成到一个了,让开发者使用更加的方便。

2:FeatureLayer的变化
featurelayer的数据来自于featuretables

var gdb = await Geodatabase.OpenAsync(GDB_PATH);  
  
               Envelope extent = new Envelope();  
               foreach (var table in gdb.FeatureTables)  
               {....}

通过QueryAsync直接查询,而不需要必须借助于QueryTask

var features = await cities.FeatureTable.QueryAsync(new QueryFilter() { WhereClause = where.Text});  
               queryResults.GraphicsSource = features.Select(f => new Graphic(f.Geometry));

更多的是用Task的方式,而区别于以前的Event模式

QueryTask queryTask = new QueryTask(  
                   new Uri("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/5"));  
                    var stateName = (string)(QueryComboBox.SelectedItem as Graphic).Attributes["STATE_NAME"];  
               Query query = new Query(string.Format("STATE_NAME = '{0}'", stateName))  
               {  
                   OutFields = OutFields.All,  
                   ReturnGeometry = true,  
                   OutSpatialReference = mapView.SpatialReference  
               };  
  
               var result = await queryTask.ExecuteAsync(query);

Task是从 .Net frameworks4.0引进的,它的出现是为了使多线程编程变得简单,Task和Thread还不是一回事,Task由TaskManager管理,一个Task会执行在一个Thread上,但是如果没有足够的Thread,TaskManager会暂时挂起这个Task,直到有足够的Thread资源为止。Task的另外一个好处是TaskManager会把执行这些Task的Thread自动的分配在不同的Core上,就是所谓的并行编程。

await极大简化了异步代码量,await和async是.Net Frameworks4.5的新特性,是长时间操作任务的福音。在.NET4.5中新增了异步编程的新特性async和await,使得异步编程更为简单。通过特性可以将这项复杂的工作交给编译器来完成了。之前传统的方式来实现异步编程较为复杂,这样对于程序猿来说处理起来比较困难,调试也没那么方便,后续的维护工作也比较痛苦。

AsyncAwait关键字是C#异步编程的核心。通过使用这两个关键字,你可以使用.NET Framework 或 Windows Runtime的资源创建一个异步方法如同创建一个同步方法一样容易。

相关标签: ArcGis

上一篇:

下一篇: