0

我尝试将表单的地点信息保存到 WAMP 服务器数据库中。我可以insert在 phpmyadmin 页面中使用函数向表中添加记录。但是当我insert在表单中进行协调并提交以将信息保存到数据库中时,我看到了这个错误:

Data truncated for column 'lat' at row 1

我用这些列定义我的表:

place_id: int(10)
p_name: varchar(50)
lat: float(30,27)
lng: float(30,27)
addr: varchar(100)
tel: int(12)
category: varchar(15)
description: varchar(200)

我尝试保存的坐标之一是:

(47.61304128921687,-122.29001998901367)

float(16,14) 除了数据长度错误之外,lat 是代码中可能出错的地方。

4

2 回答 2

1

您正在使用非标准语法来声明您的 FLOAT 列。

http://dev.mysql.com/doc/refman/5.6/en/floating-point-types.html

尝试将这些列声明为FLOATor DOUBLE。括号后面的数字不会影响数字的存储,只会影响格式。

顺便说一句,47.61304128921687 伪装成一个南北方向的位置,精度约为 1.1 纳米。不言而喻,它没有那么精确。如果您使用的是商业级 GPS,FLOAT 可以为您处理的数据提供足够的精度。如果您知道 UTM 和 Lambert 投影之间的区别,DOUBLE 将满足您的需求。

于 2013-10-05T20:02:57.473 回答
0

14 位小数是不现实的。即使是小数点后 5 位= 0.00001 度 = 1.1132 米(赤道)也可能是无法实现的,

纬度

FLOAT(7,5) 能够存储任何三位数字和五位小数的值,因此可以存储在 lat 列中的值范围从 -99.99999 到 99.99999(最大值)+90 -90(实际最大值)

经度

FLOAT(8,5) 能够存储任何三位数字和五位小数的值,因此可以存储在 lng 列中的值范围从 -999.99999 到 999.99999(最大值)+180 -180(实际最大值)

于 2013-10-05T20:25:53.750 回答