Changeset: 7c8ee09c7cf8 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7c8ee09c7cf8
Modified Files:
geom/monetdb5/geom.c
Branch: geo
Log Message:
wkbFromText fixed back in assignement of correct value to geometry type
obtained using the geos created WKB
diffs (47 lines):
diff --git a/geom/monetdb5/geom.c b/geom/monetdb5/geom.c
--- a/geom/monetdb5/geom.c
+++ b/geom/monetdb5/geom.c
@@ -2075,19 +2075,19 @@ str wkbFromText(wkb **geomWKB, str *geom
char *errbuf = NULL;
str ex;
- if(*tpe > 2)
- te=1;
-
*geomWKB = NULL;
- if (wkbFROMSTR(*geomWKT, &len, geomWKB, *srid) &&
- (wkb_isnil(*geomWKB) || *tpe==0 || *tpe == wkbGeometryCollection ||
(te += *((*geomWKB)->data + 1) & 0x0f) == *tpe)) {
+ if (wkbFROMSTR(*geomWKT, &len, geomWKB, *srid) &&
+ (wkb_isnil(*geomWKB) || *tpe==0 || *tpe ==
wkbGeometryCollection || (te = ((*((*geomWKB)->data + 1) & 0x0f)+(*tpe>2))) ==
*tpe)) {
return MAL_SUCCEED;
}
if (*geomWKB == NULL) {
*geomWKB = wkb_nil;
}
-
+
+ //get back the correct value for geos
+ te-= (te<4);
+
if (*tpe > 0 && te != *tpe)
throw(MAL, "wkb.FromText", "Geometry not type '%d: %s' but '%d:
%s' instead", *tpe, geom_type2str(*tpe,0), te, geom_type2str(te,0));
errbuf = GDKerrbuf;
@@ -2278,7 +2278,6 @@ str wkbMLineStringToPolygon(wkb** geomWK
char* toStr = NULL;
size_t len = 0;
wkbTOSTR(&toStr, &len, linestringsWKB[i]);
- fprintf(stderr, "%f %s\n", linestringsArea[i], toStr);
GDKfree(toStr);
}
@@ -2342,7 +2341,8 @@ str wkbMLineStringToPolygon(wkb** geomWK
GEOSGeom_destroy(finalGeometry);
GDKfree(internalGeometries);
} else if(*flag == 1) {
-
+ *geomWKB = wkb_nil;
+ throw(MAL, "geom.MLineStringToPolygon", "Multipolygon from
string has not been defined");
} else {
*geomWKB = wkb_nil;
throw(MAL, "geom.MLineStringToPolygon", "Uknown flag");
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list