При помощи
https://developers.google.com/places/supported_typ... получите список всех станций в нужном радиусе, сохраните это все в БД. Будут у вас станции о координаты.
Далее передаете адрес библиотеки и получите координаты, тоже соберите это все в БД.
https://maps.googleapis.com/maps/api/geocode/json?...
Далее передаете координаты метро и библиотеки вот этой функции и она вам вернет расстояние.
public function getDistance(float $latitudeFrom, float $longitudeFrom, float $latitudeTo, float $longitudeTo): int
{
$rad = M_PI / 180;
$theta = $longitudeFrom - $longitudeTo;
$dist = sin($latitudeFrom * $rad) * sin($latitudeTo * $rad) + cos($latitudeFrom * $rad) * cos($latitudeTo * $rad) * cos($theta * $rad);
return acos($dist) / $rad * 60 * 1.853;
}
Можно запариться и при помощи Google Matrix API просчитать сколько пешком топать и сколько на машине ехать.