2017-03-01 20 views
0

こんにちは、私はGoogleマップで描画ツールを有効にしようとしています。しかし、次のようになってエラー:Angular2 - Googleマップ-drawingManagerが定義されていません

VM1935の[email protected]メイン=ブラウザ:?140キャッチされない例外TypeError:未定義

import { Component } from '@angular/core'; 
import { Validators, FormGroup, FormArray, FormBuilder } from '@angular/forms'; 
import { Ng2MapComponent } from 'ng2-map'; 

Ng2MapComponent['apiUrl'] = 
    'https://maps.google.com/maps/api/js?libraries=visualization,places'; 

@Component({ 
    selector: 'my-app', 
    template: ` 
    <ng2-map zoom="14" center="Brampton, Canada"> 
     <marker *ngFor="let pos of positions" 
     (click)="showInfoWindow($event)" 
     [position]="pos"></marker> 
     <info-window id="iw"> 
     lat: [[lat]], lng: [[lng]] 
     </info-window> 
     <drawing-manager 
     [drawingMode]="'marker'" 
     [drawingControl]="true" 
     [drawingControlOptions]="{ 
     position: 2, 
     drawingModes: ['marker', 'circle', 'polygon', 'polyline', 'rectangle'] 
     }" 
     [circleOptions]="{ 
     fillColor: '#ffff00', 
     fillOpacity: 1, 
     strokeWeight: 5, 
     editable: true, 
     zIndex: 1 
     }"></drawing-manager> 
    </ng2-map> 
    <button (click)="showRandomMarkers()">Show Random Markers</button> 
    ` 
}) 
export class AppComponent { 
    positions = []; 

    showRandomMarkers() { 
    let randomLat: number, randomLng: number; 
    this.positions = []; 
    for (let i = 0 ; i < 9; i++) { 
     randomLat = Math.random() * 0.0099 + 43.7250; 
     randomLng = Math.random() * 0.0099 + -79.7699; 
     this.positions.push([randomLat, randomLng]); 
    } 
    } 

    showInfoWindow(marker) { 
    marker.ng2MapComponent.openInfoWindow(
     'iw', // id of InfoWindow 
     marker, // anchor for InfoWindow 
     {  // local variables for InfoWindow 
     lat: marker.getPosition().lat(), 
     lng: marker.getPosition().lng(), 
     } 
    ); 
    } 
} 

モジュールファイルのプロパティ 'DrawingManager' を読み取ることができません。

import { NgModule } from '@angular/core'; 
import { RouterModule } from '@angular/router'; 
import { Ng2MapModule } from 'ng2-map'; 

@NgModule({ 
    imports: [ 
    RouterModule.forChild(AlertsRoutes), 
    Ng2MapModule.forRoot({apiUrl: 'https://maps.google.com/maps/api/js?key=mykey'}) 
    ] 
}) 
export class TestModule { } 

また、描画マネージャを有効にするにはどうすればよいですか?

+0

@NgModule({ imports: [ RouterModule.forChild(AlertsRoutes), Ng2MapModule.forRoot({apiUrl: 'https://maps.google.com/maps/api/js?key=mykey&libraries=visualization,places,drawing'}) ] }) 

、あなたが標準@NgModule({輸入を行う必要があるだろうと思われます。 Ng2MapModule.forRoot()})を呼び出し、そのapiUrlを渡します。モジュールファイルを表示できるので、完全な応答を準備できますか? –

+0

明確にするために、あなたはプログラム的にDrawingManager権限を使用していませんか?あなたはテンプレート内でそれを使用していますが、とにかくng2マップコード自体からこのエラーが発生します。私の理解は正しいのですか? –

答えて

1

ng2-mapで指定された例[1]は、モジュールのインポートに'&libraries=visualization,places,drawing'を追加します。私は利用可能なライブラリに関する特定のドキュメントを見つけることができませんでしたが、まずすべて3を試してから、それらのいくつかを削除できるかどうかを確認してください。

それはにあなたのNgModuleコードを変更しますNG2-マップのドキュメントから、[1] https://github.com/ng2-ui/ng2-map/blob/0e0bd891623fe4adc6a7ea78e76cf1e36456eb8b/app/main.ts

+0

また、Ng2MapComponent ['apiUrl'] = 'https://maps.google.com/maps/api/js?libraries=visualization,places'を削除する必要があります。 –

関連する問題