@@ -2401,179 +2401,6 @@ void QgsSpatiaLiteProvider::convertFromGeosWKB3D( const unsigned char *blob,
2401
2401
}
2402
2402
break ;
2403
2403
2404
- case QgsWkbTypes::GeometryCollection:
2405
- entities = gaiaImport32 ( p_in, little_endian, endian_arch );
2406
- p_in += 4 ;
2407
- gaiaExport32 ( p_out, entities, 1 , endian_arch );
2408
- p_out += 4 ;
2409
- for ( ie = 0 ; ie < entities; ie++ )
2410
- {
2411
- QgsWkbTypes::Type type2 = static_cast < QgsWkbTypes::Type >( gaiaImport32 ( p_in + 1 , little_endian, endian_arch ) );
2412
- p_in += 5 ;
2413
- *p_out++ = 0x01 ;
2414
- switch ( QgsWkbTypes::geometryType ( type2 ) )
2415
- {
2416
- case QgsWkbTypes::PointGeometry:
2417
- switch ( nDims )
2418
- {
2419
- case GAIA_XY_Z_M:
2420
- gaiaExport32 ( p_out, GAIA_POINTZM, 1 , endian_arch );
2421
- break ;
2422
- case GAIA_XY_Z:
2423
- gaiaExport32 ( p_out, GAIA_POINTZ, 1 , endian_arch );
2424
- break ;
2425
- case GAIA_XY_M:
2426
- gaiaExport32 ( p_out, GAIA_POINTM, 1 , endian_arch );
2427
- break ;
2428
- default :
2429
- gaiaExport32 ( p_out, GAIA_POINT, 1 , endian_arch );
2430
- break ;
2431
- }
2432
- break ;
2433
- case QgsWkbTypes::LineGeometry:
2434
- switch ( nDims )
2435
- {
2436
- case GAIA_XY_Z_M:
2437
- gaiaExport32 ( p_out, GAIA_LINESTRINGZM, 1 , endian_arch );
2438
- break ;
2439
- case GAIA_XY_Z:
2440
- gaiaExport32 ( p_out, GAIA_LINESTRINGZ, 1 , endian_arch );
2441
- break ;
2442
- case GAIA_XY_M:
2443
- gaiaExport32 ( p_out, GAIA_LINESTRINGM, 1 , endian_arch );
2444
- break ;
2445
- default :
2446
- gaiaExport32 ( p_out, GAIA_LINESTRING, 1 , endian_arch );
2447
- break ;
2448
- }
2449
- break ;
2450
- case QgsWkbTypes::PolygonGeometry:
2451
- switch ( nDims )
2452
- {
2453
- case GAIA_XY_Z_M:
2454
- gaiaExport32 ( p_out, GAIA_POLYGONZM, 1 , endian_arch );
2455
- break ;
2456
- case GAIA_XY_Z:
2457
- gaiaExport32 ( p_out, GAIA_POLYGONZ, 1 , endian_arch );
2458
- break ;
2459
- case GAIA_XY_M:
2460
- gaiaExport32 ( p_out, GAIA_POLYGONM, 1 , endian_arch );
2461
- break ;
2462
- default :
2463
- gaiaExport32 ( p_out, GAIA_POLYGON, 1 , endian_arch );
2464
- break ;
2465
- }
2466
- break ;
2467
-
2468
- case QgsWkbTypes::UnknownGeometry:
2469
- case QgsWkbTypes::NullGeometry:
2470
- break ;
2471
- }
2472
- p_out += 4 ;
2473
- switch ( QgsWkbTypes::geometryType ( type2 ) )
2474
- {
2475
- // setting sub-Geometry values
2476
- case QgsWkbTypes::PointGeometry:
2477
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2478
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // X
2479
- p_in += sizeof ( double );
2480
- p_out += sizeof ( double );
2481
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2482
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // Y
2483
- p_in += sizeof ( double );
2484
- p_out += sizeof ( double );
2485
- if ( nDims == GAIA_XY_Z || nDims == GAIA_XY_Z_M )
2486
- {
2487
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2488
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // Z
2489
- p_in += sizeof ( double );
2490
- p_out += sizeof ( double );
2491
- }
2492
- if ( nDims == GAIA_XY_M || nDims == GAIA_XY_Z_M )
2493
- {
2494
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2495
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // M
2496
- p_in += sizeof ( double );
2497
- p_out += sizeof ( double );
2498
- }
2499
- break ;
2500
- case QgsWkbTypes::LineGeometry:
2501
- points = gaiaImport32 ( p_in, little_endian, endian_arch );
2502
- p_in += 4 ;
2503
- gaiaExport32 ( p_out, points, 1 , endian_arch );
2504
- p_out += 4 ;
2505
- for ( iv = 0 ; iv < points; iv++ )
2506
- {
2507
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2508
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // X
2509
- p_in += sizeof ( double );
2510
- p_out += sizeof ( double );
2511
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2512
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // Y
2513
- p_in += sizeof ( double );
2514
- p_out += sizeof ( double );
2515
- if ( nDims == GAIA_XY_Z || nDims == GAIA_XY_Z_M )
2516
- {
2517
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2518
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // Z
2519
- p_in += sizeof ( double );
2520
- p_out += sizeof ( double );
2521
- }
2522
- if ( nDims == GAIA_XY_M || nDims == GAIA_XY_Z_M )
2523
- {
2524
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2525
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // M
2526
- p_in += sizeof ( double );
2527
- p_out += sizeof ( double );
2528
- }
2529
- }
2530
- break ;
2531
- case QgsWkbTypes::PolygonGeometry:
2532
- rings = gaiaImport32 ( p_in, little_endian, endian_arch );
2533
- p_in += 4 ;
2534
- gaiaExport32 ( p_out, rings, 1 , endian_arch );
2535
- p_out += 4 ;
2536
- for ( ib = 0 ; ib < rings; ib++ )
2537
- {
2538
- points = gaiaImport32 ( p_in, little_endian, endian_arch );
2539
- p_in += 4 ;
2540
- gaiaExport32 ( p_out, points, 1 , endian_arch );
2541
- p_out += 4 ;
2542
- for ( iv = 0 ; iv < points; iv++ )
2543
- {
2544
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2545
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // X
2546
- p_in += sizeof ( double );
2547
- p_out += sizeof ( double );
2548
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2549
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // Y
2550
- p_in += sizeof ( double );
2551
- p_out += sizeof ( double );
2552
- if ( nDims == GAIA_XY_Z || nDims == GAIA_XY_Z_M )
2553
- {
2554
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2555
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // Z
2556
- p_in += sizeof ( double );
2557
- p_out += sizeof ( double );
2558
- }
2559
- if ( nDims == GAIA_XY_M || nDims == GAIA_XY_Z_M )
2560
- {
2561
- coord = gaiaImport64 ( p_in, little_endian, endian_arch );
2562
- gaiaExport64 ( p_out, coord, 1 , endian_arch ); // M
2563
- p_in += sizeof ( double );
2564
- p_out += sizeof ( double );
2565
- }
2566
- }
2567
- }
2568
- break ;
2569
-
2570
- case QgsWkbTypes::UnknownGeometry:
2571
- case QgsWkbTypes::NullGeometry:
2572
- break ;
2573
- }
2574
- }
2575
- break ;
2576
-
2577
2404
case QgsWkbTypes::UnknownGeometry:
2578
2405
case QgsWkbTypes::NullGeometry:
2579
2406
break ;
0 commit comments