Skip to content

Commit 77afdc6

Browse files
committed
deps: bump geoarrow to v0.3.0-beta.3
1 parent d861c05 commit 77afdc6

File tree

4 files changed

+93
-45
lines changed

4 files changed

+93
-45
lines changed

cli/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ python = ["dep:pyo3", "pgstac", "duckdb", "stac-duckdb/bundled", "geoparquet"]
2727
axum = "0.7"
2828
bytes = { version = "1", optional = true }
2929
clap = { version = "4", features = ["derive"] }
30-
geoarrow = { git = "https://github.com/geoarrow/geoarrow-rs", rev = "6b877486bf98f280bc04b589eb7ce25b20e629f0", optional = true }
30+
geoarrow = { version = "0.3.0-beta.3", optional = true }
3131
parquet = { version = "52", optional = true }
3232
pyo3 = { version = "0.22", optional = true }
3333
reqwest = "0.12"

core/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ gdal = { version = "0.17", optional = true }
4343
gdal-sys = { version = "0.10", optional = true }
4444
geo = { version = "0.28", optional = true }
4545
geo-types = { version = "0.7", optional = true }
46-
geoarrow = { git = "https://github.com/geoarrow/geoarrow-rs", rev = "6b877486bf98f280bc04b589eb7ce25b20e629f0", optional = true }
46+
geoarrow = { version = "0.3.0-beta.3", optional = true }
4747
geojson = { version = "0.24" }
4848
log = { version = "0.4" }
4949
mime = "0.3"

core/src/geoarrow/json.rs

