2017-04-03 3 views
3

ドラッグするかクリックして新しいポリゴンを取得しようとするたびに、私はいつも私の変数の初期パスを取得します。Sebm Google MapsでDragEndを使ってポリゴンのパスを取得する方法は?角度2

私が持つ変数の私のパスを初期化します。

paths: Array<LatLngLiteral> = [{lat: -12.052224, lng: -77.050342}, {lat: -12.064306, lng: -77.031790}, {lat: -12.075951, lng: -77.054554}, {lat: -12.063236, lng: -77.072506}, {lat: -12.052224, lng: -77.050342}]; 

は、私は何でもパス変数を更新しないでください。

私は何が失敗ですか?なぜ私はそれぞれのパスで最終的なポリゴンを得ることができず、常に最初のポリゴンを取得できないのですか?または、新しいポリゴンを取得する正しい方法は何ですか?

これは私のコンポーネントです:後期

<sebm-google-map [latitude]="lat" [longitude]="lng" [zoom]="zoom"> 
    <sebm-map-polygon [paths]="paths" [editable]="true" [polyDraggable]="true" [strokeColor]="'#c60331'" (polyDragEnd)="onDragEnd($event, paths)"> 
    </sebm-map-polygon> 
</sebm-google-map> 

答えて

2

が、私は私のような誰かがそう答えを追加いくつかの助けを得ることができます思いました。

現在のリリースではサポートされていないため、現在のnode_moduleを変更する必要があります。次のURLを参照してください

https://github.com/SebastianM/angular-google-maps/pull/991

willshowellは何をすべきかについて説明しています。

ステップ:sebmはAGMする

  1. アップデート(今のように現在のリリースを取る)
  2. 第二に、それは2.0で動作しませんので、少なくとも2.3にあなたの角度を更新します。
  3. 上記のリンクでは、さまざまなファイルをブランチにコミットしました。彼がしたことは、すでにこの問題で説明されています。
  4. 簡単な説明:彼は、マップパス、getPath()、getPaths()関数を追加するためにGoogleが使用する正確なデータ型を取得できるように、ArrayをMVCArrayに変更しました。私は、ポリゴンの同じでしたあなたは私はあなたがノードモジュールに変更を加えた後はdragendイベントDropbox link for files changed in @agm module

後にポリゴンのための新しいパスを取得するために変更する必要があるものを見るためにここにファイルをダウンロードすることができ、あなたは、次のコードを使用することができますあなたのPolyGonのマウスアップイベント: @ViewChildren(AgmPolygon) polygonData: QueryList<AgmPolygon>; polyMouseUp($event: any, index:number, polygon: any) { var i =0; this.polygonData.forEach( x =>{ if(i==index){ x.getPath().then((y: any[]) => { console.log('-'); y.forEach(z => console.log(z.lat(), z.lng())); }); } i++; } ); }

+0

'x.getPath()' – harish

+0

でエラーが発生しました。ファイルをダウンロードし、node_modulesに貼り付ける必要があります。説明はリンクを参照してください。 –

+0

私は自分のファイルで置き換えるのですか?私の 'ノードモジュール'にalreddy 'google-map-types.d.ts'ファイルがあるかのようにしていますか? – harish

関連する問題