cesium加载影像服务接口分析



cesium加载影像

提示:Cesium本身提供了不同接口来加载各类影像地图服务,包括本地和服务数据,总结接口使用情况如下:个人建议影像服务还是加载本地服务数据比较好,接口推荐createTileMapServiceImageryProvider,数据类型TMS瓦片数据,数据来源:91位图之类的工具下载然后导出为TMS格式,直接iis下发布请求即可

/*
 * @Author: Wang JianLei 
 * @Date: 2020-03-24 14:33:33 
 * @Last Modified by: Wang JianLei
 * @Last Modified time: 2020-04-13 10:36:38
 */
/**************************************************************
**主要记录的是cesium加载各类影像服务的接口,不包括地形服务数据加载**
**************************************************************/
$(function () {
    $("#ImageTypes").change(function () {
        var option = $(this).val();
        switch (option) {
            case "ArcGisMapServerImageryProvider":
                this.title = "支持ArcGIS Online和Server的相关服务";
                viewer.imageryLayers.addImageryProvider(
                    new Cesium.ArcGisMapServerImageryProvider({
                        url: "http://atlasmaps.esri.com/arcgis/rest/services/Esri/USA_Population_Density/MapServer",
                        enablePickFeatures: false
                    }));
                console.log("ArcGisMapServerImageryProvider 成功!");
                break;
 
            case "BingMapsImageryProvider":
                this.title = "Bing地图影像,可以指定mapStyle,详见BingMapsStyle类,其中可以指定mapStyle,选择多种风格,目前Cesium中支持AERIAL、AERIAL_WITH_LABELS、ROAD、ORDNANCE_SURVEY、COLLINS_BART五种";
                viewer.imageryLayers.addImageryProvider(
                    new Cesium.BingMapsImageryProvider({
                        url: "https://dev.virtualearth.net/",
                        key: 'At7n9JV-UZwwyTWeZEFjGQsgIdGifcEvTxZJEDuC1yU2vTwdAeNSKnDlBQIHXkMR',
                        mapStyle: Cesium.BingMapsStyle.AERIAL
                    }));
                console.log("BingMapsImageryProvider 成功!");
                break;
 
            case "createOpenStreetMapImageryProvider":
                this.title = "OSM影像服务,根据不同的url选择不同的风格";
                viewer.imageryLayers.addImageryProvider(
                    new Cesium.createOpenStreetMapImageryProvider({
                        url: "https://a.tile.openstreetmap.org/"
                    }));
                console.log("createOpenStreetMapImageryProvider 成功!");
                break;
 
            case "createTileMapServiceImageryProvider":
                this.title = "看文档是根据MapTiler规范,貌似是可以自己下载瓦片,发布服务,类似ArcGIS影像服务的过程";
                viewer.imageryLayers.addImageryProvider(
                    new Cesium.createTileMapServiceImageryProvider({
                        url: RootURL + "/91WT/Image_World/tiles"
                    }));//暂定项目影像服务加载解决方案
                console.log("createTileMapServiceImageryProvider 成功!");
                break;
 
            case "MapboxImageryProvider":
                this.title = "Mapbox影像服务,根据mapId指定地图风格";
                viewer.imageryLayers.addImageryProvider(
                    new Cesium.MapboxImageryProvider({
                        url: "https://api.mapbox.com/v4/",
                        mapId: 'mapbox.streets'
                    }));
                console.log("MapboxImageryProvider 成功!");
                break;
 
            case "SingleTileImageryProvider":
                this.title = "单张图片的影像服务,适合离线数据或对影像数据要求并不高的场景下";
                viewer.imageryLayers.addImageryProvider(new Cesium.SingleTileImageryProvider({
                    url: RootURL + '/91WT/world.png',
                    rectangle: Cesium.Rectangle.fromDegrees(-180.0, -90.0, 180.0, 90.0)
                }));
                console.log("SingleTileImageryProvider 成功!");
                break;
 
            case "UrlTemplateImageryProvider":
                this.title = "指定url的format模版,方便用户实现自己的Provider,比如国内的高德,腾讯等影像服务,url都是一个固定的规范,都可以通过该Provider轻松实现。而OSM也是通过该类实现的。";
                viewer.imageryLayers.addImageryProvider(new Cesium.UrlTemplateImageryProvider({
                    // url: "http://mt1.google.cn/vt/lyrs=s&hl=zh-CN&x={x}&y={y}&z={z}&s=Gali"//谷歌影像
                    // url: 'https://webst02.is.autonavi.com/appmaptile?style=6&x={x}&y={y}&z={z}'//高德影像
                    // url: 'https://wprd02.is.autonavi.com/appmaptile?x={x}&y={y}&z={z}&lang=zh_cn&size=1&scl=2&style=8&ltype=11'//高德路网数据
                    // url: 'https://p2.map.gtimg.com/sateTiles/{z}/{sx}/{sy}/{x}_{reverseY}.jpg?version=229', customTags: {
                    //     sx: function (imageryProvider, x, y, level) {
                    //         return x >> 4;
                    //     },
                    //     sy: function (imageryProvider, x, y, level) {
                    //         return ((1 << level) - y) >> 4;
                    //     }
                    // }//腾讯地图
                    url: RootURL + "/91WT/Image_World/tiles/{z}/{x}/{y}.png"//本地影像TMS //区别于createTileMapServiceImageryProvider加载的URL
                }));
                console.log("SingleTileImageryProvider 成功!");
                break;
 
            case "WebMapServiceImageryProvider":
                this.title = "符合WMS规范的影像服务都可以通过该类封装,指定具体参数实现";
                viewer.imageryLayers.addImageryProvider(new Cesium.WebMapServiceImageryProvider({
                    url: 'http://localhost:8080/geoserver/CesiumTest_WMS/wms?', // 服务地址
                    layers: 'CesiumTest_WMS:world', // 图层名称
                    parameters: {
                        transparent: true, // 是否透明
                        format: 'image/png', // 返回格式
                        srs: 'EPSG:4326',  // 坐标系
                        styles: ''
                    }
                }));
                console.log("WebMapServiceImageryProvider 成功!");
                break;
 
            case "WebMapTileServiceImageryProvider"://10f42f91b6e50d2a8eec980577e6a2e6
                this.title = "服务WMTS1.0.0规范的影像服务,都可以通过该类实现,比如国内的天地图";
                // viewer.imageryLayers.addImageryProvider(new Cesium.WebMapTileServiceImageryProvider({//加载全球矢量服务(经纬度)
                //     url: 'http://t0.tianditu.gov.cn/vec_c/wmts?tk=10f42f91b6e50d2a8eec980577e6a2e6',
                //     layer: 'vec',
                //     style: 'default',
                //     tileMatrixSetID: 'c',
                //     format: 'tiles',
                //     maximumLevel: 18
                // }));
                viewer.imageryLayers.addImageryProvider(new Cesium.WebMapTileServiceImageryProvider({//加载全球中文注记(经纬度)
                    url: 'http://t0.tianditu.gov.cn/cia_w/wmts?tk=10f42f91b6e50d2a8eec980577e6a2e6',
                    layer: 'cia',
                    style: 'default',
                    tileMatrixSetID: 'w',
                    format: 'tiles',
                    maximumLevel: 18
                }));
                console.log("WebMapTileServiceImageryProvider 成功!");
                break;
 
            case "TileCoordinatesImageryProvider":
                this.title = "渲染每一个瓦片的围,方便调试";
                var TileCoordinatesImagery = new Cesium.TileCoordinatesImageryProvider();
                var TileCoordinatesImageryLayer = viewer.imageryLayers.addImageryProvider(TileCoordinatesImagery);//添加瓦片坐标图层
                viewer.imageryLayers.raiseToTop(TileCoordinatesImageryLayer);//将瓦片坐标图层置顶
                console.log("TileCoordinatesImageryProvider 成功!");
                break;
 
            case "GridImageryProvider":
                this.title = "渲染每一个瓦片内部的格网,了解每个瓦片的精细度";
                var GridImagery = new Cesium.GridImageryProvider();
                var GridImageryLayer = viewer.imageryLayers.addImageryProvider(GridImagery);//添加瓦片坐标图层
                viewer.imageryLayers.raiseToTop(GridImageryLayer);//将瓦片坐标图层置顶
                console.log("GridImageryProvider 成功!");
                break;
 
            default:
                break;
        }
    });
})

