MapLoaderUrlTemplate

MapLoaderUrlTemplate

通过使用指定的URL模板请求瓦片的瓦片加载器。

Constructor

new MapLoaderUrlTemplate(optionsopt)

Author:
  • zpc
Example
// 获取使用TMS切片方案和地理(EPSG:4326)项目的Natural Earth II影像
var tms = new MapLoaderUrlTemplate({
    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 MapLoaderUrlTemplate({
    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 MapLoaderUrlTemplate({
   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 MapLoaderUrlTemplate({
   url : 'https://yoururl/{Time}/{z}/{y}/{x}.png',
   customTags : {
       Time: function(imageryProvider, x, y, level) {
           return '20171231'
       }
   }
});
Parameters:
Name Type Attributes Description
options Promise.<Object> | Object <optional>
此对象拥有以下属性:
Properties
Name Type Attributes Default Description
id String <optional>
该地图加载器的ID。
name String <optional>
该地图加载器的名称。
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 Cesium.Resource | String <optional>
用于选择要素的URL模板。 如果未指定此属性,则MapLoaderUrlTemplate#pickFeatures将立即返回undefined,表示未选择任何要素。 URL模板支持url参数支持的所有关键字,以及以下内容:
  • {i}: 拾取位置的像素列(水平坐标),其中最西端的像素为0
  • {j}: 拾取位置的像素行(垂直坐标),其中最北端的像素为0
  • {reverseI}: 拾取位置的像素列(水平坐标),其中最东端的像素为0
  • {reverseJ}: 拾取位置的像素行(垂直坐标),其中最南端的像素为0
  • {longitudeDegrees}: 所选位置的经度(以度为单位)
  • {latitudeDegrees}: 所选位置的纬度(以度为单位)
  • {longitudeProjected}: 切片方案投影坐标中拾取位置的经度
  • {latitudeProjected}: 切片方案投影坐标中拾取位置的纬度
  • {format}: Cesium.GetFeatureInfoFormat中指定的获取要素信息的格式
urlSchemeZeroPadding Object <optional>
URL模板中瓦片坐标的零填充。格式为'000',其中每个坐标将在左侧填充0,以匹配传递的0字符串的宽度。 例如,设置:urlSchemeZeroPadding : { '{x}' : '0000'},将导致一个'x'值12返回字符串'0012',对应URL模板中{x}瓦片坐标。它传递的对象有以下关键字:
  • {z}: 在切片方案中瓦片级别的零填充
  • {x}: 在切片方案中瓦片X坐标的零填充
  • {y}: 在切片方案中瓦片Y坐标的零填充
  • {reverseX}: 在切片方案中,瓦片的反转X坐标的零填充
  • {reverseY}: 在切片方案中,瓦片的反转Y坐标的零填充
  • {reverseZ}: 在切片方案中,瓦片的反转Z坐标的零填充
subdomains String | Array.<String> <optional>
'abc' URL模板中用于 {s} 占位符的子域。 如果此参数是单个字符串,则字符串中的每个字符都是一个子域。 如果是数组,则数组中的每个元素都是一个子域。
credit Cesium.Credit | String <optional>
'' 版权信息。
minimumLevel Number <optional>
0 瓦片加载器支持的最小级别。 指定此值时,请注意最小级别的切片数量较小,例如四个或更少。 数量较大可能会导致渲染问题。
maximumLevel Number <optional>
瓦片加载器支持的最大级别,如果没有限制,则为未定义。
rectangle Cesium.Rectangle <optional>
Cesium.Rectangle.MAX_VALUE 地图矩形范围,以弧度为单位。
tilingScheme Cesium.TilingScheme <optional>
new Cesium.WebMercatorTilingScheme() 切片方案,默认为WebMercatorTilingScheme。
ellipsoid Cesium.Ellipsoid <optional>
椭球。 如果指定了tilingScheme,则将忽略此参数,而是使用切片方案的椭圆体。如果未指定任何参数,则使用WGS84椭球。
tileWidth Number <optional>
256 瓦片宽。
tileHeight Number <optional>
256 瓦片高。
hasAlphaChannel Boolean <optional>
true 是否含有Alpha通道。
getFeatureInfoFormats Array.<Cesium.GetFeatureInfoFormat> <optional>
调用MapLoaderUrlTemplate#pickFeatures时在特定位置获取要素信息的格式。 如果未指定此参数,则禁用要素选择。
enablePickFeatures Boolean <optional>
true 是否启用拾取要素。
customTags Object <optional>
允许替换URL模板中的自定义关键字。 该对象必须具有字符串作为键,并且必须具有值。

Extends

Members

(readonly) credit :Cesium.Credit

Overrides:
获取版权信息。 在 MapLoader#ready 返回true之前,不应调用此函数。
Type:
  • Cesium.Credit

(readonly) errorEvent :Cesium.Event

Overrides:
获取此加载器遇到异步错误时触发的事件。
Type:
  • Cesium.Event

(readonly) hasAlphaChannel :Boolean

Overrides:
获取影像是否有Alpha通道。
Type:
  • Boolean

(readonly) id :String

Overrides:
获取ID。
Type:
  • String

(readonly) maximumLevel :Number

Overrides:
获取可以请求的最大级别。 在 MapLoader#ready 返回true之前,不应调用此函数。
Type:
  • Number

(readonly) minimumLevel :Number

Overrides:
获取可以请求的最小级别。 在 MapLoader#ready 返回true之前,不应调用此函数。
Type:
  • Number

pickFeaturesUrl :String

用于选择要素的URL模板。如果未指定此属性,则MapLoaderUrlTemplate#pickFeatures将立即返回undefined,表示未选择任何要素。 URL模板支持url参数支持的所有关键字,以及以下内容:
  • {i}: 拾取位置的像素列(水平坐标),其中最西端的像素为0
  • {j}: 拾取位置的像素行(垂直坐标),其中最北端的像素为0
  • {reverseI}: 拾取位置的像素列(水平坐标),其中最东端的像素为0
  • {reverseJ}: 拾取位置的像素行(垂直坐标),其中最南端的像素为0
  • {longitudeDegrees}: 所选位置的经度(以度为单位)
  • {latitudeDegrees}: 所选位置的纬度(以度为单位)
  • {longitudeProjected}: 切片方案投影坐标中拾取位置的经度
  • {latitudeProjected}: 切片方案投影坐标中拾取位置的纬度
  • {format}: Cesium.GetFeatureInfoFormat中指定的获取要素信息的格式
Type:
  • String

(readonly) provider :Boolean

Overrides:
获取此瓦片加载器包装的图形提供器。
Type:
  • Boolean

(readonly) proxy :Cesium.Proxy

Overrides:
获取此加载器使用的代理。
Type:
  • Cesium.Proxy

(readonly) ready :Boolean

Overrides:
获取加载器是否已准备好。
Type:
  • Boolean

(readonly) readyPromise :Promise.<Boolean>

Overrides:
获取在加载器准备就绪时可以解析为true的Promise。
Type:
  • Promise.<Boolean>

(readonly) rectangle :Cesium.Rectangle

Overrides:
获取要显示的地图范围(以弧度表示)。 在 MapLoader#ready 返回true之前,不应调用此函数。
Type:
  • Cesium.Rectangle

(readonly) tileDiscardPolicy :Cesium.TileDiscardPolicy

Overrides:
获取瓦片丢弃策略。 在 MapLoader#ready 返回true之前,不应调用此函数。
Type:
  • Cesium.TileDiscardPolicy

(readonly) tileHeight :Number

Overrides:
获取瓦片高,以像素为单位。 在 MapLoader#ready 返回true之前,不应调用此函数。
Type:
  • Number

(readonly) tileWidth :Number

Overrides:
获取瓦片宽,以像素为单位。 在 MapLoader#ready 返回true之前,不应调用此函数。
Type:
  • Number

(readonly) tilingScheme :Cesium.TilingScheme

Overrides:
获取切片方案。 在 MapLoader#ready 返回true之前,不应调用此函数。
Type:
  • Cesium.TilingScheme

url :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}: 瓦片高
Type:
  • String

urlSchemeZeroPadding :Object

URL模板中瓦片坐标的零填充。格式为'000',其中每个坐标将在左侧填充0,以匹配传递的0字符串的宽度。 例如,设置:urlSchemeZeroPadding : { '{x}' : '0000'},将导致一个'x'值12返回字符串'0012',对应URL模板中{x}瓦片坐标。它传递的对象有以下关键字:
  • {z}: 在切片方案中瓦片级别的零填充
  • {x}: 在切片方案中瓦片X坐标的零填充
  • {y}: 在切片方案中瓦片Y坐标的零填充
  • {reverseX}: 在切片方案中,瓦片的反转X坐标的零填充
  • {reverseY}: 在切片方案中,瓦片的反转Y坐标的零填充
  • {reverseZ}: 在切片方案中,瓦片的反转Z坐标的零填充
Type:
  • Object

Methods

getTileCredits(x, y, level) → {Array.<Cesium.Credit>}

Overrides:
获取当请求的瓦片被显示出来时,要显示的版权信息。
Parameters:
Name Type Description
x Number 瓦片的X坐标。
y Number 瓦片的Y坐标。
level Number 瓦片的层级。
Throws:
在图像提供器准备就绪之前,不得调用 getTileCredits
Type
Cesium.DeveloperError
Returns:
返回的版权信息。
Type
Array.<Cesium.Credit>

pickFeatures(x, y, level, longitude, latitude) → {Promise.<Array.<Cesium.ImageryLayerFeatureInfo>>|undefined}

异步地确定哪些要素(如果有的话)位于瓦片中给定的经度和纬度。 在MapLoaderUrlTemplate#ready返回true之前,不应该调用此函数。 这个函数是可选的,所以它可能不存在于所有的ImageryProviders上。
Parameters:
Name Type Description
x Number 瓦片的X坐标。
y Number 瓦片的Y坐标。
level Number 瓦片的级别。
longitude Number 拾取要素的经度。
latitude Number 拾取要素的纬度。
Throws:
pickFeatures在图像提供器准备好之前不能被调用。
Type
Cesium.DeveloperError
Returns:
对所选要素的promise,它将在异步拾取完成时解析。 解析后的值是Cesium.ImageryLayerFeatureInfo实例的数组。如果在给定位置没有发现任何要素,则该数组可能为空。 如果不支持拾取,它也可能是未定义的。
Type
Promise.<Array.<Cesium.ImageryLayerFeatureInfo>> | undefined

reinitialize(options)

重新初始化该实例。支持重新初始化已经在使用的实例,但是不建议您重新使用,因为图像提供器提供的现有切片将不会更新。
Parameters:
Name Type Description
options Promise.<Object> | Object 可以传递给MapLoaderUrlTemplate构造函数的任何选项。

requestImage(x, y, level, requestopt) → {Promise.<(Image|Canvas)>|undefined}

Overrides:
请求给定块的瓦片。MapLoaderUrlTemplate#ready返回true之前,不应调用此函数。
Parameters:
Name Type Attributes Description
x Number 瓦片的X坐标。
y Number 瓦片的Y坐标。
level Number 瓦片的层级。
request Cesium.Request <optional>
Request对象(仅供内部使用)。
Returns:
返回值有以下3种情况: 1.当图像可用时,返回对图像的Promise。 2.如果有太多对服务器的活动请求,则返回未定义图像,并且应该稍后重新请求。 3.解析后的图像可以是图像,也可以是画布DOM对象。
Type
Promise.<(Image|Canvas)> | undefined