c# - 在 SqlGeometry 和 DbGeometry 之间转换

标签 c# geospatial sqlgeometry

SqlGeometry 和 DbGeometry 之间有没有简单的转换方法? 我正在使用一个流行的 sql 空间帮助程序库,其中的所有函数都需要 SqlGeometry。但是,当我针对 ESRI ArcSDE 要素类使用 Entity Framework 时,Shape 字段作为 DbGeometry 返回。 我无法使用该 DbGeometry 类型调用任何我想要的方法(例如 LocateAlongGeom)。 也许有一种方法可以将其序列化为二进制或文本,然后将其作为 SqlGeometry 读回?

最佳答案

//Convert from SqlGeometry to DbGeometry 
SqlGeometry sqlGeo = ...
DbGeometry dbGeo = DbGeometry.FromBinary(sqlGeo.STAsBinary().Buffer);

//Convert from DBGeometry to SqlGeometry
 SqlGeometry sqlGeo2 = SqlGeometry.STGeomFromWKB(new SqlBytes(dbGeo.AsBinary()), 0);

关于c# - 在 SqlGeometry 和 DbGeometry 之间转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15485945/

相关文章:

c# - 具有泛型类属性的 LINQ 表达式

c# - Parallel.Invoke() 无需等待执行完成

r - 如何解释统一空间数据中的 CSR 和聚类?

sql-server - SQL Server - 来自点几何的线串

sql-server - 为什么 STContains 会返回 null?

c# - 如何检查正则表达式组是否相等?

math - 地理空间路由

r - ggplot 保留组合图的重复颜色

sql-server-2008 - Microsoft.SqlServer.Types 的几何 UDT 的 SQL Server 2012 版本是否向后兼容 SQL Server 2008?

c# - 如何在 SelectedIndexChanged 事件之前检测 TabControl 中标签页的变化?