bring in tweaked compass snapping fixes from @friedbunny

This commit is contained in:
Justin R. Miller
2015-03-22 12:14:20 -07:00
parent eded1d90aa
commit 9dd9bd6e9d

View File

@@ -703,6 +703,8 @@ mbgl::DefaultFileSource *mbglFileSource = nullptr;
[self unrotateIfNeededAnimated:YES];
[self snapCompassIfNeeded];
[self notifyMapChange:@(mbgl::MapChangeRegionDidChangeAnimated)];
}
}
@@ -1710,7 +1712,7 @@ CLLocationCoordinate2D latLngToCoordinate(mbgl::LatLng latLng)
return (self.zoomLevel > 3);
}
// correct rotations to north as needed
// correct rotations to north as needed at low zooms
//
- (void)unrotateIfNeededAnimated:(BOOL)animated
{
@@ -1884,6 +1886,22 @@ CLLocationCoordinate2D latLngToCoordinate(mbgl::LatLng latLng)
}
}
// reset north on very small gesture-induced angles
//
- (void)snapCompassIfNeeded
{
double degrees = mbglMap->getBearing() * -1;
while (degrees >= 360) degrees -= 360;
while (degrees < 0) degrees += 360;
double tolerance = 7;
if (self.compass.alpha > 0 && (degrees < tolerance || degrees > 360 - tolerance))
{
[self resetNorthAnimated:YES];
}
}
+ (UIImage *)resourceImageNamed:(NSString *)imageName
{
if ( ! [[imageName pathExtension] length])