SQL Server - 从经度和纬度到几何数据类型

时间:2012-06-28 13:23:14

标签: sql sql-server-2008 sqlgeography

  

可能重复:
  SQL Server 2008 Spatial: find a point in polygon

我正在使用一个使用SQL Server 2008数据库的应用程序。在这个数据库中,我有一个名为Session的表,它有两个字段Longitude和latitude,用于指示用户的位置。在另一个名为Zone的表上,我有一个几何类型的area属性。如何检查用户的经度和纬度坐标是否属于某个几何?

谢谢

1 个答案:

答案 0 :(得分:3)

您有一个几何图形,它以欧几里德几何图形存储一个形状,并且您希望将一个由纬度和经度表示的地球上的点与它相关联,以查看它是否在内部。由于SQL存储数据的方式,这将不起作用。您可能需要使用地理数据类型来检查 - 纬度和经度是球体上的点(实际上是大地测量数据,因为地球不是一个球体。)

有关它们不同的详细信息,请参阅this explanation from microsoft。还有关于stackoverflow的答案:GEOMETRY and GEOGRAPHY difference SQL Server 2008

要将数据从几何转换为地理位置,请尝试:      Geography :: STGeomFromText(cast(GeomCol as varchar(max)),4326)

然后,您可以使用由here记录的STIntersects方法。