MCPcopy Create free account
hub / github.com/Tencent/TAD_Sim / insertRoads

Method insertRoads

common/map_sdk/mapdb/src/sqlite_operation.cpp:1273–1347  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1271}
1272
1273bool sqliteOperation::insertRoads(hadmap::tx_road_vec& roads) {
1274 char sql[1024];
1275 sprintf(
1276 sql,
1277 "INSERT INTO '%s' (pkid, task_pkid, id, name, srs, junction_pkid, ground, section_num, road_type, direction, \
1278 toll, func_class, urban, paved, transition_type, lane_mark, material, geom) \
1279 VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
1280 ROAD_TABLE);
1281
1282 sqliteStmtPtr stmt(dbPtr, sql);
1283 if (!stmt.status()) {
1284 std::cerr << "failed to prepare insert road." << std::endl;
1285 return false;
1286 }
1287 sqlite3_exec(dbPtr, "begin;", 0, 0, 0);
1288
1289 int index_base = 1;
1290 bool complete = true;
1291 sqlite3_blob_data curvature, slope, heading, super_elevation, geom;
1292 for (hadmap::tx_road_vec::iterator iter = roads.begin(); iter != roads.end(); ++iter) {
1293 sqlite3_bind_int64(stmt, index_base, iter->pkid);
1294 sqlite3_bind_int64(stmt, index_base + 1, iter->task_pkid);
1295 sqlite3_bind_text(stmt, index_base + 2, iter->id, -1, SQLITE_TRANSIENT);
1296 sqlite3_bind_text(stmt, index_base + 3, iter->name, -1, SQLITE_TRANSIENT);
1297 sqlite3_bind_int(stmt, index_base + 4, iter->srs);
1298 sqlite3_bind_int64(stmt, index_base + 5, iter->junction_pkid);
1299 sqlite3_bind_double(stmt, index_base + 6, iter->ground);
1300 sqlite3_bind_int(stmt, index_base + 7, iter->section_num);
1301 sqlite3_bind_int(stmt, index_base + 8, iter->road_type);
1302 sqlite3_bind_int(stmt, index_base + 9, iter->direction);
1303 sqlite3_bind_int(stmt, index_base + 10, iter->toll);
1304 sqlite3_bind_int(stmt, index_base + 11, iter->func_class);
1305 sqlite3_bind_int(stmt, index_base + 12, iter->urban);
1306 sqlite3_bind_int(stmt, index_base + 13, iter->paved);
1307 sqlite3_bind_int(stmt, index_base + 14, iter->transition_type);
1308 sqlite3_bind_int(stmt, index_base + 15, iter->lane_mark);
1309 sqlite3_bind_int(stmt, index_base + 16, iter->material);
1310
1311 /*
1312 createBlob( iter->curvature, iter->srs, curvature );
1313 sqlite3_bind_blob(stmt, index_base+17, curvature.data, curvature.size, SQLITE_TRANSIENT);
1314
1315 createBlob( iter->slope, iter->srs, slope );
1316 sqlite3_bind_blob(stmt, index_base+18, slope.data, slope.size, SQLITE_TRANSIENT);
1317
1318 createBlob( iter->heading, iter->srs, heading );
1319 sqlite3_bind_blob(stmt, index_base+19, heading.data, heading.size, SQLITE_TRANSIENT);
1320
1321 createBlob( iter->super_elevation, iter->srs, super_elevation );
1322 sqlite3_bind_blob(stmt, index_base+20, super_elevation.data, super_elevation.size, SQLITE_TRANSIENT);
1323 */
1324
1325 createBlob(iter->geom, iter->srs, geom);
1326 sqlite3_bind_blob(stmt, index_base + 17, geom.data, geom.size, SQLITE_TRANSIENT);
1327
1328 int r = sqlite3_step(stmt);
1329 if (SQLITE_DONE != r) {
1330 std::cerr << "Insert Road Error, Id " << iter->id << ", Code " << r << std::endl;

Callers

nothing calls this directly

Calls 5

createBlobFunction · 0.85
statusMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
releaseMethod · 0.45

Tested by

no test coverage detected