config

AMD: require(["geoscene/config"], (geosceneConfig) => { /* code goes here */ });
ESM: import geosceneConfig from "@geoscene/core/config";
对象: geoscene/config
起始版本:GeoScene API for JavaScript 4.0

配置全局属性。

该模块的值是一个包含以下属性的对象。可以通过全局 geosceneConfig 变量来初始化 geoscene/config 模块。

示例:
require(["geoscene/config"], function(geosceneConfig) {
  geosceneConfig.portalUrl = "https://myHostName.geoscene.cn/geoscene";
});
<script>
// use the global geosceneConfig variable to initialize properties
var geosceneConfig = {
  portalUrl: "https://myHostName.geoscene.cn/geoscene"
};
</script>

属性概述

名称 类型 描述 Object
String更多信息

在使用离线 @geoscene/coregeoscene-js-api NPM 包时,用于设置离线 API 的 URL地址。

更多信息config
String更多信息

FeatureLayerCSVLayer 中标注的 Font 类使用的字体资源 URL。

更多信息config
String更多信息

默认几何服务,在微件和其他操作(例如动态投影)中需要 。

更多信息config
String更多信息

GeoRSSLayer 用于转换 GeoRSS 文档的实用程序服务地址。

更多信息config
String更多信息

KMLLayer 转换 KML 文档的实用程序服务地址。

更多信息config
Object更多信息

日志对象,控制日志消息各个方面的属性信息。

更多信息config
String更多信息

新门户 URL。

更多信息config
Object更多信息

设置API库和 Web 服务器之间通信的属性。

更多信息config
Object更多信息

控制 worker框架各个方面的对象。

更多信息config

属性详情

assetsPath String
起始版本:GeoScene API for JavaScript 4.18

在使用 @geoscene/coregeoscene-js-api NPM 包的本地构建时覆盖用于加载 API 资产的 URL。这些资产包括样式、图像、网络工作者、wasm 和本地化文件。默认情况下,资产在运行时从 CDN 加载。

默认值:"https://js.geoscene.cn/[4.x]/@geoscene/core/assets"
另请参阅:
示例:
import geosceneConfig from "@geoscene/core/config";
geosceneConfig.assetsPath = "./assets";
fontsUrl String
起始版本:GeoScene API for JavaScript 4.8

FeatureLayerCSVLayer 标签中 Font 类使用的字体资源的 URL。要使用您自己的托管字体,字体文件需要采用 .pbf 格式,并且您必须遵循 kebab-case 命名约定(例如“arial-unicode-ms-bold”)。

默认值:"https://doc.geoscene.cn/resources/fonts"
另请参阅:
示例:
geosceneConfig.fontsUrl = "https://myserver.com/fonts";
geometryServiceUrl String

微件和其他操作(例如动态投影)使用的默认几何服务

默认值:"https://www.geosceneonline.cn/server/rest/services/Utilities/Geometry/GeometryServer"
示例:
geosceneConfig.geometryServiceUrl = "https://www.geosceneonline.cn/server/rest/services/Utilities/Geometry/GeometryServer";
geoRSSServiceUrl String

GeoRSSLayer 用于转换 GeoRSS 文档的实用程序服务的 URL。

默认值:"https://www.geosceneonline.cn/geoscene/sharing/rss"
示例:
geosceneConfig.geoRSSServiceUrl = "https://servername.domain.suffix/geoscene/sharing/rss";
kmlServiceUrl String
起始版本:GeoScene API for JavaScript 4.5

KMLLayer 转换 KML 文档的实用程序服务的 URL。

默认值:"https://www.geosceneonline.cn/geoscene/sharing/kml"
示例:
geosceneConfig.kmlServiceUrl = "https://www.geosceneonline.cn/geoscene/sharing/kml";
log Object
起始版本:GeoScene API for JavaScript 4.17

具有控制日志消息各个方面的属性的对象。

请注意,模块名称、消息和日志消息的详细内容被认为是不稳定的,不应使用拦截器来创建应用程序错误处理控制流。

属性:
interceptors LogInterceptor[]

