mysql中的几何和地理数据类型

时间:2016-01-07 09:13:58

标签: mysql geometry spatial sqldatatypes

Sql服务器具有空间数据类型几何和地理。 mysql中有几何类型可用,但我没有在mysql中找到mysql地理。

我要检查多边形地理围栏的位置(纬度,经度)的交叉点。我在java中做过这个,但是这个解决方案太慢了。因此在sql server数据库中我使用geography数据类型来存储多边形地理围栏点数据。这给了我更快的结果。

在mysql中我找不到geograqphy数据类型。纬度和经度代表角度。

那么如果我使用geometry数据类型来存储多边形geofece呢? mysql中的点(纬度,经度)?

它会给我与地理相同的结果吗?

2 个答案:

答案 0 :(得分:4)

MySQL具有与OpenGIS类对应的数据类型。其中一些类型包含单个几何值:

GEOMETRY

POINT

LINESTRING

POLYGON

GEOMETRY可以存储任何类型的几何值。其他单值类型(POINT, LINESTRING, and POLYGON)将其值限制为特定的几何类型。

其他数据类型包含值集合:

MULTIPOINT

MULTILINESTRING

MULTIPOLYGON

GEOMETRYCOLLECTION

GEOMETRYCOLLECTION可以存储任何类型的对象集合。

其他集合类型(MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, and GEOMETRYCOLLECTION)将集合成员限制为具有特定几何类型的集合。

您也可以参考:https://dev.mysql.com/doc/refman/5.7/en/spatial-datatypes.html

https://dev.mysql.com/doc/refman/5.7/en/using-spatial-data.html

答案 1 :(得分:0)

是的,它在MYSQL中。您可以查找11.5.1 Spatial Data Types

  

MySQL具有与OpenGIS类对应的数据类型。其中一些   类型包含单个几何值:

     
      
  • 几何
  •   
  • POINT
  •   
  • LINESTRING
  •   
  • POLYGON
  •   
     

GEOMETRY可以存储任何类型的几何值。另一个单值   types(POINT,LINESTRING和POLYGON)将其值限制为a   特殊的几何类型。

修改

要存储纬度和经度,您可以在MYSQL中使用DECIMAL数据类型。具体而言,对于纬度使用DECIMAL(10, 8),范围从-90到+90(度),对于经度,您可以使用DECIMAL(11, 8),因为它的范围是-180到+180(度)。