MapGuide RFC 141 - GEOS upgrade
This page contains a change request (RFC) for the MapGuide Open Source project. More MapGuide RFCs can be found on the RFCs page.
Status
RFC Template Version | (1.0) |
Submission Date | 1 July 2014 |
Last Modified | 24 August 2014 |
Author | Jackie Ng |
RFC Status | adopted |
Implementation Status | implemented |
Proposed Milestone | 3.0 |
Assigned PSC guide(s) | (when determined) |
Voting History | (vote date) |
+1 | Jackie,Crispin,Kevin |
+0 | |
-0 | |
-1 | |
no vote | Trevor,Haris,Gordon |
Overview
This RFC proposes to update GEOS to the latest stable version.
Motivation
Where possible, MapGuide's thirdparty components should be regularly kept up to date to ensure they get the latest bug fixes.
GEOS is one such component. It is still on a very old version (2.2.0)
Proposed Solution
Upgrade GEOS to the latest stable release (3.4.2)
This sandbox has already implemented the GEOS upgrade as proposed by this RFC.
Adoption of this RFC means the changes in this branch will be merged back into the trunk stream.
Though not in the scope of this RFC, upgrading to the 3.4.2 release allows us to take advantage of new features such as cascaded unions and prepared geometry. Wherever applicable, we should look at taking advantage of such features to improve the MgGeometry library.
Implications
GEOS 3.0.0 introduces semantic changes to exception handling. GEOSExceptions are now caught by const reference and the MgGeometry macros need to be updated to catch GEOSExceptions in this way See updated macro.
The result of a SymetricDifference operation is now sensitive to the order of the operands See here for an explanation
Geometry area calculations may introduce rounding errors example. The author of this RFC is uncertain whether this will significantly impact adoption of this RFC.
Test Plan
Verify existing Geometry tests still pass
Funding / Resources
Community