SVG符号支持情况

可缩放矢量图形Scalable Vector Graphics (SVG)是一种用于描述二维矢量图形的标记语言。SuperMap 支持导入SVG文件作为点符号渲染地图中的点状地物。

SVG文件基于XML语法构建,通过SVG元素和属性定义图形要素。SuperMap可导入符合SVG 1.1核心规范的静态矢量文件。

SVG元素表

下表针对SVG符号制作中常用的元素与属性,明确标注SuperMap支持情况,表格未列出的其他SVG元素与属性,SuperMap暂不支持

  • 支持:SuperMap支持对应的元素和专有属性,其他全局属性支持情况请参见下文《SVG全局属性表》。
  • 部分支持:SuperMap部分支持对应的元素和属性。
  • 不支持:SuperMap完全不支持对应的元素。

注意:导入后不支持的SVG文件内容将被忽略。SVG符号仅支持锁定宽高比的方式调整符号大小。

元素分类 元素 专有属性 描述 SuperMap 支持情况
容器 <svg> width, height, viewBox, preserveAspectRatio, xmlns 定义SVG画布,根容器 部分支持

不支持嵌套<svg>
不支持preserveAspectRatio
<g> 分组容器,用于组合元素 支持
<switch> requiredFeatures, systemLanguage 根据客户端支持的特性或系统语言选择首个符合条件的子元素渲染(常用于跨平台适配) 不支持
图形元素 <rect> x, y, width, height, rx, ry 矩形 支持
<circle> cx, cy, r 支持
<ellipse> cx, cy, rx, ry 椭圆 支持
<line> x1, y1, x2, y2 直线 支持
<polyline> points 折线(不闭合) 支持
<polygon> points 多边形(自动闭合路径) 支持
<path> d, pathLength 复杂路径(贝塞尔曲线等) 部分支持

不支持pathLength
<marker> 线端头或节点样式元素 不支持
图案模板 <pattern> patternUnits,patternContentUnits,patternTransform,preserveAspectRatio,x, y, width, height,viewBox 创建可重复填充的矢量图案 部分支持

不支持 stroke 引用定义的图案
不支持preserveAspectRatio
文本 <text> x, y, dx, dy, rotate, textLength, lengthAdjust, text-anchor 文本元素 部分支持

不支持textLength, lengthAdjust,rotate, dx, dy
<tspan> x, y, dx, dy, rotate, textLength, lengthAdjust 文本子元素(用于多行或样式分段) 部分支持

不支持textLength, lengthAdjust,rotate, dx, dy
<textPath> href(或xlink:href), startOffset, methond,spacing 沿路径排列文本 不支持
渐变与填充 <linearGradient> x1, y1, x2, y2, gradientUnits, spreadMethod,href(或xlink:href),gradientTransform 线性渐变 支持

导入后 gradientTransform属性设置的旋转(rotate)或倾斜(skewX)效果存在差异
<radialGradient> cx, cy, r, fx, fy, gradientUnits, spreadMethod,href(或xlink:href) 径向渐变 支持
<stop> offset, stop-color, stop-opacity 渐变颜色坡度 支持
滤镜与遮罩 <filter> id, x, y, width, height, filterUnits 滤镜容器 不支持

不支持SVG滤镜与遮罩效果
<feGaussianBlur> stdDeviation, in 高斯模糊
<feColorMatrix> type, values 颜色矩阵变换
<feOffset> dx, dy 偏移滤镜效果
<mask> maskUnits(userSpaceOnUse/objectBoundingBox), maskContentUnits, x, y, width, height 定义透明遮罩层,通过灰度值控制元素的可见区域(白色全显,黑色全隐,灰色半透明)
<clipPath> id, clipPathUnits(userSpaceOnUse或objectBoundingBox) 定义剪切路径,限制元素可见区域
交互与动画 <a> xlink:href, target 超链接 不支持

不支持SVG交互与动画内容
<animate> attributeName, from, to, dur, repeatCount, values 属性动画(基础动画)
结构与引用 <defs> 无特殊属性 定义可复用元素 支持
<use> x, y, width, height, xlink:href 引用已定义的元素 支持
<symbol> id, viewBox, preserveAspectRatio 可复用符号(需通过引用) 不支持
<foreignObject> 外部对象元素 不支持
样式定义 <style> type、media 用于在SVG中定义内部CSS样式规则 部分支持

不支持含有/**/和//注释的CSS样式描述
脚本 <script> type,xlink:href 等同于 HTML 中的 script 元素 不支持
图像与外部资源 <image> x, y, width, height, xlink:href, preserveAspectRatio 嵌入外部图像(PNG/JPEG/SVG) 部分支持

不支持xlink:href属性引用外部图像文件
仅支持将图像的Base64编码数据直接赋值给xlink:href
不支持preserveAspectRatio
元数据 <metadata> 嵌入非SVG数据(如XML/RDF) 不支持
<title> 元素描述(辅助工具可见) 不支持
<desc> 元素详细说明 不支持

SVG全局属性表

下表从SVG元素全局属性角度,列出SuperMap支持的通用属性:

属性分类 属性名称 适用元素 描述 SuperMap 支持情况
通用核心属性 id 所有元素 元素唯一标识符,用于引用或脚本操作 支持
class 所有元素 CSS类名,用于批量样式控制 支持
style 所有元素 行内CSS样式 支持
XLink 属性 xlink:href <use>, <image>, <linearGradient>... 定义对资源的引用关系 支持
表现属性
(可作为 CSS 属性来使用)
d <path> 定义路径命令序列(如M 0 0 L 100 100) 支持
fill 所有图形元素 填充颜色或渐变/图案引用(支持十六进制、RGB、关键字或url(#id)) 支持
fill-opacity 所有图形元素 填充透明度 支持
stroke 所有图形元素 描边颜色 支持
stroke-width 所有图形元素 描边宽度 支持
stroke-linecap <path>, <line> 线端样式(butt/round/square) 支持
stroke-dasharray 所有图形元素 虚线模式 不支持
opacity 所有元素 整体透明度 支持
文本风格 text-anchor <text>, <tspan> 文本锚点属性被用来描述该文本与所给点的对齐方式(开头、中间、末尾对齐) 支持
lengthAdjust <text>, <tspan> 文本长度调整方式:spacing(仅调整间距)、spacingAndGlyphs(调整间距和字形宽度) 不支持
textLength <text>, <tspan> 强制定义文本渲染后总占位长度(含字间距和字形缩放) 不支持
text-decoration <text> 控制文本装饰效果,如下划线、删除线 不支持
font-family <text>, <tspan> 字体名称 支持
暂不支持 MicrosoftYaHei-Bold 属性值形式
font-size <text>, <tspan> 字体大小 支持
font-weight <text>, <tspan> 字体粗细:normal、bold、数值(如 700) 部分支持

该属性值为数值时,若数值≥ 550,导入后效果同bold属性值;若数值< 550,导入后效果同normal属性值。
fill <text>, <tspan> 文本颜色(支持十六进制、RGB、颜色名称) 支持
坐标与变换 viewBox <svg> 定义画布坐标系(min-x min-y width height),控制缩放与自适应 支持
transform 所有图形元素 应用几何变换(平移、旋转、缩放等) 支持

使用SVG符号注意事项

  • 当使用嵌入图像的SVG符号设置图层风格时,建议使用SVG符号原始尺寸(即点符号大小设置为 0),防止图像拉伸导致显示失真。