本例使用一个WMS端点创建了一个简单的动态图层。首先,代码声明一个新的类my.CityStatesRiversUSAWMSLayer,该类继承esri.layers.DynamicMapServiceLayer

dojo.declare("my.CityStatesRiversUSAWMSLayer", DynamicMapServiceLayer, {
  ...
});

接下来定义了类的构造函数。图层的初始化和完整的范围和空间参考都被定义在构造函数中。代码也设置了图层的loaded属性为true并调用onLoad函数。

constructor: function() {
  this.initialExtent = this.fullExtent = new esri.geometry.Extent(...);
  this.spatialReference = new esri.SpatialReference(...);

  this.loaded = true;
  this.onLoad(this);
},

最后,getImageUrl方法被执行。getImageUrl方法返回被加到地图的图片的URL。URL使用带范围,宽和高的参数的函数生成。callback函数被调用别且URL作为单一参数被传回。

getImageUrl: function(extent, width, height, callback) {
  ...

  callback("..." + dojo.objectToQuery(params));
}

为了使用这个图层,代码创建一个地图并且增加一个来自ArcGIS Online的切片图层,然后在上面放置新建的WMS图层。

function init() {
  var map = new esri.Map("map");
  map.addLayer(new esri.layers.ArcGISTiledMapServiceLayer("..."));
  map.addLayer(new my.CityStatesRiversUSAWMSLayer());
}

 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd"> <html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=7" />
<title>Portland Tile Server</title> <link rel="stylesheet" type="text/css" href="http://serverapi.arcgisonline.com/jsapi/arcgis/1.5/js/dojo/dijit/themes/tundra/tundra.css">
<script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1.5"></script>
<script type="text/javascript"> dojo.require("esri.map"); dojo.declare("my.PortlandTiledMapServiceLayer",esri.layers.TiledMapServiceLayer,{
constructor:function(){ this.spatialReference = new esri.SpatialReference({wkid:4326});
this.initialExtent = (this.fullExtent = new esri.geometry.Extent(-123.596895130725, 44.297575737946, -121.553757125519, 46.3683237161949, this.spatialReference)); this.tileInfo = new esri.layers.TileInfo({
"rows" :512,
"cols" :512,
"dpi" :96,
"format":"PNG32",
"compressionQuality":0,
"origin": {
"x" : -180,
"y" :90
},
"spatialReference" : {
"wkid" : 4326
},
"lods" :[ {"level" : 0, "resolution" : 0.351562499999999, "scale" : 147748799.285417},
{"level" : 1, "resolution" : 0.17578125, "scale" : 73874399.6427087},
{"level" : 2, "resolution" : 0.0878906250000001, "scale" : 36937199.8213544},
{"level" : 3, "resolution" : 0.0439453125, "scale" : 18468599.9106772},
{"level" : 4, "resolution" : 0.02197265625, "scale" : 9234299.95533859},
{"level" : 5, "resolution" : 0.010986328125, "scale" : 4617149.97766929},
{"level" : 6, "resolution" : 0.0054931640625, "scale" : 2308574.98883465},
{"level" : 7, "resolution" : 0.00274658203124999, "scale" : 1154287.49441732},
{"level" : 8, "resolution" : 0.001373291015625, "scale" : 577143.747208662},
{"level" : 9, "resolution" : 0.0006866455078125, "scale" : 288571.873604331},
{"level" : 10, "resolution" : 0.000343322753906249, "scale" : 144285.936802165},
{"level" : 11, "resolution" : 0.000171661376953125, "scale" : 72142.9684010827},
{"level" : 12, "resolution" : 8.58306884765626E-05, "scale" : 36071.4842005414},
{"level" : 13, "resolution" : 4.29153442382813E-05, "scale" : 18035.7421002707},
{"level" : 14, "resolution" : 2.14576721191406E-05, "scale" : 9017.87105013534},
{"level" : 15, "resolution" : 1.07288360595703E-05, "scale" : 4508.93552506767} ]
}); this.loaded = true;
this.onLoad(this); }, getTileUrl: function(level, row, col) {
return "http://sampleserver1.arcgisonline.com/arcgiscache/Portland_Portland_ESRI_LandBase_AGO/Portland/_alllayers/" +
"L" + dojo.string.pad(level, 2, '0') + "/" +
"R" + dojo.string.pad(row.toString(16), 8, '0') + "/" +
"C" + dojo.string.pad(col.toString(16), 8, '0') + "." +
"png";
}
});
function init() {
var map = new esri.Map("map"); map.addLayer(new my.PortlandTiledMapServiceLayer());
}
dojo.addOnLoad(init); </script>
</head>
<body class="tundra">
<div id="map" style=" width:1024px; height:512px; border:1px solid #000;"></div>
</body>
</html>