一组自定义拦截器函数,可用于拦截日志消息。拦截器按顺序调用,直到拦截器返回 true。将日志消息写入控制台的默认日志处理程序将被最后调用。

level String

要记录的消息级别。将记录严重性高于或等于配置的所有消息。如果指定级别为“无”,则不会记录任何消息。如果未定义,默认级别是“警告”。

默认值:"none"|"error"|"warn"|"info"

portalUrl String

新门户实例的默认 URL。新门户实例的默认 URL。如果使用本地门户,则应将此值设置为门户实例,例如: https://www.example.com/geoscene

默认值:"https://www.geoscene.cn/geoscene"
另请参阅:
示例:
// Set the hostname to the on-premise portal
geosceneConfig.portalUrl = "https://myHostName.geoscene.cn/geoscene"
request Object

一个对象,其属性控制库和 Web 服务器之间通信的各个方面。

属性:
httpsDomains String[]
可选

已知支持 https 的域后缀列表。当应用程序不在 http 上运行时,这将自动升级对此类域的请求,以使用 https 而不是 http。请注意,端口号不应包含在要匹配的域后缀中。

如果不存在 httpsDomains 列表,API 将使用 https 重定向所有调用。如果该列表存在且未列出所需 http 资源的域,则 API 会发送代码中指定的 URL。同样,如果列表存在并且其中列出了所需 http 资源的域,则 API 会向该资源发送 https 请求。

默认情况下,该列表包括以下域后缀:

  • geosceneonline.cn
可选

起始版本:4.8

允许开发人员在发送之前或之后修改请求。将使用与请求 URL 匹配的第一个拦截器。

示例:

const featureLayerUrl = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer/0";

geosceneConfig.request.interceptors.push({
  // set the `urls` property to the URL of the FeatureLayer so that this
  // interceptor only applies to requests made to the FeatureLayer URL
  urls: featureLayerUrl,
  // use the BeforeInterceptorCallback to check if the query of the
  // FeatureLayer has a maxAllowableOffset property set.
  // if so, then set the maxAllowableOffset to 0
  before: function(params) {
    if (params.requestOptions.query.maxAllowableOffset) {
      params.requestOptions.query.maxAllowableOffset = 0;
    }
  },
  // use the AfterInterceptorCallback to check if `ssl` is set to 'true'
  // on the response to the request, if it's set to 'false', change
  // the value to 'true' before returning the response
  after: function(response) {
    if (!response.ssl) {
      response.ssl = true;
    }
  }
});
maxUrlLength Number
可选
默认值:2000

请求发出的 HTTP GET 请求的 URL 中允许的最大字符数。如果超出此限制,将使用 HTTP POST 方法。

proxyRules Object[]
可选

代理规则为一组具有相同 URL 前缀的资源定义代理。使用 geosceneRequest 时,如果目标 URL 与规则匹配,则请求将被发送到指定的代理。不要直接填充这个数组,而是使用 urlUtils.addProxyRule() 方法。规则对象具有以下属性:

规范:
proxyUrl String
可选

代理的 URL。

urlPrefix String
可选

需要通过特定代理访问的资源的 URL 前缀。

proxyUrl String
可选
默认值:null

应用程序的资源代理。当与托管应用程序的域不同的域上承载的 Web 服务器进行通信时,库会使用它。

该库可能会或可能不会使用代理,具体取决于发出的请求类型,服务器是否支持 CORS,应用程序是否在较旧版本的浏览器上运行等。

require(["geoscene/config"], function(geosceneConfig) {
  geosceneConfig.request.proxyUrl = "/proxy/Java/proxy.jsp";
});
timeout Number
可选
默认值:60000

Request 将等待来自服务器的响应的毫秒数。如果服务器在此时间到期之前无法响应,则认为请求遇到了错误。

trustedServers String[]
可选

起始版本:4.9

指示向关联服务器发出的跨源请求是否应包含 Cookie 和授权标头等凭据。

require(["geoscene/config"], function(geosceneConfig) {
  geosceneConfig.request.trustedServers.push("[<protocol>//]<hostname>.<domain>[:<port>]");
});
useIdentity Boolean
可选
默认值:true

