テキストボックスに入力したタグでフィルタしてパノラミオ(Panoramio)の写真をGoogleマップに表示するサンプルコードを作成しました。
(1)サンプルコード
デモ表示へ
①HTML本文
<div ng-controller="MyCtrl"> <div class="row"> <div class="col-sm-12"> <google-map id="map-canvas" center="map.center" zoom="map.zoom" draggable="true" options="map.options" control="map.control" events="map.events" > </google-map> </div> <div id="filter"> <input ng-model="tag" type="text" placeholder="Tokyo"> <button ng-click="filterTag(tag)">Filter on Tag</button> </div> </div> </div>
②スクリプト(js/map19.js)
var mapApp = angular.module('googleMapApp', ['google-maps','ui.bootstrap']); mapApp.controller("MyCtrl", function ($scope) { var panoramioLayer = new google.maps.panoramio.PanoramioLayer(); angular.extend($scope, { map: { center: { latitude: 35.681382, longitude: 139.766084 }, options: { maxZoom: 20, minZoom: 3 }, zoom: 15, control: {}, events: { projection_changed: function (map, eventName, originalEventArgs) { panoramioLayer.setMap(map); map.controls[google.maps.ControlPosition.TOP_CENTER].push( document.getElementById('filter') ); } } } }); $scope.filterTag = function(tag) { panoramioLayer.setTag(tag); }; });
③CSS
@import url('bootstrap/css/bootstrap.css'); .angular-google-map-container { height: 400px; }
(2)サンプルコードの内容
Panoramioの写真を地図上に表示するのは前回と同じです。タグを使ってフィルターする部分のみ示します。
1)タグ入力用のテキストボックスとボタンを地図上に表示
①テキストボックスとボタンを定義
<div id=”filter”>
<input ng-model=”tag” type=”text” placeholder=”Tokyo”>
<button ng-click=”filterTag(tag)”>Filter on Tag</button>
</div>
②上記テキストボックスとボタンを地図上に表示
map.controls[google.maps.ControlPosition.TOP_CENTER].push(
document.getElementById(‘filter’)
);
2)入力されたタグを使ってフィルタ
テキストボックスのボタンをクリックすると入力された値を取得し、PanoramioLayerオブジェクトのsetTag()メソッドを実行します。
このメソッドによってタグに一致する写真のみが地図上に表示されます。
$scope.filterTag = function(tag) {
panoramioLayer.setTag(tag);
};
AngularJS、Googleマップの他の記事の目次
- WordPressでAngularJSを使ったGoogleマップを使えるようにする
- google-mapディレクティブを使って地図を表示
- 地図上に複数のマーカーを表示する
- マーカーをクリックして情報ウィンドウを表示
- マーカーでイベントを処理
- 重複して表示されるマーカーをクラスター化する方法
- 交通レイヤを表示する方法
- ルートサービスを使って簡単な徒歩ルートを表示する
- 経由地を指定して徒歩ルートを表示する
- ルート計算の結果をテキストでも表示する
- ドラッグ可能なルートを表示し、結果をテキストでも表示
- ルートサービスで表示するルートの線の色、太さを設定する方法
- Fusionテーブルのデータを地図上にマーカーとして表示
- 逆ジオコーディングで地図上クリックで住所を表示
- ジオコーディングを使って入力した住所にマーカーを表示
- 地図とストリートビューを並べて表示
- クリックした地点のストリートビューを表示
- 地図上にGoogleアドセンスの広告を表示
- パノラミオ(Panoramio)の写真を表示
- パノラミオ(Panoramio)の写真をタグでフィルタして表示
- プレイスライブラリで店や施設を表示(1)nearbySearch
- プレイスライブラリで店や施設を表示(2)テキスト検索
- プレイスライブラリで店や施設を表示(3)詳細情報表示
- 地図に独自のスタイルを設定
- 地図上にラインを表示
- プレイスライブラリで店や施設を表示(4)オートコンプリート
- WordPressでAngularJSを使ったGoogleマップを使えるようにする
- google-mapディレクティブを使って地図を表示
- 地図上に複数のマーカーを表示する
- マーカーをクリックして情報ウィンドウを表示
- マーカーでイベントを処理
- 重複して表示されるマーカーをクラスター化する方法
- 交通レイヤを表示する方法
- ルートサービスを使って簡単な徒歩ルートを表示する
- 経由地を指定して徒歩ルートを表示する
- ルート計算の結果をテキストでも表示する
- ドラッグ可能なルートを表示し、結果をテキストでも表示
- ルートサービスで表示するルートの線の色、太さを設定する方法
- Fusionテーブルのデータを地図上にマーカーとして表示
- 逆ジオコーディングで地図上クリックで住所を表示
- ジオコーディングを使って入力した住所にマーカーを表示
- 地図とストリートビューを並べて表示
- クリックした地点のストリートビューを表示
- 地図上にGoogleアドセンスの広告を表示
- パノラミオ(Panoramio)の写真を表示
- パノラミオ(Panoramio)の写真をタグでフィルタして表示
- プレイスライブラリで店や施設を表示(1)nearbySearch
- プレイスライブラリで店や施設を表示(2)テキスト検索
- プレイスライブラリで店や施設を表示(3)詳細情報表示
- 地図に独自のスタイルを設定
- 地図上にラインを表示
- プレイスライブラリで店や施設を表示(4)オートコンプリート