【问题标题】:Geometry and Geography data types in mysql [closed]mysql中的几何和地理数据类型[关闭]
【发布时间】:2016-01-07 09:13:57
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 在 Google 中输入 Geometry and Geography data types in mysql 而不是在 Stack Overflow 上提出问题真的太难了吗?
  • @SathishD,我在上面的文档链接中找到了关于几何对象的描述,而不是关于地理的描述。我用纬度和经度存储位置对象的内容
  • @AMY:- 我不确定我是否理解正确,但你会发现这很有帮助:percona.com/blog/2013/10/21/…
  • @Pekka웃,我想我无法正确描述我的问题。

标签: mysql geometry spatial sqldatatypes


【解决方案1】:

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

【讨论】:

  • 谢谢!我应该将哪一个用于地理位置感知应用程序?几何还是点?
【解决方案2】:

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

MySQL 具有对应于 OpenGIS 类的数据类型。其中一些 类型保存单个几何值:

  • 几何学
  • 要点
  • LINESTRING
  • 多边形

GEOMETRY 可以存储任何类型的几何值。另一个单值 类型(POINT、LINESTRING 和 POLYGON)将它们的值限制为 特定的几何类型。

编辑:

要存储纬度和经度,您可以在 MYSQL 中使用 DECIMAL 数据类型。具体来说,纬度使用DECIMAL(10, 8),范围从-90到+90(度),经度可以使用DECIMAL(11, 8),范围从-180到+180(度)。

【讨论】:

  • 但是,如果我使用 DECIMAL,我没有可用的所有空间函数,对吗?我不应该使用 GEOGRAPHY 或 POINT 吗?谢谢。
猜你喜欢
  • 1970-01-01
  • 2013-01-19
  • 2017-01-05
  • 1970-01-01
  • 2021-11-20
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 2014-01-03
相关资源
最近更新 更多