zoukankan      html  css  js  c++  java
  • Silverlight加载第一个Map

    1、Map

      Map 是 ArcGIS API for Silverlight 中的核心组件,主要用于呈现地图服务、影像服务中的空间数据,此外还可以展示 WMS 服务、热点图(HeatMap)、Bing 地图、OpenStreetMap、GeoRSS、KML 数据等,并且 Map 可以与用户交互,接受用户输入。

    属性:

    Extent:地图外包矩形的范围,即四个角点坐标范围。

    IsLogoVisible:是否显示esri的logo。

    Layers:地图中的图层集合,先加入的图层在底部,最后加入的图层在最上层显示。

    PanDuration/ZoomDuration:平移/缩放时动画持续时间。

    SpatialReference:空间参考,通过WKID(空间参考编号)或WKT(空间参考名称)指定,默认为加入地图中的第一个具有空间参考的图层的空间参考。

    WrapAround:设置地图是否经向循环,即通过平移工具,一直向左或向右移动地图,模拟球体旋转。

    方法:

    MapToScreen/ScreenToMap:地图与屏幕之间的坐标转换。

    PanTo/ZoomTo:平移/缩放到指定范围。

    事件:

    ExtentChanged:地图范围改变事件。

    MouseClick:地图上的单击事件。

    Progress:地图数据加载进度事件。

    PropertyChanged:地图属性变化事件。

    2、加载地图数据

    <UserControl x:Class="HelloWorld.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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:esri="http://schemas.esri.com/arcgis/client/2009"                   
        mc:Ignorable="d"
        d:DesignHeight="300" d:DesignWidth="400">
    
        <Grid x:Name="LayoutRoot" Background="White">
            <esri:Map x:Name="myMap">
                <esri:ArcGISTiledMapServiceLayer ID="StreetMapLayer"
    Url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"
    InitializationFailed="Layer_InitializationFailed"/>           
            </esri:Map>        
        </Grid>
    </UserControl>

    添加后台代码(C#):

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;
    using ESRI.ArcGIS.Client;
    
    namespace HelloWorld
    {
        public partial class MainPage : UserControl
        {
            public MainPage()
            {
                InitializeComponent();
    
            }
    
            private void Layer_InitializationFailed(object sender,EventArgs e)
            {
                //获取图层对象
                Layer layer = sender as Layer;
                //显示图层加载失败原因的提示
                MessageBox.Show("加载图层失败:" + layer.InitializationFailure.Message);
            }
        }
    }

    3、后台代码方式  

      通过在后台代码(如 C#)中创建 ArcGISDynamicMapServiceLayer 并将其添加到Map 对象中,实现向地图中添加动态服务图层的功能,代码如下所示:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;
    using ESRI.ArcGIS.Client;
    
    namespace HelloWorld
    {
        public partial class MainPage : UserControl
        {
            public MainPage()
            {
                InitializeComponent();
    
                // 创建动态服务图层
                ArcGISDynamicMapServiceLayer usaMapLayer = new ArcGISDynamicMapServiceLayer();
                usaMapLayer.ID = "usaMap";// 指定图层ID
                // 指定图层URL
                usaMapLayer.Url = "http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer";
                // 将图层添加到地图中
                myMap.Layers.Add(usaMapLayer);
    
            }
    
        }
    }
  • 相关阅读:
    Linux下Mysql自启动
    C++的Vector用法
    如何判断一个文本文件内容的编码格式 UTF-8 ? ANSI(GBK)
    windows自带记事本导致文本文件(UTF-8编码)开头三个字符乱码问题
    C/C++字符串查找函数
    C++ string 字符串查找匹配
    CentOS6.5升级autoconf版本 Autoconf version 2.64 or higher is required
    Linux命令之远程下载命令:wget
    Linux常用命令大全
    如何使用VisualStudio2013编写和调试c语言程序
  • 原文地址:https://www.cnblogs.com/zyf2014/p/5730199.html
Copyright © 2011-2022 走看看