0

フォームの場所情報をWAMPサーバーのデータベースに保存しようとしています。insertphpmyadmin ページの関数を使用してテーブルにレコードを追加できます。しかし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)

私が保存しようとする座標の1つは次のとおりです。

(47.61304128921687,-122.29001998901367)

その緯度はfloat(16,14) 、データの長さが間違っていることを除いて、コードで間違っている可能性があります。

4

2 に答える 2

1

非標準の構文を使用して FLOAT 列を宣言しています。

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

FLOATこれらの列をorとして宣言してみてくださいDOUBLE。括弧の後の数字は、数字の保存には影響せず、フォーマットだけに影響します。

ちなみに、47.61304128921687は約1.1ナノメートルの精度で南北位置を偽装しています。それほど正確ではないことは自明です。商用グレードの GPS を使用している場合、FLOAT は処理しているデータに対して十分な精度を備えています。UTM とランバート プロジェクションの違いを知っている場合、DOUBLE は必要なことを実行します。

于 2013-10-05T20:02:57.473 に答える
0

小数点以下 14 桁は非現実的です。小数点以下 5 桁= 0.00001 度 = 1.1132 メートル (赤道で) でさえ、おそらく達成不可能です。

緯度

FLOAT(7,5) は 3 桁と 5 桁の小数の任意の値を格納できるため、lat 列に格納できる値は -99.99999 か​​ら 99.99999 (最大値) +90 -90 (実最大値) の範囲です。

経度

FLOAT(8,5) は 3 桁と 5 桁の小数の任意の値を格納できるため、lng 列に格納できる値は -999.99999 か​​ら 999.99999 (最大値) +180 -180 (実最大値) の範囲です。

于 2013-10-05T20:25:53.750 に答える