Cesium调用 WMS 、WMTS 服务
参考文章地址: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 两小段代码
- var viewer = new Cesium.Viewer('cesiumContainer', {
- baseLayerPicker : false
- });
- var imageryLayers = viewer.imageryLayers;
- var viewModel = {
- layers : [],
- baseLayers : [],
- upLayer : null,
- downLayer : null,
- selectedLayer : null,
- isSelectableLayer : function(layer) {
- return this.baseLayers.indexOf(layer) >= 0;
- },
- raise : function(layer, index) {
- imageryLayers.raise(layer);
- viewModel.upLayer = layer;
- viewModel.downLayer = viewModel.layers[Math.max(0, index - 1)];
- updateLayerList();
- window.setTimeout(function() { viewModel.upLayer = viewModel.downLayer = null; }, 10);
- },
- lower : function(layer, index) {
- imageryLayers.lower(layer);
- viewModel.upLayer = viewModel.layers[Math.min(viewModel.layers.length - 1, index + 1)];
- viewModel.downLayer = layer;
- updateLayerList();
- window.setTimeout(function() { viewModel.upLayer = viewModel.downLayer = null; }, 10);
- },
- canRaise : function(layerIndex) {
- return layerIndex > 0;
- },
- canLower : function(layerIndex) {
- return layerIndex >= 0 && layerIndex < imageryLayers.length - 1;
- }
- };
- var baseLayers = viewModel.baseLayers;
- Cesium.knockout.track(viewModel);
- function setupLayers() {
- // Create all the base layers that this example will support.
- // These base layers aren't really special. It's possible to have multiple of them
- // enabled at once, just like the other layers, but it doesn't make much sense because
- // all of these layers cover the entire globe and are opaque.
- // 添加 WMTS
- addBaseLayerOption(
- 'USGS Shaded Relief (via WMTS)',
- new Cesium.WebMapTileServiceImageryProvider({
- url : 'http://basemap.nationalmap.gov/arcgis/rest/services/USGSShadedReliefOnly/MapServer/WMTS',
- layer : 'USGSShadedReliefOnly',
- style : 'default',
- format : 'image/jpeg',
- tileMatrixSetID : 'default028mm',
- maximumLevel: 19,
- credit : 'U. S. Geological Survey'
- }));
- // 添加 WMS
- addBaseLayerOption(
- 'USGS Shaded Relief (via WMS)',
- new Cesium.WebMapServiceImageryProvider({
- url : 'https://basemap.nationalmap.gov/arcgis/services/USGSHydroCached/MapServer/WMSServer',
- layers : '0',
- }));
- addBaseLayerOption(
- 'Bing Maps Aerial',
- undefined); // the current base layer
- addBaseLayerOption(
- 'Bing Maps Road',
- new Cesium.BingMapsImageryProvider({
- url : 'https://dev.virtualearth.net',
- mapStyle: Cesium.BingMapsStyle.ROAD
- }));
- addBaseLayerOption(
- 'ArcGIS World Street Maps',
- new Cesium.ArcGisMapServerImageryProvider({
- url : 'https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer'
- }));
- addBaseLayerOption(
- 'OpenStreetMaps',
- Cesium.createOpenStreetMapImageryProvider());
- addBaseLayerOption(
- 'MapQuest OpenStreetMaps',
- Cesium.createOpenStreetMapImageryProvider({
- url : 'https://otile1-s.mqcdn.com/tiles/1.0.0/osm/'
- }));
- addBaseLayerOption(
- 'Stamen Maps',
- Cesium.createOpenStreetMapImageryProvider({
- url : 'https://stamen-tiles.a.ssl.fastly.net/watercolor/',
- fileExtension: 'jpg',
- credit: 'Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA.'
- }));
- addBaseLayerOption(
- 'Natural Earth II (local)',
- Cesium.createTileMapServiceImageryProvider({
- url : Cesium.buildModuleUrl('Assets/Textures/NaturalEarthII')
- }));
- // Create the additional layers
- addAdditionalLayerOption(
- 'United States GOES Infrared',
- new Cesium.WebMapServiceImageryProvider({
- url : 'https://mesonet.agron.iastate.edu/cgi-bin/wms/goes/conus_ir.cgi?',
- layers : 'goes_conus_ir',
- credit : 'Infrared data courtesy Iowa Environmental Mesonet',
- parameters : {
- transparent : 'true',
- format : 'image/png'
- }
- }));
- addAdditionalLayerOption(
- 'United States Weather Radar',
- new Cesium.WebMapServiceImageryProvider({
- url : 'https://mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/n0r.cgi?',
- layers : 'nexrad-n0r',
- credit : 'Radar data courtesy Iowa Environmental Mesonet',
- parameters : {
- transparent : 'true',
- format : 'image/png'
- }
- }));
- addAdditionalLayerOption(
- 'TileMapService Image',
- Cesium.createTileMapServiceImageryProvider({
- url : '../images/cesium_maptiler/Cesium_Logo_Color'
- }),
- 0.2);
- addAdditionalLayerOption(
- 'Single Image',
- new Cesium.SingleTileImageryProvider({
- url : '../images/Cesium_Logo_overlay.png',
- rectangle : Cesium.Rectangle.fromDegrees(-115.0, 38.0, -107, 39.75)
- }),
- 1.0);
- addAdditionalLayerOption(
- 'Grid',
- new Cesium.GridImageryProvider(), 1.0, false);
- addAdditionalLayerOption(
- 'Tile Coordinates',
- new Cesium.TileCoordinatesImageryProvider(), 1.0, false);
- }
- function addBaseLayerOption(name, imageryProvider) {
- var layer;
- if (typeof imageryProvider === 'undefined') {
- layer = imageryLayers.get(0);
- viewModel.selectedLayer = layer;
- } else {
- layer = new Cesium.ImageryLayer(imageryProvider);
- }
- layer.name = name;
- baseLayers.push(layer);
- }
- function addAdditionalLayerOption(name, imageryProvider, alpha, show) {
- var layer = imageryLayers.addImageryProvider(imageryProvider);
- layer.alpha = Cesium.defaultValue(alpha, 0.5);
- layer.show = Cesium.defaultValue(show, true);
- layer.name = name;
- Cesium.knockout.track(layer, ['alpha', 'show', 'name']);
- }
- function updateLayerList() {
- var numLayers = imageryLayers.length;
- viewModel.layers.splice(0, viewModel.layers.length);
- for (var i = numLayers - 1; i >= 0; --i) {
- viewModel.layers.push(imageryLayers.get(i));
- }
- }
- setupLayers();
- updateLayerList();
- //Bind the viewModel to the DOM elements of the UI that call for it.
- var toolbar = document.getElementById('toolbar');
- Cesium.knockout.applyBindings(viewModel, toolbar);
- Cesium.knockout.getObservable(viewModel, 'selectedLayer').subscribe(function(baseLayer) {
- // Handle changes to the drop-down base layer selector.
- var activeLayerIndex = 0;
- var numLayers = viewModel.layers.length;
- for (var i = 0; i < numLayers; ++i) {
- if (viewModel.isSelectableLayer(viewModel.layers[i])) {
- activeLayerIndex = i;
- break;
- }
- }
- var activeLayer = viewModel.layers[activeLayerIndex];
- var show = activeLayer.show;
- var alpha = activeLayer.alpha;
- imageryLayers.remove(activeLayer, false);
- imageryLayers.add(baseLayer, numLayers - activeLayerIndex - 1);
- baseLayer.show = show;
- baseLayer.alpha = alpha;
- updateLayerList();
- });
Cesium调用 WMS 、WMTS 服务的更多相关文章
- Cesium调用Geoserver发布的 WMS、WFS服务
1 GeoServer服务发布 1.1 WMS服务 下载GeoServer安装版安装,同时安装geopackage扩展,以备使用.使用XX地图下载器下载地图,导出成GeoPackage地图文件. (1 ...
- OGC WebGIS 常用服务标准(WMS/WMTS/TMS/WFS)速查
本文只介绍实际工作中常用的 WMS.WMTS.WFS.TMS 四种,WCS.WPS 等其它 OGC WebService 类型请自行查阅官方资料. 目录 0. 参数传递方式 1. WMS 速查 1.1 ...
- 如何在Skyline中加载ArcGISServer发布的WMS和WMTS服务
如何在Skyline中加载ArcGISServer发布的WMS和WMTS服务? 我这里的测试环境是ArcGISServer10.1和TerraExplorer Pro7.0,主要过程截图如下,
- 设置代理调用WMTS服务
一.数据准备 1.链接:http://pan.baidu.com/s/1sjzCytR 密码:uugc,下载DotNet版本 2. 发布切片服务,打开ogc服务可产看到相应的符合ogc标准的服务,如下 ...
- arcgis js之调用wms服务
arcgis js之调用wms服务 定义: export const tdtlayer = async () => { let WMSLayer = await arcgisPackage.WM ...
- OpenLayers中的Layer概念和实践--Openlayers调用WMS服务
整理转自:http://hi.baidu.com/lixuweiok/item/c406a4e6a6d390e7fa42ba4b 本章我认为是这本书的真正开端,终于开始讲一些有意思的东西了.. 在这一 ...
- 使用GeoServer+QGIS发布WMTS服务 | Publishing WMTS Service Using GeoServer+QGIS
Web GIS系列: 1.搭建简易Web GIS网站:使用GeoServer+PostgreSQL+PostGIS+OpenLayers3 2.使用GeoServer+QGIS发布WMTS服务 3.使 ...
- cesium入门示例-geoserver服务访问
1.wms服务访问 //wms服务 viewer.imageryLayers.addImageryProvider(new Cesium.WebMapServiceImageryProvider({ ...
- (二十)ArcGIS JS 加载WMTS服务(超图示例)
前言 在前一篇中说到我们可以通过加载WMS服务解决用ArcGIS API加载超图发布的服务,但是WMS服务在加载效率上是低于切片服务的,加上超图的IServer,无力吐槽,所以,在加载速度的要求下,切 ...
随机推荐
- 说说Python编码规范
前言 已有近两个月没有发表过文章了,前段时间外甥和女儿过来这边渡暑假,平常晚上和周末时间都陪着她们了,趁这个周末有空,再抽空再把这块拾起来. 这么久没写了,再次拿起键盘,想想,发表些什 ...
- AngularJS 使用ng-repeat报错
[ngRepeat:dupes] Duplicates in a repeater are not allowed. Use 'track by' expression to specify uniq ...
- 移动端禁止页面拖动 h5禁止拖动页面
PC上css控制滚动仅css("overflow","hidden")已足够. 但是,如果在Mobile上还是可以拖动的!所以需要监听touchmove事件. ...
- adb shell am broadcast 手动发送广播及adb shell am/pm其他命令
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/zi_zhe/article/details/72229201 在命令行可用adb shell am ...
- docker 命令集
1.提交本地镜像到远程cd to dockerfile directorysudo docker build -t orange5 ./sudo docker psdocker tag 1adec2c ...
- kafka调试工具kafkacat的使用
一. 安装 kafkacat 是基于kafka C语言的librdkafka库的 kafka客户端,不依赖java,小巧轻便,支持主流系统.在高版本的debain.Ubuntu下可以直接apt-get ...
- Selenium IDE 基本概念
要学会Selenium不难,难的是首先你懂不懂测试.没有测试的基础知识,没有对测试理论的实践和认知,没有对测试领域的情感和钻研精神,学会了Selenium这个工具对事情也没有实际帮助. 我是一个技术思 ...
- ftrace:跟踪你的内核函数! | Linux 中国
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/F8qG7f9YD02Pe/article/details/79161135 ftrace 是一个 L ...
- 让windows 2003启动后直接进入桌面
windows 2003启动后进入桌面需要解决的几个问题 1.如何去除掉 ctrl+alt+del的提示界面 2.如何设置自动登录的用户名密码 3.在异常启动时会出现关闭事件跟踪程序 也会导致不能直接 ...
- .net IIS MVC Rest api 跨域 PUT DELETE 404 无法使用问题解决方案
一.WebConfig配置法(system.webServer 重点是 httpProtocol handlers) http://www.jinxuliang.com/blog/article/re ...