cst*_*ing 2 sql sql-server sql-server-2012
我有一个包含两个纬度和经度字段的视图,我想创建一个新视图,将这些纬度/经度字段转换为几何/地理字段(不确定哪个最适合ArcGIS).原始视图中的字段是双重类型,我希望它们在我的新视图中转换为空间类型.
目前我不确定如何将这些字段转换为空间类型.Stack Overflow上所有其他类似的问题从来没有让我成为一个有效的解决方案,所以如果这个问题看似重复,我会道歉,但希望更清晰的例子可以帮助其他人.
我的新观点很简单 -
SELECT * FROM view_name WHERE (latitude <> 0) AND (longitude <> 0)
Run Code Online (Sandbox Code Playgroud)
如何基于现有视图创建此新视图,并将两个字段(或创建填充了lat/lon值的新空间字段)转换为空间类型?
我正在使用SQL Server Management Studio,2012版.如果我遗漏任何相关信息,请告诉我.我很乐意提供尽可能多的细节.
Jua*_*eza 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)
Run Code Online (Sandbox Code Playgroud)
胡安的回答让我走上了正轨。在处理几何时,我最初使用
geometry::Point([Latitude], [Longitude], 4326) as Geom
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用 Geom.STX 访问经度时,它会返回纬度值。Geom.STY 实际上会返回经度值。
我不得不使用
geometry::Point([Longitude], [Latitude], 4326) as Geom
Run Code Online (Sandbox Code Playgroud)
只是想为遇到涉及几何类型问题的其他人提供此信息。
| 归档时间: |
|
| 查看次数: |
9452 次 |
| 最近记录: |