GMSMapView 没有放大

GMSMapView is not zooming in

我正在从自动完成中加载 Google 地点 API,然后查找地点详细信息以在我的地图上放大。

我在我的 XIB 中定义了一个 GMSMapView,当我 运行 我的视图控制器时我可以看到它。

最初缩放级别为 4。 当我设置坐标和缩放级别时,尽管我的调试器说缩放级别是 2,它仍然保持缩小。

如何放大?

(lldb) po self.map
<GMSMapView: 0x7f8c62a9ebc0; frame = (0 73.3333; 414 576.667); clipsToBounds = YES; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x7f8c67029fc0>; layer = <GMSMapLayer: 0x7f8c62a57aa0>>

(lldb) po self.map.camera
GMSCameraPosition 0x7f8c62d2d030: target:(29.741, -95.374) bearing:0.000 zoomLevel:2.000 viewingAngle:0.000


- (void)viewDidLoad {
    [super viewDidLoad];
    [self setupButtons];

    self.map.delegate = self;

    self.client = [GMSPlacesClient sharedClient];
    [self.client lookUpPlaceID:self.prediction.placeID callback:^(GMSPlace * _Nullable result, NSError * _Nullable error) {
        [self showResult:result];
    }];
}

- (void)showResult:(GMSPlace *)place {
    self.place = place;

GMSCameraPosition *position = [[GMSCameraPosition alloc] initWithTarget:place.coordinate zoom:0.2 bearing:0 viewingAngle:0];
    [self.map setCamera:position];
    [self.map animateWithCameraUpdate:[GMSCameraUpdate setTarget:place.coordinate zoom: 0.15]];   

    [self.map moveCamera:[GMSCameraUpdate setTarget:place.coordinate zoom: 0.15]];
}

您可以在 GMSMapView 上使用 animateToZoom: 以编程方式设置 zoom

示例代码如下:

Objective-C

[mapView_ animateToZoom:12];

Swift

mapView.animateToZoom(12)

除此之外,您还可以通过设置最小和最大缩放级别来限制地图可用的缩放范围。必须使用 setMinZoom:maxZoom: 方法设置缩放范围,但是可以使用 minZoommaxZoom 属性单独读取值。这在仅限制其中一个值时很有用。

您可以在给定的文档中找到示例代码,您也可以使用 GMSMapView Class Reference 与地图相关的其他方法。

而且,这个 SO post - 也可能有帮助。

我猜你做错了什么。你说的

Originally the zoom level is at 4. When I set the coordinate and zoom level, it stays zoomed out despite my debugger saying the zoom level is 2.

需要说明的是,缩放级别 4 > 缩放级别 2。如果您希望地图放大,请尝试使用更高的值,即大约 15、16 等。

希望对您有所帮助。