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 | 更多信息 在使用离线 | 更多信息 | config | |
String | 更多信息 FeatureLayer 和 CSVLayer 中标注的 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/core
和geoscene-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
-
FeatureLayer 和 CSVLayer 标签中 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 服务器之间通信的各个方面。
- 属性:
-
可选 已知支持 https 的域后缀列表。当应用程序不在 http 上运行时,这将自动升级对此类域的请求,以使用 https 而不是 http。请注意,端口号不应包含在要匹配的域后缀中。
如果不存在
httpsDomains
列表,API 将使用 https 重定向所有调用。如果该列表存在且未列出所需 http 资源的域,则 API 会发送代码中指定的 URL。同样,如果列表存在并且其中列出了所需 http 资源的域,则 API 会向该资源发送 https 请求。默认情况下,该列表包括以下域后缀:
geosceneonline.cn
interceptors RequestInterceptor[]起始版本: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 方法。
可选 代理规则为一组具有相同 URL 前缀的资源定义代理。使用 geosceneRequest 时,如果目标 URL 与规则匹配,则请求将被发送到指定的代理。不要直接填充这个数组,而是使用 urlUtils.addProxyRule() 方法。规则对象具有以下属性:
proxyUrl String默认值:null应用程序的资源代理。当与托管应用程序的域不同的域上承载的 Web 服务器进行通信时,库会使用它。
该库可能会或可能不会使用代理,具体取决于发出的请求类型,服务器是否支持 CORS,应用程序是否在较旧版本的浏览器上运行等。
require(["geoscene/config"], function(geosceneConfig) { geosceneConfig.request.proxyUrl = "/proxy/Java/proxy.jsp"; });
timeout Number默认值:60000Request 将等待来自服务器的响应的毫秒数。如果服务器在此时间到期之前无法响应,则认为请求遇到了错误。
可选 起始版本: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/core
NPM 包使用它来控制从何处加载RemoteClient
的自定义构建。默认情况下,RemoteClient
是从 API 的资源加载的。loaderConfig Object在每个工作人员中设置的 AMD 配置对象。
示例:// 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)
-
在发送请求后,但在将响应返回给调用方之前,对响应进行更改。
参数:response RequestResponse响应对象。
示例: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 或选项进行更改。返回的值将用作响应数据,这将阻止发送请求。
如果返回
null
或undefined
,则发送请求时对参数进行任何更改。如果返回错误,则请求将被拒绝并出现 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; }); } } } });
-
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发出的请求的对象。
- 属性:
-
after AfterInterceptorCallback
在发送请求后,但在将响应返回给调用方之前,对响应进行更改。
before BeforeInterceptorCallback在发送请求之前更改请求 URL 或选项。返回的值将用作响应数据,这将阻止发送请求。
error ErrorCallback当请求处理过程中发生错误时,将调用此函数并使用 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; } });