前段时间空间分析的作业,老师给了个题目:基于服务的空间分析。于是乎连续几天奋战在这个上面,有点小心得,分享一下。
对于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 系列 最短路径分析》
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。