从Latitude&创建几何/地理字段。经度字段(SQL Server)

时间:2015-11-05 18:19:01

标签: sql sql-server sql-server-2012

我有一个包含两个纬度和经度字段的视图,我想创建一个新视图,将这些纬度/经度字段转换为几何/地理字段(不确定哪个最适合ArcGIS)。原始视图中的字段是双重类型,我希望它们在我的新视图中转换为空间类型。

目前我不确定如何将这些字段转换为空间类型。 Stack Overflow上所有其他类似的问题从来没有让我成为一个有效的解决方案,所以如果这个问题看似重复,我会道歉,但希望一个更清晰的例子可以帮助其他人。

我的新观点非常简单 -

SELECT * FROM view_name WHERE (latitude <> 0) AND (longitude <> 0)

如何基于现有视图创建此新视图,并将两个字段(或创建一个填充了lat / lon值的新空间字段)转换为空间类型?

我使用的是SQL Server Management Studio,2012版。如果我遗漏任何相关信息,请告诉我。我很乐意提供尽可能多的细节。

1 个答案:

答案 0 :(得分:10)

  SELECT  *, 
          geography::STGeomFromText('POINT(' + 
                CAST([Longitude] AS VARCHAR(20)) + ' ' + 
                CAST([Latitude] AS VARCHAR(20)) + ')', 4326) as GEOM,

          geography::Point([Latitude], [Longitude], 4326) as SAME_GEOM

  FROM view_name 
  WHERE (latitude <> 0) AND (longitude <> 0)