如何解决使用 C# 将 gml:Polygon 转换为 SQL 几何十六进制字符串
我正在尝试仅在 C# 中使用 Geometry
将 gml:polygon 转换为 sql Server Microsoft.sqlServer.Types
数据类型,因此没有 sql 服务器可用于此任务,在以下示例中,我仅使用 MSsql 服务器用于测试目的。我已经这样做了:
string str = "<gml:polygon xmlns:gml=\"http://www.opengis.net/gml\"><gml:exterior><gml:LinearRing><gml:posList>1 2 3 4 5 6 1 2</gml:posList></gml:LinearRing></gml:exterior></gml:polygon>";
sqlXml str1 = new sqlXml(new MemoryStream(Encoding.UTF8.GetBytes(str)));
sqlgeometry a = sqlgeometry.GeomFromGml(str1,4326);
writer.WriteString(a.STAsText().TosqlString().ToString());
这将输出:
polyGON ((1 2,3 4,5 6,1 2))
现在我需要像这样转换它: 当我在 SSMS 中执行此命令时
select convert(geometry,'polyGON ((1 2,1 2))')
并在结果窗格中获得以下结果,以便我可以将其作为字符串:
0x00000000010004000000000000000000F03F00000000000000400000000000000840000000000000104000000000000014400000000000001840000000000000F03F000000000000004001000000020000000001000000FFFFFFFF0000000003
我如何才能做到这一点?
更新
使用 sqlgeometry.GeomFromGml(str1,4326) 我已经有了几何数据类型,还有另一种方法:STAsBinary() 它将为我提供相同几何 (WKB) 的二进制表示,但我不知道如何从中获取 sql 十六进制字符串。
我试过这种方式:
var m = BitConverter.ToString(ba).Replace("-","");
但结果是 WKB 表示。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。