2013-07-31 8 views
13

używam metody aparat o wartości cyfrowej tak:Jak uzyskać aktualny poziom powiększenia z mapy google dla ios?

camera = [GMSCameraPosition cameraWithLatitude:37.35 longitude:-122.0 zoom:6]; 

i muszę automatycznie przerysować mapę z aktualnej pozycji poprzez czasowy:

-(void)gmapRedraw{ 
    NSLog(@"gmapRedraw"); 
// self.MapView.camera 
    [locationManager startUpdatingLocation]; 
    NSLog(@"lat %f, lon %f", locationManager.location.coordinate.latitude, locationManager.location.coordinate.longitude); 
    camera = [GMSCameraPosition cameraWithLatitude:locationManager.location.coordinate.latitude//37.36//-37.81319//-33.86 
             longitude:locationManager.location.coordinate.longitude//-122.0//144.96298//151.20 
               zoom:6]; 
    self.MapView.camera = camera; 
} 

-(void)timer{ 
    [NSTimer scheduledTimerWithTimeInterval:0.5 
            target:self 
            selector:@selector(gmapRedraw) 
            userInfo:nil 
            repeats:YES]; 
} 

ale jak mogę uzyskać aktualny zoom czy mogę ją zmienić poprzez dotknąć?

Odpowiedz

25

OK, znaleźć rozwiązanie, uzyskać aktualny zoom:

CGFloat currentZoom = self.MapView.camera.zoom; 

a następnie używać go w aparacie:

camera = [GMSCameraPosition cameraWithLatitude:locationManager.location.coordinate.latitude 
            longitude:locationManager.location.coordinate.longitude 
              zoom:currentZoom]; 
self.MapView.camera = camera; 
0

Jeśli chcesz wykryć poziom powiększenia podczas interakcji użytkownika z mapą. Możemy użyć Google Map delegat Metoda

func mapView(_ mapView: GMSMapView, didChange position: GMSCameraPosition) { 
    let zoom = mapView.camera.zoom 
    print("map zoom is ",String(zoom)) 
} 

Dont zapomniał dodać GMSMapViewDelegate