fixes #2044: add -showAnnotations:animated:

This commit is contained in:
Justin R. Miller
2015-08-12 14:45:37 -07:00
parent d4159d5141
commit 772238a229
2 changed files with 30 additions and 0 deletions

View File

@@ -151,6 +151,13 @@ IB_DESIGNABLE
* @param animated Specify `YES` to animate the change by smoothly scrolling and zooming or `NO` to immediately display the given bounds. */
- (void)setVisibleCoordinates:(CLLocationCoordinate2D *)coordinates count:(NSUInteger)count edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated;
/** Sets the visible region so that the map displays the specified annotations.
*
* Calling this method updates the value in the visibleCoordinateBounds property and potentially other properties to reflect the new map region.
* @param annotations The annotations that you want to be visible in the map.
* @param animated `YES` if you want the map region change to be animated, or `NO` if you want the map to display the new region immediately without animations. */
- (void)showAnnotations:(NS_ARRAY_OF(id <MGLAnnotation>) *)annotations animated:(BOOL)animated;
/** The heading of the map (measured in degrees) relative to true north.
*
* The value `0` means that the top edge of the map view corresponds to true north. The value `90` means the top of the map is pointing due east. The value `180` means the top of the map points due south, and so on. */

View File

@@ -2151,6 +2151,29 @@ CLLocationCoordinate2D MGLLocationCoordinate2DFromLatLng(mbgl::LatLng latLng)
}
}
- (void)showAnnotations:(NS_ARRAY_OF(id <MGLAnnotation>) *)annotations animated:(BOOL)animated
{
if ( ! annotations || ! annotations.count) return;
mbgl::LatLngBounds bounds;
for (id <MGLAnnotation> annotation in annotations)
{
if ([annotation conformsToProtocol:@protocol(MGLOverlay)])
{
bounds.extend(MGLLatLngBoundsFromCoordinateBounds(((id <MGLOverlay>)annotation).overlayBounds));
}
else
{
bounds.extend(MGLLatLngFromLocationCoordinate2D(annotation.coordinate));
}
}
[self setVisibleCoordinateBounds:MGLCoordinateBoundsFromLatLngBounds(bounds)
edgePadding:UIEdgeInsetsMake(100, 100, 100, 100)
animated:animated];
}
#pragma mark - User Location -
- (void)setShowsUserLocation:(BOOL)showsUserLocation