This library offers a collection of various PHP coordinate classes like Coordinate, etc. It converts various coordinate strings and values into a unique format.
use Ixnode\PhpCoordinate\Coordinate;
$coordinate = new Coordinate(51.0504, 13.7373);
print $coordinate->getLatitudeDMS();
// (string) 51°3′1.44″N
print $coordinate->getLongitudeDMS();
// (string) 13°44′14.28″E
$coordinate = new Coordinate('51°3′1.44″N 13°44′14.28″E');
print $coordinate->getLatitude();
// (float) 51.0504
print $coordinate->getLongitude();
// (float) 13.7373
$coordinateDresden = new Coordinate('51°3′1.44″N 13°44′14.28″E');
$coordinateCordoba = new Coordinate(-31.425299, -64.201743);
/* Distance between Dresden, Germany and Córdoba, Argentina */
print $coordinate->getDistance($coordinateCordoba, Coordinate::RETURN_KILOMETERS);
// (float) 11904.668
$coordinateDresden = new Coordinate('51°3′1.44″N 13°44′14.28″E');
$coordinateCordoba = new Coordinate(-31.425299, -64.201743);
/* Direction in degrees from Dresden, Germany to Córdoba, Argentina */
print $coordinateDresden->getDegree($coordinateCordoba);
// (float) -136.62°
$coordinateDresden = new Coordinate('51°3′1.44″N 13°44′14.28″E');
$coordinateCordoba = new Coordinate(-31.425299, -64.201743);
/* Direction in degrees from Dresden, Germany to Córdoba, Argentina */
print $coordinateDresden->getDirection($coordinateCordoba);
// (string) SW
Given value (string) | Latitude (float) | Longitude (float) | Place |
---|---|---|---|
"51.0504,13.7373" |
51.0504 | 13.7373 | Dresden, Germany |
"51.0504, 13.7373" |
51.0504 | 13.7373 | Dresden, Germany |
"51.0504 13.7373" |
51.0504 | 13.7373 | Dresden, Germany |
"POINT(-31.425299, -64.201743)" |
-31.425299 | -64.201743 | Córdoba, Argentina |
"POINT(-31.425299 -64.201743)" |
-31.425299 | -64.201743 | Córdoba, Argentina |
$coordinate = new Coordinate('51.0504 13.7373');
print $coordinate->getLatitude();
// (float) 51.0504
print $coordinate->getLongitude();
// (float) 13.7373
Given value (string) | Latitude (float) | Longitude (float) | Place |
---|---|---|---|
"51°3′1.44″N,13°44′14.28″E" |
51.0504 | 13.7373 | Dresden, Germany |
"51°3′1.44″N, 13°44′14.28″E" |
51.0504 | 13.7373 | Dresden, Germany |
"51°3′1.44″N 13°44′14.28″E" |
51.0504 | 13.7373 | Dresden, Germany |
"POINT(31°25′31.0764″S, 64°12′6.2748″W)" |
-31.425299 | -64.201743 | Córdoba, Argentina |
"POINT(31°25′31.0764″S 64°12′6.2748″W)" |
-31.425299 | -64.201743 | Córdoba, Argentina |
$coordinate = new Coordinate('51°3′1.44″N 13°44′14.28″E');
print $coordinate->getLatitude();
// (float) 51.0504
print $coordinate->getLongitude();
// (float) 13.7373
Given value (string) | Latitude (float) | Longitude (float) | Place |
---|---|---|---|
Copied Google Maps Short Url1) |
54.07304830 | 18.992402 | Malbork, Poland |
Copied Google Maps Link2) |
51.31237 | 12.4132924 | Leipzig, Germany |
$coordinate = new Coordinate('https://maps.app.goo.gl/PHq5axBaDdgRWj4T6');
print $coordinate->getLatitude();
// (float) 54.07304830
print $coordinate->getLongitude();
// (float) 18.992402
Method | Type | Parameter(s) | Description | Example |
---|---|---|---|---|
getLatitude |
float | --- | Returns the decimal degree presentation of latitude value. | -31.425299 |
getLongitude |
float | --- | Returns the decimal degree presentation of longitude value. | -64.201743 |
getLatitudeDD |
float | --- | Alias of getLatitude . |
-31.425299 |
getLongitudeDD |
float | --- | Alias of getLongitude . |
-64.201743 |
getLatitudeDMS |
string | --- | Returns the dms representation of the latitude value. | "31°25′31.0764″S" |
getLongitudeDMS |
string | --- | Returns the dms representation of the longitude value. | "64°12′6.2748″W" |
getLatitudeDMS |
string | CoordinateValue::FORMAT_DMS_SHORT_2 |
Returns the dms representation of the latitude value (v2). | "S31°25′31.0764″" |
getLongitudeDMS |
string | CoordinateValue::FORMAT_DMS_SHORT_2 |
Returns the dms representation of the longitude value (v2). | "W64°12′6.2748″" |
getDistance |
float | new Coordinate() , meters (default) or kilometers |
Returns the distance to given second Coordinate instance. | 11904.668 |
getDegree |
float | new Coordinate() |
Returns the direction (degree) to given second Coordinate instance (0° - North, 90° - East, etc.). | -136.62 |
getDirection |
string | new Coordinate() |
Returns the cardinal direction to given second Coordinate instance (N , NE , E , SE , S , SW , W , NW ). |
"SW" |
getLinkGoogle |
string | false (default - as decimal) or true (as DMS) |
Returns the link to Google. | |
getLinkOpenStreetMap |
string | --- | Returns the link to OpenStreetMap. | OpenStreetMap |
$coordinate = new Coordinate('-31.425299, -64.201743');
print $coordinate->getLatitudeDMS();
// (string) "31°25′31.0764″S"
print $coordinate->getLongitudeDMS();
// (string) "64°12′6.2748″W"
composer require ixnode/php-coordinate
vendor/bin/php-coordinate -V
php-coordinate 0.1.0 (03-07-2023 01:17:26) - Björn Hempel <bjoern@hempel.li>
Used to quickly check two given coordinates.
Check Dresden, Germany and New York, United States:
bin/console pc "51°3′1.44″N, 13°44′14.28″E" "40.712784, -74.005941"
or within your composer project:
vendor/bin/php-coordinate pc "51°3′1.44″N, 13°44′14.28″E" "40.712784, -74.005941"
Source coordinate (51°3′1.44″N, 13°44′14.28″E):
+---------+------------------+--------------------+
| Value | Latitude | Longitude |
+---------+------------------+--------------------+
| Decimal | 51.0504 | 13.7373 |
| DMS | 51°3′1.44″N | 13°44′14.28″E |
+---------+------------------+--------------------+
Target coordinate (40.712784, -74.005941):
+---------+----------------------+---------------------+
| Value | Latitude | Longitude |
+---------+----------------------+---------------------+
| Decimal | 40.712784 | -74.005941 |
| DMS | 40°42′46.0224″N | 74°0′21.3876″W |
+---------+----------------------+---------------------+
Distance:
+-----------+-------------+
| Key | Value |
+-----------+-------------+
| Distance | 6478.472 km |
| Degree | -96.720° |
| Direction | W |
+-----------+-------------+
+--------------------------------------------------------------------------------+
| World map |
+--------------------------------------------------------------------------------+
| |
| ▄▄▄▄▀▄▄▄▄▄▄▄▄▄▄ |
| ▄▄ ▄▄▄▄▄▄▄▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▄▄▄▄▀▀▀▀▀▄▄▄▄▄▄▄▄▄▄ |
| ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ |
| ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀ ▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ |
| ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▄▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄ ▀▀ |
| ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ |
| ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▄ |
| ▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▄▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ |
| ▀▀▀▀▀▀▄▄ ▀ ▄▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ |
| ▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀▀▀ |
| ▀▀▀▄▄▀▀▄▄▄ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀ ▀▀▀▀ |
| ▀▀▀▀▀▀▀▀▀▄ ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▄ ▄▀▀ |
| ▀▀▀▀▀▀▀▀▀▀▀▄▄▄ ▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀ ▀▄▄▄▄ |
| ▀▀▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀ ▀ ▀▀▀▀▄|
| ▀▀▀▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀▀▄▀▀ ▄▀▀▀▀▀▀ |
| ▀▀▀▀▀▀▀▀▀ ▀▀▀▀▀▀▀▀ ▀▀ ▀▀▀▀▀▀▀▀▀▀▀ |
| ▀▀▀▀▀▀▀ ▀▀▀▀▀▀ ▀ ▀▀▀▀▀▀▀▀▀▀▀ |
| ▀▀▀▀▀▀ ▀▀▀ ▀▀▀▀▀▀▀▀▀▀▀ |
| ▀▀▀▀ ▀ |
| ▀▀▀ |
+--------------------------------------------------------------------------------+
+------------------------------------+ +---------------------------------------+
| Cardinal direction | | Longitude / Langitude |
+------------------------------------| +---------------------------------------|
| | | lat |
| 0° | | |
| | | 90° ⯅ |
| ___ | | | |
| -45° ─── 45° | | | |
| // N \\ | | | • Oslo (59.91°, 10.75°) |
| NW NE | | | • London (51.51°, -0.13°) |
| | | | • New York (40.71°, -74.01°) |
| -90° || W --+-- E || 90° | | | |
| | | | | |
| SW SE | | | |
| \\ S // | | | • Null Island (0°, 0°) |
| -135° ─── 135° | | ⯇-------+-------------------⯈ lon |
| ‾‾‾ | | -180° | 180° |
| | | | |
| 180° | | | • Cape Agulhas |
| | | -90° ⯆ (-34.82°, 20.02°) |
+------------------------------------+ +---------------------------------------+
git clone git@github.com:ixnode/php-coordinate.git && cd php-coordinate
composer install
composer test
This library is licensed under the MIT License - see the LICENSE file for details.