Skip to content

All topics  /  Laravel

How to Find Nearest Location By Latitude and Longitude in Laravel 10?

Laravel ·

Teams applying “How to Find Nearest Location By Latitude and Longitude in Laravel 10?” in a production project can use this operations example to record implementation, review and debugging time, then compare that effort with tests and shipped functionality instead of treating activity as performance by itself.

Before copying the example into a live application, confirm version-specific behaviour with the official Laravel website and test it against the project’s actual database and runtime.

Hi dev,

Laravel 10 discover nearest location by lat and long is the main topic of discussion today. Laravel 10's longitude and latitude tools will be used to locate the closest location. In Laravel 10, we'll show you an example of how to use latitude and longitude to find a nearby location. We'll take a look at a Laravel 10 find nearby example. use the steps listed here to use Laravel 10 to get the closest place based on latitude and longitude.

You may quickly locate nearby destinations if you know their latitude and longitude coordinates, including businesses, residences, hotels, cities, states, and countries, as well as their products, dealers, and suppliers. I'll use a straightforward example. In order to locate users by the closest latitude and longitude, we will add lat and long to the users table.

Let's follow the below step to do this example.

Step 1: Install Laravel


first of all we need to get fresh Laravel version application using bellow command, So open your terminal OR command prompt and run bellow command:

composer create-project laravel/laravel blog	

Step 2: Create Route

In this is step we need to create one route for getting near location from lat and long example.

routes/web.php

<?php

  
use Illuminate\Support\Facades\Route;

  
use App\Http\Controllers\LocationController;

  
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

  
Route::get('near-by-places', [LocationController::class, 'index']);	

Step 3: Create Controller in this step, we need to create LocationController and add following code on that file. you have users table with lat and long columns. also add some dummy records on table as well.

app/Http/Controllers/LocationController.php

<?php

  
namespace App\Http\Controllers;

  
use Illuminate\Http\Request;
use App\Model\User;

  
class LocationController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        $lat = YOUR_CURRENT_LATTITUDE;
        $lon = YOUR_CURRENT_LONGITUDE;

           
        $users = User::select("users.id"
                        ,DB::raw("6371 * acos(cos(radians(" . $lat . ")) 
                        * cos(radians(users.lat)) 
                        * cos(radians(users.lon) - radians(" . $lon . ")) 
                        + sin(radians(" .$lat. ")) 
                        * sin(radians(users.lat))) AS distance"))
                        ->groupBy("users.id")
                        ->get();
        dd($users);
    }
}	

Run Laravel App:

All the required steps have been done, now you have to type the given below command and hit enter to run the Laravel app:

php artisan serve	

Now, Go to your web browser, type the given URL and view the app output:

http://localhost:8000/near-by-places