ST_AsSVG — 返回几何体的 SVG 路径数据。
text ST_AsSVG(
geometry geom, integer rel=0, integer maxdecimaldigits=15)
;
text ST_AsSVG(
geography geog, integer rel=0, integer maxdecimaldigits=15)
;
将几何图形作为标量矢量图形 (SVG) 路径数据返回。 使用 1 作为第二个参数可以根据相对移动实现路径数据,默认值(或 0)使用绝对移动。 第三个参数可用于减少输出中使用的最大十进制位数(默认为 15)。 当 'rel' arg 为 0 时,点几何图形将渲染为 cx/cy,当 'rel' arg 为 1 时,将渲染为 x/y。多点几何图形由逗号 (",") 分隔,GeometryCollection 几何图形由分号 (";") 分隔 。
要使用 PostGIS SVG 图形,请查看 pg_svg 库,它提供了用于处理 ST_AsSVG 输出的 plpgsql 函数。
增强:3.4.0 支持所有曲线类型
更改: 2.0.0 - 添加了对默认参数和命名参数的支持
可用性:1.2.2。 可用性:1.4.0 PostGIS 1.4.0 中更改为在绝对路径中包含 L 命令以符合 http://www.w3.org/TR/SVG/paths.html#PathDataBNF |
此方法支持圆形字符串和曲线。
SELECT ST_AsSVG('POLYGON((0 0,0 1,1 1,1 0,0 0))'::geometry); st_assvg -------- M 0 0 L 0 -1 1 -1 1 0 Z
圆弧
SELECT ST_AsSVG( ST_GeomFromText('CIRCULARSTRING(-2 0,0 2,2 0,0 2,2 4)') ); st_assvg -------- M -2 0 A 2 2 0 0 1 2 0 A 2 2 0 0 1 2 -4
多曲线
SELECT ST_AsSVG('MULTICURVE((5 5,3 5,3 3,0 3), CIRCULARSTRING(0 0,2 1,2 2))'::geometry, 0, 0); st_assvg ------------------------------------------------ M 5 -5 L 3 -5 3 -3 0 -3 M 0 0 A 2 2 0 0 0 2 -2
多曲面
SELECT ST_AsSVG('MULTISURFACE( CURVEPOLYGON(CIRCULARSTRING(-2 0,-1 -1,0 0,1 -1,2 0,0 2,-2 0), (-1 0,0 0.5,1 0,0 1,-1 0)), ((7 8,10 10,6 14,4 11,7 8)))'::geometry, 0, 2); st_assvg --------------------------------------------------------- M -2 0 A 1 1 0 0 0 0 0 A 1 1 0 0 0 2 0 A 2 2 0 0 0 -2 0 Z M -1 0 L 0 -0.5 1 0 0 -1 -1 0 Z M 7 -8 L 10 -10 6 -14 4 -11 Z