sql-server - 几何列: STGeomFromText and SRID (what is an SRID?)

标签 sql-server sql-server-2008 geometry

我正在使用 SQL Server 2008 中的新地理列和 STGeomFromText 函数。这是我的代码(适用于 AdventureWorks2008)

DECLARE @region geography;
set @region = geography::STGeomFromText('POLYGON((
        -80.0 50.0, -90.0 50.0,
        -90.0 25.0, -80.0 25.0,
        -80.0 50.0))', 4326);

SELECT @region;

我的问题是关于代码中的4326。它应该是一个空间引用 ID。当我去 MSDN 时,没有太多相关内容。如果我将该值更改为 56,则会收到一条错误消息,告诉我该值必须位于 sys.spatial_reference_systems 表中。

您可以通过执行以下命令查看该表:

select * from sys.spatial_reference_systems 

该表中有一个 well_known_text 列,但它并没有告诉我太多信息。 4326 的值为:

GEOGCS["WGS 84", DATUM["World Geodetic System 1984", ELLIPSOID["WGS 84", 6378137, 298.257223563]], PRIMEM["Greenwich", 0], UNIT["Degree", 0.0174532925199433]]

谁能给我解释一下这个谜团吗? SRID 是什么?

最佳答案

所以昨天我最终与一位前军人交谈,他是一名雷达/测绘专家。 基本上,他确切地知道那个数字(4326)是什么、它来自哪里以及为什么它在那里。

它是计算地理学的行业标准。问题是地球不是一个完美的球体(它的中间凸起),SRID 4326 解释了这一点。

正如我所说,表 sys.spatial_reference_systems 列出了所有代码及其内容。但简单来说,除非您有非常具体的理由要使用不同的东西,否则您实际上只会使用 4326。

关于sql-server - 几何列: STGeomFromText and SRID (what is an SRID?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/373589/

相关文章:

sql - 在 SQL Server 2008 中使用分组依据和排序依据检索结果时出错

javascript - 在谷歌地图上绘制圆弧

sql - 连续计数记录结果

sql-server - T-SQL 用于查找事务复制中订阅服务器上是否订阅了数据库

sql-server - 在 SQL 中计算 "previous"行的有效方法是什么?

sql-server - 将连续的日期范围分组为一行

sql - 按日期为多行中的每一列选择第一个非空值

python - Python 的 3D 几何包

matlab - Matlab中的填充半圆

php - 为什么 CodeIgniter 会耗尽允许的内存大小?