mysql - 如何将经纬度数据正确导入MySQL?

标签 mysql decimal latitude-longitude load-data-infile

我有一个城市名称数据集及其相应的纬度/经度,我已将其加载到 MySQL 表中,如下所示:

城市编号 |城市名称 |纬度 DECIMAL(9,6) |经度 DECIMAL(9,6)

典型的纬度/经度坐标可能如下所示:54.284758/32.484736。

但是,我只得到小数位数为 2 的值才能在我的表中正确显示,换句话说,相当于 DECIMAL(5,2)。数据是从 OpenOffice Calc 为 UTF-8 目的导出的文本 CSV 上传的。我知道 OpenOffice 有一些小数问题,但完整的纬度/经度肯定在导出的 CSV 中。如果我用记事本打开 CSV,数据没问题。

谁能看出我可能做错了什么?

谢谢。

更新: 得到它的工作,感谢所有的输入。我从头开始重新创建了所有内容,新的模式文件(我使用的是 ORM)、新的 CSV 导出、新的表、新的 LOAD DATA INFILE,并且它使用正确的十进制输出。打败我。

最佳答案

这对您的需求来说可能有些矫枉过正,但是在处理地理数据时您可能需要考虑使用 MySQL Spatial Extensions .

我要补充一点,您当前使用的数据类型足以表示 CSV 文件中的数据。要么您的导入器中的某些东西在导入时将其截断,要么您用于查看数据的任何内容都将其截断。

关于mysql - 如何将经纬度数据正确导入MySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2148108/

相关文章:

android - 位置监听器

sql - 如何使用PostgreSQL查询将位置数据转换为经度和海拔高度?

php - Yii2:无法通过 + 1 更新列值

php - 在 PHP 中使用货币(小数)是否安全?

c# - 如何从列表中填充数据网格?

c++ - 在 C++ 中连接单个字符并转换为组合小数

ios - shouldChangeCharactersInRange 接受单个 '.'

android - 增强现实显示当前地址

java - 远程访问sqlite或mysql数据库

mysql - 我应该如何配置mysql的my.ini(或my.cnf)文件?