Here is the latest workaround which works with SDK 1.5.
- (void)moveCompassButton:(GMSMapView *) map{
for(UIView *view in [map subviews]){
NSRange isRange = [view.description rangeOfString:@"GMSUISettingsView"];
if(isRange.location != NSNotFound){
for(UIView *subview in [view subviews]){
NSRange isRange2 = [subview.description rangeOfString:@"GMSCompassButton"];
if(isRange2.location != NSNotFound){
CGRect frame = view.frame;
frame.origin.y = 55;
frame.origin.x = map.frame.size.width/2 - 10;
[view setFrame:frame];
}
}
}
}
}
You can call this function with your map view as a parameter and you are good to go.