36 lines
1.0 KiB
PHP
36 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Services\PlacesService;
|
|
use Illuminate\Http\JsonResponse;
|
|
use Illuminate\Http\Request;
|
|
|
|
/**
|
|
* Fallback-Endpoint wenn Overpass tot ist - Google Places liefert dann
|
|
* vergleichbare POIs (mit Bewertung, dafür weniger).
|
|
*/
|
|
class FoxPlacesController
|
|
{
|
|
public function __invoke(Request $request, PlacesService $places): JsonResponse
|
|
{
|
|
$request->validate([
|
|
'category' => 'required|string|max:40',
|
|
'lat' => 'required|numeric',
|
|
'lng' => 'required|numeric',
|
|
'radius' => 'sometimes|integer|min:100|max:50000',
|
|
'cuisine' => 'nullable|string|max:40',
|
|
]);
|
|
|
|
$pois = $places->nearby(
|
|
$request->string('category')->toString(),
|
|
(float) $request->input('lat'),
|
|
(float) $request->input('lng'),
|
|
(int) $request->input('radius', 2000),
|
|
$request->input('cuisine'),
|
|
);
|
|
|
|
return response()->json(['pois' => $pois, 'source' => 'google_places']);
|
|
}
|
|
}
|