Geometry服务发布:
前端代码:
<UserControl x:Class="SilverlightApplication5.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:esri="http://schemas.esri.com/arcgis/client/2009" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400"> <Grid x:Name="LayoutRoot" Background="White"> <Grid.Resources> <esri:PictureMarkerSymbol x:Key="DefaultClickSymbol" OffsetX="11" OffsetY="39" Source="/car-red-16x16.png" /> <esri:SimpleFillSymbol x:Key="DefaultBufferSymbol" Fill="#660000FF" BorderBrush="Blue" BorderThickness="2" /> </Grid.Resources> <esri:Map Name="MyMap" MouseClick="Buffer_MouseClick" Extent="-122.5009,37.741,-122.3721,37.8089"> <esri:ArcGISTiledMapServiceLayer ID="ESRIMap" Url="http://services.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"/> <esri:Graphicslayer ID="MyGraphicslayer"> </esri:Graphicslayer> </esri:Map> <Grid HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,10,0" > <Rectangle Fill="#77919191" stroke="Gray" RadiusX="10" RadiusY="10" Margin="0,5" > <Rectangle.Effect> <DropShadowEffect/> </Rectangle.Effect> </Rectangle> <Rectangle Fill="#FFFFFFFF" stroke="DarkGray" RadiusX="5" RadiusY="5" Margin="10,15" /> <TextBlock x:Name="@R_299_4045@ionTextBlock" Text="Click on map to set a location. A buffer of 5 miles will be displayed." Width="200" TextAlignment="Left" Margin="30,20,25,30" textwrapping="Wrap" /> </Grid> </Grid> </UserControl>
private void ArcGISDynamicMapServiceLayer_InitializationFailed(object sender,EventArgs e) { Layer layer = sender as Layer; MessageBox.Show(layer.InitializationFailure.Message); } private void Buffer_MouseClick(object sender,Map.MouseEventArgs e) { Graphicslayer graphicslayer = MyMap.Layers["MyGraphicslayer"] as Graphicslayer; graphicslayer.Cleargraphics(); e.MapPoint.SpatialReference = MyMap.SpatialReference; Graphic graphic = new Graphic() { Geometry = e.MapPoint,Symbol = LayoutRoot.Resources["DefaultClickSymbol"] as Symbol }; graphic.SetZIndex(1); graphicslayer.Graphics.Add(graphic); GeometryService geometryService = new GeometryService("http://localhost/arcgis/rest/services/Geometry/GeometryServer"); geometryService.BufferCompleted += new EventHandler<GraphicsEventArgs>(geometryService_BufferCompleted); geometryService.Failed += new EventHandler<TaskFailedEventArgs>(geometryService_Failed); BufferParameters bufferParams = new BufferParameters() { Unit=LinearUnit.StatuteMile,BufferSpatialReference=new ESRI.ArcGIS.Client.Geometry.SpatialReference(4326),OutSpatialReference=MyMap.SpatialReference }; bufferParams.Features.Add(graphic); bufferParams.distances.Add(1); geometryService.BufferAsync(bufferParams); } void geometryService_Failed(object sender,TaskFailedEventArgs e) { MessageBox.Show("Geometry ServiceException error:"+e.Error); } void geometryService_BufferCompleted(object sender,GraphicsEventArgs e) { IList<Graphic> result = e.Results; Graphicslayer graphicslayer = MyMap.Layers["MyGraphicslayer"] as Graphicslayer; foreach (Graphic graphic in result) { graphic.Symbol = LayoutRoot.Resources["DefaultBufferSymbol"] as Symbol; graphicslayer.Graphics.Add(graphic); } }
结果:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。