Changelog
Unreleased
5.6.0 - 2023-09-30
Changed
Updates to data for Australia, Austria, Canada, Germany, Italy, Netherlands, Portugal, South Korea, UK and USA
5.5.0 - 2023-07-07
Added
Support for Lambert Cylindrical Equal Area (Spherical) projection
Changed
Infer a current epoch when doing time-dependant transforms and no explicit epoch is supplied
Updates to data for Polar regions, Algeria and Spain
Deprecated
The namespace of all
*Pointclasses have been tidied up and changed to fromPHPCoordtoPHPCoord\Pointe.g.PHPCoord\GeographicPointis nowPHPCoord\Point\GeographicPoint. An alias has been provided, all existing code referencing the old names will continue to work
5.4.0 - 2023-05-27
Added
Added
getSupportedSRIDsWithHelp()as a version ofgetSupportedSRIDs()that returns at runtime the inline help available within the source code
Changed
Updates to data for Algeria, Bosnia and Herzegovina, Denmark, Germany, Latvia and USA
5.3.1 - 2023-02-20
Changed
Further enhancements to coordinate conversion from a
CompoundPoint
5.3.0 - 2023-02-19
Added
Support for converting coordinates from a
CompoundPointwhere the horizontal component isProjectedto a 3D CRS
Changed
Updates to data for ETRS89, Colombia, Slovenia, USA and UK
Fixed
Don’t use 2D CRS as intermediate in a chain when converting from/to a 3D CRS
5.2.0 - 2023-01-08
Changed
Updates to data for IGS, Japan and UK
Fixed
Improved handling of extent polygon buffering involving complex shapes (e.g. Netherlands)
Fixed longitude wraparound issue with GTX grids
5.1.0 - 2022-11-10
Added
Support for 3D projected coordinates
Support for custom coordinate reference systems and custom conversions
Changed
Updates to data for ITRF, WGS84, Australia, Belgium, Canada, France, Germany, Iceland, Indonesia, Ireland, Japan, Luxembourg, Norway, North Macedonia, UK and USA
Some internal simplifications and optimisations
Fixed
Improved handling of longitudes greater than 180 degrees
Corrected conversion of geocentric coordinates to geographic coordinates when using a non-Greenwich prime meridian
5.0.1 - 2022-01-29
Fixed
Guard against divide by zero issues when calculating distance between two points
5.0.0 - 2021-11-12
Added
Support for IGN France geocentric translation by grid interpolation. This requires the Europe datapack
Support for vertical grid files. These require a relevant datapack
Changed
The signatures of all
*Point::create*()methods have been changed to put the CRS first. Previously the distance/direction values came first. This is to ensure that all optional parameters are at the end of the signature, addressing a PHP8.1 deprecation.Example:
// in v4 GeographicPoint::create( Angle $latitude, Angle $longitude, ?Length $height = null, Geographic $crs, // was after distance/direction ?DateTimeInterface $epoch = null ): GeographicPoint // in v5 GeographicPoint::create( Geographic $crs, // now goes first Angle $latitude, Angle $longitude, ?Length $height = null, ?DateTimeInterface $epoch = null ): GeographicPointUpdates to data for Canada, Norway, UK
Some internal simplifications and optimisations
Supported PHP versions changed to
^8.0
4.7.0 - 2022-06-26
The v4.x series is receiving basic maintenance only. All feature development takes place in v5.x. This is because one of PHP8.1’s new deprecations required a significant non-backwards compatible change to address.
Added
Support for defining 3D projected coordinates
Fixed
Improved handling of longitudes greater than 180 degrees
Corrected conversion of geocentric coordinates to geographic coordinates when using a non-Greenwich prime meridian
Changed
Updates to data for ITRF, WGS84, Australia, Belgium, Canada, France, Germany, Iceland, Ireland, Japan, Luxembourg, Norway, North Macedonia, UK and USA
4.6.1 - 2022-01-29
Fixed
Guard against divide by zero issues when calculating distance between two points
4.6.0 - 2021-10-22
Changed
Updates to data for Papua New Guinea, Ukraine and WGS84
Some internal simplifications and optimisations
Fixed
Corrected the decoding of sexagesimal DMS degree fractional components
4.5.0 - 2021-09-25
Changed
Updates to data for Canada, Costa Rica, France, French Southern Territories, Kyrgistan, Liechtenstein, Poland, Russia, Switzerland, Tonga, UK, USA, Wallis and Futuna
Many internal simplifications and optimisations, leading to faster conversions and a corresponding update of the maximum chain depth from 5 to 7
Fixed
Some PHP8.1 deprecations
Deprecated
Compound::EPSG_RGF93_LAMBERT_93_PLUS_NGF_IGN69_HEIGHT, useCompound::EPSG_RGF93_V1_LAMBERT_93_PLUS_NGF_IGN69_HEIGHTinsteadCompound::EPSG_RGF93_LAMBERT_93_PLUS_NGF_IGN78_HEIGHT, useCompound::EPSG_RGF93_V1_LAMBERT_93_PLUS_NGF_IGN78_HEIGHTinsteadCompound::EPSG_RGF93_PLUS_NGF_IGN69_HEIGHT, useCompound::EPSG_RGF93_V2_PLUS_NGF_IGN69_HEIGHTinsteadCompound::EPSG_RGF93_PLUS_NGF_IGN78_HEIGHT, useCompound::EPSG_RGF93_V2_PLUS_NGF_IGN78_HEIGHTinsteadGeocentric::EPSG_CHTRF95, useGeocentric::EPSG_CHTRS95insteadGeocentric::EPSG_RGF93, useGeocentric::EPSG_RGF93_V1insteadGeographic2D::EPSG_CHTRF95, useGeographic2D::EPSG_CHTRS95insteadGeographic2D::EPSG_RGF93, useGeographic2D::EPSG_RGF93_V1insteadGeographic2D::EPSG_RGF93_LON_LAT, useGeographic2D::EPSG_RGF93_V1_LON_LATinsteadGeographic3D::EPSG_CHTRF95, useGeographic3D::EPSG_CHTRS95insteadGeographic3D::EPSG_RGF93, useGeographic3D::EPSG_RGF93_V1insteadGeographic3D::EPSG_RGF93_LON_LAT, useGeographic3D::EPSG_RGF93_V1_LON_LATinsteadProjected::EPSG_RGF93_CC42, useProjected::EPSG_RGF93_V1_CC42insteadProjected::EPSG_RGF93_CC43, useProjected::EPSG_RGF93_V1_CC43insteadProjected::EPSG_RGF93_CC44, useProjected::EPSG_RGF93_V1_CC44insteadProjected::EPSG_RGF93_CC45, useProjected::EPSG_RGF93_V1_CC45insteadProjected::EPSG_RGF93_CC46, useProjected::EPSG_RGF93_V1_CC46insteadProjected::EPSG_RGF93_CC47, useProjected::EPSG_RGF93_V1_CC47insteadProjected::EPSG_RGF93_CC48, useProjected::EPSG_RGF93_V1_CC48insteadProjected::EPSG_RGF93_CC49, useProjected::EPSG_RGF93_V1_CC49insteadProjected::EPSG_RGF93_CC50, useProjected::EPSG_RGF93_V1_CC50insteadProjected::EPSG_RGF93_LAMBERT_93, useProjected::EPSG_RGF93_V1_LAMBERT_93insteadDatum::EPSG_SWISS_TERRESTRIAL_REFERENCE_FRAME_1995, useDatum::EPSG_SWISS_TERRESTRIAL_REFERENCE_SYSTEM_1995insteadDatum::EPSG_RESEAU_GEODESIQUE_FRANCAIS_1993, useDatum::EPSG_RESEAU_GEODESIQUE_FRANCAIS_1993_V1instead
4.4.0 - 2021-06-24
Added
Support for NTv2, OSTN15/OSGM15 and NADCON5 grid files. These require a relevant datapack
Changed
Updates to data for Argentina, Belgium, Canada, Costa Rica, Czechia, Greenland, Italy, Russia, UK and USA
Performance optimisations
Supported PHP versions changed to
^7.4||^8.0
Deprecated
Compound::EPSG_BELGE_1972_BELGIAN_LAMBERT_72_PLUS_OSTEND_HEIGHT, useCompound::EPSG_BD72_BELGIAN_LAMBERT_72_PLUS_OSTEND_HEIGHTinsteadGeographic2D::EPSG_BELGE_1950, useGeographic2D::EPSG_BD50insteadGeographic2D::EPSG_BELGE_1950_BRUSSELS, useGeographic2D::EPSG_BD50_BRUSSELSinsteadGeographic2D::EPSG_BELGE_1972, useGeographic2D::EPSG_BD72insteadProjected::EPSG_BELGE_1950_BRUSSELS_BELGE_LAMBERT_50, useProjected::EPSG_BD50_BRUSSELS_BELGE_LAMBERT_50insteadProjected::EPSG_BELGE_1972_BELGE_LAMBERT_72, useProjected::EPSG_BD72_BELGE_LAMBERT_72insteadProjected::EPSG_BELGE_1972_BELGIAN_LAMBERT_72, useProjected::EPSG_BD72_BELGIAN_LAMBERT_72insteadVertical::EPSG_GENOA_HEIGHT, useVertical::EPSG_GENOA_1942_HEIGHTinsteadDatum::EPSG_GENOA, useDatum::EPSG_GENOA_1942instead
4.3.0 - 2021-04-24
Added
Datapacks. See docs for more info
Changed
Updates to data for Canada
4.2.0 - 2021-04-19
Added
More accurate extent data
Fixed
Ensure projections still work even when origin points are on the other side of the antimeridian
Changed
Updates to data for Australia, Poland, UK and US Gulf of Mexico
Deprecated
Compound::EPSG_OSGB_1936_BRITISH_NATIONAL_GRID_PLUS_ODN_HEIGHT, useCompound::EPSG_OSGB36_BRITISH_NATIONAL_GRID_PLUS_ODN_HEIGHTinsteadGeographic2D::EPSG_OSGB_1936, useGeographic2D::EPSG_OSGB36insteadProjected::EPSG_OSGB_1936_BRITISH_NATIONAL_GRID, useProjected::EPSG_OSGB36_BRITISH_NATIONAL_GRIDinsteadProjected::EPSG_ETRS89_POLAND_CS2000_ZONE_5, useProjected::EPSG_ETRF2000_PL_CS2000_15insteadProjected::EPSG_ETRS89_POLAND_CS2000_ZONE_6, useProjected::EPSG_ETRF2000_PL_CS2000_18insteadProjected::EPSG_ETRS89_POLAND_CS2000_ZONE_7, useProjected::EPSG_ETRF2000_PL_CS2000_21insteadProjected::EPSG_ETRS89_POLAND_CS2000_ZONE_8, useProjected::EPSG_ETRF2000_PL_CS2000_24insteadProjected::EPSG_ETRS89_POLAND_CS92, useProjected::EPSG_ETRF2000_PL_CS92insteadDatum::EPSG_OSGB_1936, useDatum::EPSG_ORDNANCE_SURVEY_OF_GREAT_BRITAIN_1936instead
4.1.0 - 2021-03-03
Added
Added
UTMPointas a better way of handling UTM zones than the EPSG model does itImproved conversion chaining for
CompoundPoints
Changed
Moved
verticalOffsetAndSlopemethod fromCompoundPointtoVerticalPoint. This is technically a breaking change, but since the code is only 2 days old shouldn’t affect anyone.
4.0.1 - 2021-03-01
Fixed
Documentation issues
4.0.0 - 2021-03-01
Added
Chaining of conversions
Documentation(!)
4.0.0beta1 - 2021-01-05
Added
6200+ new coordinate systems.
Changed
Project reimplemented from scratch. License changed from GPL to MIT.
3.1.2 - 2020-09-29
Changed
Supported PHP versions changed from
^7.1to^7.3||^8.0
3.1.1 - 2020-04-16
Fixed
Corrected an issue with transforming ITM references to WGS84
Corrected an issue with transforming Irish Grid references to WGS84
3.1.0 - 2019-07-21
Added
Added
OSRef::toGridReferenceWithSpacesto complementOSRef::toGridReference[thomasedwards]
3.0.0 - 2019-04-13
Added
Support for accepting 2, 4, 8 and 10 figure Ordnance Survey references (6 figure was already supported)
Changed
fromSixFigureReference
All value objects are now immutable - calling a conversion function on them now returns a new object rather than modifying the existing one
Minimum PHP version is now 7.1
Removed
HHVM support now that project has a stated goal of no longer targeting PHP7 compatibility
OSRef::fromSixFigureReference()has been removed, useOSRef::fromGridReference()insteadOSRef::to[Two/Four/Six/Eight/Ten]FigureReference()have been removed, useOSRef::toGridReference($length)instead
2.1 - 2016-09-20
Added
Added distance calculations for grid-based co-ordinate systems to complement the existing lat/long implementation
2.0.3 - 2016-05-29
Fixed
Fixed confusing docblock
2.0.2 - 2016-01-31
Fixed
Ensure consistency of units
2.0.1 - 2016-01-19
Added
Add support for 2, 4, 8 and 10 figure Ordnance Survey references (6 figure was already supported) [stevegoddard]
2.0 - 2016-01-03
Added
3D co-ordinates
Irish Grid and ITM support
Changed
Major refactoring, breaks compatibility with previous API (hopefully for the better!)
1.1.2 - 2015-12-31
Fixed
Corrected issue with Helmert transform where the resulting co-ordinate could be placed into the wrong quadrant
1.1.1 - 2014-11-19
Fixed
Corrected bug in original code where OS 6-figure grid references were sometimes off by 1
Changed
Updated Composer to use PSR-4
1.1 - 2013-08-01
Just cleanup
1.0.0 - 2013-02-13
Initial release of this fork (based off of v2.3 of original)
Fixed
When converting Latitude and Longitude between WGS84 and OSGB36 or vice-versa, a wrong constant for the y translation has been corrected (was off by 1 metre)
Changed
Eastings and northings are rounded to 1m, and lat/long to 5dp (approx 1m) to avoid any misconceptions that precision is the same thing as accuracy.
When calculating surface distances, a more accurate mean radius is now used rather than that derived from historical definitions of a nautical mile