麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

Cesium API - UrlTemplateImageryProvider 中文文档

本文介绍下Cesium中 UrlTemplateImageryProvider API的详细使用说明。

UrlTemplateImageryProvider API 调用方法

new Cesium.UrlTemplateImageryProvider(options)
通过使用指定的URL模板请求瓦片来提供图像。
Name Type Description
options Promise.<Object> | Object optional 此对象拥有以下属性:
Name Type Default Description
url Resource | String 用于请求瓦片的URL模板。 它具有以下关键字:
  • {z}: 级别
  • {x}: 瓦片X坐标
  • {y}: 瓦片Y坐标
  • {s}: 可用的子域之一,用于克服浏览器对每个主机的并发请求数的限制
  • {reverseX}: 切片方案中的切片X坐标,其中0是最东端的切片
  • {reverseY}: 切片方案中的切片Y坐标,其中0是最南端的切片
  • {reverseZ}: 切片方案中切片的级别,其中级别0是四叉树金字塔的最大级别。为了使用reverseZ,必须定义maximumLevel
  • {westDegrees}: 最小经度
  • {southDegrees}: 最小纬度
  • {eastDegrees}:最大经度
  • {northDegrees}: 最大纬度
  • {westProjected}: 在切片方案的投影坐标系下的最小X坐标
  • {southProjected}: 在切片方案的投影坐标系下的最小Y坐标
  • {eastProjected}: 在切片方案的投影坐标系下的最大X坐标
  • {northProjected}: 在切片方案的投影坐标系下的最大Y坐标
  • {width}: 瓦片宽
  • {height}: 瓦片高
pickFeaturesUrl Resource | String optional 用于选择要素的URL模板。 如果未指定此属性,则UrlTemplateImageryProvider#pickFeatures将立即返回undefined,表示未选择任何要素。 URL模板支持url 参数支持的所有关键字,以及以下内容: {i}: 拾取位置的像素列(水平坐标),其中最西端的像素为0 {j}: 拾取位置的像素行(垂直坐标),其中最北端的像素为0 {reverseI}: 拾取位置的像素列(水平坐标),其中最东端的像素为0 {reverseJ}: 拾取位置的像素行(垂直坐标),其中最南端的像素为0 {longitudeDegrees}: 所选位置的经度(以度为单位) {latitudeDegrees}: 所选位置的纬度(以度为单位) {longitudeProjected}: 切片方案投影坐标中拾取位置的经度 {latitudeProjected}: 切片方案投影坐标中拾取位置的纬度 {format}: GetFeatureInfoFormat中指定的获取要素信息的格式
urlSchemeZeroPadding Object optional 获取每个瓦片坐标的URL方案零填充。 格式为'000',其中每个坐标将在左侧填充0,以匹配传递的0字符串的宽度。例如,设置: urlSchemeZeroPadding : { '{x}' : '0000'},将导致一个'x'值12返回字符串'0012'为{x}在生成的URL。 它传递的对象有以下关键字:
  • {z}: 在切片方案中瓦片级别的零填充
  • {x}: 在切片方案中瓦片X坐标的零填充
  • {y}: 在切片方案中瓦片Y坐标的零填充
  • {reverseX}: 在切片方案中,瓦片的反转X坐标的零填充
  • {reverseY}: 在切片方案中,瓦片的反转Y坐标的零填充
  • {reverseZ}: 在切片方案中,瓦片的反转Z坐标的零填充
