ジオコーディングサービスを使って地図上をクリックしたポイントの位置情報(緯度、経度)を住所に変換して表示してみます。
(1)サンプルコード
地図上の任意の位置をクリックするとマーカーを表示し、マーカーをクリックすると情報ウィンドウをオープンし、その地点の住所を表示します。
デモ表示へ
(2)サンプルコードの内容
1)マップクリックイベント時の動作を定義
“click”イベント発生時に位置情報から住所に変換して、マーカーと情報ウィンドウを定義するaddLatLng()関数を呼び出します。
(HTML)
<ui-gmap-google-map ・・events=”map.events”>
(スクリプト)
events: {
click: function (map, eventName, originalEventArgs) {
addLatLng(map, eventName, originalEventArgs);
}
},
2)addLatLng()関数を定義
①クリックイベントの引数からクリックした位置情報を取得
var e = originalEventArgs[0];
②ジオコーディングサービスを使って位置情報を住所に変換
Geocoderオブジェクトのgeocodeメソッドを使って位置情報(緯度、経度)を住所に変換します。
○geocodeメソッドの構文
geocode(request:GeocoderRequest, callback:function(Array.<GeocoderResult>, GeocoderStatus))
○サンプルコード
geocoder.geocode({‘latLng’: latlng}, function(results, status) {
・{‘latLng’: latlng}
リクエスト。クリックした位置の緯度・経度情報を指定。
・status
逆ジオコーディングした際のステータス
・results
逆ジオコーディングした結果が保持される配列
③マーカーを定義
・上記①で取得した位置情報をマーカーに設定
var lat = parseFloat(e.latLng.lat());
var lng = parseFloat(e.latLng.lng());
:
$scope.map.marker.latitude = lat;
$scope.map.marker.longitude = lng;
・上記②で取得した住所を情報ウィンドウ内に設定
$scope.map.templateParameter.message = results[0].formatted_address;
3)情報ウィンドウを定義
情報ウィンドウのレイアウトを”templateUrl”属性で外部ファイルを指定し、情報ウィンドウ内に表示する文字列を”templateParameter”属性で指定します。
(HTML)
<ui-gmap-marker ng-repeat="m in map.markers" idkey='m.id' coords="m" click="onMarkerClicked(m)"> <ui-gmap-window show="m.showWindow" closeClick="closeClick(m)" templateUrl="m.templateUrl" templateParameter="m.templateParameter" > </ui-gmap-window> </ui-gmap-marker>
4)マーカークリック時に情報ウィンドウをオープン、クローズする関数を定義
“showWindow”属性を使って表示、非表示を制御します。
(HTML)
<ui-gmap-marker ng-repeat="m in map.markers" idkey='m.id' coords="m" click="onMarkerClicked(m)"> <ui-gmap-window show="m.showWindow" closeClick="closeClick(m)"
(スクリプト)
$scope.closeClick = function (marker) {
marker.showWindow = false;
};
$scope.onMarkerClicked = function (marker) {
marker.showWindow = true;
};
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)オートコンプリート