@@ -1200,6 +1200,10 @@ int QgsSpatiaLiteProvider::computeSizeFromGeosWKB2D( const unsigned char *blob,
1200
1200
p_in += points * ( 2 * sizeof ( double ) );
1201
1201
}
1202
1202
break ;
1203
+
1204
+ case QgsWkbTypes::UnknownGeometry:
1205
+ case QgsWkbTypes::NullGeometry:
1206
+ break ;
1203
1207
}
1204
1208
}
1205
1209
@@ -1382,6 +1386,10 @@ int QgsSpatiaLiteProvider::computeSizeFromGeosWKB3D( const unsigned char *blob,
1382
1386
p_in += points * ( 3 * sizeof ( double ) );
1383
1387
}
1384
1388
break ;
1389
+
1390
+ case QgsWkbTypes::UnknownGeometry:
1391
+ case QgsWkbTypes::NullGeometry:
1392
+ break ;
1385
1393
}
1386
1394
}
1387
1395
@@ -1479,6 +1487,10 @@ int QgsSpatiaLiteProvider::computeSizeFromMultiWKB3D( const unsigned char *p_in,
1479
1487
}
1480
1488
}
1481
1489
break ;
1490
+
1491
+ case QgsWkbTypes::UnknownGeometry:
1492
+ case QgsWkbTypes::NullGeometry:
1493
+ break ;
1482
1494
}
1483
1495
}
1484
1496
@@ -2389,169 +2401,8 @@ void QgsSpatiaLiteProvider::convertFromGeosWKB3D( const unsigned char *blob,
2389
2401
}
2390
2402
break ;
2391
2403
2392
- case QgsWkbTypes::GeometryCollection:
2393
- entities = gaiaImport32 ( p_in, little_endian, endian_arch );
2394
- p_in += 4 ;
2395
- gaiaExport32 ( p_out, entities, 1 , endian_arch );
2396
- p_out += 4 ;
2397
- for ( ie = 0 ; ie < entities; ie++ )
2398
- {
2399
- QgsWkbTypes::Type type2 = static_cast < QgsWkbTypes::Type >( gaiaImport32 ( p_in + 1 , little_endian, endian_arch ) );
2400
- p_in += 5 ;
2401
- *p_out++ = 0x01 ;
2402
- switch ( QgsWkbTypes::geometryType ( type2 ) )
2403
- {
2404
- case QgsWkbTypes::PointGeometry:
2405
- switch ( nDims )
2406
- {
2407
- case GAIA_XY_Z_M:
2408
- gaiaExport32 ( p_out, GAIA_POINTZM, 1 , endian_arch );
2409
- break ;
2410
- case GAIA_XY_Z:
2411
- gaiaExport32 ( p_out, GAIA_POINTZ, 1 , endian_arch );
2412
- break ;
2413
- case GAIA_XY_M:
2414
- gaiaExport32 ( p_out, GAIA_POINTM, 1 , endian_arch );
2415
- break ;
2416
- default :
2417
- gaiaExport32 ( p_out, GAIA_POINT, 1 , endian_arch );
2418
- break ;
2419
- }
2420
- break ;
2421
- case QgsWkbTypes::LineGeometry:
2422
- switch ( nDims )
2423
- {
2424
- case GAIA_XY_Z_M:
2425
- gaiaExport32 ( p_out, GAIA_LINESTRINGZM, 1 , endian_arch );
2426
- break ;
2427
- case GAIA_XY_Z:
2428
- gaiaExport32 ( p_out, GAIA_LINESTRINGZ, 1 , endian_arch );
2429
- break ;
2430
- case GAIA_XY_M:
2431
- gaiaExport32 ( p_out, GAIA_LINESTRINGM, 1 , endian_arch );
2432
- break ;
2433
- default :
2434
- gaiaExport32 ( p_out, GAIA_LINESTRING, 1 , endian_arch );
2435
- break ;
2436
- }
2437
- break ;
2438
- case QgsWkbTypes::PolygonGeometry:
2439
- switch ( nDims )
2440
- {
2441
- case GAIA_XY_Z_M:
2442
- gaiaExport32 ( p_out, GAIA_POLYGONZM, 1 , endian_arch );
2443
- break ;
2444
- case GAIA_XY_Z:
2445
- gaiaExport32 ( p_out, GAIA_POLYGONZ, 1 , endian_arch );
2446
- break ;
2447
- case GAIA_XY_M:
2448
- gaiaExport32 ( p_out, GAIA_POLYGONM, 1 , endian_arch );
2449
- break ;
2450
- default :
2451
- gaiaExport32 ( p_out, GAIA_POLYGON, 1 , endian_arch );
2452
- break ;
2453
- }
2454
- break ;
2455
- }
2456
- p_out += 4 ;
2457
- switch ( QgsWkbTypes::geometryType ( type2 ) )
2458
- {
2459
- // setting sub-Geometry values
2460
- case QgsWkbTypes::PointGeometry:
2461
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2462
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // X
2463
- p_in += sizeof ( double );
2464
- p_out += sizeof ( double );
2465
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2466
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // Y
2467
- p_in += sizeof ( double );
2468
- p_out += sizeof ( double );
2469
- if ( nDims == GAIA_XY_Z || nDims == GAIA_XY_Z_M )
2470
- {
2471
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2472
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // Z
2473
- p_in += sizeof ( double );
2474
- p_out += sizeof ( double );
2475
- }
2476
- if ( nDims == GAIA_XY_M || nDims == GAIA_XY_Z_M )
2477
- {
2478
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2479
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // M
2480
- p_in += sizeof ( double );
2481
- p_out += sizeof ( double );
2482
- }
2483
- break ;
2484
- case QgsWkbTypes::LineGeometry:
2485
- points = gaiaImport32 ( p_in, little_endian, endian_arch );
2486
- p_in += 4 ;
2487
- gaiaExport32 ( p_out, points, 1 , endian_arch );
2488
- p_out += 4 ;
2489
- for ( iv = 0 ; iv < points; iv++ )
2490
- {
2491
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2492
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // X
2493
- p_in += sizeof ( double );
2494
- p_out += sizeof ( double );
2495
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2496
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // Y
2497
- p_in += sizeof ( double );
2498
- p_out += sizeof ( double );
2499
- if ( nDims == GAIA_XY_Z || nDims == GAIA_XY_Z_M )
2500
- {
2501
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2502
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // Z
2503
- p_in += sizeof ( double );
2504
- p_out += sizeof ( double );
2505
- }
2506
- if ( nDims == GAIA_XY_M || nDims == GAIA_XY_Z_M )
2507
- {
2508
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2509
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // M
2510
- p_in += sizeof ( double );
2511
- p_out += sizeof ( double );
2512
- }
2513
- }
2514
- break ;
2515
- case QgsWkbTypes::PolygonGeometry:
2516
- rings = gaiaImport32 ( p_in, little_endian, endian_arch );
2517
- p_in += 4 ;
2518
- gaiaExport32 ( p_out, rings, 1 , endian_arch );
2519
- p_out += 4 ;
2520
- for ( ib = 0 ; ib < rings; ib++ )
2521
- {
2522
- points = gaiaImport32 ( p_in, little_endian, endian_arch );
2523
- p_in += 4 ;
2524
- gaiaExport32 ( p_out, points, 1 , endian_arch );
2525
- p_out += 4 ;
2526
- for ( iv = 0 ; iv < points; iv++ )
2527
- {
2528
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2529
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // X
2530
- p_in += sizeof ( double );
2531
- p_out += sizeof ( double );
2532
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2533
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // Y
2534
- p_in += sizeof ( double );
2535
- p_out += sizeof ( double );
2536
- if ( nDims == GAIA_XY_Z || nDims == GAIA_XY_Z_M )
2537
- {
2538
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2539
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // Z
2540
- p_in += sizeof ( double );
2541
- p_out += sizeof ( double );
2542
- }
2543
- if ( nDims == GAIA_XY_M || nDims == GAIA_XY_Z_M )
2544
- {
2545
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2546
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // M
2547
- p_in += sizeof ( double );
2548
- p_out += sizeof ( double );
2549
- }
2550
- }
2551
- }
2552
- break ;
2553
- }
2554
- }
2404
+ case QgsWkbTypes::UnknownGeometry:
2405
+ case QgsWkbTypes::NullGeometry:
2555
2406
break ;
2556
2407
}
2557
2408
}
@@ -2727,6 +2578,10 @@ void QgsSpatiaLiteProvider::convertFromGeosWKB3D( const unsigned char *blob,
2727
2578
}
2728
2579
}
2729
2580
break ;
2581
+
2582
+ case QgsWkbTypes::UnknownGeometry:
2583
+ case QgsWkbTypes::NullGeometry:
2584
+ break ;
2730
2585
}
2731
2586
}
2732
2587
}
0 commit comments