Answers:
最重要的答案是MySQL Spatial Extensions。有链接与这些扩展工作负载这里。
如果您不想使用空间类型,并且正在从GPS单位或地理编码服务获取值,则可以将十进制精度与数据源进行匹配。一般的经验法则是将数据存储的精度比在应用程序中显示数据的精度高两个位置。
在Google的一个代码示例中,该代码在地图上显示点,它们指出:
创建MySQL表时,您要特别注意lat和lng属性。使用Google Maps当前的缩放功能,小数点后只需要6位精度。
为了使表格所需的存储空间最小,可以指定lat和lng属性为大小为(10,6)的浮点数。这将使字段在小数点后存储6位数字,再在小数点前存储多达4位数字,例如-123.456789度
我不会担心数值类型之间的性能差异。体面的指数将产生更大的影响。
除非由于其他原因而与MySQL绑定,否则您应该真正考虑使用支持空间的数据库(例如postgis),该数据库具有Point(以及Line,Polygon等)对象来为您处理这些详细信息。当您对整个世界进行更改时,也会获得投影支持。
2019年:对于像我这样也不会阅读注释的人-MySQL支持空间数据类型,据说速度较慢,没有证据。