参考文章地址:Cesium调用 ArcGIS Sever 以及 GeoSever 发布的地图服务

cesium测试示例(包括官方的示例)中   arcgis服务都无法访问了

根据原文找到一个在线的可访问服务地址:https://basemap.nationalmap.gov/arcgis/rest/services    使用arcgis server 发布的,点击某一个服务名,在服务页面可以访问其  WMS 、WMTS 格式

把如下代码粘贴到  地址   https://cesiumjs.org/Cesium/Build/Apps/Sandcastle/index.html?src=Imagery%20Layers%20Manipulation.html   中页面左侧 JS 代码区域(将其中代码全部替换)

不用害怕代码这么多   这个只是在原案例上增加了   // 添加 WMTS   和     // 添加 WMS     两小段代码

  1. var viewer = new Cesium.Viewer('cesiumContainer', {
  2. baseLayerPicker : false
  3. });
  4. var imageryLayers = viewer.imageryLayers;
  5.  
  6. var viewModel = {
  7. layers : [],
  8. baseLayers : [],
  9. upLayer : null,
  10. downLayer : null,
  11. selectedLayer : null,
  12. isSelectableLayer : function(layer) {
  13. return this.baseLayers.indexOf(layer) >= 0;
  14. },
  15. raise : function(layer, index) {
  16. imageryLayers.raise(layer);
  17. viewModel.upLayer = layer;
  18. viewModel.downLayer = viewModel.layers[Math.max(0, index - 1)];
  19. updateLayerList();
  20. window.setTimeout(function() { viewModel.upLayer = viewModel.downLayer = null; }, 10);
  21. },
  22. lower : function(layer, index) {
  23. imageryLayers.lower(layer);
  24. viewModel.upLayer = viewModel.layers[Math.min(viewModel.layers.length - 1, index + 1)];
  25. viewModel.downLayer = layer;
  26. updateLayerList();
  27. window.setTimeout(function() { viewModel.upLayer = viewModel.downLayer = null; }, 10);
  28. },
  29. canRaise : function(layerIndex) {
  30. return layerIndex > 0;
  31. },
  32. canLower : function(layerIndex) {
  33. return layerIndex >= 0 && layerIndex < imageryLayers.length - 1;
  34. }
  35. };
  36. var baseLayers = viewModel.baseLayers;
  37.  
  38. Cesium.knockout.track(viewModel);
  39.  
  40. function setupLayers() {
  41. // Create all the base layers that this example will support.
  42. // These base layers aren't really special. It's possible to have multiple of them
  43. // enabled at once, just like the other layers, but it doesn't make much sense because
  44. // all of these layers cover the entire globe and are opaque.
  45. // 添加 WMTS
  46. addBaseLayerOption(
  47. 'USGS Shaded Relief (via WMTS)',
  48. new Cesium.WebMapTileServiceImageryProvider({
  49. url : 'http://basemap.nationalmap.gov/arcgis/rest/services/USGSShadedReliefOnly/MapServer/WMTS',
  50. layer : 'USGSShadedReliefOnly',
  51. style : 'default',
  52. format : 'image/jpeg',
  53. tileMatrixSetID : 'default028mm',
  54. maximumLevel: 19,
  55. credit : 'U. S. Geological Survey'
  56. }));
  57. // 添加 WMS
  58. addBaseLayerOption(
  59. 'USGS Shaded Relief (via WMS)',
  60. new Cesium.WebMapServiceImageryProvider({
  61. url : 'https://basemap.nationalmap.gov/arcgis/services/USGSHydroCached/MapServer/WMSServer',
  62. layers : '0',
  63. }));
  64.  
  65. addBaseLayerOption(
  66. 'Bing Maps Aerial',
  67. undefined); // the current base layer
  68. addBaseLayerOption(
  69. 'Bing Maps Road',
  70. new Cesium.BingMapsImageryProvider({
  71. url : 'https://dev.virtualearth.net',
  72. mapStyle: Cesium.BingMapsStyle.ROAD
  73. }));
  74. addBaseLayerOption(
  75. 'ArcGIS World Street Maps',
  76. new Cesium.ArcGisMapServerImageryProvider({
  77. url : 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer'
  78. }));
  79. addBaseLayerOption(
  80. 'OpenStreetMaps',
  81. Cesium.createOpenStreetMapImageryProvider());
  82. addBaseLayerOption(
  83. 'MapQuest OpenStreetMaps',
  84. Cesium.createOpenStreetMapImageryProvider({
  85. url : 'https://otile1-s.mqcdn.com/tiles/1.0.0/osm/'
  86. }));
  87. addBaseLayerOption(
  88. 'Stamen Maps',
  89. Cesium.createOpenStreetMapImageryProvider({
  90. url : 'https://stamen-tiles.a.ssl.fastly.net/watercolor/',
  91. fileExtension: 'jpg',
  92. credit: 'Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA.'
  93. }));
  94. addBaseLayerOption(
  95. 'Natural Earth II (local)',
  96. Cesium.createTileMapServiceImageryProvider({
  97. url : Cesium.buildModuleUrl('Assets/Textures/NaturalEarthII')
  98. }));
  99.  
  100. // Create the additional layers
  101. addAdditionalLayerOption(
  102. 'United States GOES Infrared',
  103. new Cesium.WebMapServiceImageryProvider({
  104. url : 'https://mesonet.agron.iastate.edu/cgi-bin/wms/goes/conus_ir.cgi?',
  105. layers : 'goes_conus_ir',
  106. credit : 'Infrared data courtesy Iowa Environmental Mesonet',
  107. parameters : {
  108. transparent : 'true',
  109. format : 'image/png'
  110. }
  111. }));
  112. addAdditionalLayerOption(
  113. 'United States Weather Radar',
  114. new Cesium.WebMapServiceImageryProvider({
  115. url : 'https://mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/n0r.cgi?',
  116. layers : 'nexrad-n0r',
  117. credit : 'Radar data courtesy Iowa Environmental Mesonet',
  118. parameters : {
  119. transparent : 'true',
  120. format : 'image/png'
  121. }
  122. }));
  123. addAdditionalLayerOption(
  124. 'TileMapService Image',
  125. Cesium.createTileMapServiceImageryProvider({
  126. url : '../images/cesium_maptiler/Cesium_Logo_Color'
  127. }),
  128. 0.2);
  129. addAdditionalLayerOption(
  130. 'Single Image',
  131. new Cesium.SingleTileImageryProvider({
  132. url : '../images/Cesium_Logo_overlay.png',
  133. rectangle : Cesium.Rectangle.fromDegrees(-115.0, 38.0, -107, 39.75)
  134. }),
  135. 1.0);
  136. addAdditionalLayerOption(
  137. 'Grid',
  138. new Cesium.GridImageryProvider(), 1.0, false);
  139. addAdditionalLayerOption(
  140. 'Tile Coordinates',
  141. new Cesium.TileCoordinatesImageryProvider(), 1.0, false);
  142. }
  143.  
  144. function addBaseLayerOption(name, imageryProvider) {
  145. var layer;
  146. if (typeof imageryProvider === 'undefined') {
  147. layer = imageryLayers.get(0);
  148. viewModel.selectedLayer = layer;
  149. } else {
  150. layer = new Cesium.ImageryLayer(imageryProvider);
  151. }
  152.  
  153. layer.name = name;
  154. baseLayers.push(layer);
  155. }
  156.  
  157. function addAdditionalLayerOption(name, imageryProvider, alpha, show) {
  158. var layer = imageryLayers.addImageryProvider(imageryProvider);
  159. layer.alpha = Cesium.defaultValue(alpha, 0.5);
  160. layer.show = Cesium.defaultValue(show, true);
  161. layer.name = name;
  162. Cesium.knockout.track(layer, ['alpha', 'show', 'name']);
  163. }
  164.  
  165. function updateLayerList() {
  166. var numLayers = imageryLayers.length;
  167. viewModel.layers.splice(0, viewModel.layers.length);
  168. for (var i = numLayers - 1; i >= 0; --i) {
  169. viewModel.layers.push(imageryLayers.get(i));
  170. }
  171. }
  172.  
  173. setupLayers();
  174. updateLayerList();
  175.  
  176. //Bind the viewModel to the DOM elements of the UI that call for it.
  177. var toolbar = document.getElementById('toolbar');
  178. Cesium.knockout.applyBindings(viewModel, toolbar);
  179.  
  180. Cesium.knockout.getObservable(viewModel, 'selectedLayer').subscribe(function(baseLayer) {
  181. // Handle changes to the drop-down base layer selector.
  182. var activeLayerIndex = 0;
  183. var numLayers = viewModel.layers.length;
  184. for (var i = 0; i < numLayers; ++i) {
  185. if (viewModel.isSelectableLayer(viewModel.layers[i])) {
  186. activeLayerIndex = i;
  187. break;
  188. }
  189. }
  190. var activeLayer = viewModel.layers[activeLayerIndex];
  191. var show = activeLayer.show;
  192. var alpha = activeLayer.alpha;
  193. imageryLayers.remove(activeLayer, false);
  194. imageryLayers.add(baseLayer, numLayers - activeLayerIndex - 1);
  195. baseLayer.show = show;
  196. baseLayer.alpha = alpha;
  197. updateLayerList();
  198. });

