Sql服务器具有空间数据类型几何和地理。 mysql中有几何类型可用,但我没有在mysql中找到mysql地理。
我要检查多边形地理围栏的位置(纬度,经度)的交叉点。我在java中做过这个,但是这个解决方案太慢了。因此在sql server数据库中我使用geography数据类型来存储多边形地理围栏点数据。这给了我更快的结果。
在mysql中我找不到geograqphy数据类型。纬度和经度代表角度。
那么如果我使用geometry数据类型来存储多边形geofece呢? mysql中的点(纬度,经度)?
它会给我与地理相同的结果吗?
答案 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(度)。