最好的学习资料ArcGIS api fo silverlight官网:http://help.arcgis.com/en/webapi/silverlight/samples/start.htm

一、GeoServer环境搭建及数据发布

参考:http://www.cnblogs.com/beniao/archive/2011/01/08/1930822.html等

二、创建ArcGIS API for SilverLight应用

参考:http://blog.csdn.net/zdw_wym/article/details/7620962

1、创建SilverLight应用程序

2、添加ArcGIS API for SilverLight相关引用

3、往MainPage.xaml中添加地图控件代码

四、读取GeoServer后台发布的图层

参考出处:http://blog.csdn.net/xinruogis/article/details/5567103

1、创建类文件,实现自定义wms

public class WMSMapServiceLayer : DynamicMapServiceLayer  //继承接口,实现GetUrl方法
    {
        List<string> _layers = new List<string>();
        public WMSMapServiceLayer(Envelope extent, int KWID, string url, string[] layers)
        {
            this.FullExtent = extent;    //地图范围
            this.SpatialReference = new ESRI.ArcGIS.Client.Geometry.SpatialReference(KWID);  //空间参考
            this.Url = url;     //wms地址

this.Version = "1.1.1";   //wms版本
            this.Layers = layers;    //请求的图层
           // _layers.Add("topp:states");

}

public string Url { get; set; }
        public string Version { get; set; }
        //public Envelope Extent { get; set; }
        public string[] Layers
        {
            get { return _layers.ToArray(); }
            set { _layers = new List<string>(value); OnLayerChanged(); }
        }
        //public override void Initialize()
        //{
        //   // this.FullExtent = Extent;     //设置范围(不设置就无法实现)
        //    //this.SpatialReference = new SpatialReference(KWID);
        //    base.Initialize();
         
        //}

//重写获取数据接口的方法

public override void GetUrl(ESRI.ArcGIS.Client.Geometry.Envelope extent, int width, int height, DynamicMapServiceLayer.OnUrlComplete onComplete)
        {
            int extentWKID = extent.SpatialReference.WKID;
            StringBuilder mapURL = new StringBuilder();
            mapURL.Append(Url);
            mapURL.Append("?service=WMS");
            mapURL.Append("&request=GetMap");
            mapURL.AppendFormat("&width={0}", width);
            mapURL.AppendFormat("&height={0}", height);
            mapURL.AppendFormat("&format={0}", "image/png");
            mapURL.AppendFormat("&layers={0}", String.Join(",", Layers));
            mapURL.Append("&styles=");
            mapURL.AppendFormat("&bgcolor={0}", "0xFFFFFF");
            mapURL.AppendFormat("&transparent={0}", "true");
            mapURL.AppendFormat("&version={0}", Version);
            switch (Version)
            {
                case ("1.1.1"): mapURL.AppendFormat("&SRS=EPSG:{0}", extentWKID);
                    mapURL.AppendFormat(CultureInfo.InvariantCulture, "&bbox={0},{1},{2},{3}",
                        extent.XMin, extent.YMin, extent.XMax, extent.YMax); break;
            }
            //把那些字符串拼接起来,跟openlayer一样的
            onComplete(mapURL.ToString(), width, height, new ESRI.ArcGIS.Client.Geometry.Envelope()
            {
                XMin = extent.XMin,
                YMin = extent.YMin,
                XMax = extent.XMax,
                YMax = extent.YMax
            });
        }
    }

2、调用代码(MainPage.xaml.cs)

int KWID = 4326;
             Envelope extent = new Envelope(105.487843, 31.706997, 111.239656, 39.58577);
            extent.SpatialReference = new SpatialReference(KWID);
            string Url = "http://localhost:8080/geoserver/wms";

string[] layers = new string[] { "shanxi:piovrnce_region", "shanxi:city_region", "shanxi:county_region", "shanxi:capital_point", "shanxi:city_point", "shanxi:county_point" };
            WMSMapServiceLayer wms = new WMSMapServiceLayer(extent, KWID, Url,layers);
            this.myMap.Layers.Add(wms);

