1

首先,我得到了原生的谷歌地图元素,因为据我所知,Angular 2 API 没有公开它。这看起来像下面的代码并且工作正常:

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

constructor(public mapApiWrapper: GoogleMapsAPIWrapper ) {}

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

所有这一切都很好,我可以在本机地图元素上设置选项,例如,下面的代码有效:

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

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

但是,当我尝试设置MapOptions并通过ZoomControlOptions移动缩放控件时,我得到了一堆错误。我尝试的是这样的:

    let zoomControlOptions: any = new google.maps.zoomControlOptions({
      style: google.maps.ControlPosition.small,
      position: google.maps.ControlPosition.LEFT_CENTER
    });

这抛出:

TypeError:google.maps.zoomControlOptions 不是构造函数

如果我尝试这样做:

    map.setOptions({
      zoom: 1,
      center: position,
      zoomControlOptions: {
        style: google.maps.ControlPosition.small,
        position: google.maps.ControlPosition.LEFT_CENTER
      }
    });

它抛出:

'{ zoom: number; 类型的参数 中心:任何;缩放控制选项:{ 风格:任何;职位:任何;}; }' 不可分配给“MapOptions”类型的参数。对象字面量只能指定已知属性,并且“MapOptions”类型中不存在“zoomControlOptions”

在这一点上我很迷茫,因为我看到在文档中MapOptions需要一个zoomControlOptionsarg ......

4

1 回答 1

1

当您直接操作本机地图时,您处于 angular2-google-maps 世界之外。

编辑

#1 的先前答案是错误的,似乎没有比 ZoomControlOptions 构造函数这样的东西。创建一个对象文字工作正常。

let zoomControlOptions: any = new {
  style: google.maps.ControlPosition.small,
  position: google.maps.ControlPosition.LEFT_CENTER
);

至于问题#2,(herehere)周围的示例总是将zoomControlOptions与zoomControl一起设置:true

于 2017-02-23T13:21:59.560 回答