我正在从自动填充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]];
}
答案 0 :(得分:0)
您可以在GMSMapView上使用animateToZoom:
以编程方式设置zoom。
示例代码如下所示:
<强>目标C 强>
[mapView_ animateToZoom:12];
<强>夫特强>
mapView.animateToZoom(12)
除此之外,您还可以通过设置最小和最大缩放级别来限制地图可用的缩放范围。必须使用setMinZoom:maxZoom:
方法设置缩放范围,但可以使用minZoom
和maxZoom
属性单独读取值。仅限制其中一个值时,这很有用。
您可以在给定文档中找到示例代码,也可以将GMSMapView Class Reference用于与地图相关的其他方法。
而且,这个SO帖子 - GMSMapView animateToCameraPosition zoom in - zoom out animation也可能会有所帮助。
答案 1 :(得分:0)
我猜你在这里做错了什么。你说那个
最初缩放级别为4.当我设置坐标和缩放级别时,尽管我的调试器说缩放级别为2,它仍然会缩小。
为了清楚起见,缩放级别4是&gt;缩放级别2.如果您希望放大地图,请尝试使用更高的值,即大约15,16等。
希望它有所帮助。