我正在从自动完成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]];
}发布于 2016-06-28 15:47:15
我猜你在这里做错了什么。你说过
最初,缩放级别是4。当我设置坐标和缩放级别时,尽管调试器说缩放级别为2,它仍然保持缩放。
为了清楚起见,变焦级别4是>缩放级别2。如果你想放大你的地图,试着使用更高的值,比如15,16等等。
希望能帮上忙。
发布于 2016-06-28 08:10:59
您可以使用缩放上的animateToZoom:以编程方式设置GMSMapView。
示例代码如下:
目标-C
[mapView_ animateToZoom:12];
Swift
mapView.animateToZoom(12)
除此之外,您还可以通过设置一个分钟和最大缩放级别来限制地图可用的缩放范围。缩放范围必须使用setMinZoom:maxZoom:方法设置,但是可以使用minZoom和maxZoom属性单独读取值。当只限制其中一个值时,这是有帮助的。
您可以在给定的文档中找到示例代码,还可以在与地图相关的其他方法中使用GMSMapView类引用。
而且,这样的后GMSMapView animateToCameraPosition放大-缩小动画可能也有帮助。
https://stackoverflow.com/questions/38032735
复制相似问题