我正在使用angular2-google-map
我想将中心移到左侧。
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,但问题相同(但在简单的谷歌地图中)
答案 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 = .65
,1280 * x = .43
和790 * x = .26
。
因为这些点并非我正在寻找的中点,所以我平均了所有这些点的结果。我得到的是.000335
,这是您将浏览器宽度乘以的数字。
您现在可以将this.lngDiff
添加到经度以将地图偏移到左侧,或者减去地图以向右偏移地图。