Testers wanted: extended GIS functionality for MySQL
Lenz Grimmer <[email protected]>
| Newsgroups | gmane.comp.gis.freegis |
|---|---|
| Message-ID | <[email protected]> |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, While MySQL already provides functionality to store and operate on geospatial data, the current implementation leaves quite a lot to be desired and is far from providing full OpenGIS compatibility. Most notably is that all functions that query spatial data only operate on MBRs (minimum bounding rectangles, http://en.wikipedia.org/wiki/Minimum_bounding_rectangle), to simplify the operations. Thanks to my colleague Alexey "Holyfoot" Botchkov from Izhevsk, Russia, some of the spatial relation functions like INTERSECTS and WITHIN now work in the way they are described by OpenGIS and are no longer limited to using MBRs. He has been working on improving the GIS functionality as a side project and the work has now reached a level at which he is ready to give it some public testing and solicit feedback about it. Currently these new features have not been slated for inclusion in any upcoming MySQL major release. But the more feedback and testing this code receives, the faster it will reach a maturity level that makes it a potential feature candidate for new versions of MySQL. In addition to improving already existing functionality, Holyfoot also implemented some new precise geospatial functions - the following functions are available now and use precise operations instead of MBRs: * BUFFER(g1 geometry, d numeric) returns a Geometry defined by buffering a distance d around g1 where d is the distance units for the Spatial Reference of g1 * DIFFERENCE(g1 geometry, g2 geometry) returns a Geometry that is the closure of the set difference of g1 and g2 * DISTANCE(g1 geometry, g2 geometry) returns distance between g1 and g2 * INTERSECTION(g1 geometry, g2 geometry) returns a Geometry that is the set intersection of g1 and g2 * SYM_DIFFERENCE(g1 geometry, g2 geometry) returns a Geometry that is the closure of the set symmetric difference of g1 and g2 (logical XOR of space) * UNION(g1 geometry, g2 geometry) returns a Geometry that is the set union of g1 and g2 This work is documented as WorkLog task #1326 "Precise spatial operations", which is a subtask of WL#2377 "Add all missing GIS features to MySQL" - feel free to review and comment on these specifications at http://forge.mysql.com/worklog/ and make sure to test the new functionality! The source tree (based on the MySQL 5.1 code base) is now available from our public BitKeeper trees at http://mysql.bkbits.net:8080/mysql-5.1-wl1326/ - please consult the reference manual for more information on how to build a MySQL binary from a source tree: http://dev.mysql.com/doc/refman/5.0/en/installing-source-tree.html To discuss the new GIS functionality, please use our GIS Forum at http://forums.mysql.com/list.php?23 and make sure to report bugs at our public Bug Database at http://bugs.mysql.com/ - thanks! Bye, LenZ - -- - ------------------------------------------------------------------ Lenz Grimmer <[email protected]> -o) [ICQ: 160767607 | Jabber: [email protected]] /\\ http://www.lenzg.org/ V_V -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (GNU/Linux) Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org iD8DBQFGjlgCSVDhKrJykfIRAoXSAJ47jUC82g8IiST651SVZq41Yed8pQCeM7T+ kYx+FQRp+4rwSduP9IyBHcg= =l/Mx -----END PGP SIGNATURE-----