symbolService

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

表示 GeoScene REST API 公开的符号服务资源。此模块提供将可伸缩矢量图形 (SVG) 转换为 CIMSymbols 的资源。

另请参阅

方法概述

名称 返回值类值 描述 对象
Promise<GenerateSymbolResponse>

可伸缩矢量图形 (SVG) 转换为 CIMSymbol

更多详情
symbolService

方法详细说明

generateSymbol(url, params, requestOptions){Promise<GenerateSymbolResponse>}

可伸缩矢量图形 (SVG) 转换为 CIMSymbol

如果在 GenerateSymbolParameters 中使用 SVG 字符串值,则必须定义 XML 命名空间 (xmlns)。对于在 FormDataHTMLFormElement 中定义的 SVG,表单中的元素 name 必须为 "svgImage",如下例所示。

返回的 CIMSymbol 将始终是具有 CIMVectorMarker 符号图层的 CIMPointSymbol,其中 size = 10。要更新符号的大小,请使用 cimSymbolUtils.scaleCIMSymbolTo()

参数
url String

表示符号服务的 GeoScene Server REST 资源的 URL。

用于将 SVG 转换为 CIM 符号的输入参数。

requestOptions RequestOptions
optional

用于数据请求的附加选项(将覆盖构造期间定义的 requestOptions)。

返回
类型 描述
Promise<GenerateSymbolResponse> 使用包含 CIM 符号的生成符号方法的响应进行解析的 promise。
示例
// Using a string.
const svgString = `
   <svg xmlns="http://www.w3.org/2000/svg" height="200" width="200">
     <path d="M150 0 L75 200 L225 200 Z" />
   </svg>
`;
const params = { svgImage: svgString };
symbolService.generateSymbol(symbolServiceUrl, params).then({symbol} => {
  // apply the CIMSymbol to a graphic
  graphicA.symbol = symbol;
});
// Using FormData.
const blob = new Blob([svgSymbol.trim()], { type: "image/svg+xml" });
const formData = new FormData();
formData.append("svgImage", blob, "symbol.svg");

const params = { svgImage: formData };
symbolService.generateSymbol(symbolServiceUrl, params).then({symbol} => {
  // apply the CIMSymbol to a graphic
  graphicB.symbol = symbol;
});
// Using HTMLFormElement.
<!-- HTML Element -->
<form name="uploadForm">
  <input type="file" name="svgImage" id="svgFile" />
</form>
// JavaScript
const uploadForm = document.forms["uploadForm"];
uploadForm.addEventListener("change", (event) => {
    const fileName = event.target.value.toLowerCase();
    if (fileName.includes(".svg")) {
        const params = { svgImage: uploadForm };
        symbolService.generateSymbol(symbolServiceUrl, params).then({symbol} => {
           // apply the CIMSymbol to a graphic
           graphicC.symbol = symbol;
        });
    }
});

类型定义

GenerateSymbolParameters Object

generateSymbol 方法的输入参数。

属性
optional

要转换的 SVG 图像。可以是 SVG 字符串值、表单数据或表单元素。当从 FormDataHTMLFormElement 提供 SVG 时,表单中元素的 name 必须为 "svgImage"。当从字符串提供 SVG 时,必须定义 XML 命名空间 (xmlns)。

GenerateSymbolResponse Object

generateSymbol 方法的响应。

属性
symbol CIMSymbol

基于 generateSymbol 方法创建的 CIMSymbol。

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