我如何从几何字段获取SRID


16

从几何字段获取SRID的功能是什么。

我已将一个shapefile插入定义了Geometry字段的SQL Server表中。我知道shapefile的投影为Swreff99_1800(EPSG:3011)。

现在我的问题是如何通过使用几何字段的某些OGC方法获得SRID:3011?


我不清楚你需要什么。您是否需要从SQL Server定义SRID 3011?听起来您已经插入了具有正确SRID集的数据,是吗?
乍得·库珀

Answers:


31

这是你想要的?

select distinct SP_GEOMETRY.STSrid from dbo.MYTABLE

这将为您提供一个表,其中表dbo.MYTABLE中使用了不同的SRID。


谢谢!。我的第二个问题是sys.spatial_reference_systems表中未定义SRID 3011。而且我需要将几何图形从SRID 3011转换为SRID4326。那我该怎么办?
user1899'2

1
据我所知,SQL Server 2008无法在不同的坐标系之间转换几何数据-它看到所有几何数据都存储在数学坐标系中。
PeterHorsbøllMøller'3

4

在尝试以上方法后,我没有遇到任何麻烦,然后尝试了以下方法:

select [geomColumnName].STSrid
from [schema].[tableName]

这给出了表中所有记录的SRID值。我假设由于所有记录应该具有相同的SRID,因此,如果您只想获取一条记录的值,它将告诉您整个表的SRID:

select top 1 [geomColumnName].STSrid
from [schema].[tableName]

我想知道您使用的是哪个版本的MS SQL Server,以及更高版本中是否有不支持使用Distinct的更改?还是仅仅是您的“几何”列名称不是SP_GEOMETRY?我看到一些情况下,即使几何引用的是相似的坐标系,也使用不同的SRID存储了几何。
PeterHorsbøllMøller's

1
@PeterHorsbøllMøller再次查看此内容,我没有看到他对SP_GEOMETRY的使用指的是几何列名称,因此我的回答几乎与接受的结果相同...
DPSSpatial

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.