gpt4 book ai didi

MySQL存储经纬度高精度

转载 作者:可可西里 更新时间:2023-11-01 07:57:09 25 4
gpt4 key购买 nike

我目前将 lat/lng 值存储在一个小数点后 6 位精度的数据库中。但是,我需要存储在此数据库中的某些值具有 12 位小数精度。我的数据库当前设置经纬度

float (10, 6)

是否可以设置存储类型,使其可以处理 6 位十进制或 12 位十进制的纬度/经度值?

最佳答案

使用DOUBLE数据类型。

您应该能够非破坏性地改变您现有的表格以这种方式工作。例如,

alter table `mytable` 
change `LAT` `LAT` double NULL ,
change `LONG` `LONG` double NULL

但请注意不要夸大数据的准确性。普通 float 32 位浮点经/纬度值(尽可能准确)的 epsilon 是地面上的几厘米。 double 的 epsilon 是一个很小的距离。几乎无法想象您的纬度/经度信息如此精确。如果是的话,除非您使用复杂的制图投影,否则这真的无关紧要:计算距离的典型半轴正弦公式假设地球是一个完美的球体。它不是。地球的赤道隆起大到足以使球形假设不再适用于比几厘米更精确的距离。

这是 Randall Munroe (XKCD) 对地理坐标精度的看法:

enter image description here

关于MySQL存储经纬度高精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9234562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com