ArcGIS api for javascript——图层-创建WMS图层类型的图层的更多相关文章

  1. ArcGIS api for javascript——动态创建图层列表

    描述 本例循环地图服务里的所有图层并增加每个图层到一个带checkbox的列表,checkbox能设置图层的显示或隐藏.动态创建列表的优势是所有的图层都会包含在列表中,即使服务器管理员删除或增加了图层 ...

  2. ArcGIS API for JavaScript(2)-ArcGIS Server发布要素图层服务

    1.前言 上一篇该系列的文章我们主要讲了一下基础Web地图搭建,这篇我们主要讲一下ArcGIS Server发布服务,并且如何调用服务.将自己的数据加载到Web地图当中来,实现Web端浏览数据. 2. ...

  3. 转:ArcGIS API For JavaScript官方文档(二十)之图形和要素图层——①Graphics概述

    原文地址:ArcGIS API For JavaScript官方文档(二十)之图形和要素图层——①Graphics概述 ArcGIS JavaScript API允许在地图上绘制graphic(图形) ...

  4. arcgis api for JavaScript _加载三维图层(scene layer)

    arcgis api for JavaScript _加载三维图层(scene layer) arcgis api for JavaScript  4.x 版本增加对三维的支持. 关于三维图层(sce ...

  5. 创建ArcGIS API for JavaScript的第一个示例程序

    原文:创建ArcGIS API for JavaScript的第一个示例程序 在上一篇博客中已经介绍了如何搭建ArcGIS API for JavaScript开发环境,如果您还没有搭建好开发环境的话 ...

  6. ArcGIS API for Silverlight 调用GP服务加载等值线图层

    原文:ArcGIS API for Silverlight 调用GP服务加载等值线图层 第二篇.Silverlight客户端调用GP服务 利用ArcGIS API for Silverlight实现G ...

  7. arcgis api 3.x for js 入门开发系列七图层控制(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  8. ArcGIS API for JavaScript介绍

    ArcGIS API for JavaScript中的类是按照模块组织的,主要包含esri.esri/geometry.esri/renderers.esri/symbols.esri/symbols ...

  9. ArcGIS API for JavaScript 4.2学习笔记[5] 官方API大章节概述与内容转译

    内容如上,截图自ESRI官网,连接:ArcGIS API for JavaScript 4.2 [Get Started] 类似于绪论一样的东西,抽取了最需要关注的几个例子.如:加载Map和View, ...

  10. ArcGIS API for JavaScript FeatureLayer服务属性编辑

    首先说一下感想吧,刚入行时感觉深似海,掉到了GIS开发的陨石大坑里了,首先是学了小半年的Flex,用到了ArcGIS API for Flex,接着又是半年的ArcEngine开发,现在终于摸到了一点 ...

随机推荐

  1. POJ 3067 Japan 【 树状数组 】

    题意:左边有n个城市,右边有m个城市,现在修k条路,问会形成多少个交点 先按照x从小到大排,x相同的话,则按照y从小到大排,然后对于每一个y统计前面有多少个y比它大,它们就一定会相交 另外要用long ...

  2. SpringCloud学习笔记(16)----Spring Cloud Netflix之Hystrix Dashboard+Turbine集群监控

    前言: 上一节中,我们使用Hystrix Dashboard,只能看到单个应用内的服务信息.在生产环境中,我们经常是集群状态,所以我们需要用到Turbine这一应用. 作用:汇总系统内的多个服务的数据 ...

  3. .startsWith和endsWith的使用方法与说明

    a.startsWith(b) --判断字符串a,是不是以字符串b开头 a.endsWith(b) --判断字符串a,是不是以字符串b结尾

  4. SASS 使用(vs code)

    二.在vs code中编译sass 1.在拓展商店里搜索“easy sass”,并安装,安装成功后点重新加载. 2.接下来进行配置: 在 vs code 菜单栏依次点击“文件 首选项 设置”,打开 s ...

  5. pyinstall 常见错误

    字符编码错误: https://blog.csdn.net/weixin_42426496/article/details/81102665 https://blog.csdn.net/qq_4206 ...

  6. RHEL8.0-beta-1.ISO

    https://pan.baidu.com/s/1Yh_xuz39xGRrCtGtwhuqQg RHEL-8.0-beta-1-x86_64-dvd.iso       文件名: E:\rhel-8. ...

  7. 紫书 例题11-9 UVa 1658 (拆点+最小费用流)

    这道题要求每个节点只能经过一次,也就是结点容量为1, 要拆点, 拆成两个点, 中间连一条弧容量为1, 费用为0. 因为拆成两个点, 所以要经过原图中的这个节点就要经过拆成的这两个点, 又因为这两个点的 ...

  8. solr环境搭建&基本使用

    分步指南 solr服务与tomcat整合 solr使用配置步骤 solr使用 推荐分词工具 相关的文章 一.Solr服务与tomcat整合 1.solr相关版本下载路径:http://archive. ...

  9. ASP.NET-文件上传代码

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  10. PAT(B) 101-111-1-2014-03-01

    1.个位数统计: #include<stdio.h> #include<iostream> #include<string.h> #include<set&g ...