AngularJSを使ってGoogleマップを表示する方法についてです。
WordPressの投稿本文にGoogleマップを表示するために必要な環境設定については下記記事を参照下さい。
WordPressでAngularJSを使ったGoogleマップを使えるようにする
今回は、東京駅周辺の地図を表示し、Googleマップの下記設定の仕方についてまとめました。
・地図のズームを指定
・地図のコントロールアイコン(移動、ズーム、ストリートビューなど)の表示
・地図のタイプ(ロードマップ、航空写真、地形など)
※目次をクリックすると目次の下部にコンテンツが表示されます。
サンプルコード
①HTML本文
<script type='text/javascript' src='http://www.example.com/wp/wp-content/themes/testtm/js/map1.js'></script> <div class = "container" ng-controller="MyCtrl"> <div class="row"> <div class="col-sm-6"> <ui-gmap-google-map id="map-canvas" center="map.center" zoom="map.zoom" draggable="true" options="map.options"> </ui-gmap-google-map> </div> <div class="col-sm-6"></div> </div> </div>
②スクリプト(js/map1.js)
var mapApp = angular.module('googleMapApp', ['uiGmapgoogle-maps']); mapApp.config( ['uiGmapGoogleMapApiProvider', function(GoogleMapApiProviders) { GoogleMapApiProviders.configure({ key: 'your Google Map api key', v: '3', //defaults to latest 3.X anyhow libraries: 'weather,geometry,visualization' }); }] ); mapApp.controller("MyCtrl",['$scope', 'uiGmapGoogleMapApi', function ($scope,uiGmapGoogleMapApi) { angular.extend($scope, { map: { center: { latitude: 35.681382, longitude: 139.766084 }, zoom: 14, bounds: {}, events: {}, options: { panControl: true, zoomControl: true, mapTypeControl: true, scaleControl: true, streetViewControl: true, overviewMapControl: true, rotateControl: true, maxZoom: 20, minZoom: 10, mapTypeId: 'terrain' } } }); uiGmapGoogleMapApi.then(function(maps) {}); }]);
③CSS
@import url('bootstrap/css/bootstrap.css'); .angular-google-map-container { height: 400px; }
サンプルコードの内容
1)依存性の設定(スクリプト)
var mapApp = angular.module(‘googleMapApp’, [‘uiGmapgoogle-maps’]);
上記コードで下記を設定しています。
①モジュール名:’googleMapApp’
HTMLの<html ng-app=”googleMapApp”>と対応。
②このAngularJSのコードが依存するモジュール
ここでは、Googleマップのモジュールを使用しているので’uiGmapgoogle-maps’を設定します。
2)コントローラで地図の属性を設定(スクリプト)
①コントローラ名:”MyCtrl”
HTMLの<div ng-controller=”MyCtrl”>と対応。
②地図の中心、ズームの初期値を設定(スクリプト)
map.center、map.zoomで設定しています。
③マップオプションでマップタイプを設定(スクリプト)
map.mapTypeIdで設定しています。
サンプルコードでは、’terrain’を指定しています。下記マップタイプがあります。
・ROADMAP
Googleマップの通常のデフォルト。2Dタイル上で表示される。
・SATELLITE
航空写真
・HYBRID
航空写真で主要な対象物(道路、地名、建物)の名称が表示される。
・TERRAIN
物理的な起伏を示すタイルで、高度や水系の対象物(山、河川など)を表示。山では等高線が表示。
④マップオプションでコントロールの表示有無を設定(スクリプト)
下記コントロールのリンク、アイコンを地図上に表示するか設定します。
・panControl
東西南北の矢印のリンクで地図を移動するボタンが表示
・zoomControl
ズームを変更するスライダまたは+ボタンが表示される。
・mapTypeControl
ROADMAPやSATELLITEなどのマップタイプを切り替えるチェックボックスを表示
・scaleControl
地図のスケール(距離)を示す要素が表示
・streetViewControl
ペグマンアイコン(人の形をしたアイコン)を地図上にドラッグして、ストリートビューを有効にする
・overviewMapControl
広い領域内での現在の地図のビューポートを示すサムネイル概観マップ
・rotateControl
傾斜の付いた画像を持つ地図を回転
※マップタイプ、コントロール以外のマップオプションは下記参照
https://developers.google.com/maps/documentation/javascript/reference#MapOptions
3)HTMLに<ui-gmap-google-map>タグを記述し、スクリプトと連携
ここでは、地図上をドラッグして地図を移動できるようにするためdraggable=”true”を指定しています。それ以外の属性はスクリプトと連携して反映させています。
4)HTMLのレイアウト
ブートストラップ3のグリッドを使ってレイアウトしています。2カラム構成で左のカラムに地図を表示するように設定しています。
var mapApp = angular.module(‘googleMapApp’, [‘uiGmapgoogle-maps’]);
上記コードで下記を設定しています。
①モジュール名:’googleMapApp’
HTMLの<html ng-app=”googleMapApp”>と対応。
②このAngularJSのコードが依存するモジュール
ここでは、Googleマップのモジュールを使用しているので’uiGmapgoogle-maps’を設定します。
2)コントローラで地図の属性を設定(スクリプト)
①コントローラ名:”MyCtrl”
HTMLの<div ng-controller=”MyCtrl”>と対応。
②地図の中心、ズームの初期値を設定(スクリプト)
map.center、map.zoomで設定しています。
③マップオプションでマップタイプを設定(スクリプト)
map.mapTypeIdで設定しています。
サンプルコードでは、’terrain’を指定しています。下記マップタイプがあります。
・ROADMAP
Googleマップの通常のデフォルト。2Dタイル上で表示される。
・SATELLITE
航空写真
・HYBRID
航空写真で主要な対象物(道路、地名、建物)の名称が表示される。
・TERRAIN
物理的な起伏を示すタイルで、高度や水系の対象物(山、河川など)を表示。山では等高線が表示。
④マップオプションでコントロールの表示有無を設定(スクリプト)
下記コントロールのリンク、アイコンを地図上に表示するか設定します。
・panControl
東西南北の矢印のリンクで地図を移動するボタンが表示
・zoomControl
ズームを変更するスライダまたは+ボタンが表示される。
・mapTypeControl
ROADMAPやSATELLITEなどのマップタイプを切り替えるチェックボックスを表示
・scaleControl
地図のスケール(距離)を示す要素が表示
・streetViewControl
ペグマンアイコン(人の形をしたアイコン)を地図上にドラッグして、ストリートビューを有効にする
・overviewMapControl
広い領域内での現在の地図のビューポートを示すサムネイル概観マップ
・rotateControl
傾斜の付いた画像を持つ地図を回転
※マップタイプ、コントロール以外のマップオプションは下記参照
https://developers.google.com/maps/documentation/javascript/reference#MapOptions
3)HTMLに<ui-gmap-google-map>タグを記述し、スクリプトと連携
ここでは、地図上をドラッグして地図を移動できるようにするためdraggable=”true”を指定しています。それ以外の属性はスクリプトと連携して反映させています。
4)HTMLのレイアウト
ブートストラップ3のグリッドを使ってレイアウトしています。2カラム構成で左のカラムに地図を表示するように設定しています。
- VPSサーバーでスナップショットを取得
- ~障害に備え、リカバリーポイントを作成。
- VPSサーバーにログインして、設定内容を確認
- ~グローバルIPアドレス確認、SSHキーを作成。
- VPSサーバーにSSHでログイン
- ~Tera Term、SSH、公開鍵認証方式
- yumコマンドで最新のパッケージにアップデート
- ~全パッケージを最新にアップデート
- Apacheのインストール
- ~yumコマンドでApacheインストール、iptablesでファイアウォールの設定
- PHPとMySQLをインストール
- ~yumコマンドでPHP、MySQLインストール
- WinSCPを使ってWordPressをアップロード
- ~WinSCPをクライアントPCにインストール、ファイルアップロード方法
- WordPressをインストール
- ~MySQLでWordPress用データベース作成、wp-config.phpファイルの設定
- CentOSのファイアウォール設定
- ~iptablesを使ってネットワークフィルタリング設定を一から行う
- OpenSSHの設定をよりセキュアに
- ~ログイン制限、ポート変更、認証方式
- ApacheでTCPのTraceメソッドを無効にする
- ~Apacheの設定変更、Telnetで動作確認
- ヘッダーにApacheバージョンが表示されないようにする
- ~Apacheの設定変更、Telnetで動作確認
- Apacheでディレクトリ内一覧表示を無効にする
- ~autoindex_moduleのロードを無効にする
- セキュリティを考慮し、MySQLの匿名ユーザーにパスワードを設定、または削除
- ~MySQLの匿名ユーザーにパスワードを設定、または削除
- PHPのバージョンが表示されないようにする
- ~php.iniの設定変更
- WordPressディレクトリのパーミッションをセキュアに
- ~WordPress用ディレクトリの所有グループ、ユーザー、パーミッション設定
- パーマリンク設定時のApache設定
- ~WordPressパーマリンクの設定、Apache .htaccessの設定
- WordPressテーマの選定
- ~テーマ追加の特徴フィルターの項目、テンプレートキング
- WordPressで画像のアップロード、サイズ調整、リンクを設定
- ~アップロード画像の画像サイズ、サムネイル、画像編集、リンク設定
- 更新可能なRPMパッケージのリストをメールで送信する
- ~yumコマンド、Bashスクリプト、Cron
- Linuxでディスク使用量が多いディレクトリを調べる方法(1)
- ~du --max-depth
- Linuxでディスク使用量が多いディレクトリを調べる方法(2)
- ~duコマンド、sortコマンド
- WordPressデータベースのバックアップとリストア
- ~コマンドラインでバックアップ、リストア
- WordPressのバージョンアップと旧バージョンへの戻し
- ~データベースとディレクトリのバックアップ、リストア
- BashスクリプトでWordPressデータベースを自動バックアップ
- ~MySQLデータベースをBash、Cronを使って自動バックアップ、メール通知
- BashスクリプトでDos攻撃など大量アクセスのログを検知
- ~Apacheアクセスログ、Dos、Cron、メール通知
テーマ作成
- ブートストラップ3を使って自作テーマ作成
- (1)全体概要
- (2)ブートストラップのサンプルを使ってindex.phpを作成
- (3)header.php、sidebar.php、footer.php、index.phpのテンプレートファイル作成
- (4)JavaScriptインクルードの設定
- (5)投稿本文表示用のテンプレートファイルを作成
- (6)単一投稿用(single.php)のテンプレートファイル作成
- (7)固定ページ用(page.php)のテンプレートファイル作成
- (8)検索結果表示用(search.php)のテンプレートファイル作成
- (9)アーカイブ表示用(archive.php)のテンプレートファイル作成
- (10)カテゴリー表示用(category.php)のテンプレートファイル作成
- (11)WordPressのメニュー画面でナビゲーションメニューを設定
- (12)サイトタイトル、キャッチフレーズを表示できるようにheader.phpを修正
- (13)カスタムヘッダー画像を使えるようにheader.phpを修正
- (14)404.phpテンプレートファイルを作成
- (15)記事タイトル部分のCSS設定
- (16)記事メタデータ部分のCSS設定
- (17)記事本文部分のCSS設定
- (18)前後のページへのリンクのCSS設定
- (19)前後の投稿へのリンクのCSS設定
- (20)コメント投稿フォーム、コメント表示部のCSS設定
- (21)ウィジェット部のCSS設定
- (22)アーカイブページのCSS設定
- (23)画面を左右にスライドさせるボタンのCSS設定
- ~Bootstrap3、自作テーマ作成、TwentyFourteen
- Bootstrapのフリーのテーマを使ってデザインを簡単にカスタマイズ
- ~Bootstrap3のスタイルをカスタマイズ
- 簡単なショートコードを作ってみる
- ~ショートコードの作り方
- ショートコードを使って関連記事のリンクを自動で挿入
- ~ショートコードの簡単なサンプル
- ショートコードを使ってディレクトリ内のファイル名を取得し、投稿内にリンクを挿入
- ~カスタムフィールド利用、PHPで日本語文字列検索などのコーディング
- WordPress投稿内でAngularJSを使用
- ~AngularJS、Bootstrap、アコーディオン
- Bootstrap3で作成したナビゲーションメニューをAngularJSに変更
- ~AngularJS、Bootstrap、自作テーマheder.php
- WordPressでAngularJSを使ったGoogleマップを使えるようにする
- ~AngularJSを使って投稿内にGoogleマップ
WordPresssショートコード
AJAX、AngularJSなどその他応用
- Ruby on Rails(他サイト)
- ~構築、CMS、Bootstrap、AngularJS
- WordPressでAngularJSを使ったGoogleマップを使えるようにする
- google-mapディレクティブを使って地図を表示
- 地図上に複数のマーカーを表示する
- マーカーをクリックして情報ウィンドウを表示
- マーカーでイベントを処理
- 重複して表示されるマーカーをクラスター化する方法
- 交通レイヤを表示する方法
- ルートサービスを使って簡単な徒歩ルートを表示する
- 経由地を指定して徒歩ルートを表示する
- ルート計算の結果をテキストでも表示する
- ドラッグ可能なルートを表示し、結果をテキストでも表示
- ルートサービスで表示するルートの線の色、太さを設定する方法
- Fusionテーブルのデータを地図上にマーカーとして表示
- 逆ジオコーディングで地図上クリックで住所を表示
- ジオコーディングを使って入力した住所にマーカーを表示
- 地図とストリートビューを並べて表示
- クリックした地点のストリートビューを表示
- 地図上にGoogleアドセンスの広告を表示
- パノラミオ(Panoramio)の写真を表示
- パノラミオ(Panoramio)の写真をタグでフィルタして表示
- プレイスライブラリで店や施設を表示(1)nearbySearch
- プレイスライブラリで店や施設を表示(2)テキスト検索
- プレイスライブラリで店や施設を表示(3)詳細情報表示
- 地図に独自のスタイルを設定
- 地図上にラインを表示
- プレイスライブラリで店や施設を表示(4)オートコンプリート
-
WordPress設定
- WordPressリファレンス、メモ
- パーマリンク設定時のApache設定
- WordPressテーマの選定
- WordPressで画像のアップロード、サイズ調整、リンクを設定
- マルチサイト化に伴う制約、デメリット
- WordPressのwp-config.phpでテーブルプレフィックスを変更
- WordPress投稿のリビジョン管理と自動保存
- WordPressディレクトリのパーミッションをセキュアに
- WordPressの認証用ユニークキーをセキュアに
- WordPressのバージョン情報を表示しないようにする
- WordPressでGoogleの2段階認証プロセスを使用する手順
- WordPressの更新情報・要件、各バージョンの新機能
- WordPressデータベースのバックアップとリストア
- WordPress用データベースバックアップをbashスクリプトとcronで定期実行
- WordPressのバージョンアップと旧バージョンへの戻し
- WordPressの記事をサイト間でコピーする方法
- WordPressのアップデート方法の種類、注意点
- WordPressのメンテナンスモード、カスタムメンテナンスページ
- WordPressでデバッグを有効にする方法
- WordPressの投稿内でJavaScriptを使う方法
- WordPressでJavaScriptを使って折りたたみリンクメニューを作成
- 自ブログ動作確認時にGoogleアドセンスの広告を表示しない
- WordPressでAngularJSを使ったGoogleマップを使えるようにする
- WordPressの投稿にAngularJSのディレクティブを記述する方法
セキュリティ
メンテナンス
その他、応用
- WordPressでAngularJSを使ったGoogleマップを使えるようにする
- google-mapディレクティブを使って地図を表示
- 地図上に複数のマーカーを表示する
- マーカーをクリックして情報ウィンドウを表示
- マーカーでイベントを処理
- 重複して表示されるマーカーをクラスター化する方法
- 交通レイヤを表示する方法
- ルートサービスを使って簡単な徒歩ルートを表示する
- 経由地を指定して徒歩ルートを表示する
- ルート計算の結果をテキストでも表示する
- ドラッグ可能なルートを表示し、結果をテキストでも表示
- ルートサービスで表示するルートの線の色、太さを設定する方法
- Fusionテーブルのデータを地図上にマーカーとして表示
- 逆ジオコーディングで地図上クリックで住所を表示
- ジオコーディングを使って入力した住所にマーカーを表示
- 地図とストリートビューを並べて表示
- クリックした地点のストリートビューを表示
- 地図上にGoogleアドセンスの広告を表示
- パノラミオ(Panoramio)の写真を表示
- パノラミオ(Panoramio)の写真をタグでフィルタして表示
- プレイスライブラリで店や施設を表示(1)nearbySearch
- プレイスライブラリで店や施設を表示(2)テキスト検索
- プレイスライブラリで店や施設を表示(3)詳細情報表示
- 地図に独自のスタイルを設定
- 地図上にラインを表示
- プレイスライブラリで店や施設を表示(4)オートコンプリート