| 58 | }; |
| 59 | |
| 60 | static bool createBlob(const hadmap::Points3d& geom, const int srs, sqlite3_blob_data& blob) { |
| 61 | if (geom.empty()) return false; |
| 62 | gaiaGeomCollPtr coll = gaiaAllocGeomColl(); |
| 63 | coll->Srid = srs; |
| 64 | |
| 65 | gaiaLinestringPtr pline = 0; |
| 66 | coll->DimensionModel = GAIA_XY_Z; |
| 67 | pline = gaiaAllocLinestringXYZ(static_cast<int>(geom.size())); |
| 68 | |
| 69 | for (size_t i = 0; i < geom.size(); ++i) gaiaSetPointXYZ(pline->Coords, i, geom[i].x, geom[i].y, geom[i].z); |
| 70 | |
| 71 | gaiaInsertLinestringInGeomColl(coll, pline); |
| 72 | gaiaToSpatiaLiteBlobWkb(coll, &blob.data, &blob.size); |
| 73 | gaiaFreeGeomColl(coll); |
| 74 | |
| 75 | return true; |
| 76 | } |
| 77 | |
| 78 | static bool parseBlob(const sqlite3_blob_data& blob, hadmap::Points3d& geom) { |
| 79 | geom.clear(); |
no test coverage detected