Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法将Microsoft.SqlServer.Types.SqlGeometry解析为SVG?_C#_Sql Server_Svg - Fatal编程技术网

C# 有没有办法将Microsoft.SqlServer.Types.SqlGeometry解析为SVG?

C# 有没有办法将Microsoft.SqlServer.Types.SqlGeometry解析为SVG?,c#,sql-server,svg,C#,Sql Server,Svg,我的数据库中有一个表,其中的列类型为“geometry”。 我想获取本专栏中包含的数据(多边形和圆),并将它们转换为易于解析和以HTML(最好是SVG)呈现的内容,但我似乎无法做到这一点 我已经能够从数据库中提取GML和WKT,但是如果不在前端进行额外的容易出错的解析,这两种方法似乎都不能使我更接近我的目标。是否有任何内置或第三方图书馆能够做到这一点?是否有一个简单的转换,我可以使我忽略?我不明白为什么不能这样做,因为我本以为这是其他人需要的有用工具。从几何体和地理SQL类型转换为GeoJson

我的数据库中有一个表,其中的列类型为“geometry”。 我想获取本专栏中包含的数据(多边形和圆),并将它们转换为易于解析和以HTML(最好是SVG)呈现的内容,但我似乎无法做到这一点


我已经能够从数据库中提取GML和WKT,但是如果不在前端进行额外的容易出错的解析,这两种方法似乎都不能使我更接近我的目标。是否有任何内置或第三方图书馆能够做到这一点?是否有一个简单的转换,我可以使我忽略?我不明白为什么不能这样做,因为我本以为这是其他人需要的有用工具。

几何体
地理
SQL类型转换为
GeoJson
相对容易

从那里可以更容易地转换为
SVG

编辑:

以及第二个教程中的相关SQL函数:

CREATE FUNCTION dbo.geometry2json ( @geo GEOMETRY )
RETURNS NVARCHAR(MAX)
AS
    BEGIN
        RETURN (
     '{' +
     (CASE @geo.STGeometryType()
     WHEN 'POINT' THEN
     '"type": "Point","coordinates":' +
     REPLACE(REPLACE(REPLACE(REPLACE(@geo.ToString(),'POINT ',''),'(','['),')',']'),' ',',')
     WHEN 'POLYGON' THEN 
     '"type": "Polygon","coordinates":' +
     '[' + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@geo.ToString(),'POLYGON ',''),'(','['),')',']'),'], ',']],['),', ','],['),' ',',') + ']'
     WHEN 'MULTIPOLYGON' THEN 
     '"type": "MultiPolygon","coordinates":' +
     '[' + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@geo.ToString(),'MULTIPOLYGON ',''),'(','['),')',']'),'], ',']],['),', ','],['),' ',',') + ']'
     WHEN 'MULTIPOINT' THEN
     '"type": "MultiPoint","coordinates":' +
     '[' + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@geo.ToString(),'MULTIPOINT ',''),'(','['),')',']'),'], ',']],['),', ','],['),' ',',') + ']'
     WHEN 'LINESTRING' THEN
     '"type": "LineString","coordinates":' +
     '[' + REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@geo.ToString(),'LINESTRING ',''),'(','['),')',']'),'], ',']],['),', ','],['),' ',',') + ']'
     ELSE NULL
     END)
     +'}');
    END;

你说这相对容易,你介意添加所需的方法和/或工具吗?谢谢。为GeoJson添加了链接和SQL for GEOMETRY。有没有办法将svg转换为空间查询?