[ios] Added some missing coordinate conversion methods

These methods were public in the OS X SDK but not here.
This commit is contained in:
Minh Nguyễn
2016-01-07 21:32:10 -08:00
committed by Minh Nguyễn
parent 6fcb9f4da1
commit b6fca67089
2 changed files with 35 additions and 0 deletions

View File

@@ -592,6 +592,28 @@ IB_DESIGNABLE
*/
- (CGPoint)convertCoordinate:(CLLocationCoordinate2D)coordinate toPointToView:(nullable UIView *)view;
/**
Converts a rectangle in the given view’s coordinate system to a geographic
bounding box.
@param rect The rectangle to convert.
@param view The view in whose coordinate system the rectangle is expressed.
@return The geographic bounding box coextensive with the given rectangle.
*/
- (MGLCoordinateBounds)convertRect:(CGRect)rect toCoordinateBoundsFromView:(nullable UIView *)view;
/**
Converts a geographic bounding box to a rectangle in the given view’s
coordinate system.
@param bounds The geographic bounding box to convert.
@param view The view in whose coordinate system the returned rectangle should
be expressed. If this parameter is `nil`, the returned rectangle is
expressed in the window’s coordinate system. If `view` is not `nil`, it must
belong to the same window as the map view.
*/
- (CGRect)convertCoordinateBounds:(MGLCoordinateBounds)bounds toRectToView:(nullable UIView *)view;
/**
Returns the distance spanned by one point in the map view's coordinate system
at the given latitude and current zoom level.

View File

@@ -1926,6 +1926,19 @@ std::chrono::steady_clock::duration MGLDurationInSeconds(float duration)
return MGLCoordinateBoundsFromLatLngBounds([self convertRect:rect toLatLngBoundsFromView:view]);
}
- (CGRect)convertCoordinateBounds:(MGLCoordinateBounds)bounds toRectToView:(nullable UIView *)view
{
return [self convertLatLngBounds:MGLLatLngBoundsFromCoordinateBounds(bounds) toRectToView:view];
}
/// Converts a geographic bounding box to a rectangle in the view’s coordinate
/// system.
- (CGRect)convertLatLngBounds:(mbgl::LatLngBounds)bounds toRectToView:(nullable UIView *)view {
CGRect rect = { [self convertLatLng:bounds.sw toPointToView:view], CGSizeZero };
rect = MGLExtendRect(rect, [self convertLatLng:bounds.ne toPointToView:view]);
return rect;
}
/// Converts a rectangle in the given view’s coordinate system to a geographic
/// bounding box.
- (mbgl::LatLngBounds)convertRect:(CGRect)rect toLatLngBoundsFromView:(nullable UIView *)view