jackpopp/geodistance

Search for locations within a radius using latitude and longitude values with your eloquent models.

Maintainers

👁 jackpopp

Package info

github.com/jackpopp/geodistance

pkg:composer/jackpopp/geodistance

Statistics

Installs: 123 376

Dependents: 13

Suggesters: 0

Stars: 125

Open Issues: 4

1.2.3 2015-07-07 10:58 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT cc8d47911e135528898676060d5235571186b946

  • Jack Hannigan Popp <jack.woop@jackpopp.com>

searchdistancemileskilometerslatitudelongituderadiussearching

This package is not auto-updated.

Last update: 2026-06-24 16:02:36 UTC


README

GeoDistance allows you to search for locations within a radius using latitude and longitude values with your eloquent models.

###Setup

Add geodistance to your composer file.

"jackpopp/geodistance": "dev-master"

Add the geodistance trait to your eloquent model and lat/lng columns to your table.

<?php namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Jackpopp\GeoDistance\GeoDistanceTrait;

class Location extends Model {

 use GeoDistanceTrait;

 protected $fillable = ['name', 'lat', 'lng'];
 
}

You can now search for locations within a distance, using miles or kilometers:

$lat = 51.4833;
$lng = 3.1833;

$locations = Location::within(5, 'miles', $lat, $lng)->get();

$locations = Location::within(5, 'kilometers', $lat, $lng)->get();

// or 

$location = new Location();
$locations = $location->lat($lat)->lng($lng)->within(5, 'miles')->get();

You can also search for locations outside a certain distance:

$lat = 51.4833;
$lng = 3.1833;

$locations = Location::outside(100, 'miles', $lat, $lng)->get();

$locations = Location::outside(100, 'kilometers', $lat, $lng)->get();

// or 

$location = new Location();
$locations = $location->lat($lat)->lng($lng)->outside(100, 'miles')->get();

Distances Available

Miles (miles/m) Kilometers (kilometers/km) Nautical Miles (nautical_miles) Feet (feet)

If you wish to add addtional measurements, please create a new issue.

Credit to movable-type.co.uk for information on selecting points withing a bounding circle - http://www.movable-type.co.uk/scripts/latlong-db.html