ArcGIS for Silverlight API教程:地图绘制与操作(连载开始)

4星 · 超过85%的资源 需积分: 9 4 下载量 87 浏览量 更新于2024-09-11 收藏 225KB DOCX 举报
"ArcGis_For_Silverlight_API" 本文将详细介绍如何使用ArcGIS for Silverlight API来开发GIS应用,特别是地图显示、绘制点、线和图形。ArcGIS for Silverlight API是Esri公司提供的一种用于构建基于Silverlight的地理信息系统(GIS)应用程序的工具。在Visual Studio 2010和 Blend 4环境下,我们可以利用Silverlight 4来构建这些应用。 首先,我们需要获取ArcGIS API。在本示例中,使用的是版本1.1.0.97的ESRI.ArcGIS.Client库。不同版本的API基本功能相似,但可能有细微差别。创建项目时,我们需要创建一个网站项目,并且添加一个新的Silverlight应用程序项目。接着,我们将ArcGIS API库引入到项目中。 在XAML代码中,我们需要定义UserControl,并引入必要的命名空间,包括ESRI.ArcGIS.Client,这是API的核心部分。下面是一个简单的XAML代码示例: ```xml <UserControl 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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" xmlns:esri="clr-namespace:ESRI.ArcGIS.Client;assembly=ESRI.ArcGIS.Client" xmlns:esriBehaviors="clr-namespace:ESRI.ArcGIS.Client.Behaviors;assembly=ESRI.ArcGIS.Client.Behaviors" xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" xmlns:ic="clr-namespace:Microsoft.Expression.Interactivity;assembly=Microsoft.Expression.Interactions"> </UserControl> ``` 接下来,我们要在界面上添加地图控件。通过使用`esri:Map`元素,我们可以轻松地将地图集成到Silverlight应用中。例如: ```xml <esri:Map x:Name="MyMap" /> ``` 然后,我们可以通过设置`Basemap`属性来加载基础地图服务,比如: ```xml <esri:Map x:Name="MyMap" Basemap="Streets" /> ``` 此外,我们还可以添加图层(Layers),例如,从ArcGIS Server获取的动态图层或镶嵌数据集图层: ```xml <esri:Map x:Name="MyMap"> <esri:Map.Layer> <esri:DynamicMapServiceLayer Url="http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer" /> </esri:Map.Layer> </esri:Map> ``` 接下来,我们将讨论如何使用API进行地图操作和绘制。ArcGIS for Silverlight API提供了丰富的类和方法,可以实现地图的缩放、平移、旋转等操作。例如,我们可以使用`Pan()`和`ZoomIn()`方法来控制地图: ```csharp MyMap.Pan(new Point(50, 50)); MyMap.ZoomIn(); ``` 对于绘制功能,API提供了`Graphic`类,用于在地图上绘制点、线和面。我们首先创建一个`GraphicsLayer`,然后在其中添加`Graphic`对象: ```csharp var graphicsLayer = new GraphicsLayer(); MyMap.Layers.Add(graphicsLayer); // 绘制点 var point = new MapPoint(-118.2437, 34.0522); var symbol = new SimpleMarkerSymbol() { Style = SimpleMarkerSymbolStyle.Circle, Color = Colors.Red, Size = 10 }; var graphic = new Graphic(point, symbol); graphicsLayer.Graphics.Add(graphic); // 绘制线 var polyline = new Polyline(new List<MapPoint> { new MapPoint(-118.24, 34.05), new MapPoint(-118.23, 34.06) }); var lineSymbol = new SimpleLineSymbol() { Color = Colors.Blue, Width = 3 }; var lineGraphic = new Graphic(polyline, lineSymbol); graphicsLayer.Graphics.Add(lineGraphic); ``` ArcGIS for Silverlight API还支持事件处理,如点击地图时获取点击位置、添加自定义行为等。结合交互性库,我们可以创建复杂的用户交互逻辑。 总结,ArcGIS for Silverlight API是一个强大的工具,它允许开发者在Silverlight环境中创建丰富的GIS应用。通过理解并熟练掌握API的使用,你可以构建出显示地图、绘制地理要素、实现地图交互等多种功能的应用。后续章节会进一步探讨更多高级特性,如图层管理、查询、地理编码、服务的使用等。