-
Notifications
You must be signed in to change notification settings - Fork 27
Open
Description
The code should be changed to like this:
-(id)initWithWKB:(const unsigned char *) wkb size:(size_t)wkb_size {
self = [self init];
if (self)
{
GEOSContextHandle_t handle = (GEOSContextHandle_t)self.handle;
GEOSWKBReader *WKBReader = GEOSWKBReader_create_r(handle);
_geosGeom = GEOSWKBReader_read_r(handle, WKBReader, wkb, wkb_size);
GEOSWKBReader_destroy_r(handle, WKBReader);
char *typeString = GEOSGeomType_r(handle, self.geosGeom);
self.geomType = [NSString stringWithUTF8String: typeString];
delete typeString;
GEOSWKTWriter *WKTWriter = GEOSWKTWriter_create_r(handle);
char *wktString = GEOSWKTWriter_write_r(handle, WKTWriter, self.geosGeom);
self.wktGeom = [NSString stringWithUTF8String:wktString];
delete wktString;
GEOSWKTWriter_destroy_r(handle, WKTWriter);
}
return self;
}
-(id)initWithWKT:(NSString *) wkt {
self = [self init];
if (self)
{
GEOSContextHandle_t handle = (GEOSContextHandle_t)_handle;
GEOSGeometry *geosGeom = self.geosGeom;
GEOSWKTReader *WKTReader = GEOSWKTReader_create_r(handle);
_geosGeom = GEOSWKTReader_read_r(handle, WKTReader, [wkt UTF8String]);
GEOSWKTReader_destroy_r(handle, WKTReader);
char *typeString = GEOSGeomType_r(handle, geosGeom);
self.geomType = [NSString stringWithUTF8String:typeString];
delete typeString;
GEOSWKTWriter *WKTWriter = GEOSWKTWriter_create_r(handle);
char *wktString = GEOSWKTWriter_write_r(handle, WKTWriter, geosGeom);
self.wktGeom = [NSString stringWithUTF8String:wktString];
delete wktString;
GEOSWKTWriter_destroy_r(handle, WKTWriter);
}
return self;
}
-(id)initWithGeosGeometry:(void *)geom {
self = [self init];
if (self)
{
GEOSContextHandle_t handle = (GEOSContextHandle_t)_handle;
_geosGeom = (GEOSGeometry *)geom;
char *typeString = GEOSGeomType_r(handle, _geosGeom);
self.geomType = [NSString stringWithUTF8String:typeString];
delete typeString;
GEOSWKTWriter *WKTWriter = GEOSWKTWriter_create_r(handle);
char *wktString = GEOSWKTWriter_write_r(handle, WKTWriter, _geosGeom);
self.wktGeom = [NSString stringWithUTF8String:wktString];
delete wktString;
GEOSWKTWriter_destroy_r(handle, WKTWriter);
}
return self;
}
-(id)initWithCoordinate:(CLLocationCoordinate2D)coordinate {
self = [self init];
if (self) {
GEOSContextHandle_t handle = (GEOSContextHandle_t)_handle;
GEOSCoordSequence *seq = GEOSCoordSeq_create_r(handle, 1,2);
GEOSCoordSeq_setX_r(handle, seq, 0, coordinate.longitude);
GEOSCoordSeq_setY_r(handle, seq, 0, coordinate.latitude);
GEOSGeometry *newGeosGeom = GEOSGeom_createPoint_r(handle, seq);
NSAssert (newGeosGeom != NULL, @"Error creating ShapeKitPoint");
_geosGeom=newGeosGeom;
// TODO: Move the destroy into the dealloc method
// GEOSCoordSeq_destroy(seq);
_coords = (CLLocationCoordinate2D *) malloc( sizeof(CLLocationCoordinate2D) );
*_coords = coordinate;
GEOSWKTWriter *WKTWriter = GEOSWKTWriter_create_r(handle);
char *wktString = GEOSWKTWriter_write_r(handle, WKTWriter, newGeosGeom);
self.wktGeom = [NSString stringWithUTF8String: wktString];
delete wktString;
GEOSWKTWriter_destroy_r(handle, WKTWriter);
}
return self;
}
Metadata
Metadata
Assignees
Labels
No labels