2017-02-21 57 views
6

我正在尋找一種方式來使用可用的zoomControlOptiions財產定期谷歌地圖,就像這樣:移動地圖控件

zoomControlOptions: { 
    style: google.maps.ZoomControlStyle.SMALL, 
    position: google.maps.ControlPosition.LEFT_CENTER 
}, 

Stackoverflow example showing code above
Same thing in the official google maps docs

不幸的是,我不在Angular 2 Google Maps API Docs中看不到此選項。有沒有辦法做到這一點?儘管使用Angular 2包裝器,有沒有辦法使用完整的功能?

enter image description here

注意,只是運行該代碼工作正常:

map.setOptions({ 
     zoom: 1, 
     center: position, 
     zoomControl: true 
    }); 

    console.log(map.getZoom()); 

我能得到本地谷歌地圖對象和運行方法/設置屬性就可以了。那麼,它的實際工作,現在的問題是圍繞打字稿編譯器越來越抱怨:當我嘗試使用zoomControlOptions,這是直接從docs


編輯未來出現問題。

編輯2:我解決了這個問題,但是如果有人想要賞金 - 請隨時解釋爲什麼zoomControlOptions不是本機可用的。

回答

1

您可以獲得對本機映射對象的引用,然後添加zoomControlOptions。讓繪圖參照的完整的例子在https://github.com/philipbrack/example-angular2-google-maps-getNativeMap發現:

import {Component, OnInit} from '@angular/core'; 

import {GoogleMapsAPIWrapper} from 'angular2-google-maps/core'; 

declare var google:any; 

@Component({ 
    selector: 'app-map-content', 
    template: '' 
}) 
export class MapContentComponent implements OnInit { 

    constructor(public mapApiWrapper:GoogleMapsAPIWrapper) { 

    } 

    ngOnInit() { 

    this.mapApiWrapper.getNativeMap() 
     .then((map)=> { 

     // I have been manually updating core/services/google-maps-types.d.ts to include things they didn't include. 
     console.log(map.getZoom()); 

     let position = new google.maps.LatLng(45.521, -122.677); 

     var cityCircle = new google.maps.Circle({ 
      strokeColor: '#FF0000', 
      strokeOpacity: 0.8, 
      strokeWeight: 2, 
      fillColor: '#FF0000', 
      fillOpacity: 0.35, 
      map: map, 
      center: position, 
      radius: 10000 
     }); 


     }); 

    } 

} 
+0

謝謝,現在嘗試。 – VSO

1

因此,顯然所有我需要做的是確保編譯器不通過創建一個接口抱怨:

interface NativeGoogMapProps { 
    zoomControlOptions?: any; 
    streetViewControlOptions?: any; 
} 

和然後設置地圖選項時使用它:

let zoomControlOptions: any = { 
     style: google.maps.ControlPosition.small, 
     position: google.maps.ControlPosition.RIGHT_CENTER 
    }; 

    let streetViewControlOptions: any = { 
     position: google.maps.ControlPosition.RIGHT_CENTER 
    }; 

    map.setOptions(<NativeGoogMapProps>{ 
     zoomControlOptions: zoomControlOptions, 
     streetViewControlOptions: streetViewControlOptions 
    }); 

我真的不知道爲什麼有些道具是地圖對象,有些則不是,雖然,但這個工程沒有錯誤。