subdomains String | Array.<String> 'abc' optional URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串,则字符串中的每个字符都是一个子域。 如果是数组,则数组中的每个元素都是一个子域。
credit Credit | String '' optional 版权信息。
minimumLevel Number 0 optional 图像提供器支持的最小级别。 指定此值时,请注意最小级别的切片数量较小,例如四个或更少。 数量较大可能会导致渲染问题。
maximumLevel Number optional 图像提供器支持的最大级别,如果没有限制,则为未定义。
rectangle Rectangle Rectangle.MAX_VALUE optional 地图矩形范围,以弧度为单位。
tilingScheme TilingScheme WebMercatorTilingScheme optional 切片方案指定如何将椭球表面分解为瓦片。 如果未提供此参数,则使用WebMercatorTilingScheme
ellipsoid Ellipsoid optional 椭球。 如果指定了tilingScheme,则将忽略此参数,而是使用切片方案的椭圆体。 如果未指定任何参数,则使用WGS84椭球。
tileWidth Number 256 optional 瓦片宽。
tileHeight Number 256 optional 瓦片高。
hasAlphaChannel Boolean true optional 是否含有Alpha通道。
getFeatureInfoFormats Array.<GetFeatureInfoFormat> optional 调用UrlTemplateImageryProvider#pickFeatures时在特定位置获取要素信息的格式。 如果未指定此参数,则禁用要素选择。
enablePickFeatures Boolean true optional 是否启用拾取要素。
customTags Object optional 允许替换URL模板中的自定义关键字。 该对象必须具有字符串作为键,并且必须具有值。
示例:
// 获取使用TMS切片方案和地理(EPSG:4326)项目的Natural Earth II影像
var tms = new Cesium.UrlTemplateImageryProvider({
    url : Cesium.buildModuleUrl('Assets/Textures/NaturalEarthII') + '/{z}/{x}/{reverseY}.jpg',
    credit : '© Analytical Graphics, Inc.',
    tilingScheme : new Cesium.GeographicTilingScheme(),
    maximumLevel : 5
});
// 访问CartoDB Positron底图,该底图使用类似OpenStreetMap的切片方案。
var positron = new Cesium.UrlTemplateImageryProvider({
    url : 'http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png',
    credit : 'Map tiles by CartoDB, under CC BY 3.0. Data by OpenStreetMap, under ODbL.'
});
// 访问Web地图服务(WMS)服务器。
var wms = new Cesium.UrlTemplateImageryProvider({
   url : 'https://programs.communications.gov.au/geoserver/ows?tiled=true&' +
         'transparent=true&format=image%2Fpng&exceptions=application%2Fvnd.ogc.se_xml&' +
         'styles=&service=WMS&version=1.1.1&request=GetMap&' +
         'layers=public%3AMyBroadband_Availability&srs=EPSG%3A3857&' +
         'bbox={westProjected}%2C{southProjected}%2C{eastProjected}%2C{northProjected}&' +
         'width=256&height=256',
   rectangle : Cesium.Rectangle.fromDegrees(96.799393, -43.598214999057824, 153.63925700000001, -9.2159219997013)
});
// 在模板网址中使用自定义标记。
var custom = new Cesium.UrlTemplateImageryProvider({
   url : 'https://yoururl/{Time}/{z}/{y}/{x}.png',
   customTags : {
       Time: function(imageryProvider, x, y, level) {
           return '20171231'
       }
   }
});
参考:

成员变量

获取版权信息。UrlTemplateImageryProvider#ready返回true之前,不应调用此函数。
Default Value: undefined
enablePickFeatures : Boolean
获取或设置一个值,该值指示是否启用要素拾取。 如果为true,UrlTemplateImageryProvider#pickFeatures将请求options.pickFeaturesUrl,并尝试解释响应中包含的要素。 如果为false, UrlTemplateImageryProvider#pickFeatures将立即返回undefined(指示没有可拾取的要素),而不与服务器通信。 如果您知道您的数据源不支持拾取要素,或者您不希望提供者的要素可拾取,则将此属性设置为false。
Default Value: true
获取此提供器遇到异步错误时触发的事件。 通过订阅事件,您将收到错误通知,并可能从中恢复。事件监听器传递一个TileProviderError的实例。
readonlyhasAlphaChannel : Boolean
获取影像是否有Alpha通道。UrlTemplateImageryProvider#ready返回true之前,不应调用此函数。
Default Value: true
readonlymaximumLevel : Number
获取可以请求的最大级别,如果没有限制,则为未定义。UrlTemplateImageryProvider#ready返回true之前,不应调用此函数。
Default Value: undefined
readonlyminimumLevel : Number
获取可以请求的最小级别。UrlTemplateImageryProvider#ready返回true之前,不应调用此函数。
Default Value: 0
readonlypickFeaturesUrl : String
获取用于选择要素的URL模板。如果未指定此属性,则UrlTemplateImageryProvider#pickFeatures将立即返回undefined, 表示未选择任何要素。URL模板支持UrlTemplateImageryProvider#url属性支持的所有关键字,以及以下内容:
  • {i}: 拾取位置的像素列(水平坐标),其中最西端的像素为0
  • {j}: 拾取位置的像素行(垂直坐标),其中最北端的像素为0
  • {reverseI}: 拾取位置的像素列(水平坐标),其中最东端的像素为0
  • {reverseJ}: 拾取位置的像素行(垂直坐标),其中最南端的像素为0
  • {longitudeDegrees}: 所选位置的经度(以度为单位)
  • {latitudeDegrees}: 所选位置的纬度(以度为单位)
  • {longitudeProjected}: 切片方案投影坐标中拾取位置的经度
  • {latitudeProjected}: 切片方案投影坐标中拾取位置的纬度
  • {format}: GetFeatureInfoFormat中指定的获取要素信息的格式
