AngularJSを使ってGoogleマップ(24)地図上にラインを表示

ポリラインを使って地図上にラインを表示するサンプルコードを作成しました。

(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"
    >
      <polyline ng-repeat="p in map.polylines" 
                path="p.path"
                stroke="p.stroke" 
                visible='p.visible'
                geodesic='p.geodesic' 
                fit="false"
                editable="p.editable" 
                draggable="p.draggable">
      </polyline>
    </google-map>
  </div>
</div>
</div>

②スクリプト(js/map24.js)

var mapApp = angular.module('googleMapApp', ['google-maps','ui.bootstrap']);

mapApp.controller("MyCtrl", function ($scope) {
  angular.extend($scope, {
  map: {
      center: {
        latitude: 35.681382,
        longitude: 139.766084
      },
      options: {
        maxZoom: 20,
        minZoom: 3
      },
      zoom: 15,
      polylines: [
          {
              path: [
                  {
                      latitude: 35.67941788049046,
                      longitude: 139.75768089294434
                  },
                  {
                      latitude: 35.67793632362604,
                      longitude: 139.76341009140015
                  },
                  {
                      latitude: 35.680759972963095,
                      longitude: 139.76446151733398
                  },
                  {
                      latitude: 35.68130028953324,
                      longitude: 139.76555585861206
                  }
              ],
              stroke: {
                  color: '#6060FB',
                  weight: 4
              },
              editable: true,
              draggable: false,
              geodesic: false,
              visible: true
          },
          {
              path: [
                  {
                      latitude: 35.682572633455436,
                      longitude: 139.77615594863892
                  },
                  {
                      latitude: 35.681579161170134,
                      longitude: 139.77576971054077
                  },
                  {
                      latitude: 35.682502916505676,
                      longitude: 139.77373123168945
                  },
                  {
                      latitude: 35.67920872118891,
                      longitude: 139.77173566818237
                  }
              ],
              stroke: {
                  color: '#6060FB',
                  weight: 3
              },
              editable: true,
              draggable: true,
              geodesic: true,
              visible: true
          }
      ]
  }
  });
});

③CSS

@import url('bootstrap/css/bootstrap.css');
.angular-google-map-container {
  height: 400px;
}

 
(2)サンプルコードの内容
 
1)ポリラインの設定
 
Polylineオブジェクトを使って、ラインを定義します。
 
PolylineオブジェクトはLatLng配列で構成され、LatLng配列内の位置を順番に接続して連続した線セグメントを作成します。
 
①スクリプト内でポリラインの属性を設定
 
path ラインを構成するポイント(緯度・経度)の配列
stroke ラインの属性を設定
 Color 線の色
 Opacity 線の色の不透明度
 Weight 線の太さ
draggable 線を地図の範囲を超えてドラッグできるか
editable 線をdraggingポイントで変更できるか
 
②HTML内でpolylineディレクティブを使ってポリラインを表示する。
 
2)projection_changedイベント
 
地図が表示される際に一度発行されるprojection_changedイベントを使って上記ポリラインを設定します。
 
AngularJS、Googleマップの他の記事の目次

関連記事の目次

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です