geo

GeoJSONSerialization

Encode & Decode Between GeoJSON & MapKit Shapes

Showing:

Popularity

Downloads/wk

0

GitHub Stars

236

Maintenance

Last Commit

2yrs ago

Contributors

5

Package

Dependencies

0

License

MIT

Categories

Readme

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

Mattt

License

GeoJSONSerialization is available under the MIT license. See the LICENSE file for more info.

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100