我已经用 Angular 4 安装了 Angular 谷歌地图。
模板很简单:
<agm-map [latitude]="58.150587" [longitude]="7.978571" [zoom]="19" [mapTypeId]="'satellite'"></agm-map>
我得到的是一个不错的 3D 版本,如下所示:
我希望它是卫星视图。但我不想要 3D 效果。我希望它是平面的,二维的,像这样:
我已经用 Angular 4 安装了 Angular 谷歌地图。
模板很简单:
<agm-map [latitude]="58.150587" [longitude]="7.978571" [zoom]="19" [mapTypeId]="'satellite'"></agm-map>
我得到的是一个不错的 3D 版本,如下所示:
我希望它是卫星视图。但我不想要 3D 效果。我希望它是平面的,二维的,像这样:
我在我的一个应用程序中使用了这个模块,显示的地图是 2d 的。与您的代码的唯一区别是我没有的 [mapTypeId] :
<div class="map">
<agm-map [latitude]="lat" [longitude]="lng" [zoom]="17">
<agm-marker [latitude]="lat" [longitude]="lng"></agm-marker>
</agm-map>
</div>
[maptypeId] 属性有 4 个可能的值:
路线图,这是您想要的(如果未提供该属性,则默认为路线图)
卫星,这是一个谷歌地球表示
混合+地形,但我从未使用过这些。
为了获得 2d 表示,删除属性或将其值更改为 [mapTypeId]="'roadmap'"
编辑:留下以前的答案,因为它可能对其他人有帮助,但您的确切问题的解决方案如下:
您需要在您的 agm-map 标签上添加一个 mapReady 事件
<agm-map [latitude]="lat" [longitude]="lng" [zoom]="17" [mapTypeId]="'hybrid'" (mapReady)="changeTilt($event)">
当谷歌地图完全初始化时会触发此事件。结果它将返回您的 google.maps.Map 实例。您需要创建一个私有属性才能存储它。
private _map: any;
然后您可以更改属性并使用您想要的方法:
changeTilt(map) {
this._map = map;
this._map.setTilt(0);
}
我非常感谢 cholexa 为这个解决方案提供了巨大的帮助(在 angular2-google-map gitter 聊天中)