GMSMapView未放大

时间:2016-06-25 20:33:23

标签: ios google-maps zoom gmsmapview

我正在从自动填充API加载Google地方信息,然后查找地点详细信息以放大我的地图。

我的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]];
}

2 个答案:

答案 0 :(得分:0)

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

示例代码如下所示:

<强>目标C

[mapView_ animateToZoom:12];

<强>夫特

mapView.animateToZoom(12)

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

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

而且,这个SO帖子 - GMSMapView animateToCameraPosition zoom in - zoom out animation也可能会有所帮助。

答案 1 :(得分:0)

我猜你在这里做错了什么。你说那个

  

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

为了清楚起见,缩放级别4是&gt;缩放级别2.如果您希望放大地图,请尝试使用更高的值,即大约15,16等。

希望它有所帮助。