一、ArcGisMapServerImageryProvider

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
支持ArcGIS Online和Server的相关服务,后台检测可以发现实际上返回的是一个.json文件,地址:http://atlasmaps.esri.com/arcgis/rest/services/Esri/USA_Population_Density/MapServer/?callback=loadJsonp195730&f=json

二、BingMapsImageryProvider

在这里插入图片描述
Bing地图影像,其中可以指定mapStyle,选择多种风格,目前Cesium中支持AERIAL、AERIAL_WITH_LABELS、ROAD、ORDNANCE_SURVEY、COLLINS_BART五种,详见BingMapsStyle类,注意的是需要申请一个key,地址:https://www.bingmapsportal.com/

三、WebMapTileServiceImageryProvider

服务WMTS1.0.0规范(定义了 GetCapabilities、GetTile、GetFeatureInfo 3个操作)的影像服务,都可以通过该类实现.

GetCapabilities:返回服务元数据 ServiceMetadata,即服务能力和信息内容。

GetTile:返回瓦片地图 Tile。

GetFeatureInfo:返回显示在瓦片地图上的要素信息 FeatureInfo,是可选操作

说白了,也就是用来加载Web Map Tile Service (WMTS) 服务。参数API;最常见的国内的天地图数据加载这里要注意的是国家天地图从2019年1月1日起,调用服务前需申请开发授权,官网申请 token。
在这里插入图片描述
天地图WMTS各类服务地址:https://service.tianditu.gov.cn/#/
在这里插入图片描述

