sql-server – 我应该使用SqlGeometry还是SqlGeography?

前端之家收集整理的这篇文章主要介绍了sql-server – 我应该使用SqlGeometry还是SqlGeography?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们在这个问题上存在一些内部冲突,似乎无法得出一个圆满的结论.

我们只会存储纬度和经度,可能还有简单的多边形.我们所需要的只是计算两点之间的距离(并且可能查看点是否在多边形内),并且整个数据非常接近以使平面估计可接受.

由于我们的要求如此宽松,开发团队的一半建议使用sqlGeometry类型,这显然更简单.但是,我很难接受这个,因为我们正在存储地理数据,这似乎是将它们存储在sqlGeography中是正确的做法.此外,我没有找到任何实质性证据表明sqlGeometry数据类型比sqlGeography类型更容易使用.

是否有人建议哪种类型更适合这种相对简单的情况?

解决方法

这不是比较特征,准确性或简单性的问题 – 两种空间数据类型用于处理不同类型的数据.

作为类比,假设您为包含每行唯一标识符的列选择最佳数据类型.如果该UID仅包含整数值,则使用int,而如果它是6个字符的字母数字值,则使用char(6).如果它有可变长度的unicode值,你会使用nvarchar,对吧?

空间数据采用相同的逻辑 – 您可以根据该列包含的值选择适当的数据类型;如果您正在使用地理(即纬度/经度)坐标,请使用sqlGeography数据类型.就这么简单.

您可以使用sqlGeometry来存储纬度/经度值,但这就像使用nvarchar(max)来存储整数…我保证会导致进一步的问题(当您的所有区域计算都出来时)以度为单位,例如)

猜你在找的MsSQL相关文章