sql 2008中BufferWithTolerance距离的度量单位是什么

sql 2008中BufferWithTolerance距离的度量单位是什么,sql,sql-server-2008,spatial,Sql,Sql Server 2008,Spatial,我找到了这个链接 也就是说它是米。这也显示了我的系统上的仪表 SELECT * FROM sys.spatial_reference_systems where spatial_reference_id = 4326; 然而,当我使用这段代码创建一个圆时,当我使用google maps api绘制它并手动测量距离时,得到的圆的半径约为27英里,因此肯定有问题。应该是1/2米,实际上是27英里 DECLARE @g geometry; SET @g = geometry::STGeomFrom

我找到了这个链接

也就是说它是米。这也显示了我的系统上的仪表

SELECT * FROM sys.spatial_reference_systems where spatial_reference_id = 4326;
然而,当我使用这段代码创建一个圆时,当我使用google maps api绘制它并手动测量距离时,得到的圆的半径约为27英里,因此肯定有问题。应该是1/2米,实际上是27英里

DECLARE @g geometry;
SET @g = geometry::STGeomFromText('POINT(-88.0 44.5)', 4326);
select @g.BufferWithTolerance(.5,.01,1)

-Randy

如果使用地理坐标,单位将与坐标系的单位相同,即度;如果使用UTM,单位将为米;如果使用一些美国投影,单位将与坐标系的单位相同,即度。

如果使用地理坐标,如果使用UTM,则为米;如果使用一些美国投影,则为英尺。

如果查看sys.space\u reference\u系统中众所周知的文本列,则会看到4326的单位为度。这是用于描述平面系统中点等的位置和距离的单位。测量列的单位是使用椭球体类型时用于点和区域之间距离的单位

因此,您使用的是使用WKT单位的SQL平面类型的几何体。如果要使用SQL椭球体类型,则度量单位用于距离等

您可以在以下示例中看到这一点:

几何学

以度为单位的距离

地理

以米为单位的距离

如果您查看sys.space\u reference\u系统中众所周知的文本列,您将看到4326的单位是度。这是用于描述平面系统中点等的位置和距离的单位。测量列的单位是使用椭球体类型时用于点和区域之间距离的单位

因此,您使用的是使用WKT单位的SQL平面类型的几何体。如果要使用SQL椭球体类型,则度量单位用于距离等

您可以在以下示例中看到这一点:

几何学

以度为单位的距离

地理

以米为单位的距离


我想我明白了。它实际上是度而不是米。将度数除以60将转换为英里。不管怎样,这似乎对我有用。我想我已经明白了。它实际上是度而不是米。将度数除以60将转换为英里。不管怎样,这似乎对我有用。谢谢莫顿。我想把你的答案标记为正确,但是我怎么知道坐标系的单位是什么呢?从sys.spatial\u reference\u systems中选择测量单位,其中spatial\u reference\u id=4326查询返回米,但对我来说,它似乎使用的是度数而不是米。您需要检查投影的详细信息。对于一个给定的投影,单位总是被定义的。查找它,然后查看wkt表示。嗯,我必须承认,这不容易找到……只是进一步阐述一下:epgs 4326的单位不能是米——只要想想沿着赤道或子午线的一度大约是110公里,而在两极之一的东西一度是0米……谢谢莫顿。我想把你的答案标记为正确,但是我怎么知道坐标系的单位是什么呢?从sys.spatial\u reference\u systems中选择测量单位,其中spatial\u reference\u id=4326查询返回米,但对我来说,它似乎使用的是度数而不是米。您需要检查投影的详细信息。对于一个给定的投影,单位总是被定义的。查找它,然后查看wkt表示。嗯,我必须承认,这不容易找到……只是进一步阐述一下:epgs 4326的单位不能是米——只要想想沿着赤道或子午线的一度大约是110公里,而在两极之一的东西一度是0米。。。
DECLARE @g geometry;
DECLARE @g2 geometry;
SET @g = geometry::STGeomFromText('POINT(-88.0 44.5)', 4326);
SET @g2 = geometry::STGeomFromText('POINT(-88.0 44.0)', 4326);
SELECT @g.STDistance(@g2)

0.5
DECLARE @g geography;
DECLARE @g2 geography;
SET @g = geography::STGeomFromText('POINT(-88.0 44.5)', 4326);
SET @g2 = geography::STGeomFromText('POINT(-88.0 44.0)', 4326);
SELECT @g.STDistance(@g2)

55558.5621458782