三、WebMapServiceImageryProvider

符合WMS规范(定义了 GetCapabilities,GetMap,GetFeatureInfo 三个操作)的影像服务都可以通过该类封装,指定具体参数实现。

GetCapabilities:返回服务级元数据的xml文档,里面记录有图层Layer,Bounds范围等信息;

GetMap:返回地理空间参数和大小已明确定义的地图图像;

GetFeatureInfo:返回显示在地图上的某些特殊要素(feature)的信息

说白了,这个接口就是用来加载Web Map Service (WMS) 服务的,它的参数有很多:(参数API)

(1) layers:需要加载的图层,多个图层以逗号隔开即可,可以对应的能力文档的Layer的Name或Title,例如 layers: ‘图层,图层2’ 或 layers:‘BaseMap_R@Jingjin#1’;

(2)parameters:在GetMap URL中传递给WMS服务器的其他参数,常见参数比如‘transparent’(地图背景透明),‘format’(返回的图片格式),默认为‘image/jpeg’,

(3)getFeatureInfoParameters:在GetFeatureInfo URL中传递给WMS服务器的其他参数,这里可设置‘query_layers’( 查询图层列表)和‘info_format’(要素信息的返回格式)等,填写规则和layers一样,若不设置query_layers,则默认和layers的设置一样,同时,能力文档中queryable为1的图层可查询,为0不能查询;

(4)enablePickFeatures:是否点击地图获取查询图层的要素,默认为true,设置为fales,不会进行GetFeatureInfo操作,即getFeatureInfoParameters参数不生效;

(5)getFeatureInfoFormat:GetFeatureInfoFormat数组,简单说,就是根据GetFeatureInfo要素信息的返回格式触发相应的回调,不设置则触发默认的事件

(6)rectangle:图像覆盖的范围。默认为全球范围,可根据添加的图层的BoundingBox进行设置
注意:若同时设置了getFeatureInfoParameters中的‘info_format’和getFeatureInfoFormat,则以info_format为准,若只设置getFeatureInfoFormat,则以该数组中的第一个GetFeatureInfoFormat为准,两者都不设置的话,默认为’application/json’

在这里插入图片描述
利用Geoserver将TIF文件(91位图下载导出为单张tif)发布WMS服务(服务发布过程),接口调用
在这里插入图片描述

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小仙有礼了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值