WCS 显示来自OGC Web 覆盖服务 的栅格数据。栅格数据在客户端进行投影和渲染。它支持版本 1.0.0、1.1.0、1.1.1、1.1.2 和 2.0.1。对于版本 2.0.1,它支持支持 GEOTIFF 覆盖范围的服务器,并实现以下扩展:缩放、插值、范围子集、CRS 和 KVP/Get。
为避免在使用 WCSLayer 时出现跨源问题,您可以设置启用CORS 服务器或代理。默认情况下,基于 GeoScene Server (10.3.1+) 影像服务的 WCSLayers 已启用 CORS。
- 另请参阅:
构造函数
属性概述
名称 | 类型 | 描述 | 类 | |
---|---|---|---|---|
整数[] | 更多信息 使用从 0 开始的波段索引定义波段组合。 | 更多信息 | WCSLayer | |
String | 更多信息 服务定义的版权文本。 | 更多信息 | WCSLayer | |
String | 更多信息 图层的覆盖范围标识符。 | 更多信息 | WCSLayer | |
对象 | 更多信息 使用此属性可将自定义参数追加到所有 WCS 请求。 | 更多信息 | WCSLayer | |
String | 更多信息 类的名称。 | 更多信息 | Accessor | |
Field[] | 更多信息 图层中由服务像素值组成的栅格字段数组。 | 更多信息 | fields | |
范围 | 更多信息 图层的全图范围。 | 更多信息 | Layer | |
String | 更多信息 分配给图层的唯一 ID。 | 更多信息 | Layer | |
String | 更多信息 定义如何插值像素值。 | 更多信息 | WCSLayer | |
String | 更多信息 指示图层在“图层列表 ”微件中的显示方式。 | 更多信息 | Layer | |
布尔值 | 更多信息 指示图层的资源是否已加载。 | 更多信息 | Layer | |
错误 | 更多信息 如果加载时发生错误,则返回 Error 对象。 | 更多信息 | Layer | |
String | 更多信息 表示加载操作的状态。 | 更多信息 | Layer | |
对象[] | 更多信息 加载时发生的警告列表。 | 更多信息 | Layer | |
整数 | 更多信息 图层在视图中可见的最大比例(放大程度最高)。 | 更多信息 | WCSLayer | |
整数 | 更多信息 图层在视图中可见的最小比例(最大缩小)。 | 更多信息 | WCSLayer | |
DimensionalDefinition[] | 更多信息 与图层关联的多维定义。 | 更多信息 | WCSLayer | |
整数 | 更多信息 图层的不透明度。 | 更多信息 | Layer | |
PortalItem | 更多信息 从中加载图层的门户项目。 | 更多信息 | WCSLayer | |
RasterInfo | 更多信息 从数据源检索的栅格信息。 | 更多信息 | WCSLayer | |
ClassBreaksRenderer|RasterStretchRenderer | 更多信息 分配给图层的渲染器。 | 更多信息 | WCSLayer | |
TimeExtent | 更多信息 图层的时间范围。 | 更多信息 | WCSLayer | |
TimeInfo | 更多信息 TimeInfo 提供的信息包括存储每个要素的开始和结束 时间的日期字段以及图层的 fullTimeExtent。 | 更多信息 | WCSLayer | |
TimeInterval | 更多信息 基于特定时间间隔的时间数据的临时偏移。 | 更多信息 | WCSLayer | |
String | 更多信息 图层的标题,用于在“图层列表”微件等位置标识该图层。 | 更多信息 | Layer | |
String | 更多信息 对于WCSLayer 类型始终为 "wcs"。 | 更多信息 | WCSLayer | |
String | 更多信息 当前正在使用的 Web 覆盖服务的版本。 | 更多信息 | WCSLayer | |
布尔值 | 更多信息 指示图层在视图中是否可见。 | 更多信息 | WCSLayer | |
String | 更多信息 当前使用的网络覆盖服务版本。 | 更多信息 | WCSLayer | |
布尔值 | 更多信息 指示图层在视图中是否可见。 | 更多信息 | Layer |
属性详情
-
使用从 0 开始的波段索引定义波段组合。
-
copyright String
-
服务定义的版权文本。
-
coverageId String
-
图层的覆盖范围标识符。它默认为第一个覆盖范围。
-
customParameters Object
-
使用此属性可将自定义参数追加到所有 WCS 请求。自定义参数应用于 WCS 服务的
GetCapabilities
,DescribeCoverage
,GetCoverage
操作。示例:// request for particular images in a mosaic dataset // Numbers are the object IDs of the image service catalog table layer.customParameters = {images: "1,2,3"};
-
类的名称。声明的类名的格式为
geoscene.folder.className
。
-
图层中由服务像素值组成的栅格字段数组。
-
图层的全图范围。默认情况下,这是全球性的。此属性可用于设置视图范围以匹配图层的范围,以便其要素显示为填充视图请参阅下面的示例代码段。
示例:// Once the layer loads, set the view's extent to the layer's fullextent layer.when(function(){ view.extent = layer.fullExtent; });
-
分配给图层的唯一 ID。如果未由开发人员设置,则会在加载图层时自动生成。
-
interpolation String
-
定义如何插值像素值。
可能值:"nearest"|"bilinear"|"cubic"|"majority"
-
指示图层在“图层列表 ”微件中的显示方式。可能的值如下:
值 说明 show 该图层在内容列表中可见。 hide 图层隐藏在内容列表中。 hide-children 如果图层时 GroupLayer, BuildingSceneLayer, KMLLayer, MapImageLayer, TileLayer 或 WMSLayer, 请从内容列表中隐藏子图层。 可能值:"show"|"hide"|"hide-children"
- 默认值:show
-
指示图层的资源是否已加载。如果为
true
,则可以访问对象的所有属性。- 默认值:false
-
如果加载时发生错误,则返回 Error 对象。
- 默认值:null
-
表示加载操作的状态。
值 说明 not-loaded 对象的资源尚未加载。 loading 对象的资源当前正在加载。 loaded 对象的资源已加载且未出现错误。 failed 无法加载对象的资源。有关更多详情,请参阅加载错误。 可能值:"not-loaded"|"loading"|"failed"|"loaded"
- 默认值:not-loaded
-
加载时发生的警告列表。
-
maxScale Number
-
图层在视图中可见的最大比例(放大程度最高)。如果地图放大到超出此比例,则该图层将不可见。值为
0
表示该图层没有最大比例。maxScale 值应始终小于 minScale 值,并且大于或等于服务规范。- 默认值:0
示例:// The layer will not be visible when the view is zoomed in beyond a scale of 1:1,000 layer.maxScale = 1000;
// The layer's visibility is not restricted to a maximum scale. layer.maxScale = 0;
-
minScale Number
-
图层在视图中可见的最小比例(最大缩小)。如果地图缩小到超出此比例,则图层将不可见。值为
0
表示该图层没有最小比例。minScale 值应始终大于 maxScale 值,并且小于或等于服务规范。- 默认值:0
示例:// The layer will not be visible when the view is zoomed out beyond a scale of 1:3,000,000 layer.minScale = 3000000;
// The layer's visibility is not restricted to a minimum scale. layer.minScale = 0;
-
multidimensionalDefinition DimensionalDefinition[]起始版本:GeoScene API for JavaScript 4.20
-
与图层关联的多维定义。与图层关联的多维定义。如果已定义,则多维定义包含特定值的各种维度的数据,例如时间、深度、高度等。使用多维定义定义要由图层显示的切片。例如,您可以显示以固定尺寸(例如时间,深度)测量的特定变量,例如温度或盐度。这些数据类型通常用于大气科学、海洋学和地球科学。
示例:// set the `multidimensionalDefinition` to visualize a sea water // temperature at -5000m on April 7th 2014. const dimension = [ { variableName: "temperature", dimensionName: "Std_Time", values: [1396828800000] }, { variableName: "temperature", dimensionName:"Std_Z", values:[-5000] } ]; layer.multidimensionalDefinition = dimension;
// get the layer's multidimensionalDefinition and locate the // Salinity dimension and filter the data by salinity. const multidimensionalDefinition = layer.multidimensionalDefinition; const variableName = "Salinity"; // filter the data by salinity dimension multidimensionalDefinition.forEach((def) => def.variableName = variableName); layer.multidimensionalDefinition = multidimensionalDefinition; // update the statistics of the layer's stretch renderer. const renderer = layer.renderer.clone(); const dimensions = layer.rasterInfo.multidimensionalInfo; // get the salinity variable's statistics const salinity = dimensions.variables.find((variable) => variable.name === variableName); renderer.statistics = salinity.statistics; layer.renderer = renderer;
-
图层的不透明度。此值的范围在
1
到0
之间,其中0
是 100% 透明,而1
为完全不透明。- 默认值:1
示例:// Makes the layer 50% transparent layer.opacity = 0.5;
-
portalItem PortalItem
-
从中加载图层的门户项目。如果门户项目引用了要素服务或场景服务,则可以指定要使用 layerId 属性加载的单个图层。
从版本 4.17 开始,可以从 GeoScene Online 和 GeoScene Enterprise 中托管的要素服务项目加载表。这仅适用于 要素图层,如果 FeatureLayer.isTable 返回
true
,将成功加载。示例:// While this example uses FeatureLayer, this same pattern can be // used for other layers that may be loaded from portalItem ids. const lyr = new FeatureLayer({ portalItem: { // autocasts as new PortalItem() id: "caa9bd9da1f4487cb4989824053bb847" } // the first layer in the service is returned });
// Set hostname when using an on-premise portal (default is GeoScene Online) // geosceneConfig.portalUrl = "http://myHostName.geoscene.cn/geoscene"; // While this example uses FeatureLayer, this same pattern can be // used for SceneLayers. const lyr = new FeatureLayer({ portalItem: { // autocasts as new PortalItem() id: "8d26f04f31f642b6828b7023b84c2188" }, // loads the third item in the given feature service layerId: 2 });
// This snippet loads a table hosted in GeoScene Online. const table = new FeatureLayer({ portalItem: { // autocasts as geoscene/portal/PortalItem id: "123f4410054b43d7a0bacc1533ceb8dc" } }); // Before adding the table to the map, it must first be loaded and confirm it is the right type. table.load().then(function() { if (table.isTable) { map.tables.add(table); } });
-
rasterInfo RasterInforeadonly起始版本:GeoScene API for JavaScript 4.19
-
从数据源检索的栅格信息。
-
- 另请参阅:
-
timeExtent TimeExtentautocast起始版本:GeoScene API for JavaScript 4.22
-
图层的时间范围。当图层的使用“useViewTime ”为
false
时,图层指示视图根据此时间范围显示图层中的数据。如果useViewTime
为true
,并且同时设置了图层和视图时间范围,则将显示位于视图和图层时间范围相交范围内的要素。例如,如果图层的时间范围设置为显示 1970 年至 1975 年间的要素,并且视图的时间范围设置为 1972-1980,则要素图层的有效时间为 1972-1975。- 默认值:null
示例:if (!layer.useViewTime) { if (layer.timeExtent) { console.log("Current timeExtent:", layer.timeExtent.start, " - ", layer.timeExtent.end} } else { console.log("The layer will display data within the view's timeExtent."); console.log("Current view.timeExtent:", view.timeExtent.start, " - ", view.timeExtent.end} } }
// set the timeExtent on the layer and useViewTime false // In this case, the layer will honor its timeExtent and ignore // the view's timeExtent const layer = new ImageryTileLayer({ url: "https://tiledimageservices.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/NLDAS2011_daily_wind_magdir/ImageServer", timeExtent: { start: new Date(2014, 4, 18), end: new Date(2014, 4, 19) }, useViewTime: false });
// timeExtent is set on the layer and the view // In this case, the layer will display features that fall // within the intersection of view and layer time extents // features within Jan 1, 1976 - Jan 1, 1981 will be displayed const view = new MapView({ timeExtent: { start: new Date(1976, 0, 1), end: new Date(2002, 0, 1) } }); const layer = new FeatureLayer({ url: myUrl, timeExtent: { start: new Date(1974, 0, 1), end: new Date(1981, 0, 1) } });
-
起始版本:GeoScene API for JavaScript 4.22
-
TimeInfo 提供的信息包括存储每个要素的开始和结束 时间的日期字段以及图层的 fullTimeExtent。
- 默认值:null
-
timeOffset TimeIntervalautocast起始版本:GeoScene API for JavaScript 4.22
-
基于特定时间间隔的时间数据的临时偏移。这允许用户叠加两个或多个具有不同时间范围的时间感知图层中的要素。例如,如果图层记录了 1970 年的数据,则 2 年的偏移值会暂时将数据移动到 1972 年。然后,您可以将此数据与 1972 年记录的数据叠加。时间偏移只能用于显示目的。查询和选择不受偏移量的影响。
- 默认值:null
示例:// Offset a CSV Layer containing hurricanes from 2015 so that they appear in 2019 (+4 years). let layer = new CSVLayer({ url: `hurricanes-and-storms-2015.csv`, timeOffset: { value: 4, unit: "years" }, timeInfo: { startField: "ISO_time" }, renderer: { type: "simple", symbol: { type: "simple-marker", size: 6, color: "red", outline: { width: 0.5, color: "black" } } } });
-
图层的标题,用于在“图层列表”微件等位置标识该图层。
如果从门户项目加载图层,则将使用门户项目的标题。如果将图层作为 web 地图或 webscene 的一部分加载,则将使用存储在 webmap/webscene 中的图层标题。
-
url String
-
图层的 REST 端点的 URL。URL 可以指向 GeoScene Enterprise 或 GeoScene Online 上的资源。
-
useViewTime Boolean起始版本:GeoScene API for JavaScript 4.22
-
指示图层在视图中是否可见。当
false
时,无论视图是否发生更改,图层都将根据图层的时间显示显示其时态数据。如果在此属性时true
同时设置了视图和图层时间范围,则将显示位于视图和图层时间范围交集内的要素。例如,如果将图层的时间范围设置为显示 1970 年至 1975 年间的要素,并且视图的时间范围设置为 1972-1980 年,则要素图层的有效时间为 1972-1975 年。- 默认值:true
示例:if (featureLayer.useViewTime) { console.log("Displaying data between:", view.timeExtent.start, " - ", view.timeExtent.end); }
-
version String
-
当前使用的网络覆盖服务版本。支持的版本有:1.0.0, 1.1.0, 1.1.1, 1.1.2和 2.0.1。
-
- 默认值:true
示例:// The layer is no longer visible in the view layer.visible = false;
方法概述
Name | 返回类型 | 描述 | 类 | |
---|---|---|---|---|
更多信息 如果 load() 操作已经在进行中,则取消它。 | 更多信息 | Layer | ||
Promise<LayerView> | 更多信息 当图层添加到 Map.layers 集合并且必须为其创建图层视图时,由视图(例如 MapView 和 SceneView)调用。 | 更多信息 | Layer | |
PopupTemplate | 更多信息 为图层创建默认弹出窗口模板,并使用图层的所有字段进行填充。 | 更多信息 | WCSLayer | |
更多信息 销毁图层和任何关联的资源(包括其 portalItem,如果它是图层上的属性)。 | 更多信息 | Layer | ||
布尔值 | 更多信息 在实例上发出事件。 | 更多信息 | Layer | |
Promise<Object> | 更多信息 获取给定范围的像素。 | 更多信息 | WCSLayer | |
布尔值 | 更多信息 指示实例上是否存在与提供的事件名称匹配的事件侦听器。 | 更多信息 | Layer | |
Promise<Object> | 更多信息 标识给定位置的像素值。 | 更多信息 | WCSLayer | |
布尔值 | 更多信息
| 更多信息 | Layer | |
布尔值 | 更多信息
| 更多信息 | Layer | |
布尔值 | 更多信息
| 更多信息 | Layer | |
Promise | 更多信息 加载此类引用的资源。 | 更多信息 | Layer | |
Object | 更多信息 在实例上注册事件处理程序。 | 更多信息 | Layer | |
Promise | 更多信息
| 更多信息 | Layer |
方法详情
-
当图层添加到 Map.layers 集合并且必须为其创建图层视图时,由视图(例如 MapView 和 SceneView)调用。此方法在内部使用,没有直接调用它的用例。
参数:view *父视图。
options Object可选指定其他选项的对象。有关此对象的必需属性,请参阅下面的对象规范表。
详述:signal AbortSignal可选中止图层视图创建的信号。
返回:类型 说明 Promise<LayerView> 使用 LayerView 实例进行解析。 - 另请参阅:
-
createPopupTemplate(options){PopupTemplate}
-
为图层创建默认弹出窗口模板,并使用图层的所有字段进行填充。
参数:options CreatePopupTemplateOptions可选用于创建弹出模板的选项。
返回:类型 说明 PopupTemplate 弹出模板,如果图层没有任何字段,则为 null
。
-
destroy()inherited
-
销毁图层和任何关联的资源(包括其 portalItem,如果它是图层上的属性)。该层一旦被破坏就不能再使用了。
被破坏的图层将从其父对象如 Map, WebMap, WebScene, Basemap, Ground 或 GroupLayer中移除。
-
起始版本:GeoScene API for JavaScript 4.19
-
获取给定范围的像素。
参数:详述:extent Extent要导出的图像的范围。
width Number图像的宽度(以像素为单位)。
height Number图像的高度(以像素为单位)。
options Object可选参数选项是具有以下属性的对象。
详述:interpolation String可选在版本 4.23 中添加。定义如何插值像素值。
可能值:"nearest"|"bilinear"|"cubic"|"majority"
signal AbortSignal可选中止请求的 AbortSignal。如果取消,promise 将被拒绝并出现名为
AbortError
的错误。另参见 AbortController。返回:类型 说明 Promise<Object> 解析为包含导出像素参数的对象,包括 PixelBlock。 pixelBlock
包含图像中每个像素的值。
-
标识给定位置的像素值。它标识输入位置和指定维度定义中的影像服务内容。
参数:point Point定义要识别的位置的输入点。
可选 Autocasts from Object标识请求的可选设置。
返回:类型 说明 Promise<Object> 返回解析为包含位置和像素值的 RasterIdentifyResult 的承诺。
-
isFulfilled()
可用于验证创建类的实例是否已完成(已解决或已拒绝)。如果满足,则返回true
。返回:类型 说明 布尔值 指示创建类的实例是否已完成(已解决或已拒绝)。
-
isRejected()
可用于验证创建类的实例是否被拒绝。如果拒绝,则返回true
。返回:类型 说明 布尔值 指示创建类的实例是否已被拒绝。
-
isResolved()
可用于验证创建类的实例是否已解决。如果解决,则返回true
。返回:类型 说明 布尔值 指示创建类的实例是否已解决。
-
加载此类引用的资源。如果视图 是使用地图实例构造的,则此方法会自动为视图及其在地图中引用的所有资源执行。
开发人员在访问不会在视图中加载的资源时必须调用此方法。
load()
方法仅在第一次调用时触发资源的加载。随后的调用返回相同的promise。可以提供一个
signal
来停止对Loadable
实例的加载状态感兴趣。当信号中止时,实例不会停止其加载过程,只有 cancelLoad 可以中止它。参数:signal AbortSignal可选可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被一个名为
AbortError
的错误拒绝。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。返回:类型 说明 Promise 资源已加载时解析。
-
在实例上注册事件处理程序。调用此方法以将事件与侦听器挂钩。
参数:要侦听的事件或事件数组。
listener Function事件触发时调用的函数。
返回:类型 说明 Object 返回带有 remove()
方法的事件处理程序,应调用该方法以停止侦听事件。属性 类型 说明 remove 函数 调用时,从事件中删除侦听器。 示例:view.on("click", function(event){ // event is the event handle returned after the event fires. console.log(event.mapPoint); });
-
when()
一旦创建了类的实例,就可以利用它。这个方法有两个输入参数:一个callback
函数和一个errback
函数。callback
在类的实例加载时执行。errback
在类的实例无法加载时执行。参数:callback Function可选当 promise 解决时调用的函数。
errback Function可选当 promise 失败时执行的函数。
返回:类型 说明 Promise 返回 callback
结果的新承诺,可用于链接其他函数。示例:// Although this example uses MapView, any class instance that is a promise may use when() in the same way let view = new MapView(); view.when(function(){ // This function will execute once the promise is resolved }, function(error){ // This function will execute if the promise is rejected due to an error });
事件概述
Name | 类型 | 描述 | 类 | |
---|---|---|---|---|
{view: View,layerView: LayerView} |
更多信息 在视图中创建并渲染图层的 LayerView 后激发。 |
更多信息 | Layer | |
{view: View,error: Error} |
更多信息 在将图层添加到地图后,在创建 LayerView 期间发出错误时触发。 |
更多信息 | Layer | |
{view: View,layerView: LayerView} |
更多信息 在图层的 LayerView 被销毁且不再在视图中渲染后触发。 |
更多信息 | Layer |
事件详情
-
layerview-createinherited
-
在视图中创建并渲染图层的 LayerView 后激发。
示例:// This function will fire each time a layer view is created for this // particular view. layer.on("layerview-create", function(event){ // The LayerView for the layer that emitted this event event.layerView; });
-
layerview-create-errorinherited
-
在将图层添加到地图后,在创建 LayerView 期间发出错误时触发。
示例:// This function fires when an error occurs during the creation of the layer's layerview layer.on("layerview-create-error", function(event) { console.error("LayerView failed to create for layer with the id: ", layer.id, " in this view: ", event.view); });