2016-03-09 13 views
5

私は角度2を使用しています。私はGoogleマップで作業する必要があります。私はマップを初期化し、ルート座標でいくつかの配列を作成し、Custom HTML Markerを追加し、イベントリスナーを追加し、ポリラインを描画する必要があります。これらのすべては、Webページ上のネイティブJSで行うことができます。私の仕事では、Angular2を使う必要があります。どのように私はコンポーネント内のマップオブジェクトを初期化し、オブジェクトのようなコンポーネント内でそれを操作することができますか?角度2とGoogleマップAPI。コンポーネントからマップのオブジェクトを操作する

ライブラリはangular2-google-mapsですが、機能は限定されています。たとえば、私は、angular2-グーグルマップでポリラインを作成することはできません、私は一部のライブラリを統合することができない、など例えばカスタムHTMLマーカーcSnapToRoute

答えて

-2

あなたはそれが簡単なJSスクリプトすることができますあなたはAngularなしでページにロードされます。

var mapData; 
    container.gmap(
    { 
     'zoomControl': true, 
     'zoomControlOptions': { 
      'style': google.maps.ZoomControlStyle.SMALL, 
      'position': google.maps.ControlPosition[ options.mapZoomPosition ] 
     }, 
     'panControl': false, 
     'streetViewControl': false, 
     'mapTypeControl': false, 
     'overviewMapControl': false, 
     'scrollwheel': false, 
     'draggable': options.draggable, 
     'mapTypeId': google.maps.MapTypeId[ options.mapType ], 
     'zoom': options.mapZoom, 
     'styles': styles[ options.mapStyle ] 
    }) 
    .bind('init', function() { 

     mapData = { 
      container: container, 
      map: map, 
      options: options, 
      addMarker: addMarker, 
      library: library, 
      iw: { 
       data: infoWindowData, 
       window: infoWindow, 
       content: infoWindowContent, 
       open: infoWindowOpen, 
       close: infoWindowClose 
      } 
     }; 
} 

をそしてGMapsは初期化終了しますときには、イベントをトリガすることができます: あなたはこのようGMapsを初期化することができます

google.maps.event.addListenerOnce(map, 'idle', function() { 

$(document).trigger('map.init', mapData); 

}); 

をそして、あなたは、角度でそれをキャッチすることができます

var mapData; 
$(document).on('map.init', function (event,data) { 
    mapData = data; 
}); 

ズームを設定すると、通常どおりに使用できます。

mapData.map.setZoom(50); 
+1

Angular verを使用しています。 2と私はコンポーネントを使用します。コンポーネント内でGMapオブジェクトを使用するにはどうすればいいですか? – Edward

+0

ハッキングのない角度で使用することはできません。私が見たベストアプローチはこれです: 純粋なJSスクリプトを作成し、Googleの例のようにページに読み込む必要があります。 マップが初期化された後、このJSスクリプトからイベントを発生させ、** mapObject **を渡して、JQueryを使って角度で処理する必要があります。 そして、このmapObjectを角度で使うかどうかは、問題1または2です。 – alexey

関連する問題