使用 MySQL 保持纬度/经度存储的精度
在处理地理数据时,纬度和经度坐标的精度对于准确的至关重要地图计算。由于坐标扩展至小数点后 8 位,因此必须选择适当的 MySQL 数据类型以保持此级别的精度。
与 Google 文档中提到的使用 FLOAT(10, 6) 的建议相反,此数据类型将精度限制为小数点后六位。要保留完整的八位小数精度,请考虑使用 MySQL 空间数据类型中的 Point 数据类型。
Point 数据类型提供了带有小数秒的地理坐标的精确表示。它可以将纬度和经度值存储为单值类型。通过创建 Point 列,您可以确保高精度地执行地图计算。
例如:
CREATE TABLE `buildings` ( `coordinate` POINT NOT NULL, /* Even from v5.7.5 you can define an index for it */ SPATIAL INDEX `SPATIAL` (`coordinate`) ) ENGINE=InnoDB; /* then for insertion you can */ INSERT INTO `buildings` (`coordinate`) VALUES (POINT(40.71727401 -74.00898606));
通过使用 Point 数据类型,您可以精确地存储和操作地理数据坐标,确保您的地图应用程序的精确计算和数据完整性。
以上是MySQL存储经纬度数据时如何保持高精度?的详细内容。更多信息请关注PHP中文网其他相关文章!