纬度和经度MySQL字段类型

我需要存储在MySQL数据库中的大量纬度和经度.我正在阅读有关要使用的字段类型的冲突建议.

数据的示例是…

Lat        |  Long
------------------------
53.670827  |  -1.093991
50.894701  |  0.061115
52.288213  |  -1.822060

根据Google的this document,他们建议字段类型为FLOAT(10,6)

我已经尝试过了,输入57.098554时将其更改为57.098553,但是输入-2.252504可以正确存储.

作为替代方案,我计划使用以下…

Lat DECIMAL(10, 8)
Long DECIMAL(11,8)

有人有更好的建议吗?我对DECIMAL设置是否正确?

解决方法:

都错了!您链接到的google文档是从2009开始的,mysql从那以后已经走了很长一段路.特别是JSON的引入,并等待它…. mysql 5.7中的spatial data类型

自介绍以来,存储位置的正确方法是将其作为POINT字段.这也为您打开了一系列空间数据功能.否则,您需要手工编写某些东西,就像开发人员在引入它之前必须要做的那样.

内置的地理空间功能可以使用索引,而自制功能通常由于无法正确使用索引而速度较慢.

上一篇:使用Sequelize和MySQL的地理空间距离计算器


下一篇:php-计算距离