From d0068f6d3530a8108f52f5044d3f95a5a60a39f9 Mon Sep 17 00:00:00 2001 From: Greg Combs Date: Fri, 10 Jun 2011 00:58:50 -0500 Subject: [PATCH] Added code to load WKB polygons. Useful for folks who store and operate on binary geometry in databases like MySQL ... Also using binary geometry is more efficient when storing on the device, or as an alternative to sending lengthy strings of text coordinates over Edge or 3G cellular networks. Included some sample binary polygons in plists (for convenience) to try out in the demo app. --- Demo App/Classes/ShapeKitViewController.m | 23 ++++- Demo App/PlanID20-82.plist | Bin 0 -> 73616 bytes Demo App/PlanID20-83.plist | Bin 0 -> 49612 bytes Demo App/PlanID20-84.plist | Bin 0 -> 16056 bytes Demo App/ShapeKit.xcodeproj/project.pbxproj | 12 +++ ShapeKit/ShapeKitGeometry.h | 61 +++++++++++++ ShapeKit/ShapeKitGeometry.mm | 90 +++++++++++++++++++- 7 files changed, 180 insertions(+), 6 deletions(-) create mode 100644 Demo App/PlanID20-82.plist create mode 100644 Demo App/PlanID20-83.plist create mode 100644 Demo App/PlanID20-84.plist diff --git a/Demo App/Classes/ShapeKitViewController.m b/Demo App/Classes/ShapeKitViewController.m index e63eef1..d8a2b35 100644 --- a/Demo App/Classes/ShapeKitViewController.m +++ b/Demo App/Classes/ShapeKitViewController.m @@ -30,7 +30,16 @@ - (void)loadView { } */ - +- (ShapeKitPolygon *)loadWKBPolygonFromFile:(NSString *)file { + ShapeKitPolygon * poly = nil; + NSString *path = [[NSBundle mainBundle] pathForResource:file ofType:@"plist"]; + NSDictionary *stupidDict = [NSDictionary dictionaryWithContentsOfFile:path]; + NSData *geomData = [stupidDict objectForKey:@"shape"]; + if (geomData && [geomData length]) { + poly = [[[ShapeKitPolygon alloc] initWithWKB:[geomData bytes] size:[geomData length]] autorelease]; + } + return poly; +} // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. - (void)viewDidLoad { @@ -134,13 +143,19 @@ - (void)viewDidLoad { [theMap addOverlay:[line convexHull].geometry]; [theMap addAnnotation:[line pointOnSurface].geometry]; [theMap addAnnotation:[line centroid].geometry]; - - - [myPoint release]; [polygon release]; [line release]; + + polygon = [self loadWKBPolygonFromFile:@"PlanID20-82"]; + polygon.geometry.title = @"82"; + [theMap addOverlay:polygon.geometry]; + + polygon = [self loadWKBPolygonFromFile:@"PlanID20-83"]; + polygon.geometry.title = @"83"; + [theMap addOverlay:polygon.geometry]; + } diff --git a/Demo App/PlanID20-82.plist b/Demo App/PlanID20-82.plist new file mode 100644 index 0000000000000000000000000000000000000000..4dae31a61456b504e6a8123dafe56563be137801 GIT binary patch literal 73616 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%0D15^fefV#IwZJa;*hMR2;_Js-r+35CYrjN} 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≺<>-4=YhDS=mmds#1%RLiM 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 Z!X}DM0vkSj+{=3|-v95Hcif6T{{Snz+DQNa literal 0 HcmV?d00001 diff --git a/Demo App/PlanID20-83.plist b/Demo App/PlanID20-83.plist new file mode 100644 index 0000000000000000000000000000000000000000..8d99a3c698acb143d2454dfa81e39d103e8e4183 GIT binary patch literal 49612 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 ShmDo_Hw(T)|G$5 #import #import +/* +// Basic Type definitions +// byte : 1 byte +// uint32 : 32 bit unsigned integer (4 bytes) +// double : double precision number (8 bytes) +// Building Blocks : Point, LinearRing + + typedef struct LinearRing { + unsigned int numPoints; + CLLocationCoordinate2D points[1]; + } LinearRing; + + enum wkbGeometryType { + wkbPoint = 1, + wkbLineString = 2, + wkbPolygon = 3, + wkbMultiPoint = 4, + wkbMultiLineString = 5, + wkbMultiPolygon = 6 + }; + + enum wkbByteOrder { + wkbXDR = 0, // Big Endian + wkbNDR = 1 // Little Endian + }; + + typedef struct WKBPoint { + unsigned char byteOrder; + unsigned int wkbType; // 1=wkbPoint + CLLocationCoordinate2D point; + } WKBPoint; + + typedef struct WKBLineString { + unsigned char byteOrder; + unsigned int wkbType; // 2=wkbLineString + unsigned int numPoints; + CLLocationCoordinate2D points[1]; + } WKBLineString; + + typedef struct WKBPolygon { + unsigned char byteOrder; + unsigned int wkbType; // 3=wkbPolygon + unsigned int numRings; + LinearRing rings[1]; + } WKBPolygon ; + + typedef struct WKBMultiPoint { + unsigned char byteOrder; + unsigned int wkbType; // 4=wkbMultipoint + unsigned int num_wkbPoints; + WKBPoint WKBPoints[1]; + } WKBMultiPoint; + + typedef struct WKBMultiLineString { + unsigned char byteOrder; + unsigned int wkbType; // 5=wkbMultiLineString + unsigned int num_wkbLineStrings; + WKBLineString WKBLineStrings[1]; + } WKBMultiLineString; + */ @interface ShapeKitGeometry : NSObject { NSString *wktGeom; @@ -31,6 +91,7 @@ @property (nonatomic) GEOSGeometry *geosGeom; @property (nonatomic) unsigned int numberOfCoords; +-(id)initWithWKB:(const unsigned char *) wkb size:(size_t)wkb_size; -(id)initWithWKT:(NSString *) wkt; -(id)initWithGeosGeometry:(GEOSGeometry *)geom; -(void) reprojectTo:(NSString *)newProjectionDefinition; diff --git a/ShapeKit/ShapeKitGeometry.mm b/ShapeKit/ShapeKitGeometry.mm index 74d91d0..fa28ea5 100644 --- a/ShapeKit/ShapeKitGeometry.mm +++ b/ShapeKit/ShapeKitGeometry.mm @@ -13,7 +13,6 @@ #import "ShapeKitGeometry.h" #import - @implementation ShapeKitGeometry @synthesize wktGeom,geomType, projDefinition ,geosGeom, numberOfCoords; @@ -28,6 +27,23 @@ - (id) init return self; } +-(id)initWithWKB:(const unsigned char *) wkb size:(size_t)wkb_size { + [self init]; + + GEOSWKBReader *WKBReader = GEOSWKBReader_create_r(handle); + self.geosGeom = GEOSWKBReader_read_r(handle, WKBReader, wkb, wkb_size); + GEOSWKBReader_destroy_r(handle, WKBReader); + + self.geomType = [NSString stringWithUTF8String:GEOSGeomType_r(handle, geosGeom)]; + + GEOSWKTWriter *WKTWriter = GEOSWKTWriter_create_r(handle); + self.wktGeom = [NSString stringWithUTF8String:GEOSWKTWriter_write_r(handle, WKTWriter,geosGeom)]; + GEOSWKTWriter_destroy_r(handle, WKTWriter); + + return self; +} + + -(id)initWithWKT:(NSString *) wkt { [self init]; @@ -45,7 +61,6 @@ -(id)initWithWKT:(NSString *) wkt { return self; } - -(id)initWithGeosGeometry:(GEOSGeometry *)geom { [self init]; geosGeom = geom; @@ -208,6 +223,27 @@ - (void) dealloc @implementation ShapeKitPolyline @synthesize geometry;//,numberOfCoords; +-(id)initWithWKB:(const unsigned char *) wkb size:(size_t)wkb_size{ + [super initWithWKB:wkb size:wkb_size]; + GEOSCoordSequence *sequence = GEOSCoordSeq_clone_r(handle, GEOSGeom_getCoordSeq_r(handle, geosGeom)); + GEOSCoordSeq_getSize_r(handle, sequence, &numberOfCoords); + CLLocationCoordinate2D coords[numberOfCoords]; + + for (int coord = 0; coord < numberOfCoords; coord++) { + double xCoord = NULL; + GEOSCoordSeq_getX_r(handle, sequence, coord, &xCoord); + + double yCoord = NULL; + GEOSCoordSeq_getY_r(handle, sequence, coord, &yCoord); + coords[coord] = CLLocationCoordinate2DMake(yCoord, xCoord); + } + geometry = [MKPolyline polylineWithCoordinates:coords count:numberOfCoords]; + + GEOSCoordSeq_destroy_r(handle, sequence); + + return self; +} + -(id)initWithWKT:(NSString *) wkt { [super initWithWKT:wkt]; GEOSCoordSequence *sequence = GEOSCoordSeq_clone_r(handle, GEOSGeom_getCoordSeq_r(handle, geosGeom)); @@ -285,6 +321,56 @@ - (void) dealloc @implementation ShapeKitPolygon @synthesize geometry;//,numberOfCoords; +-(id)initWithWKB:(const unsigned char *) wkb size:(size_t)wkb_size{ + size_t length = wkb_size; + + [super initWithWKB:wkb size:length]; + GEOSCoordSequence *sequence = nil; + + int numInteriorRings = GEOSGetNumInteriorRings_r(handle, geosGeom); + NSMutableArray *interiors = [[NSMutableArray alloc] init]; + int interiorIndex = 0; + for (interiorIndex = 0; interiorIndex< numInteriorRings; interiorIndex++) { + const GEOSGeometry *interior = GEOSGetInteriorRingN_r(handle, geosGeom, interiorIndex); + sequence = GEOSCoordSeq_clone_r(handle, GEOSGeom_getCoordSeq_r(handle, interior)); + unsigned int numCoordsInt = 0; + GEOSCoordSeq_getSize_r(handle, sequence, &numCoordsInt); + CLLocationCoordinate2D coordsInt[numCoordsInt]; + for (int coord = 0; coord < numCoordsInt; coord++) { + double xCoord = NULL; + + GEOSCoordSeq_getX_r(handle, sequence, coord, &xCoord); + + double yCoord = NULL; + GEOSCoordSeq_getY_r(handle, sequence, coord, &yCoord); + coordsInt[coord] = CLLocationCoordinate2DMake(yCoord, xCoord); + } + [interiors addObject:[MKPolygon polygonWithCoordinates:coordsInt count:numCoordsInt]]; + GEOSCoordSeq_destroy_r(handle, sequence); + } + const GEOSGeometry *exterior = GEOSGetExteriorRing_r(handle, geosGeom); + sequence = GEOSCoordSeq_clone_r(handle, GEOSGeom_getCoordSeq_r(handle, exterior)); + GEOSCoordSeq_getSize_r(handle, sequence, &numberOfCoords); + CLLocationCoordinate2D coordsExt[numberOfCoords]; + for (int coord = 0; coord < numberOfCoords; coord++) { + double xCoord = NULL; + GEOSCoordSeq_getX_r(handle, sequence, coord, &xCoord); + + double yCoord = NULL; + GEOSCoordSeq_getY_r(handle, sequence, coord, &yCoord); + coordsExt[coord] = CLLocationCoordinate2DMake(yCoord, xCoord); + } + if ([interiors count]) + geometry = [MKPolygon polygonWithCoordinates:coordsExt count:numberOfCoords interiorPolygons:interiors]; + else + geometry = [MKPolygon polygonWithCoordinates:coordsExt count:numberOfCoords]; + + GEOSCoordSeq_destroy_r(handle, sequence); + [interiors release]; + + return self; +} + -(id)initWithWKT:(NSString *) wkt { [super initWithWKT:wkt]; GEOSCoordSequence *sequence = GEOSCoordSeq_clone_r(handle, GEOSGeom_getCoordSeq_r(handle, GEOSGetExteriorRing(geosGeom)));