我有一个城市名称数据集及其相应的纬度/经度,我已将其加载到 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/