Dlatego chcę ograniczyć zakres przewijania Map Google do określonego prostokąta na mapie w oparciu o wartości szerokości i długości geograficznej. W tym celu napisałem poniższy kod:Płynne przewijanie w Google Maps SDK dla iOS
-(void) viewDidLoad{
startLat = 43.331635f;
startLong = -74.472913f;
endLat = 43.329106f;
endLong = -74.470589f;
float cameraPosLat = (startLat + endLat)/2.0f;
float cameraPosLong = (startLong + endLong)/2.0f;
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:cameraPosLat
longitude:cameraPosLong
zoom:18];
mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView.mapType = kGMSTypeSatellite;
mapView.delegate = self;
mapView.myLocationEnabled = YES;
[mapView setMinZoom:18 maxZoom:mapView.maxZoom];
self.view = mapView;
marker.map = mapView;
}
-(void) mapView:(GMSMapView *)delegateMapView didChangeCameraPosition:(GMSCameraPosition *)position{
if(delegateMapView.camera.target.latitude > startLat){
[delegateMapView moveCamera:[GMSCameraUpdate setTarget:CLLocationCoordinate2DMake(startLat, delegateMapView.camera.target.longitude)]];
}
if(delegateMapView.camera.target.latitude < endLat){
[delegateMapView moveCamera:[GMSCameraUpdate setTarget:CLLocationCoordinate2DMake(endLat, delegateMapView.camera.target.longitude)]];
}
if(delegateMapView.camera.target.longitude < startLong){
[delegateMapView moveCamera:[GMSCameraUpdate setTarget:CLLocationCoordinate2DMake(delegateMapView.camera.target.latitude, startLong)]];
}
if(delegateMapView.camera.target.longitude > endLong){
[delegateMapView moveCamera:[GMSCameraUpdate setTarget:CLLocationCoordinate2DMake(delegateMapView.camera.target.latitude, endLong)]];
}
}
I to działa dobrze, to zatrzymuje mapę punktów, które chcę zatrzymać się w, jednak jedna rzecz, którą zauważyłem jest to, że na krawędzie akceptowalnych granic przewijanie jest bardzo niewygodne, a nie płynne. Zastanawiałem się, czy istnieje jakiś sposób, aby upewnić się, że mapa pozostała w określonych granicach, jednocześnie zachowując płynne przewijanie na krawędziach.
Każda pomoc będzie bardzo ceniona, dziękuję!