mattt / Geojsonserialization
Licence: mit
Encode & Decode Between GeoJSON & MapKit Shapes
Stars: ✭ 235
GeoJSONSerialization
This library is no longer maintained. In iOS 13+ and macOS 10.15+, use
MKGeoJSONDecoder
instead.
GeoJSONSerialization
encodes and decodes between
GeoJSON and
MapKit shapes,
following the API conventions of Foundation's NSJSONSerialization
class.
Usage
Decoding
#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];
}
}
After implementing the necessary
MKMapViewDelegate
methods, the resulting map will look something like this.
Contact
License
GeoJSONSerialization is available under the MIT license. See the LICENSE file for more info.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].