【发布时间】:2012-09-07 19:43:33
【问题描述】:
我对 SQL Server 的空间领域非常陌生,需要一些帮助。我有一个航点组织应用程序,我正在尝试生成一些查询,这些查询遵循查找属于地理多边形(如湖泊、河流等)的航点的前提。我已经用我下载的数据预加载了我的表。我使用 shape2sql.exe 将 shapefile 加载到适当的数据库表中。
表格如下:
地下水位 - id、名称、geog(地理数据类型)
状态表 - id、state_name、state_abbr、geog(地理数据类型)
县表 - id、名称、state_name、geog(地理数据类型)
航点表 - id, name, lat, lon, waterid
如何针对这些表编写查询以返回以下内容:
- 'michigan' 中的所有航点
- 'michigan' 'montcalm' 县的 'bass Lake' 上的所有航路点(密歇根州和该国有多个 Bass 湖,因此是县/州部分)
- 通过“处理”一组航路点并找到它们实际属于哪个湖,自动分配航路点表的水 id 列
- 等等。
谢谢!
到目前为止学到的:
选择 geog.ToString() 作为 Points, geog.STArea() 作为 Area, geog.STLength() 作为 Length
从水
其中名称如 '%bass lake%' 和 STATE = 'mi'
将返回 Bass Lake 的记录和带有湖泊实际坐标的多边形。
POLYGON ((-87.670498549804691 46.304831340698243, -87.670543549804691 46.307117340698241, -87.676573549804687 46.313480340698241, -87.68120854980468 46.314821340698245, -87.685168549804686 46.315703340698242, -87.6877605498047 46.313390340698241, -87.685051549804683 46.308827340698244, -87.682360549804685 46.305650340698243, -87.677734549804683 46.304768340698246, -87.674440549804686 46.304336340698242, -87.670498549804691 46.304831340698243)) 1022083.96662664 4027.52433709888
【问题讨论】:
标签: sql-server-2008-r2 spatial