Lines changed: 90 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -437,99 +437,147 @@ pub fn from_table(table: Table) -> Result<Vec<serde_json::Map<String, Value>>, c
437437
for i in 0..chunk.len() {
438438
let value = match chunk.data_type() {
439439
Point(_, dimension) => match dimension {
440-
Dimension::XY => Value::from(&chunk.as_point_2d().value_as_geo(i)),
441-
Dimension::XYZ => Value::from(&chunk.as_point_3d().value_as_geo(i)),
440+
Dimension::XY => {
441+
Value::from(&chunk.as_ref().as_point::<2>().value_as_geo(i))
442+
}
443+
Dimension::XYZ => {
444+
Value::from(&chunk.as_ref().as_point::<3>().value_as_geo(i))
445+
}
442446
},
443447
LineString(_, dimension) => match dimension {
444-
Dimension::XY => Value::from(&chunk.as_line_string_2d().value_as_geo(i)),
445-
Dimension::XYZ => Value::from(&chunk.as_line_string_3d().value_as_geo(i)),
448+
Dimension::XY => {
449+
Value::from(&chunk.as_ref().as_line_string::<2>().value_as_geo(i))
450+
}
451+
Dimension::XYZ => {
452+
Value::from(&chunk.as_ref().as_line_string::<3>().value_as_geo(i))
453+
}
446454
},
447455
LargeLineString(_, dimension) => match dimension {
448456
Dimension::XY => {
449-
Value::from(&chunk.as_large_line_string_2d().value_as_geo(i))
457+
Value::from(&chunk.as_ref().as_large_line_string::<2>().value_as_geo(i))
450458
}
451459
Dimension::XYZ => {
452-
Value::from(&chunk.as_large_line_string_3d().value_as_geo(i))
460+
Value::from(&chunk.as_ref().as_large_line_string::<3>().value_as_geo(i))
453461
}
454462
},
455463
Polygon(_, dimension) => match dimension {
456-
Dimension::XY => Value::from(&chunk.as_polygon_2d().value_as_geo(i)),
457-
Dimension::XYZ => Value::from(&chunk.as_polygon_3d().value_as_geo(i)),
464+
Dimension::XY => {
465+
Value::from(&chunk.as_ref().as_polygon::<2>().value_as_geo(i))
466+
}
467+
Dimension::XYZ => {
468+
Value::from(&chunk.as_ref().as_polygon::<3>().value_as_geo(i))
469+
}
458470
},
459471
LargePolygon(_, dimension) => match dimension {
460-
Dimension::XY => Value::from(&chunk.as_large_polygon_2d().value_as_geo(i)),
461-
Dimension::XYZ => Value::from(&chunk.as_large_polygon_3d().value_as_geo(i)),
472+
Dimension::XY => {
473+
Value::from(&chunk.as_ref().as_large_polygon::<2>().value_as_geo(i))
474+
}
475+
Dimension::XYZ => {
476+
Value::from(&chunk.as_ref().as_large_polygon::<3>().value_as_geo(i))
477+
}
462478
},
463479
MultiPoint(_, dimension) => match dimension {
464-
Dimension::XY => Value::from(&chunk.as_multi_point_2d().value_as_geo(i)),
465-
Dimension::XYZ => Value::from(&chunk.as_multi_point_3d().value_as_geo(i)),
480+
Dimension::XY => {
481+
Value::from(&chunk.as_ref().as_multi_point::<2>().value_as_geo(i))
482+
}
483+
Dimension::XYZ => {
484+
Value::from(&chunk.as_ref().as_multi_point::<3>().value_as_geo(i))
485+
}
466486
},
467487
LargeMultiPoint(_, dimension) => match dimension {
468488
Dimension::XY => {
469-
Value::from(&chunk.as_large_multi_point_2d().value_as_geo(i))
489+
Value::from(&chunk.as_ref().as_large_multi_point::<2>().value_as_geo(i))
470490
}
471491
Dimension::XYZ => {
472-
Value::from(&chunk.as_large_multi_point_3d().value_as_geo(i))
492+
Value::from(&chunk.as_ref().as_large_multi_point::<3>().value_as_geo(i))
473493
}
474494
},
475495
MultiLineString(_, dimension) => match dimension {
476496
Dimension::XY => {
477-
Value::from(&chunk.as_multi_line_string_2d().value_as_geo(i))
497+
Value::from(&chunk.as_ref().as_multi_line_string::<2>().value_as_geo(i))
478498
}
479499
Dimension::XYZ => {
480-
Value::from(&chunk.as_multi_line_string_3d().value_as_geo(i))
500+
Value::from(&chunk.as_ref().as_multi_line_string::<3>().value_as_geo(i))
481501
}
482502
},
483503
LargeMultiLineString(_, dimension) => match dimension {
504+
Dimension::XY => Value::from(
505+
&chunk
506+
.as_ref()
507+
.as_large_multi_line_string::<2>()
508+
.value_as_geo(i),
509+
),
510+
Dimension::XYZ => Value::from(
511+
&chunk
512+
.as_ref()
513+
.as_large_multi_line_string::<3>()
514+
.value_as_geo(i),
515+
),
516+
},
517+
MultiPolygon(_, dimension) => match dimension {
484518
Dimension::XY => {
485-
Value::from(&chunk.as_large_multi_line_string_2d().value_as_geo(i))
519+
Value::from(&chunk.as_ref().as_multi_polygon::<2>().value_as_geo(i))
486520
}
487521
Dimension::XYZ => {
488-
Value::from(&chunk.as_large_multi_line_string_3d().value_as_geo(i))
522+
Value::from(&chunk.as_ref().as_multi_polygon::<3>().value_as_geo(i))
489523
}
490524
},
491-
MultiPolygon(_, dimension) => match dimension {
492-
Dimension::XY => Value::from(&chunk.as_multi_polygon_2d().value_as_geo(i)),
493-
Dimension::XYZ => Value::from(&chunk.as_multi_polygon_3d().value_as_geo(i)),
494-
},
495525
LargeMultiPolygon(_, dimension) => match dimension {
526+
Dimension::XY => Value::from(
527+
&chunk.as_ref().as_large_multi_polygon::<2>().value_as_geo(i),
528+
),
529+
Dimension::XYZ => Value::from(
530+
&chunk.as_ref().as_large_multi_polygon::<3>().value_as_geo(i),
531+
),
532+
},
533+
Mixed(_, dimension) => match dimension {
496534
Dimension::XY => {
497-
Value::from(&chunk.as_large_multi_polygon_2d().value_as_geo(i))
535+
Value::from(&chunk.as_ref().as_mixed::<2>().value_as_geo(i))
498536
}
499537
Dimension::XYZ => {
500-
Value::from(&chunk.as_large_multi_polygon_3d().value_as_geo(i))
538+
Value::from(&chunk.as_ref().as_mixed::<3>().value_as_geo(i))
501539
}
502540
},
503-
Mixed(_, dimension) => match dimension {
504-
Dimension::XY => Value::from(&chunk.as_mixed_2d().value_as_geo(i)),
505-
Dimension::XYZ => Value::from(&chunk.as_mixed_3d().value_as_geo(i)),
506-
},
507541
LargeMixed(_, dimension) => match dimension {
508-
Dimension::XY => Value::from(&chunk.as_large_mixed_2d().value_as_geo(i)),
509-
Dimension::XYZ => Value::from(&chunk.as_large_mixed_3d().value_as_geo(i)),
510-
},
511-
GeometryCollection(_, dimension) => match dimension {
512542
Dimension::XY => {
513-
Value::from(&chunk.as_geometry_collection_2d().value_as_geo(i))
543+
Value::from(&chunk.as_ref().as_large_mixed::<2>().value_as_geo(i))
514544
}
515545
Dimension::XYZ => {
516-
Value::from(&chunk.as_geometry_collection_3d().value_as_geo(i))
546+
Value::from(&chunk.as_ref().as_large_mixed::<3>().value_as_geo(i))
517547
}
518548
},
549+
GeometryCollection(_, dimension) => match dimension {
550+
Dimension::XY => Value::from(
551+
&chunk.as_ref().as_geometry_collection::<2>().value_as_geo(i),
552+
),
553+
Dimension::XYZ => Value::from(
554+
&chunk.as_ref().as_geometry_collection::<3>().value_as_geo(i),
555+
),
556+
},
519557
LargeGeometryCollection(_, dimension) => match dimension {
558+
Dimension::XY => Value::from(
559+
&chunk
560+
.as_ref()
561+
.as_large_geometry_collection::<2>()
562+
.value_as_geo(i),
563+
),
564+
Dimension::XYZ => Value::from(
565+
&chunk
566+
.as_ref()
567+
.as_large_geometry_collection::<3>()
568+
.value_as_geo(i),
569+
),
570+
},
571+
WKB => Value::from(&chunk.as_ref().as_wkb().value_as_geo(i)),
572+
LargeWKB => Value::from(&chunk.as_ref().as_large_wkb().value_as_geo(i)),
573+
Rect(dimension) => match dimension {
520574
Dimension::XY => {
521-
Value::from(&chunk.as_large_geometry_collection_2d().value_as_geo(i))
575+
Value::from(&chunk.as_ref().as_rect::<2>().value_as_geo(i))
522576
}
523577
Dimension::XYZ => {
524-
Value::from(&chunk.as_large_geometry_collection_3d().value_as_geo(i))
578+
Value::from(&chunk.as_ref().as_rect::<3>().value_as_geo(i))
525579
}
526580
},
527-
WKB => Value::from(&chunk.as_wkb().value_as_geo(i)),
528-
LargeWKB => Value::from(&chunk.as_large_wkb().value_as_geo(i)),
529-
Rect(dimension) => match dimension {
530-
Dimension::XY => Value::from(&chunk.as_rect_2d().value_as_geo(i)),
531-
Dimension::XYZ => Value::from(&chunk.as_rect_3d().value_as_geo(i)),
532-
},
533581
};
534582
let mut row = json_rows
535583
.next()

duckdb/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ bundled = ["duckdb/bundled"]
99
[dependencies]
1010
arrow = "52"
1111
duckdb = "1"
12-
geoarrow = { git = "https://github.com/geoarrow/geoarrow-rs", rev = "6b877486bf98f280bc04b589eb7ce25b20e629f0" }
12+
geoarrow = { version = "0.3.0-beta.3" }
1313
parquet = "52"
1414
stac = { version = "0.8", path = "../core", features = ["geoarrow"] }
1515
stac-api = { version = "0.4", path = "../api" }

0 commit comments

Comments
 (0)