SQL中的地理空间数据

时间:2011-05-09 20:49:09

标签: sql-server geospatial sqlgeography

我最近一直在试验地理数据类型,并且喜欢它。但是我无法决定是否应该从我当前的模式转换,将两个单独的数字(9,5)字段中的纬度和经度存储到地理类型。我已经计算了两种类型的大小,Lat / Long表示一个点的方式是单个点28个字节,而地理类型是26个。空间不是很大的增益,但是在执行地理空间操作(交叉,距离测量等)方面有很大的改进。当前使用笨拙的存储过程和标量函数处理的。我想知道的是指数。地理数据类型是否需要更多空间来索引数据?我有一种感觉,即使存储在列中的实际数据较少,我认为地理空间索引的工作方式最终会为它们带来更大的空间分配。

P.S。作为附注,似乎SQL Server 2008(不是R2)不会自动搜索地理空间索引,除非明确告知使用WITH(INDEX())子句

3 个答案:

答案 0 :(得分:1)

我知道您正在尝试保留两者之一,但您可能需要考虑保留两者。如果将数据导出为形状文件,通常的做法是让lat lon字段与geom字段一起使用。

答案 1 :(得分:1)

在我看来,你绝对应该只使用空间类型。空间类型针对空间查询进行了优化,如果空间查询是您需要的,那么我认为这是一个简单的选择。

作为副作用,您可以摆脱您的地理功能和程序,因为它们(可能)内置于SQL Server 2008中。但有一点需要注意,您可能需要花一些时间来优化空间索引,但这取决于你的具体情况。

答案 2 :(得分:0)

我会保留两者。在不需要空间操作的情况下,容易地查询特定特征的原始坐标是有用的。您可以了解原始点以及从它们创建新几何体的能力,以防您在不同的坐标系中需要它(例如,如果您在特定投影中的几何体将失去很多精度到另一个)。