mysql - MySQL Spatial 中的质心投影

标签 mysql sql

我有一个查询,该查询返回一组与我感兴趣的实体关联的几何图形。此查询用于构建要在 Google map 中显示的 KML。

我检索的列的类型为 GEOMETRY并且,在我的数据集中,主要包含 GeometryCollection仅包含 Polygon 类型的单个元素。其他记录为MultiPolygon类型。

我想计算结果集中所有几何图形的质心,就像AVG一样运算符(operator)的行为。我的意思是,给出像 SELECT GEOMETRY FROM GEOENTITIES WHERE [..] 这样的查询我希望 MySQL 计算结果集中所有行的几何图形的并集,然后计算它们的质心。

作为示例,我们选择意大利城市。如果我的结果集仅包含罗马的一个多边形和米兰的一个多边形,我预计两者的质心都在佛罗伦萨周围。

实际上,UNION()函数在基于列的级别上工作,而不是在行级别上工作。您可以将同一行中两列的两个几何图形合并起来(按照 documentation )

我需要一个聚合运算符将所有行中的多边形合并到一个集合中,我可能希望从中计算质心。

这可能吗?

最佳答案

我认为当前的mysql(5.7版本)不包括这样的空间函数(也许将来) (http://dev.mysql.com/doc/refman/5.7/en/functions-that-create-new-geometries-from-existing-ones.html#functions-that-produce-new-geometries)

有一条线:OpenGIS 提出了许多其他可以生成几何图形的函数。它们旨在实现空间运算符。这些函数在 MySQL 中未实现

因此,由于您无法在 MySQL 中执行此操作,因此实现此操作的唯一方法是在应用程序端,无论您使用什么。 例如,OpenLayer javascript 可以执行以下操作:( https://gis.stackexchange.com/questions/19964/how-to-merge-two-polygons-in-openlayers )

或者,您可以使用面向空间的数据库,例如http://postgis.net/ ,或 Oracle Spatial :)

关于mysql - MySQL Spatial 中的质心投影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18976500/

相关文章:

php - 如何选择表格中间的一行并选择它之后的所有行?

mysql - 当类具有 jdbc servlet jsp mysql 中另一个类的外键时,如何列出类的所有元素?

mysql - 这是适合存储大量图像的数据库(用于在线购物车)

jquery - 将多个复选框值保存到 sql 数据库

mysql - SQL 分组依据和最小值 (MySQL)

mysql - 未解析的符号列 - Scala Slick

mysql - 插入外键,丢失键,更新

php - 带有自定义字段变量的 SQL 查询

sql - 按月排序 SQL 查询

mysql - 匹配 MySQL 中的单词 "Different"( bool 模式)