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

"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的使用,你可以构建出显示地图、绘制地理要素、实现地图交互等多种功能的应用。后续章节会进一步探讨更多高级特性,如图层管理、查询、地理编码、服务的使用等。
108 浏览量
2014-07-29 上传
2021-08-11 上传
2022-09-22 上传
2022-09-22 上传
2012-07-27 上传
2013-12-04 上传
2014-10-21 上传

Snowamour
- 粉丝: 1
最新资源
- 建筑旋流式排水汇集器:创新设计与应用
- 用MATLAB打造功能齐全的私人音乐播放器
- GraceViewPager:修复Android ViewPager常见问题及动态刷新解决方案
- Python3.7.2中GDAL库操作Shapefile教程
- 解决EasyUI弹窗拖拽越界问题的JavaScript代码
- 待办事项应用程序服务器端API的设计与实现
- 建筑排水汇集器的设计原理与应用分析
- Oracle基础教程:自学指南与代码实践
- GNU glibc-linuxthreads压缩包介绍与解析
- 使用mobx-react-router实现MobX与react-router状态同步
- Wireshark:网络抓包分析利器
- 个性化Android壁纸管理应用Just Like开发分享
- 易语言实现VLC面板窗口复制组件教程
- RecyclerView添加头部和尾部视图的示例教程
- React项目PGP Messenger客户端开发指南
- 建筑物风洞型风力发电机的设计与应用