地理服务器无法识别空间列
Posted
技术标签:
【中文标题】地理服务器无法识别空间列【英文标题】:Geoserver not recognizing spatial column 【发布时间】:2011-10-21 19:17:53 【问题描述】:我正在使用 Geoserver 和 SQL Server 2008。
我有一个表,其中有一列 [geography] 类型。我可以看到显示在 Geoserver 中的表格(我已经安装了 SQL Server 的扩展),但它将该列识别为 byte[] 类型而不是 geography。
有人可以建议我解决这个问题吗?
与上一篇文章一样,我曾多次尝试在 Geoserver 中删除和重新附加数据库。 SQL 服务器还显示数据属于地理类型并且正确映射它。只是 Geoserver 将数据视为 byte[]。
我正在使用这个 sql 语句将 lat long 列转换为地理。
更新 [TestData].[dbo].[ShowMap] SET [Geo] = geography::Point([Latitude], [Longitude], 4326) 去吧
【问题讨论】:
【参考方案1】:所以我找到了解决这个问题的方法。 Geoserver 只能识别 SQL Server 中的 Geometry 数据类型。当您有一个数据类型为 Geography 的列时,Geoserver 会将其识别为 byte[]。
几何数据类型的工作方式与地理相同。
【讨论】:
仅供参考,使用 Geoserver 和 PostGIS 创建 SQL 视图时,Geoserver 只能将几何数据类型列识别为空间数据。这仅适用于 SQL 视图,如果只想发布一个没有任何用户定义的 SQL 的表,那么 Geoserver 即使对于具有地理数据类型的列也可以正常工作。 不,Geoserver 无法识别 Geography 数据类型!它被视为 byte[],因此所有地理特征都不起作用。以上是关于地理服务器无法识别空间列的主要内容,如果未能解决你的问题,请参考以下文章