起始版本:4.5

指示 geoscene/request 是否会从 IdentityManager 请求凭据。

另请参阅:
workers Object

控制 Worker工作框架的对象。

属性:
loaderUrl Object
可选

Worker中使用的 AMD 或 SystemJS 加载程序的绝对 URL。AMD CDN 内部版本在未设置此属性时具有默认值。这是使用自定义辅助角色时所必需的。

workerPath String
可选

@geoscene/coreNPM 包使用它来控制从何处加载 RemoteClient 的自定义构建。默认情况下,RemoteClient 是从 API 的资源加载的。

loaderConfig Object
可选

在每个工作人员中设置的 AMD 配置对象。

详述:
baseUrl String
可选

AMD 加载程序加载与 baseUrl 相关的所有代码。

has Object
可选

确定是否支持指定的要素功能。

paths Object
可选

模块 ID 片段到文件路径的映射。

map Object
可选

将模块标识符中的路径映射到不同的路径。

packages Object[]
可选

提供包名称及其位置的对象数组。

示例:
// Set the path for the worker's AMD loader configuration
// to a folder called workersFolder.
geosceneConfig.workers.loaderConfig = {
 paths: {
   myWorkers: new URL("./workersFolder", document.baseURI).href
 }
};

// load myWorkers/Calculator.js in the workers framework
// and invoke its "getMaxNumber" method
workers.open(this, "myWorkers/Calculator")
  .then((connection) => {
    return connection.invoke("getMaxNumber", [0, 1, 2, 3, 4]);
  })
  .then((result) => {
    console.log(result);
  });

//*********************************************************
// module: workerFolder/Calculator.js
//*********************************************************
define([], () => {
  return {
    // this function can be invoked from the main thread
    getMaxNumber: function (number) {
      return Math.max.apply(null, numbers);
    }
  };
});

类型定义

AfterInterceptorCallback(response)

在发送请求后,但在将响应返回给调用方之前,对响应进行更改。

参数:

响应对象。

示例:
const featureLayerUrl = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer/0";

geosceneConfig.request.interceptors.push({
  // set the `urls` property to the URL of the FeatureLayer so that this
  // interceptor only applies to requests made to the FeatureLayer URL
  urls: featureLayerUrl,
  // use the AfterInterceptorCallback to check if `ssl` is set to 'true'
  // on the response to the request, if it's set to 'false', change
  // the value to 'true' before returning the response
  after: function(response) {
    if (!response.ssl) {
      response.ssl = true;
    }
  }
});
BeforeInterceptorCallback(params){Object}

在发送请求之前对请求 URL 或选项进行更改。返回的值将用作响应数据,这将阻止发送请求。

如果返回 nullundefined,则发送请求时对参数进行任何更改。如果返回错误,则请求将被拒绝并出现 Error。如果返回任何其他类型,则以返回值作为响应数据解析请求(不会发送请求)。

参数:
详述:
params Object

参数对象,该对象指定可以设置的两个属性。

详述:
url String

请求 URL。

requestOptions RequestOptions

用户在数据请求中指定的选项。有关可用属性,请参阅 RequestOptions

返回:
类型 说明
Object 返回:null, undefined, 错误, 响应数据或解析为这些对象类型中的任何一种的 Promise
示例:
// modifying the query parameters
const featureLayerUrl = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer/0";

geosceneConfig.request.interceptors.push({
  // set the `urls` property to the URL of the FeatureLayer so that this
  // interceptor only applies to requests made to the FeatureLayer URL
  urls: featureLayerUrl,
  // use the BeforeInterceptorCallback to check if the query of the
  // FeatureLayer has a maxAllowableOffset property set.
  // if so, then set the maxAllowableOffset to 0
  before: function(params) {
    if (params.requestOptions.query.maxAllowableOffset) {
      params.requestOptions.query.maxAllowableOffset = 0;
    }
  }
});
// fetching the data in place of the requests
const wmsLayerUrl = "https://sampleserver6.arcgisonline.com/arcgis/services/911CallsHotspot/MapServer/WMSServer";

