人気のPHP WEBアプリケーションフレームワークLaravelのTips。 (Laravelアプリの初期化)composer create-project laravel/laravel my-app

Laravelで 日本語の住所からGoogleマップのURLを取得する関数

● composer require spatie/geocoder

インストール

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。
}
No.2683
11/01 13:16

edit