我试图将mysitude数据库中的lattitude和longtitude(由Drawing API生成)存储为空间数据类型。 Spatial数据类型在mysql中支持15位精度。
根据我的用例,我必须在数据库中存储精确的数字精度。所以我需要澄清谷歌地图绘制API v3是否会产生超过15位数的精度? (我已经看过它一次有16位精度,之后我不再得到它了)。非常感谢任何帮助。
答案 0 :(得分:17)
“用于表示值的位数”与“用于表示值的有意义位数”之间存在差异。
无论您使用什么来确定地球上某个点的位置,都会出现与您的方法相关的不准确之处。对于GPS,如果你使用特殊的校正方法,你很幸运能得到1米 - 或几厘米。
由于地球周长为40,000 km和360度,因此一度(赤道处)对应111 km;所以当你有0.000 001度时,你会下降到11厘米。换句话说,3 + 6位数(以度为单位)的大小与您应该关注的一样准确。
转到15位(3 + 12)表示您处于亚微米范围内。你真的在乎吗?
另外,double
可以存储大约15位精度(53位有效数字)。因此,您的问题是关于计算机通常可以代表什么数字的限制,而不采取特殊的预防措施。当你开始对这样的数字进行任何类型的计算时,你将很快失去一些最低有效数字的精度。