Releases: brick/geo
Releases · brick/geo
0.13.1
0.13.0
💥 Breaking changes
The case of the following class names and namespaces has changed:
GEOSEngine=>GeosEnginePDOEngine=>PdoEngineSQLite3Engine=>Sqlite3EngineRemoveZMProjector=>RemoveZmProjectorSRIDProjector=>SridProjectorSwapXYProjector=>SwapXyProjectorTIN=>TinGeometryIOException=>GeometryIoExceptionIO\EWKBReader=>Io\EwkbReaderIO\EWKBWriter=>Io\EwkbWriterIO\EWKTReader=>Io\EwktReaderIO\EWKTWriter=>Io\EwktWriterIO\WKBReader=>Io\WkbReaderIO\WKBWriter=>Io\WkbWriterIO\WKTReader=>Io\WktReaderIO\WKTWriter=>Io\WktWriterIO\GeoJSONReader=>Io\GeoJsonReaderIO\GeoJSONWriter=>Io\GeoJsonWriterIO\GeoJSON\Feature=>Io\GeoJson\FeatureIO\GeoJSON\FeatureCollection=>Io\GeoJson\FeatureCollection
The following breaking changes will only affect you if you're writing your own geometry engine:
GeometryEngineinterface has a new method:concaveHull()DatabaseEngine::executeQuery()implementations must now acceptboolparametersDatabaseEngine::getParameterPlaceholder()signature has changed to acceptboolparametersDatabaseEngine::queryGeometry()is nowfinal
The following breaking changes may only affect you if you're writing your own engine or geometry classes:
GeometryExceptionconstructor signature has changedGeometryhas a new method:withRoundedCoordinates()
✨ New features
- New geometry engine:
GeosOpEngineuses thegeosopbinary to perform geometry operations - New engine method:
GeometryEngine::concaveHull() - New
Geometrymethod:withRoundedCoordinates()
✨ Improvements
- All
GeometryEnginemethods are now properly documented with@throws GeometryEngineException
🐛 Bug fixes
WktParserandEwktParsernow accept bothMULTIPOINT (1 2, 3 4)andMULTIPOINT((1 2), (3 4))syntaxes;
this notably fixes interoperability issues with PostGIS
0.12.0
💥 Breaking changes
- Interface
GeometryEnginehas 2 new methods:lineInterpolatePoint(),lineInterpolatePoints() BoundingBox's constructor is now private, useBoundingBox::new()to create a new instanceCompoundCurvecan now only containLineStringandCircularStringinstances; nestedCompoundCurveinstances are forbiddenGeometryno longer implementsCountableandIteratorAggregate; subclasses implement these interfaces as needed, with proper types- The
SQLite3Exceptionclass has been removed - The
GeometryEngineException::operationNotSupportedByEngine()method has been removed - The following classes are now
final:BoundingBoxCoordinateSystem- engines:
GEOSEnginePDOEngineSQLite3Engine
- exceptions:
CoordinateSystemExceptionEmptyGeometryExceptionGeometryEngineExceptionGeometryIOExceptionInvalidGeometryExceptionNoSuchGeometryExceptionUnexpectedGeometryException
- input/output:
EWKBReaderEWKBWriterEWKTReaderEWKTWriterGeoJSONReaderGeoJSONWriterWKBReaderWKBWriterWKTReaderWKTWriter
- The following classes are marked as
@internal, and are no longer part of the public API:Attribute\NoProxyEngine\GeometryParameterIO\AbstractWKBReaderIO\AbstractWKBWriterIO\AbstractWKTReaderIO\AbstractWKTWriterIO\EWKBToolsIO\EWKTParserIO\WKBBufferIO\WKBByteOrderIO\WKBGeometryHeaderIO\WKBToolsIO\WKTParser
🗑️ Deprecations
- The following classes are marked as
@final, and will be made final in a future version:CircularStringCompoundCurveCurvePolygonLineStringMultiLineStringMultiPointMultiPolygonPointTINTriangle
✨ New features
- New engine methods:
GeometryEngine::lineInterpolatePoint(),lineInterpolatePoints()(#55 by @arminwinkt)
✨ Improvements
- Improved documentation and return types for
Geometry::toArray()methods PDOEngineandSQLite3Enginenow wrap all underlying exceptions in aGeometryEngineException- When an engine exception occurs,
GeometryEngineExceptionnow includes the original exception message
0.11.5
0.11.4
🐛 Bug fixes
GeoJSONWritererroneously refused to writeMultiPoint,MultiLineStringandMultiPolygonnested insideGeometryCollection(#53)
✨ New features
GeoJSONWriterconstructor now has a$lenientflag to allow nestedGeometryCollectionobjects
✨ Improvements
- Improved exception messages in non-lenient mode in
GeoJSONReader - Performance improvement in
GeoJSONWriterwhen thebboxattribute is not requested
0.11.3
✨ New features
- The following methods have been added:
CircularString::withAddedPoints()CompoundCurve::withAddedCurves()CurvePolygon::withExteriorRing(),withInteriorRings(),withAddedInteriorRings()GeometryCollection::withAddedGeometries()LineString::withAddedPoints()Polygon::withExteriorRing(),withInteriorRings(),withAddedInteriorRings()PolyhedralSurface::withAddedPatches()
0.11.2
0.11.1
0.11.0
0.10.0
💥 Breaking changes
- Minimum PHP version is now
8.1 - interface
GeometryEnginehas a new method:makeValid() AbstractWKBWriter::setByteOrder()now accepts aWKBByteOrderenum instead of aWKBTools::*_ENDIANconstant- constants
WKBTools::BIG_ENDIANandWKBTools::LITTLE_ENDIANhave been removed - method
WKBTools::checkByteOrder()has been removed
✨ New features
- New engine method:
GeometryEngine::makeValid()