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