自定义 DynamicLayer

尝试一下在线预览

此示例演示如何使用 WMS 服务创建 自定义动态图层geobretagne 服务器 访问 WMS 服务。

本示例仅出于演示目的使用 WMS 服务。用于 JavaScript 的 GeoScene API 有一个 WMSLayer 类型,它应该用于处理 WMS 中的数据。有关更多细节,请参阅 WMSLayer 实例

要创建一个自定义的动态图层,你必须在 BaseDynamicLayer 上调用 createSubclass() 我们将调用自定义动态图层 CustomWMSLayer ,并为其提供两个公共属性,以便观察其变化。它们用于生成一个 URL 来从 WMS 服务器请求一个图像。属性是:

  • mapUrl - 指定到 WMS 服务的 URL 
  • mapParameters - 指定从服务器获取图像时使用的查询参数
       
1
2
3
4
5
6
7
const CustomWMSLayer = BaseDynamicLayer.createSubclass({
  properties: {
    mapUrl: null,
    mapParameters: null
  }
  // ...
});

 CustomWMSLayer  实现了  getImageUrl()  方法,以生成给定区段、宽度和高度的图像的 URL 。此方法操作 mapUrl 和 mapParameters  属性的值,以生成将在视图中显示的图像的 URL 。

       
1
2
3
4
5
6
7
// Override getImageUrl() method to generate URL
// to an image for a given extent, width and height.
getImageUrl: function (extent, width, height) {
  const urlVariables = this._prepareQuery(this.mapParameters, extent, width, height);
  const queryString = this._joinUrlVariables(urlVariables);
  return this.mapUrl + "?" + queryString;
}

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.