GeoJSONSerialization
在GeoJSON和 GeoJSON 以及 MapKit 形状之间编码和解码,遵循Foundation的 NSJSONSerialization
类的API约定。
#import <MapKit/MapKit.h>
#import "GeoJSONSerialization.h"
NSURL *URL = [[NSBundle mainBundle] URLForResource:@"map" withExtension:@"geojson"];
NSData *data = [NSData dataWithContentsOfURL:URL];
NSDictionary *geoJSON = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSArray *shapes = [GeoJSONSerialization shapesFromGeoJSONFeatureCollection:geoJSON error:nil];
for (MKShape *shape in shapes) {
if ([shape isKindOfClass:[MKPointAnnotation class]]) {
[mapView addAnnotation:shape];
} else if ([shape conformsToProtocol:@protocol(MKOverlay)]) {
[mapView addOverlay:(id <MKOverlay>)shape];
}
}
实现必要的
MKMapViewDelegate
方法后,生成的地图将类似于以下这样的。
Mattt Thompson
GeoJSONSerialization采用MIT许可。有关更多信息,请参阅LICENSE文件。