获取此提供器使用的代理。
Default Value: undefined
readonlyready : Boolean
获取一个值,该值指示提供器是否已准备好使用。
readonlyreadyPromise : Promise.<Boolean>
获取一个在提供器准备好使用时解析为true的Promise。
地图矩形范围。UrlTemplateImageryProvider#ready返回true之前,不应调用此函数。
Default Value: tilingScheme.rectangle
获取瓦片忽略策略。如果未定义,则忽略策略负责通过其shouldDiscardImage函数过滤掉“丢失”的瓦片。 如果此函数返回未定义,则不过滤任何切片。UrlTemplateImageryProvider#ready返回true之前,不应调用此函数。
Default Value: undefined
readonlytileHeight : Number
获取每个瓦片的高度(以像素为单位)。UrlTemplateImageryProvider#ready返回true之前,不应调用此函数。
Default Value: 256
readonlytileWidth : Number
获取每个瓦片的宽度(以像素为单位)。UrlTemplateImageryProvider#ready返回true之前,不应调用此函数。
Default Value: 256
获取切片方案。UrlTemplateImageryProvider#ready返回true之前,不应调用此函数。
Default Value: new WebMercatorTilingScheme()
获取用于请求切片的URL模板。 它具有以下关键字:
  • {z}: 级别
  • {x}: 瓦片X坐标
  • {y}: 瓦片X坐标
  • {s}: 可用的子域之一,用于克服浏览器对每个主机的并发请求数的限制
  • {reverseX}: 瓦片X坐标
  • {reverseY}: 瓦片X坐标
  • {reverseZ}: 级别
  • {westDegrees}: 最小经度
  • {southDegrees}: 最小纬度
  • {eastDegrees}: 最大经度
  • {northDegrees}: 最大纬度
  • {westProjected}: 切片方案的投影坐标系下的最小X坐标
  • {southProjected}: 切片方案的投影坐标系下的最小Y坐标
  • {eastProjected}: 切片方案的投影坐标系下的最大X坐标
  • {northProjected}: 切片方案的投影坐标系下的最大Y坐标
  • {width}: 瓦片宽
  • {height}: 瓦片高
readonlyurlSchemeZeroPadding : Object
获取每个瓦片坐标的URL方案零填充。 格式为'000',其中每个坐标将在左侧填充0,以匹配传递的0字符串的宽度。例如,设置: urlSchemeZeroPadding : { '{x}' : '0000'},将导致一个'x'值12返回字符串'0012'为{x}在生成的URL。 它传递的对象有以下关键字:
  • {z}: 在切片方案中瓦片级别的零填充
  • {x}: 在切片方案中瓦片X坐标的零填充
  • {y}: 在切片方案中瓦片Y坐标的零填充
  • {reverseX}: 在切片方案中,瓦片的反转X坐标的零填充
  • {reverseY}: 在切片方案中,瓦片的反转Y坐标的零填充
  • {reverseZ}: 在切片方案中,瓦片的反转Z坐标的零填充

内置方法

getTileCredits(x, y, level)Array.<Credit>
获取当请求的瓦片被显示出来时,要显示的版权信息。
Name Type Description
x Number 瓦片的X坐标。
y Number 瓦片的Y坐标。
level Number 瓦片的层级。
返回值:
返回的版权信息。
异常情况:
  • DeveloperError : 在图像提供器准备就绪之前,不得调用 getTileCredits
pickFeatures(x, y, level, longitude, latitude)Promise.<Array.<ImageryLayerFeatureInfo>>|undefined
异步地确定哪些要素(如果有的话)位于瓦片中给定的经度和纬度。 在ImageryProvider#ready返回true之前,不应该调用此函数。 这个函数是可选的,所以它可能不存在于所有的ImageryProviders上。
Name Type Description
x Number 瓦片的X坐标。
y Number 瓦片的Y坐标。
level Number 瓦片的级别。
longitude Number 拾取要素的经度。
latitude Number 拾取要素的纬度。
返回值:
对所选要素的promise,它将在异步拾取完成时解析。 解析后的值是ImageryLayerFeatureInfo实例的数组。如果在给定位置没有发现任何要素,则该数组可能为空。 如果不支持拾取,它也可能是未定义的。
异常情况:
  • DeveloperError : pickFeatures在图像提供器准备好之前不能被调用。
重新初始化该实例。支持重新初始化已经在使用的实例,但是不建议您重新使用,因为图像提供器提供的现有切片将不会更新。
Name Type Description
options Promise.<Object> | Object 可以传递给UrlTemplateImageryProvider构造函数的任何选项。
requestImage(x, y, level, request)Promise.<(Image|Canvas)>|undefined
请求给定块的瓦片。UrlTemplateImageryProvider#ready返回true之前,不应调用此函数。
Name Type Description
x Number 瓦片的X坐标。
y Number 瓦片的Y坐标。
level Number 瓦片的层级。
request optional Request对象(仅供内部使用)。
返回值:
返回值有以下3种情况: 1.当图像可用时,返回对图像的Promise。 2.如果有太多对服务器的活动请求,则返回未定义图像,并且应该稍后重新请求。 3.解析后的图像可以是图像,也可以是画布DOM对象。

其他API

Cesium中文API文档手册(v1.63.1版本)参考:《Cesium中文API文档手册(v1.63.1版本)

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子

留言板(小编看到第一时间回复)