Cesium调用 WMS 、WMTS 服务的更多相关文章

  1. Cesium调用Geoserver发布的 WMS、WFS服务

    1 GeoServer服务发布 1.1 WMS服务 下载GeoServer安装版安装,同时安装geopackage扩展,以备使用.使用XX地图下载器下载地图,导出成GeoPackage地图文件. (1 ...

  2. OGC WebGIS 常用服务标准(WMS/WMTS/TMS/WFS)速查

    本文只介绍实际工作中常用的 WMS.WMTS.WFS.TMS 四种,WCS.WPS 等其它 OGC WebService 类型请自行查阅官方资料. 目录 0. 参数传递方式 1. WMS 速查 1.1 ...

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

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

  4. 设置代理调用WMTS服务

    一.数据准备 1.链接:http://pan.baidu.com/s/1sjzCytR 密码:uugc,下载DotNet版本 2. 发布切片服务,打开ogc服务可产看到相应的符合ogc标准的服务,如下 ...

  5. arcgis js之调用wms服务

    arcgis js之调用wms服务 定义: export const tdtlayer = async () => { let WMSLayer = await arcgisPackage.WM ...

  6. OpenLayers中的Layer概念和实践--Openlayers调用WMS服务

    整理转自:http://hi.baidu.com/lixuweiok/item/c406a4e6a6d390e7fa42ba4b 本章我认为是这本书的真正开端,终于开始讲一些有意思的东西了.. 在这一 ...

  7. 使用GeoServer+QGIS发布WMTS服务 | Publishing WMTS Service Using GeoServer+QGIS

    Web GIS系列: 1.搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3 2.使用GeoServer+QGIS发布WMTS服务 3.使 ...

  8. cesium入门示例-geoserver服务访问

    1.wms服务访问 //wms服务 viewer.imageryLayers.addImageryProvider(new Cesium.WebMapServiceImageryProvider({ ...

  9. (二十)ArcGIS JS 加载WMTS服务(超图示例)

    前言 在前一篇中说到我们可以通过加载WMS服务解决用ArcGIS API加载超图发布的服务,但是WMS服务在加载效率上是低于切片服务的,加上超图的IServer,无力吐槽,所以,在加载速度的要求下,切 ...

随机推荐

  1. 说说Python编码规范

    前言 已有近两个月没有发表过文章了,前段时间外甥和女儿过来这边渡暑假,平常晚上和周末时间都陪着她们了,趁这个周末有空,再抽空再把这块拾起来.         这么久没写了,再次拿起键盘,想想,发表些什 ...

  2. AngularJS 使用ng-repeat报错

    [ngRepeat:dupes] Duplicates in a repeater are not allowed. Use 'track by' expression to specify uniq ...

  3. 移动端禁止页面拖动 h5禁止拖动页面

    PC上css控制滚动仅css("overflow","hidden")已足够. 但是,如果在Mobile上还是可以拖动的!所以需要监听touchmove事件. ...

  4. adb shell am broadcast 手动发送广播及adb shell am/pm其他命令

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/zi_zhe/article/details/72229201 在命令行可用adb shell am ...

  5. docker 命令集

    1.提交本地镜像到远程cd to dockerfile directorysudo docker build -t orange5 ./sudo docker psdocker tag 1adec2c ...

  6. kafka调试工具kafkacat的使用

    一. 安装 kafkacat 是基于kafka C语言的librdkafka库的 kafka客户端,不依赖java,小巧轻便,支持主流系统.在高版本的debain.Ubuntu下可以直接apt-get ...

  7. Selenium IDE 基本概念

    要学会Selenium不难,难的是首先你懂不懂测试.没有测试的基础知识,没有对测试理论的实践和认知,没有对测试领域的情感和钻研精神,学会了Selenium这个工具对事情也没有实际帮助. 我是一个技术思 ...

  8. ftrace:跟踪你的内核函数! | Linux 中国

    版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/F8qG7f9YD02Pe/article/details/79161135 ftrace 是一个 L ...

  9. 让windows 2003启动后直接进入桌面

    windows 2003启动后进入桌面需要解决的几个问题 1.如何去除掉 ctrl+alt+del的提示界面 2.如何设置自动登录的用户名密码 3.在异常启动时会出现关闭事件跟踪程序 也会导致不能直接 ...

  10. .net IIS MVC Rest api 跨域 PUT DELETE 404 无法使用问题解决方案

    一.WebConfig配置法(system.webServer 重点是 httpProtocol handlers) http://www.jinxuliang.com/blog/article/re ...