质心方法是在MySQL空间中实现的吗?

cod*_*ate 0 mysql spatial

简单的问题,我想知道质心方法是否在MySQL空间扩展中实现.我查看了文档,但未能找到明确的答案.

Cha*_*les 7

一般来说:是的

MultiPolygon:没有

OpenGIS规范还定义了以下函数,MySQL没有实现:

心(mpoly)

返回MultiPolygon值mpoly的数学质心作为Point.结果不保证在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)));
Run Code Online (Sandbox Code Playgroud)

回报

POINT(15 15)
Run Code Online (Sandbox Code Playgroud)

这是MultiPolygon中第二个多边形的质心.无论如何,对于具有质心的MultiPolygon而言,这可能没什么意义.