geosceneConfig.request.interceptors.push({
   urls: wmsLayerUrl,
   before: function(params) {
     if (params.url === url && params.requestOptions.responseType === "xml") {
        if ("fetch" in window && "TextDecoder" in window) {
           // decode the response as ISO-8859-1 if it's not UTF-8 as expected
           return fetch(url + "?SERVICE=WMS&REQUEST=GetCapabilities")
             .then(function(response) {
               return response.arrayBuffer();
             })
             .then(function(buffer) {
               let textDecoder = new TextDecoder("ISO-8859-1"); // specified in the Capabilities XML declaration
               let xmlText = textDecoder.decode(buffer);
               let parser = new DOMParser();
               xml = parser.parseFromString(xmlText, "application/xml");
               return xml;
             });
         }
     }
   }
});
ErrorCallback(error)

详细说明请求失败原因的错误函数。

参数:
error Error

错误对象。有关详细信息,请参阅错误

LogInterceptor(level, module, args){Boolean}

自定义日志拦截器函数。

参数:
level String

消息的级别。

可能值:"error"|"warn"|"info"

module String

日志消息源自的模块。

args *
可重复的

要记录的任何类型的参数。

返回:
类型 说明
布尔值 返回 true 以指示日志消息已得到处理,不应再进行处理(既不应由其他侦听器处理,也不由将消息记录到控制台的默认处理程序处理)。
示例:
// Only show error messages, not warnings nor info messages
geosceneConfig.log.level = "error";

geosceneConfig.log.interceptors.push(function(level, module, ...args) {
  // Send all messages to a REST end-point
  request(loggingUrl, {
    method: "post",
    body: {
            level: level,
            module: module,
            details: JSON.stringify(args)
          }
  });

  // Return false so that the default log handler still writes log messages to the console
  return false;
});
RequestInterceptor

指定用于截获和修改通过 geosceneRequest发出的请求的对象。

属性:
可选

在发送请求后,但在将响应返回给调用方之前,对响应进行更改。

可选

在发送请求之前更改请求 URL 或选项。返回的值将用作响应数据,这将阻止发送请求。

可选

当请求处理过程中发生错误时,将调用此函数并使用 Error 对象提供有关发生情况的详细信息。例如,这可用于记录层或服务发生的特定错误。

headers Object
可选

requestOptions.headers 中设置或添加标头。另请参阅:requestOptions

query Object
可选

将查询参数设置或添加到 requestOptions.query 中。另请参阅:requestOptions

responseData Object
可选

响应进行硬编码。不会发送请求。这被解析为响应data

可选

指定应用于拦截器的 URL。如果值为 String 类型,则匹配请求 URL 是否以该字符串开头。如果为 null 或未定义,则拦截器将应用于所有相关请求。

示例:
const featureLayerUrl = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer/0";

geosceneConfig.request.interceptors.push({
  // set the `urls` property to the URL of the FeatureLayer so that this
  // interceptor only applies to requests made to the FeatureLayer URL
  urls: featureLayerUrl,
  // use the BeforeInterceptorCallback to check if the query of the
  // FeatureLayer has a maxAllowableOffset property set.
  // if so, then set the maxAllowableOffset to 0
  before: function(params) {
    if (params.requestOptions.query.maxAllowableOffset) {
      params.requestOptions.query.maxAllowableOffset = 0;
    }
  },
  // use the AfterInterceptorCallback to check if `ssl` is set to 'true'
  // on the response to the request, if it's set to 'false', change
  // the value to 'true' before returning the response
  after: function(response) {
    if (!response.ssl) {
      response.ssl = true;
    }
  }
});
const featureLayer = new FeatureLayer({
   url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer/3"
});

geosceneConfig.request.interceptors.push({
   urls: featureLayer.url,
   // set the error function and check if an error occurs, and if it's name is "AbortError"
   // if so, display a useful error about the layer, if not, ignore the error
   error: function(error) {
      if (error.name == "AbortError") {
         // we're only interested in aborted request errors
         console.error(`An error happened with layer ${featureLayer.title}`, error);
      }
      return;
   }
});

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