我有一个包含两个纬度和经度字段的视图,我想创建一个新视图,将这些纬度/经度字段转换为几何/地理字段(不确定哪个最适合ArcGIS)。原始视图中的字段是双重类型,我希望它们在我的新视图中转换为空间类型。
目前我不确定如何将这些字段转换为空间类型。 Stack Overflow上所有其他类似的问题从来没有让我成为一个有效的解决方案,所以如果这个问题看似重复,我会道歉,但希望一个更清晰的例子可以帮助其他人。
我的新观点非常简单 -
SELECT * FROM view_name WHERE (latitude <> 0) AND (longitude <> 0)
如何基于现有视图创建此新视图,并将两个字段(或创建一个填充了lat / lon值的新空间字段)转换为空间类型?
我使用的是SQL Server Management Studio,2012版。如果我遗漏任何相关信息,请告诉我。我很乐意提供尽可能多的细节。
答案 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)