當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JavaScript ArcGIS BaseDynamicLayer.fetchImage用法及代碼示例


基本信息

以下是所在類或對象的基本信息。

AMD: require(["esri/layers/BaseDynamicLayer"], (BaseDynamicLayer) => { /* code goes here */ });

ESM: import BaseDynamicLayer from "@arcgis/core/layers/BaseDynamicLayer";

類: esri/layers/BaseDynamicLayer

繼承: BaseDynamicLayer > Layer > Accessor

自從:用於 JavaScript 4.4 的 ArcGIS API

用法說明

BaseDynamicLayer.fetchImage函數(或屬性)的定義如下:

fetchImage (extent, width, height, options) {Promise<(HTMLImageElement|HTMLCanvasElement)>}


此方法獲取指定範圍和大小的圖像。如果從服務器返回的數據需要經過處理才能顯示,則覆蓋此方法。例如,如果服務器返回二進製數據,則重寫此方法以將二進製數據轉換為圖像。

參數:

類型說明
extent Extent

視圖的範圍。該值由 LayerView 提供。

width Number

視圖的寬度(以像素為單位)。該值由 LayerView 提供。

height Number

視圖的高度(以像素為單位)。該值由 LayerView 提供。

options Object
可選的

參數 options 是具有以下屬性的對象。

規格:
signal

AbortSignal

可選的

AbortSignal 用於中止請求。如果取消,promise 將被拒絕,並出現名為 AbortError 的錯誤。另見AbortController

返回:

類型 說明
Promise<(HTMLImageElement|HTMLCanvasElement)> 返回解析為 HTMLImageElementHTMLCanvasElement 的承諾。

例子:

// Fetches images for given extent and size
fetchImage: function (extent, width, height){
  let url = this.getImageUrl(extent, width, height);

  // request for the image  based on the generated url
  return esriRequest(url, {
    responseType: "image"
  })
  .then(function(response) {
    let image = response.data;

    let canvas = document.createElement("canvas");
    let context = canvas.getContext("2d");
    canvas.width = width;
    canvas.height = height;

    // Apply destination-atop operation to the image returned from the server
    context.fillStyle = "rgb(0,200,200)";
    context.fillRect(0, 0, width, height);
    context.globalCompositeOperation = "destination-atop";
    context.drawImage(image, 0, 0, width, height);

    return canvas;
  }.bind(this));
}

相關用法


注:本文由純淨天空篩選整理自arcgis.com大神的英文原創作品 BaseDynamicLayer.fetchImage。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。