menu
  1. HOME
  2. News & Blog
  3. Google Map
  4. Laravelで住所からGoogle Map APIを用いて地図表示

News & Blogニュース&ブログ

2015.09.09

Laravelで住所からGoogle Map APIを用いて地図表示

Gmaps.jsを利用して、指定住所の場所をGoogle Map上に表示してみました。 Gmaps.jsはjavascriptのパッケージですので、Laravelではなくても使用可能ですが、今回はLaravelを利用してプロジェクト上でGmaps.jsを使ってみました。 環境は以下となります。
  • OS:Windows 10 64bit
  • PHP 開発環境:XAMPP 5.6.3
  • PHP Framework:Laravel 5.1
Composer、bower、Lravelは既に構築されている前提条件とします。 作業流れとしては、
  1. パッケージインストール
  2. Google Map表示画面へのルーティング設定
  3. Google Map表示用コントローラ作成
  4. Google Map表示画面(ビュー)作成
になります。    

パッケージインストール

Gmaps.jsを利用するためにはJqueryが必要となります。 そのため、先にJqueryをインストールしておきましょ~! コマンドプロンプトを開いて、プロジェクトの場所(Laravelがインストールされている場所)に移動します。筆者の環境では「C:\dev\project\test_gmaps」なので「cd C:\dev\project\test_gmaps」で移動します。 そのあと、「bower install jquery –save」を入力して、jqueryをインストールします。
gmaps_04_gmaps_install
次は、Gmaps.jsをインストールしましょ~!「bower install gmaps –save」を入力してください。 gmaps_11_gmaps_install 筆者の環境ではbowerでインストールしたパッケージは「C:\dev\project\test_gmaps\public\bower_components」に配置されるように設定されています。生成されているか確認しましょー! gmaps_05_gmaps_install  

ルーティング設定

「http://localhost:8000/map」に接続するとGoogle Mapが表示されるようにルーティングを設定します。 「C:\dev\project\test_gmaps\app\Http\routes.php」を開いて以下のソースコードを追加します。
Route::get('/', function () {
    return view('welcome');
});

// 【追加部分】「Google Map 画面表示機能」を起動
Route::get('/map', 'GmapsController@view');
 

コントローラ作成

プロジェクトの場所(Laravelがインストールされている場所)に移動して、「php artisan make:controller GmapsController」コマンドにてGoogle Map表示用コントローラを作成しましょ~! gmaps_06_controller 「C:\dev\project\test_gmaps\app\Http\Controllers\GmapsController.php」が追加されましたね。追加されたコントローラを以下のように修正しましょ~!コントローラは東京都庁の住所をビューに渡します。
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;

class GmapsController extends Controller
{
    /**
    * Google Map 画面表示機能
    */
    public function view()
    {
        // データーベースなどから表示したい住所を取得。
        // 本記事では「東京都庁」の住所を固定で設定する。
        $address = "東京都新宿区西新宿2−8−1";

        // 取得した住所を利用して、画面(ビュー)を作成
        return view('gmaps/view', compact('address'));
    }
}
 

ビューを作成

Google Mapを表示する画面を作成します。ここでGmaps.jsを利用します。コントローラから渡された東京都庁の住所をGoogle Map上に表示します。 「C:\dev\project\test_gmaps\resources\views」配下に「gmaps\view.blade.php」を作成します。ビューを作成するartisanコマンドは特にないので直接作成します。 gmaps_07_view 生成したビューに以下のようにコーディングします。
<!DOCTYPE html>
<html>
  <head>
    <title>Gmaps.js テスト</title>
    <script type="text/javascript" src="bower_components/jquery/dist/jquery.min.js"></script>
    <script type="text/javascript" src="//maps.google.com/maps/api/js?sensor=true"></script>
    <script type="text/javascript" src="bower_components/gmaps/gmaps.min.js"></script>
    <script type="text/javascript">
      // コントローラから渡された住所を取得
      var addressStr = "{!! $address !!}";

      $(document).ready(function(){
          // Gmapsを利用してマップを生成
          var map = new GMaps({
              div: '#map',
              lat: -12.043333,
              lng: -77.028333
          });

          // 住所からマップを表示
          GMaps.geocode({
              address: addressStr.trim(),
              callback: function(results, status) {
                  if (status == 'OK') {
                      var latlng = results[0].geometry.location;
                      map.setCenter(latlng.lat(), latlng.lng());
                      map.addMarker({
                          lat: latlng.lat(),
                          lng: latlng.lng()
                      });
                  }
              }
          });
      });
    </script>
    <style>
      @charset "utf-8";
      #map {
        height: 400px;
      }
    </style>
  </head>
  <body>
    <h1>Gmaps.js テスト</h1>
    <p>住所:{{ $address }}</p>
    <div id="map"></div>
  </body>
</html>
コーディングが終わったら、「http://localhost:8000/map」に接続してみましょ~!以下の画面が表示されたら成功です!! gmaps_08_result ※参考サイト:https://hpneo.github.io/gmaps/ ※Google Map APIを利用する際には制限があるので注意しましょ~!

お気軽にご相談ください

株式会社アルベではIT、Webを使って皆様の課題解決のお手伝いをしています。
下記のようなお悩みを持つ方は、是非お気軽にご相談ください。

お問い合わせ