2017-04-12 45 views
0

我使用angular2-google-map移谷歌地圖的中心向右角2

我想轉移中心映射到左。

它是什麼,現在 What it is righ now

我想要什麼 what I want

的HTML

<sebm-google-map [latitude]="center.lat" [longitude]="center.long"> 
    <sebm-google-map-marker *ngFor="let h of mapData?.list" [latitude]="h.lat" [longitude]="h.lang"> 
     <sebm-google-map-info-window [maxWidth]="300"> 
      <strong>{{h.info}}</strong> 
     </sebm-google-map-info-window> 
    </sebm-google-map-marker> 
</sebm-google-map> 

Component.ts文件

@Component({ 
    selector: 'google-map', 
    templateUrl: './google-map.component.html', 
    providers: [MapDataService] 
}) 

export class googleMapComponent implements OnInit, OnChanges { 
    center:any; 
    @Input() mapData: Array<Object>; 
    public constructor(private mapService: MapDataService) { 
     this.center = {}; 
     this.center['lat'] = 28.457523; 
     this.center['long'] = 77.026344; 
    } 
} 

感謝

注:圖片是從This question具有相同的問題(但在簡單的谷歌地圖)

回答

2

簡答採取:

ngOnInit() { 
    this.browserWidth = window.innerWidth; 
    this.lngDiff = this.browserWidth * .000335; 
} 

和更新:this.center['long'] = 77.026344;this.center['long'] = 77.026344+this.lngDiff;


龍答:

我必須做同樣的事情,我必須彌補地圖的權利(但保持它在瀏覽器的右半部分爲中心)。爲了做到這一點,我根據3種不同的瀏覽器寬度1920px, 1280px, and 790px,手動將地圖集中在屏幕右側所需的位置。

地圖上的經度差異對於所有三點都不同。對於1920px需要偏離地圖的經度爲.651280px的差值爲.43790px的差值爲.26

然後,我做了一些數學計算出所有這三點有什麼共同點(我必須解決x)。

1920 * x = .651280 * x = .43790 * x = .26

因爲這些點並不完全是我正在尋找的中點,所以我對這些點的結果取平均值。我得到的是.000335這是你乘以瀏覽器寬度的數字。

您現在可以將this.lngDiff添加到您的經度以將地圖偏移到左側或減去以將地圖偏移到右側。

The result is this