ArcGIS api fo silverlight学习一(silverlight加载GeoServer发布的WMS地图)
最好的学习资料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地图)的更多相关文章
- World Wind Java开发之十三——加载Geoserver发布的WMS服务(转)
这篇是转载的平常心博客,原地址见:http://www.v5cn.cn/?p=171 1.WMSTiledImageLayer类说明 一个WMSTiledImageLayer类对象只能对应一个WMS发 ...
- JavaWeb和WebGIS学习笔记(三)——GeoServer 发布shp数据地图
系列链接: Java web与web gis学习笔记(一)--Tomcat环境搭建 Java web与web gis学习笔记(二)--百度地图API调用 JavaWeb和WebGIS学习笔记(三)-- ...
- 如何在Skyline中加载ArcGISServer发布的WMS和WMTS服务
如何在Skyline中加载ArcGISServer发布的WMS和WMTS服务? 我这里的测试环境是ArcGISServer10.1和TerraExplorer Pro7.0,主要过程截图如下,
- openlayer3 加载geoserver发布的WFS服务
转自原文 openlayer3加载geoserver发布的WFS服务 openlayers3调用GeoServer发布的wfs 1 参考一 1.1 问题 openlayer3加载WFS存在跨域问题,需 ...
- ArcGIS API for JavaScript 4.4 版本加载谷歌地图
ArcGIS API for JavaScript 4.X 版本升级后,API发生了很大的变化. 其中就支持了WebEarth展示,主要是通过 esri/views/SceneView 实现的. 在新 ...
- openlayers 3加载GeoServer发布的wfs类型服务
转:https://blog.csdn.net/u013323965/article/details/52449502 问题产生: openlayer3加载WFS存在跨域问题,需要用json ...
- arcgis api for javascript 学习(一) 调用在线发布的动态地图
1.图中显示为arcgis软件中显示的地图文件 2.调用动态地图主要的是知道动态地图的URL地址 3.通过IDE(webstorm)调用动态地图,如图 4.话不多说,直接上代码 <!DOCTYP ...
- OSGEarth加载 geoserver 发布 TMS
geoserver配好数据并用自带的gwc切片好后, 访问 http://localhost:9999/geoserver/gwc/service/tms/1.0.0/ 在OsgEarth的earth ...
- ArcGIS api fo silverlight学习二(silverlight加载GraphicsLayer)
上一节学习了silverlight加载GeoServer发布的WMS地图,这一节学习一下加载GraphicsLayer 一.加载.png或jpg文件图标 1.在MainPage.xaml中添加资源配置 ...
随机推荐
- HTTP长连接和短连接
1.HTTP协议的五大特点1)支持客户/服务器模式2)简单快速3)灵活4)无连接每次连接只处理一个请求,服务器处理完客户的请求,并受到客户的应答后,断开连接.5)无状态协议不会记录服务器客户端状态. ...
- MySQL Innodb数据库性能实践——热点数据性能
摘要: 对于大部分的应用来说,都存在热点数据的访问,即:某些数据在一定时间内的访问频率要远远高于其它数据. 常见的热点数据有“最新的新闻”.“最热门的新闻”.“下载量最大”的电影等. 为了了解MySQ ...
- CentOS 7 vs CentOS 6的不同
(1)桌面系统 [CentOS6] GNOME 2.x [CentOS7] GNOME 3.x(GNOME Shell) (2)文件系统 [CentOS6] ext4 [CentOS7] xfs (3 ...
- 多线程下的 Lambda表达式 异步 WebClient 读取程序图标,来作为托盘 图标 logo ico
//读取程序图标,来作为托盘图标this.notifyIcon.Icon = System.Drawing.Icon.ExtractAssociatedIcon(System.Windows.Form ...
- 在工作有时候centos6.5系统使用rpm包安装mysql5.7出现的问题
首先说明一下,我用的CentOS版本是6.6,64位.打印机驱动程序是两个rpm安装包:cndrvcups-common-2.60-1.x86_64.rpm和cndrvcups-capt-2.60-1 ...
- java 8 原版 api 下载地址,
http://download.oracle.com/otn-pub/java/javafx/8.0.25-b17/javafx-8u25-apidocs.zip?AuthParam=14174994 ...
- windows下IIS+PHP解决大文件上传500错问题
linux下改到iis+php后,上传大于2M就出500错,改了php.ini中的upload_max_filesize也不行,最后解决如下: 第一步:修改php.ini 上传大小限制 (以上传500 ...
- ES6特性
一.ES6特性: let, const, class, extends, super, arrow functions, template string, destructuring, default ...
- R语言—图像初阶
dev.new() 创建一个新图像之前打开一个新的窗口 win.graph() 同上 pch() 指定绘制点时使用的符号 cex() 指定符号的大小,是一个数值,表示绘图符号相当于默认大小的缩放倍数 ...
- centos6.5 安装mysql 的过程
Linux中使用最广泛的数据库就是MySQL,使用在线yum的方式安装的版本落后MySQL网站好几个小版本, 所以折腾了几个星期,终于在CentOS 装好了mysql5.6,装完之后,对整个linux ...