2017 © Pedro Peláez
 

library geo-distance

Calculate the distance between coordinates.

image

zero-config/geo-distance

Calculate the distance between coordinates.

  • Tuesday, December 19, 2017
  • by johmanx10
  • Repository
  • 0 Watchers
  • 1 Stars
  • 6 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 100 % Grown

The README.md

Introduction

Calculate the distance between coordinates., (*1)

Build Status Scrutinizer Code Quality Code Coverage SensioLabsInsight, (*2)

This package uses the UnitAngle and UnitLength classes from nmarfurt/measurements. Further, resulting measurements, like distance, are represented by a Measurement. To make full use of this library, it is recommended to familiarize oneself with that package first., (*3)

Installation

composer require zero-config/geo-distance

Procedural approach

To use the data models for coordinates and distance calculation in a procedural manner, try the following:, (*4)

<?php
use function ZeroConfig\GeoDistance\coordinates;
use function ZeroConfig\GeoDistance\distance;

// Returns a distance of approximately 361 kilometers.
// The distance function uses the distance calculator under the hood.
// It assumes earth as base sphere for calculations.
echo distance(
    coordinates(50.0, 5.0),
    coordinates(53.0, 3.0)
) . PHP_EOL;

coordinates

The coordinates function accepts:, (*5)

  • float $latitude
  • float $longitude

Both are a number representing an angle in degrees., (*6)

It returns an instance of:, (*7)

ZeroConfig\GeoDistance\PositionInterface, (*8)

<?php
use function ZeroConfig\GeoDistance\coordinates;

// This outputs: 50.6 °
echo coordinates(50.6, 5.0)->getLatitude() . PHP_EOL;

distance

The distance function accepts:, (*9)

  • ZeroConfig\GeoDistance\PositionInterface $start
  • ZeroConfig\GeoDistance\PositionInterface $end

Both are positions on a sphere., (*10)

It returns an instance of:, (*11)

Measurements\Measurement, (*12)

<?php
use function ZeroConfig\GeoDistance\coordinates;
use function ZeroConfig\GeoDistance\distance;
use Measurements\Units\UnitLength;

// Outputs: 36113.471850273 dam
echo distance(
    coordinates(50.0, 5.0),
    coordinates(53.0, 3.0)
)->convertTo(UnitLength::decameters()) . PHP_EOL;

Object oriented approach

The following data models exist:, (*13)

  • Position, combined latitude and longitude
  • Sphere, the object on which coordinates are plotted when calculating distance
<?php
use ZeroConfig\GeoDistance\ConvertedDistanceCalculator;
use ZeroConfig\GeoDistance\DistanceCalculator;
use ZeroConfig\GeoDistance\Position;
use ZeroConfig\GeoDistance\Sphere\CelestialBody\Mars;
use Measurements\Units\UnitLength;

$marsDistanceCalculator = new ConvertedDistanceCalculator(
    new DistanceCalculator(new Mars()),
    UnitLength::kilometers()
);

// On Mars, the same coordinates as on earth, give a distance of only 192 kilometers.
echo $marsDistanceCalculator->calculate(
    Position::create(50.0, 5.0),
    Position::create(53.0, 3.0)
) . PHP_EOL;

The Versions

19/12 2017

dev-master

9999999-dev

Calculate the distance between coordinates.

  Sources   Download

Apache-2.0

The Requires

 

The Development Requires

distance latitude longitude geo earth mars

26/05 2017

1.0.1

1.0.1.0

Calculate the distance between coordinates.

  Sources   Download

Apache-2.0

The Requires

 

The Development Requires

distance latitude longitude geo earth mars

25/05 2017

1.0.0

1.0.0.0

Calculate the distance between coordinates.

  Sources   Download

Apache-2.0

The Requires

 

The Development Requires

distance latitude longitude geo earth mars