ArcGIS api fo silverlight学习一(silverlight加载GeoServer发布的WMS地图)的更多相关文章

  1. World Wind Java开发之十三——加载Geoserver发布的WMS服务(转)

    这篇是转载的平常心博客,原地址见:http://www.v5cn.cn/?p=171 1.WMSTiledImageLayer类说明 一个WMSTiledImageLayer类对象只能对应一个WMS发 ...

  2. JavaWeb和WebGIS学习笔记(三)——GeoServer 发布shp数据地图

    系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...

  3. 如何在Skyline中加载ArcGISServer发布的WMS和WMTS服务

    如何在Skyline中加载ArcGISServer发布的WMS和WMTS服务? 我这里的测试环境是ArcGISServer10.1和TerraExplorer Pro7.0,主要过程截图如下,

  4. openlayer3 加载geoserver发布的WFS服务

    转自原文 openlayer3加载geoserver发布的WFS服务 openlayers3调用GeoServer发布的wfs 1 参考一 1.1 问题 openlayer3加载WFS存在跨域问题,需 ...

  5. ArcGIS API for JavaScript 4.4 版本加载谷歌地图

    ArcGIS API for JavaScript 4.X 版本升级后,API发生了很大的变化. 其中就支持了WebEarth展示,主要是通过 esri/views/SceneView 实现的. 在新 ...

  6. openlayers 3加载GeoServer发布的wfs类型服务

    转:https://blog.csdn.net/u013323965/article/details/52449502 问题产生:      openlayer3加载WFS存在跨域问题,需要用json ...

  7. arcgis api for javascript 学习(一) 调用在线发布的动态地图

    1.图中显示为arcgis软件中显示的地图文件 2.调用动态地图主要的是知道动态地图的URL地址 3.通过IDE(webstorm)调用动态地图,如图 4.话不多说,直接上代码 <!DOCTYP ...

  8. OSGEarth加载 geoserver 发布 TMS

    geoserver配好数据并用自带的gwc切片好后, 访问 http://localhost:9999/geoserver/gwc/service/tms/1.0.0/ 在OsgEarth的earth ...

  9. ArcGIS api fo silverlight学习二(silverlight加载GraphicsLayer)

    上一节学习了silverlight加载GeoServer发布的WMS地图,这一节学习一下加载GraphicsLayer 一.加载.png或jpg文件图标 1.在MainPage.xaml中添加资源配置 ...

随机推荐

  1. 【Unity3D基础教程】给初学者看的Unity教程(四):通过制作Flappy Bird了解Native 2D中的RigidBody2D和Collider2D

    作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 引子 在第一篇文章[Unity3D基础教程] ...

  2. Perforce P4V,添加映射

  3. 在Angular1.X中使用CSS Modules

    在Angular1.5中,增加了一个Component方法,并且定义了组件的若干生命周期hook,在代码规范中也是推崇组件化开发,但是很遗憾的是,CSS模块化组件化的问题并没有得到解决,大部分项目的打 ...

  4. MySQL Innodb数据库性能实践——热点数据性能

    摘要: 对于大部分的应用来说,都存在热点数据的访问,即:某些数据在一定时间内的访问频率要远远高于其它数据. 常见的热点数据有“最新的新闻”.“最热门的新闻”.“下载量最大”的电影等. 为了了解MySQ ...

  5. 【svn】svn 项目地址修改

    1.IDEA修改 确定OK. 2.TortoiseSVN修改 选择项目目录右键->TortoiseSVN->重新定位(Relocate),然后修改URL, 3.Mac OS或Linux客户 ...

  6. 搭建sonar,推动代码质量管理

    最近比较关注devops相关的文章,尝试搭建sonarqube服务,进行代码质量的分析和管理,先记录下本地环境的搭建和分析过程. 一.sonarqube服务搭建 官网地址:http://www.son ...

  7. 几种I/O模型功能和性能对比

    对比图 同步阻塞I/O服务端通信模型(一客户端一线程) 伪异步I/O服务端通信模型(M:N) NIO服务端和客户端通信时序图

  8. SQLServer2005删除log文件和清空日志的方案

    数据库在使用过程中会使日志文件不断增加,使得数据库的性能下降,并且占用大量的磁盘空间.SQL Server数据库都有log文件,log文件记录用户对数据库修改的操作.可以通过直接删除log文件和清空日 ...

  9. Win 8.1 Pro &amp;MSSQLServer 2014 Enterprise

    给Thinkpad E431 安装上 Windows 8.1 Pro 之后,一直都安装不上 MSSQLServer 2005 DEV / ENT,2008 ENT / STAND, 2008 R2  ...

  10. html css javascript 加载的顺序

    html /css /javascript 这三者的加载顺序影响整个页面的加载速度.而加载速度的快慢直接影响pv(访问量),而且会影响经济收入.在大网站中,可能打开速度快一秒,一年能多带来上亿的收入. ...