# #Distance and Length

## #Distance Between Two Points (Vincenty’s Formula)

Use the calculator object directly:

``````<?php

use Location\Coordinate;
use Location\Distance\Vincenty;

\$coordinate1 = new Coordinate(19.820664, -155.468066); // Mauna Kea Summit
\$coordinate2 = new Coordinate(20.709722, -156.253333); // Haleakala Summit

\$calculator = new Vincenty();

echo \$calculator->getDistance(\$coordinate1, \$coordinate2);
``````

The code above will produce the output below:

``````128130.850
``````

or call the `getDistance()` method of a `Coordinate` instance by injecting a calculator instance:

``````<?php

use Location\Coordinate;
use Location\Distance\Vincenty;

\$coordinate1 = new Coordinate(19.820664, -155.468066); // Mauna Kea Summit
\$coordinate2 = new Coordinate(20.709722, -156.253333); // Haleakala Summit

echo \$coordinate1->getDistance(\$coordinate2, new Vincenty());
``````

The code above will produce the output below:

``````128130.850
``````

## #Distance Between Two Points (Haversine Formula)

There exist different methods for calculating the distance between two points. The Haversine formula is much faster than Vincenty’s method but less precise:

``````<?php

use Location\Coordinate;
use Location\Distance\Haversine;

\$coordinate1 = new Coordinate(19.820664, -155.468066); // Mauna Kea Summit
\$coordinate2 = new Coordinate(20.709722, -156.253333); // Haleakala Summit

echo \$coordinate1->getDistance(\$coordinate2, new Haversine());
``````

The code above will produce the output below:

``````128384.515
``````

## #Length of a Polyline

phpgeo has a polyline implementation which can be used to calculate the length of a GPS track or a route. A polyline consists of at least two points. Points are instances of the `Coordinate` class.

For more details about polylines/GPS tracks see the `Polyline` section.

``````<?php

use Location\Coordinate;
use Location\Polyline;
use Location\Distance\Vincenty;

\$track = new Polyline();

echo \$track->getLength(new Vincenty());
``````

## #Perimeter of a Polygon

The perimeter is calculated as the sum of the length of all segments. The result is given in meters.

``````<?php

use Location\Distance\Vincenty;
use Location\Coordinate;
use Location\Polygon;

\$polygon = new Polygon();
``````4355689.472