The recommended way to use this library is via Composer.
To add this package as a local, per-project dependency to your project, simply add a dependency on
data-values/geo to your project's
composer.json file. Here is a minimal example of a
composer.json file that just defines a dependency on version 1.0 of this package:
Get the code of this package, either via git, or some other means. Also get all dependencies. You can find a list of the dependencies in the "require" section of the composer.json file. Then take care of autoloading the classes defined in the src directory.
These are simple value objects. They all implement the DataValues\DataValue interface.
- LatLongValue - Object representing a geographic point specified by latitude and longitude.
- GlobeCoordinateValue - Geographical coordinate with precision and globe.
These turn value objects into string representations. They all implement the ValueFormatters\ValueFormatter interface.
- GeoCoordinateFormatter - Formats a LatLongValue into float, decimal minute, decimal degree or degree minute second notation. Both directional and non-directional notation are supported. Directional labels, latitude-longitude separator and precision can be specified.
- GlobeCoordinateFormatter - Formats a GlobeCoordinateValue.
These turn string representations into value objects. They all implement the ValueParsers\ValueParser interface.
- DdCoordinateParser - Parses decimal degree coordinates into LatLongValue objects.
- DmCoordinateParser - Parses decimal minute coordinates into LatLongValue objects.
- DmsCoordinateParser - Parses degree minute second coordinates into LatLongValue objects.
- FloatCoordinateParser - Parses float coordinates into LatLongValue objects.
- GeoCoordinateParser - Facade for DdCoordinateParser, DmCoordinateParser, DmsCoordinateParser and FloatCoordinateParser. Parses a coordinate in any of the notations supported by these parsers into a LatLongValue object. Both directional and non-directional notation are supported. Directional labels and the latitude-longitude separator can be specified.
- GlobeCoordinateParser - Parses coordinates into GlobeCoordinateValue objects.
This library comes with a set up PHPUnit tests that cover all non-trivial code. You can run these tests using the PHPUnit configuration file found in the root directory. The tests can also be run via TravisCI, as a TravisCI configuration file is also provided in the root directory.
DataValues Geo has been written by the Wikidata team, as [Wikimedia Germany] (https://wikimedia.de) employees for the Wikidata project.
It is based upon and contains a lot of code written by [Jeroen De Dauw] (https://github.com/JeroenDeDauw) for the Maps and Semantic MediaWiki projects.
- Added support for direction notation to GeoCoordinateFormatter
- Decreased complexity of GeoCoordinateFormatter
- Decreased complexity and coupling of GeoCoordinateFormatterTest
Initial release with these features: