sql 2008 年 BufferWithTolerance 距离的度量单位是什么
What is the unit of measure for the distance of BufferWithTolerance in sql 2008
我找到了这个 link
Create a SqlGeography polygon-circle from a center and radius
说是米。这也在我的系统上显示了仪表。
SELECT * FROM sys.spatial_reference_systems where spatial_reference_id = 4326;
但是,当我使用此代码创建一个圆时,当我使用 google 地图 api 绘制它并手动测量距离时,生成的圆的半径约为 27 英里,所以肯定是关了。它应该是 1/2 米,实际上是 27 英里。
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('POINT(-88.0 44.5)', 4326);
select @g.BufferWithTolerance(.5,.01,1)
-兰迪
单位将与坐标系的单位相同,如果您使用地理坐标,则为度,如果您使用 UTM,则为米,如果您使用某些美国投影,则为英尺。
如果您查看 sys.spatial_reference_systems
中的 well_known_text
列,您会发现 4326 的单位是度。这是用于描述平面系统中点等位置和距离的单位。 unit_of_measure
列是使用椭圆体类型时点和面积之间距离的单位。
因此,您正在使用使用 WKT 单位的 Geometry
(SQL 平面类型)。如果您要使用 Geography
(SQL 椭圆体类型),则 unit_of_measure
用于距离等
您可以在这些示例中看到这一点:
几何
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
(以米为单位的距离)
https://msdn.microsoft.com/en-us/library/bb964711.aspx#differences
我找到了这个 link Create a SqlGeography polygon-circle from a center and radius
说是米。这也在我的系统上显示了仪表。
SELECT * FROM sys.spatial_reference_systems where spatial_reference_id = 4326;
但是,当我使用此代码创建一个圆时,当我使用 google 地图 api 绘制它并手动测量距离时,生成的圆的半径约为 27 英里,所以肯定是关了。它应该是 1/2 米,实际上是 27 英里。
DECLARE @g geometry;
SET @g = geometry::STGeomFromText('POINT(-88.0 44.5)', 4326);
select @g.BufferWithTolerance(.5,.01,1)
-兰迪
单位将与坐标系的单位相同,如果您使用地理坐标,则为度,如果您使用 UTM,则为米,如果您使用某些美国投影,则为英尺。
如果您查看 sys.spatial_reference_systems
中的 well_known_text
列,您会发现 4326 的单位是度。这是用于描述平面系统中点等位置和距离的单位。 unit_of_measure
列是使用椭圆体类型时点和面积之间距离的单位。
因此,您正在使用使用 WKT 单位的 Geometry
(SQL 平面类型)。如果您要使用 Geography
(SQL 椭圆体类型),则 unit_of_measure
用于距离等
您可以在这些示例中看到这一点:
几何
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
(以米为单位的距离)
https://msdn.microsoft.com/en-us/library/bb964711.aspx#differences