简单的问题,我想知道质心方法是否在MySQL空间扩展中实现。我查看了文档,但未能找到明确的答案。
答案 0 :(得分:6)
一般来说:是的
MultiPolygon:否
OpenGIS规范也定义了 以下函数,其中MySQL 未实施:
质心(mpoly)
返回数学中心 MultiPolygon值作为一个 点。结果不能保证 在MultiPolygon上。
http://dev.mysql.com/doc/refman/5.1/en/geometry-property-functions.html#function_centroid
您可以使用geometryn
函数获取多面体内每个多边形的质心,尽管MySQL手册中没有记录这一点。例如,
select astext(centroid(geometryn(geomfromtext('MultiPolygon(((0 0,0 3,3 3,3 0,0 0)),((10 10,10 20,20 20,20 10,10 10)))'),2)));
返回
POINT(15 15)
是MultiPolygon中第二个多边形的质心。无论如何,对于具有质心的MultiPolygon而言,这可能没什么意义。
答案 1 :(得分:1)
是,您可以从MySQL - Polygon Property Functions阅读。在第一个用户评论页面下方查看。它说:
不仅仅提供这些功能。我想这不是 在文档中足够清楚。例如,MultiPolygon'Centroid' 函数也适用于多边形。
示例:
mysql> SET @poly = 'Polygon((0 0,0 3,3 3,3 0,0 0))';
mysql> select astext( Centroid(PolygonFromText(@poly)));
答案 2 :(得分:0)
从Mysql 8开始,质心不再存在。
获取多边形| m-多边形中心的正确方法是st_centroid()
方法。
这里是一个例子:
select st_astext(ST_Centroid(st_geomfromtext('MultiPolygon(((0 0,0 3,3 3,3 0,0 0)),((10 10,10 20,20 20,20 10,10 10)))'))) as center_point;
答案 3 :(得分:-6)