我正在学习为iOS开发。我正在使用Google Maps API for iOS来制作地图。我已经在我的项目中添加了一个视图,我已将其放在我的检查器元素中,如GMSMapView。
在我的代码中,我将此代码放在下面:
- (void) setMapView:(GMSMapView *)mapView {
if (!mapView) {
mapView = [[GMSMapView alloc] initWithFrame:mapView.bounds];
}
googleMap = mapView;
}
地图有效,但我想在这张地图上设置我的相机。在viewDidLoad
函数中,我将下面的代码放在了:
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683
longitude:151.2086
zoom:12];
self.mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
但谷歌地图只是在伦敦加载这张地图我不知道为什么。这是从西德尼协调的。我试过googleMap = [GMSMapView mapWithFrame:CGRectZero camera:camera];
,但也不行。
任何人都可以帮助我?
答案 0 :(得分:1)
我遇到了同样的问题。一旦分配了地图,您可以通过设置动画到相机位置来修复它。我在动画到新相机位置之前添加了延迟。这很有效。
- (void)viewDidLoad
{
self.mapView = [[GMSMapView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)]; // Any Frame
double delayInSeconds = 0.2;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.8683
longitude:151.2086
zoom:12];
[self.mapView animateToCameraPosition:camera];
});
}