diff options
author | Minh Nguyễn <mxn@1ec5.org> | 2017-04-06 08:30:34 -0700 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2017-04-06 09:22:51 -0700 |
commit | 83824203143d85b40362317ba76313b34be782e4 (patch) | |
tree | 8291d7dea18b2fb03a5ad8513bc8f8f1251795f7 /platform/macos/src | |
parent | ab6185fdc343448d3b6cbfc5e2bc91b5242fdf9f (diff) | |
download | qtlocation-mapboxgl-83824203143d85b40362317ba76313b34be782e4.tar.gz |
[ios, macos] Fail gracefully on invalid coordinates
Invalid coordinates no longer cause an exception to be raised immediately when used in conversion methods and model objects. Instead, the appropriate invalid values are used, consistent with MapKit. Exceptions are still raised when invalid model objects are used with the map.
Diffstat (limited to 'platform/macos/src')
-rw-r--r-- | platform/macos/src/MGLMapView.mm | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/platform/macos/src/MGLMapView.mm b/platform/macos/src/MGLMapView.mm index 42f38cd99f..e19755044b 100644 --- a/platform/macos/src/MGLMapView.mm +++ b/platform/macos/src/MGLMapView.mm @@ -2618,6 +2618,9 @@ public: #pragma mark Geometric methods - (NSPoint)convertCoordinate:(CLLocationCoordinate2D)coordinate toPointToView:(nullable NSView *)view { + if (!CLLocationCoordinate2DIsValid(coordinate)) { + return NSMakePoint(NAN, NAN); + } return [self convertLatLng:MGLLatLngFromLocationCoordinate2D(coordinate) toPointToView:view]; } @@ -2644,6 +2647,9 @@ public: } - (NSRect)convertCoordinateBounds:(MGLCoordinateBounds)bounds toRectToView:(nullable NSView *)view { + if (!CLLocationCoordinate2DIsValid(bounds.sw) || !CLLocationCoordinate2DIsValid(bounds.ne)) { + return CGRectNull; + } return [self convertLatLngBounds:MGLLatLngBoundsFromCoordinateBounds(bounds) toRectToView:view]; } |