react-native/React/Views/RCTConvert+MapKit.m

53 lines
1.2 KiB
Objective-C

//
// RCTConvert+MapKit.m
// React
//
// Created by Nick Lockwood on 12/04/2015.
// Copyright (c) 2015 Facebook. All rights reserved.
//
#import "RCTConvert+MapKit.h"
#import "RCTConvert+CoreLocation.h"
@implementation RCTConvert(MapKit)
+ (MKCoordinateSpan)MKCoordinateSpan:(id)json
{
json = [self NSDictionary:json];
return (MKCoordinateSpan){
[self CLLocationDegrees:json[@"latitudeDelta"]],
[self CLLocationDegrees:json[@"longitudeDelta"]]
};
}
+ (MKCoordinateRegion)MKCoordinateRegion:(id)json
{
return (MKCoordinateRegion){
[self CLLocationCoordinate2D:json],
[self MKCoordinateSpan:json]
};
}
+ (MKShape *)MKShape:(id)json
{
json = [self NSDictionary:json];
// TODO: more shape types
MKShape *shape = [[MKPointAnnotation alloc] init];
shape.coordinate = [self CLLocationCoordinate2D:json];
shape.title = [RCTConvert NSString:json[@"title"]];
shape.subtitle = [RCTConvert NSString:json[@"subtitle"]];
return shape;
}
RCT_ARRAY_CONVERTER(MKShape)
RCT_ENUM_CONVERTER(MKMapType, (@{
@"standard": @(MKMapTypeStandard),
@"satellite": @(MKMapTypeSatellite),
@"hybrid": @(MKMapTypeHybrid),
}), MKMapTypeStandard, integerValue)
@end