SuperAPI AI 工具集

arcgis-cim-symbols

设计与创作

查看项目

更新于 10-16 01:50

技能介绍

用途:在 ArcGIS Maps SDK for JavaScript 中借助 CIM(Cartographic Information Model)创建超出标准符号能力的高级制图符号,适用于复杂多层符号、动画标记、自定义线型与箭头、数据驱动样式等场景。

主要能力:支持多层符号(叠加标记、填充、描边图层)、基于矢量的自定义标记图形、自定义线型与箭头、带时长与循环控制的动画符号,以及通过 primitive overrides(Arcade 表达式)实现数据驱动的符号属性。CIM 结构为 CIMSymbol(type: "cim")→ data(CIMSymbolReference)→ symbol(点/线/面符号)→ symbolLayers[] → markerGraphics[],并可选 primitiveOverrides[]。

使用方式:可直接 ESM 导入,如 import CIMSymbol from "@arcgis/core/symbols/CIMSymbol.js"; 以及 cimSymbolUtils、cimConversionUtils;CDN 场景使用 const CIMSymbol = await $arcgis.import("@arcgis/core/symbols/CIMSymbol.js");。示例采用 autocasting,CDN 下需将 import X from "path" 替换为 const X = await $arcgis.import("path")。可将 CIMSymbolReference 对象赋给 renderer 的 symbol.data。工具函数 cimSymbolUtils 提供颜色、旋转、大小的读写,cimConversionUtils 可将简单符号转换为 CIM。

适用场景:需要多层叠加标记、编号标记、图钉、箭头线、虚线图案、填充图案、沿线或按比例放置标记、动画符号,以及按要素属性动态改变颜色、大小、文本或旋转的制图需求。

限制与注意:frame 定义标记图形坐标空间,几何坐标须落在 frame 范围内;符号图层按数组自下而上渲染,背景应放在前景之前;primitiveName 在整个符号内必须唯一;颜色必须使用 [R, G, B, A](0-255),不接受命名颜色或十六进制字符串;多边形环必须闭合(首点等于末点);每个符号图层必须设置 enable: true 才会渲染。相关技能包括 arcgis-visualization、arcgis-smart-mapping、arcgis-core-maps。