インストール
composer require spatie/geocoder
取得関数
<?php
use GuzzleHttp\Client;
use Spatie\Geocoder\Geocoder;
function googleMapsUrlFromJapaneseAddress(string $address): ?string
{
$client = new Client();
$geocoder = new Geocoder($client);
// geocoder.php の設定に合わせて API キー・言語・国コードを指定
$geocoder->setApiKey(config('geocoder.key')); // Google Geocoding API キー。
$geocoder->setLanguage('ja'); // 日本語の結果を優先。
$geocoder->setCountry('JP'); // 日本国内を優先。
$result = $geocoder->getCoordinatesForAddress($address); // ['lat' => ..., 'lng' => ...] を返す。
if (!isset($result['lat'], $result['lng']) || $result['lat'] === 0.0 && $result['lng'] === 0.0) {
return null; // 変換失敗時は null を返す
}
$lat = $result['lat'];
$lng = $result['lng'];
// Maps URLs の検索形式: https://www.google.com/maps/search/?api=1&query=lat,lng を採用。
// 住所文字列をそのまま検索に使いたい場合は query=rawurlencode($address) でも可。
$query = rawurlencode($lat . ',' . $lng);
return "https://www.google.com/maps/search/?api=1&query={$query}"; // クリックで該当地点を開けるURL。
}