Jeroendesloovere Distance Save

This Distance PHP class can calculate the distance between two latitude/longitude locations using Math functions in PHP. No external API's are called.

Project README

Distance class

Latest Stable Version License Build Status

Get distance between two locations using PHP. The distance is getting calculated based on latitude and logitude variables and without using any other external class.

Usage

Installing using Composer

When using Composer you can always load in the latest version.

{
    "require": {
        "jeroendesloovere/distance": "1.0.*"
    }
}

Check in Packagist.

Example

Setting our example data

use JeroenDesloovere\Distance\Distance;

// first location
$latitude1 = '50.8538510000';
$longitude1 = '3.3550450000';

// second location
$latitude2 = '50.8325600000';
$longitude2 = '3.4787650000';

Get distance between two locations

$distance = Distance::between(
    $latitude1,
    $longitude1,
    $latitude2,
    $longitude2
);

// dump data
echo 'Distance between the two locations = ' . $distance . ' km';

Get closest distance from location 1 to one of the two locations (2 and 3)

// third location
$latitude3 = '50.8865040000';
$longitude3 = '3.4320850000';

// define multiple items
$items = array(
    array(
        'title' => 'location 2',
        'latitude' => $latitude2,
        'longitude' => $longitude2
    ),
    array(
        'title' => 'location 3',
        'latitude' => $latitude3,
        'longitude' => $longitude3
    )
);

$distance = Distance::getClosest(
    $latitude1,
    $longitude1,
    $items
);

// dump data
echo 'The closest location to location 1 is ' . $distance['title'] . ' and the distance between them is ' . $distance['distance'] . ' km';

Documentation

The class is well documented inline. If you use a decent IDE you'll see that each method is documented with PHPDoc.

Contributing

It would be great if you could help us improve this class. GitHub does a great job in managing collaboration by providing different tools, the only thing you need is a GitHub login.

  • Use Pull requests to add or update code
  • Issues for bug reporting or code discussions
  • Or regarding documentation and how-to's, check out Wiki More info on how to work with GitHub on help.github.com.

License

The module is licensed under MIT. In short, this license allows you to do everything as long as the copyright statement stays present.

Open Source Agenda is not affiliated with "Jeroendesloovere Distance" Project. README Source: jeroendesloovere/distance
Stars
35
Open Issues
0
Last Commit
1 year ago
License
MIT

Open Source Agenda Badge

Open Source Agenda Rating