config

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

配置库的全局属性。

此模块的值是具有以下属性的对象。您还可以使用全局 geosceneConfig 变量来初始化 geoscene/config 模块。

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

属性概述

名称 类型 描述 对象
String

在使用 @geoscene/coregeoscene-js-api NPM 包的本地构建时,覆盖用于加载 API 资产的 URL。

更多详情
config
String

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

更多详情
config
String

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

更多详情
config
String

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

更多详情
config
String

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

更多详情
config
Object

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

更多详情
config
String

新门户实例的默认 URL。

更多详情
config
Object

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

更多详情
config
Object

对象,其属性可控制 Workers 框架的各个方面。

更多详情
config

属性详细信息

assetsPath String
起始版本:GeoScene Maps SDK for JavaScript 4.18

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

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

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

默认值:"https://js.geoscene.cn/[4.x]/@geoscene/core/assets"
另请参阅
示例
geosceneConfig.fontsUrl = "https://myserver.com/fonts";
geometryServiceUrl String

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

默认值:"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 Maps SDK 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 Maps SDK for JavaScript 4.17

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

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

属性
interceptors LogInterceptor[]

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

level String

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

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

portalUrl String

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

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

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

属性
httpsDomains String[]
optional

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

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

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

  • arcgis.com
  • arcgisonline.com
optional

起始版本:4.8

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

示例:

const featureLayerUrl = "https://sampleserver.geosceneonline.cn/geoscene/rest/services/sample/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
optional
默认值:2000

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

priority String
optional
默认值:high

起始版本:4.24

获取和图像网络请求优先级。这是一个提示,用于向浏览器提示这些请求相对于其他挂起请求的重要性。"auto” 值允许浏览器决定优先级。它们通常对提取请求使用 "high” 优先级,对图像请求使用 "low” 优先级。有关更多信息,请访问 https://web.dev/priority-hints/。有关此功能的浏览器支持,请访问 https://caniuse.com/mdn-api_request_priority

可能值"auto"|"high"|"low"

proxyRules Object[]
optional

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

规范
proxyUrl String
optional

代理的 URL。

urlPrefix String
optional

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

proxyUrl String
optional
默认值:null

应用程序的资源代理。当与域 (该域不同于托管应用程序的域) 上托管的 web 服务器进行通信时,库会使用它。

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

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

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

trustedServers String[]
optional

起始版本:4.9

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

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

起始版本:4.5

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

另请参阅
workers Object

对象,其属性可控制 Workers 框架的各个方面。

属性
loaderUrl Object
optional

worker 中使用的 AMD 或 SystemJS 加载程序的绝对 url。在未设置此属性时,AMD CDN 构建具有默认值。这是使用自定义 workers 时所必需的。

workerPath String
optional

@geoscene/coregeoscene-js-api NPM 包使用它来控制从何处加载 RemoteClient 的自定义构建。默认情况下,RemoteClient 是从 API 的 assets 加载的。

loaderConfig Object
optional

在每个 worker 中设置的 AMD 配置对象。

规范
baseUrl String
optional

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

has Object
optional

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

paths Object
optional

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

map Object
optional

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

packages Object[]
optional

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

示例
// 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://sampleserver.geosceneonline.cn/geoscene/rest/services/sample/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,则请求及对参数所做的任何更改一起发送。如果返回错误,则请求将被拒绝并出现 geosceneError。如果返回任何其他类型,则以返回值作为响应数据解析请求 (不会发送请求)。

参数
规范
params Object

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

规范
url String

请求 URL。

requestOptions RequestOptions

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

返回
类型 描述
Object 返回:nullundefinedError响应数据或解析为这些对象类型中的任何一种的 Promise
示例
// modifying the query parameters
const featureLayerUrl = "https://sampleserver.geosceneonline.cn/geoscene/rest/services/sample/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

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

LogInterceptor(level, module, args){Boolean}

自定义日志拦截器函数。

参数
level String

消息的级别。

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

module String

日志消息源自的模块。

args *
repeatable

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

返回
类型 描述
Boolean 返回 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 发出的请求的对象。

属性
optional

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

optional

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

optional

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

headers Object
optional

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

query Object
optional

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

responseData Object
optional

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

optional

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

示例
const featureLayerUrl = "https://sampleserver.geosceneonline.cn/geoscene/rest/services/sample/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://sampleserver.geosceneonline.cn/geoscene/rest/services/sample/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;
   }
});

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。请参阅浏览器弃用帖子以获取更多信息