将谷歌地图的中心移动到右角2

时间:2017-04-12 11:14:21

标签: google-maps angular angular-google-maps

我正在使用angular2-google-map

我想将中心移到左侧。

现在是什么 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,但问题相同(但在简单的谷歌地图中)

1 个答案:

答案 0 :(得分: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手动将地图放在屏幕右半部分的中心位置。{/ p>

地图上经度的差异对于所有三个点都不同。对于1920px,地图的经度需要.65偏离中心,1280px的差异为.43,而790px的差异为.26。 1}}。

然后我做了一些数学计算,弄清楚这三点有什么共同之处(我必须解决x)。

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

因为这些点并非我正在寻找的中点,所以我平均了所有这些点的结果。我得到的是.000335,这是您将浏览器宽度乘以的数字。

您现在可以将this.lngDiff添加到经度以将地图偏移到左侧,或者减去地图以向右偏移地图。

The result is this