You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

81 lines
2.4 KiB
Markdown

GeoLocation
===========
Retrieve bounding coordinates and distances with GeoLocation.
This is a PHP port of Java code that was originally published at
<a href="http://JanMatuschek.de/LatitudeLongitudeBoundingCoordinates">
http://JanMatuschek.de/LatitudeLongitudeBoundingCoordinates</a>. A few modifications were made and an additional helper method to retrieve latitude and longitude from an address has been provided using Google's Geocoding API. <br />
License:
http://creativecommons.org/licenses/by/3.0/
Examples
========
Get distance between two points:
--------------------------------------------------------
<pre>
<code>
use AnthonyMartin\GeoLocation\GeoLocation as GeoLocation;
// Set locations
$edison_nj = GeoLocation::fromDegrees(40.5187154, -74.4120953);
$brooklyn_ny = GeoLocation::fromDegrees(40.65, -73.95);
echo "Distance from Edison, NJ to Brookyln, NY: " .
$edison_nj->distanceTo($brooklyn_ny, 'miles') . " miles \n";
# Distance from Edison, NJ to Brookyln, NY: 25.888611494606 miles
echo "Distance from Edison, NJ to Brooklyn, NY: " .
$edison_nj->distanceTo($brooklyn_ny, 'kilometers') . " kilometers \n";
# Distance from Edison, NJ to Brooklyn, NY: 41.663681581973 kilometers
</code>
</pre>
Get bounding coordinates
--------------------------------------------------------
<pre>
<code>
use AnthonyMartin\GeoLocation\GeoLocation as GeoLocation;
$edison = GeoLocation::fromDegrees(40.5187154, -74.4120953);
$coordinates = $edison->boundingCoordinates(3, 'miles');
echo "min latitude: " . $coordinates[0]->getLatitudeInDegrees() . " \n";
echo "min longitude: " . $coordinates[0]->getLongitudeInDegrees() . " \n";
echo "max latitude: " . $coordinates[1]->getLatitudeInDegrees() . " \n";
echo "max longitude: " . $coordinates[1]->getLongitudeInDegrees() . " \n";
/**
* Returns:
* min latitude: 40.47529593323
* min longitude: -74.469211617725
* max latitude: 40.56213486677
* max longitude: -74.354978982275
**/
</code>
</pre>
Get latitude and longitude from address or location
--------------------------------------------------------
<pre>
<code>
use AnthonyMartin\GeoLocation\GeoLocation as GeoLocation;
$location = 'New York City';
$response = GeoLocation::getGeocodeFromGoogle($location);
$latitude = $response->results[0]->geometry->location->lat;
$longitude = $response->results[0]->geometry->location->lng;
echo $latitude . ', ' . $longitude;
# 40.7143528, -74.0059731
</code>
</pre>