什么是MySQL函数wchih等于DB2 / PostGIS函数“ST_Intersection”?

时间:2011-05-30 21:49:27

标签: mysql gis spatial

我在DB2 / MySQL空间函数之间进行一些性能比较。但是,在将DB2空间查询转换为MySQL方言后,它会抱怨语法错误(错误:函数交集不存在)。查询非常简单,如下所示:

SELECT Area(Intersection(a.outline, b.outline) )/Area(Union( a.outline, b.outline)) AS area_ratio,  Distance(Centroid(b.outline), Centroid(a.outline) ) AS centroid_distance
FROM spatial_table1 A, spatial_table2 B  ............

在查看文档之后,我发现MySQL中没有实现精确的空间函数(Intersection,Union)。是这样吗 ? 有解决方法吗?

2 个答案:

答案 0 :(得分:1)

MBRIntersects()

它不是100%相同,因为它测试看边界是否相交,但它是否接近。

MySQL文档:http://dev.mysql.com/tech-resources/articles/4.1/gis-with-mysql.html
MySQL中的几何函数:http://dev.mysql.com/doc/refman/5.0/en/geometry-property-functions.html

请注意,只有MyISAM表支持空间索引。

用于GIS的UDF,对您的问题没有用处抱歉:
MySQL UDF用于球体上的距离:http://www.lenzg.net/archives/220-New-UDF-for-MySQL-5.1-provides-GIS-functions-distance_sphere-and-distance_spheroid.html
用于UTM功能的MySQL UDF:http://www.mysqludf.org/lib_mysqludf_fPROJ4/index.php

答案 1 :(得分:0)

有一个开发快照,伴随着“Holyfoot”实现的精确空间功能。这是5.1.35快照。