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),防止图像拉伸导致显示失真。