微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Silverlight 4系列 +VS2010 + ArcGIS9.3 系列 缓冲区分析

       前段时间空间分析的作业,老师给了个题目:基于服务的空间分析。于是乎连续几天奋战在这个上面,有点小心得,分享一下。

       对于ArcGIS Server 能发布的那一系列服务我就不多说了,本文的缓冲区分析是基于几何服务的。

       (1 )发布地图

       在ArcGIS Server中发布不需要任何地图资源的Geometry Services(几何服务)。New Services 服务类型选择Geometry Services。

       (2)代码实现

       在前台代码中不需要添加地图资源,只需要一个显示的graphicslayer,以及一些SimpleMarkerSymbol的设置。

后台代码中完成bufferPointsGP_ExecuteCompleted及bufferPointsGP_Failed两个函数,并在map_click事件中加入服务初始化:

GeometryService  geometryService =

new GeometryService("http://tasks.arcgisonline.com/ArcGIS/rest/services/Geometry/GeometryServer");

geometryService.BufferCompleted += bufferPointsGP_ExecuteCompleted;

geometryService.Failed += bufferPointsGP_Failed;

 

      添加几何图层graphicslayer并把地图上的点加至graphic当中

 

Graphicslayer graphicslayer = map1.Layers["graphicslayer"]as Graphicslayer; graphicslayer.Cleargraphics();

e.MapPoint.SpatialReference = map1.SpatialReference;

 Graphic graphic_buffer = new ESRI.ArcGIS.Client.Graphic()

    {

       Geometry = e.MapPoint,

       Symbol = LayoutRoot.Resources["DefaultClickSymbol"]as ESRI.ArcGIS.Client.Symbols.Symbol

     };

graphic_buffer.SetZIndex(1);

 graphicslayer.Graphics.Add(graphic_buffer);

 

       使用BufferParameters参数将graphic和距离两个参数传至geometryService.BufferAsync执行。

 

bufferParams.Features.Add(graphic_buffer);

bufferParams.distances.Add(0.01);//距离单位为公里

geometryService.BufferAsync(bufferParams);

 

      几何服务比较简单,作业中还做了基于GP服务的最短路径分析,可参看本人博文《Silverlight 4系列 +VS2010 + ArcGIS9.3 系列   最短路径分析》

 

详细代码可参照 http://www.voidcn.com/article/p-ziqugwee-ow.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