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 | 在使用 | config | |
String | FeatureLayer 和 CSVLayer 标注中 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/core
和geoscene-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
-
FeatureLayer 和 CSVLayer 标注中 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 服务器之间通信的各个方面。
- 属性
-
optional 已知支持 https 的域后缀列表。当应用程序不在 http 上运行时,这将自动升级对此类域的请求,以使用 https 而不是 http。请注意,端口号不应包含在要匹配的域后缀中。
如果不存在
httpsDomains
列表,API 将使用 https 重定向所有调用。如果该列表存在且未列出所需 http 资源的域,则 API 会发送代码中指定的 URL。同样,如果列表存在并且其中列出了所需 http 资源的域。则 API 会向该资源发送 https 请求。默认情况下,该列表包括以下域后缀:
arcgis.com
arcgisonline.com
interceptors RequestInterceptor[]起始版本: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默认值:2000请求发出的 HTTP GET 请求的 URL 中允许的最大字符数。如果超出此限制,则使用 HTTP POST 方法。
priority String默认值:high起始版本:4.24
获取和图像网络请求优先级。这是一个提示,用于向浏览器提示这些请求相对于其他挂起请求的重要性。"auto” 值允许浏览器决定优先级。它们通常对提取请求使用 "high” 优先级,对图像请求使用 "low” 优先级。有关更多信息,请访问 https://web.dev/priority-hints/。有关此功能的浏览器支持,请访问 https://caniuse.com/mdn-api_request_priority。
可能值:"auto"|"high"|"low"
optional 代理规则可为一组具有相同 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 将等待来自服务器的响应的毫秒数。如果服务器在此时间到期之前无法响应,则认为请求遇到了错误。
optional 起始版本: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
-
对象,其属性可控制 Workers 框架的各个方面。
- 属性
-
loaderUrl Object
worker 中使用的 AMD 或 SystemJS 加载程序的绝对 url。在未设置此属性时,AMD CDN 构建具有默认值。这是使用自定义 workers 时所必需的。
workerPath String@geoscene/core
和geoscene-js-api
NPM 包使用它来控制从何处加载RemoteClient
的自定义构建。默认情况下,RemoteClient
是从 API 的 assets 加载的。loaderConfig Object在每个 worker 中设置的 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://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 或选项进行更改。返回的值将用作响应数据,这将阻止发送请求。
如果返回
null
或undefined
,则请求及对参数所做的任何更改一起发送。如果返回错误,则请求将被拒绝并出现 geosceneError。如果返回任何其他类型,则以返回值作为响应数据解析请求 (不会发送请求)。参数规范params Object参数对象,该对象指定可以设置的两个属性。
规范url String请求 URL。
requestOptions RequestOptions用户在数据请求中指定的选项。有关可用属性,请参阅 RequestOptions。
返回类型 描述 Object 返回: null
、undefined
、Error、响应数据或解析为这些对象类型中的任何一种的 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; }); } } } });
-
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 发出的请求的对象。
- 属性
-
after AfterInterceptorCallback
在发送请求后,但将响应返回给调用方之前,对响应进行更改。
before BeforeInterceptorCallback在发送请求之前,对请求 URL 或选项进行更改。返回的值将用作响应数据,这将阻止发送请求。
error ErrorCallback当请求处理过程中发生错误时,将调用此函数,并使用 Error 对象提供有关发生情况的详细信息。例如,这可用于记录图层或服务发生的特定错误。
headers Object在
requestOptions.headers
中设置或添加标头。另请参阅:requestOptions。query Object将查询参数设置或添加到
requestOptions.query
。另请参阅:requestOptions。responseData Object对响应进行硬编码。不会发送请求。这被解析为响应
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; } });