在Mysql中存储经度/纬度的数据类型

时间:2012-03-05 00:11:15

标签: mysql floating-point geospatial sqldatatypes

'43.005895','-71.013202'

尝试使用:

INSERT INTO table(fanDetLocZip, fanDetLocCity, fanDetLocState, fanDetLocLat, fanDetLocLong, fanDetLocTZ, fanDetLocDST)  
VALUES(00210, 'Portsmouth', 'NH', '43.005895', '-71.013202', -5, 1);

我目前正在使用数据类型SPATIALGEOMETRY

它给我的错误如下:

无法从发送到GEOMETRY字段的数据中获取几何对象

所有值都有2位数,小数点后有6位小数。我如何将其存储在mysql中?

我使用时出错:
INSERT INTO Table(fanDetLocZip, fanDetLocCity, fanDetLocState, fanDetLocLatLong, fanDetLocTZ, fanDetLocDST)
VALUES(00210, 'Portsmouth', 'NH', point(43.005895,-71.013202), -5,1)

错误图片:img5

2 个答案:

答案 0 :(得分:18)

您可以使用POINT()存储到GEOMETRYPOINT类型的列中:

POINT(43.005895, -71.013202)

如果几何列名为geom,则可以使用:

INSERT INTO table
    ( ..., geom, ...) 
  VALUES
    ( ..., POINT(43.005895, -71.013202), ...)

如果要显示存储的数据,可以使用X() and Y()功能:

SELECT X(geom) AS x, Y(geom) AS y
FROM table 

答案 1 :(得分:2)

为什么不为lat / long使用Float类型?

Float (10,6)