# library(sedonadb)
#
# # Works with files
# fgb <- system.file("files/natural-earth_cities.fgb", package = "sedonadb")
# sd_read_sf(fgb)
## worked a while already with GDAL
library(lazysf)
url <- "/vsicurl/https://github.com/apache/sedona-db/raw/refs/heads/main/r/sedonadb/inst/files/natural-earth_cities_geo.parquet"
lazysf(url) |>
dplyr::filter(name %in% c("Wellington", "Canberra", "Sydney", "Melbourne", "Suva"))
#> # Source: SQL [?? x 3]
#> # Database: GDAL <SQLITE> WKB [/vsicurl/https://github.com/apache/sedona-db/ra...]
#> FID name geometry
#> <int64> <chr> <wk_wkb>
#> 1 0 Canberra <POINT (149.129 -35.28303)>
#> 2 1 Melbourne <POINT (144.9731 -37.81809)>
#> 3 2 Suva <POINT (178.4417 -18.13302)>
#> 4 3 Sydney <POINT (151.2125 -33.87137)>
#> 5 4 Wellington <POINT (174.7772 -41.29207)>
SQL <-sprintf("SELECT * FROM \"%s\" WHERE name IN ('Wellington', 'Canberra', 'Sydney', 'Melbourne', 'Suva')", "natural-earth_cities_geo")
library(gdalraster)
#> GDAL 3.13.0dev-a3b7b01d3e-dirty (released 2026-02-23), GEOS 3.12.1, PROJ 9.7.0
v <- new(GDALVector, url,
SQL)
v$fetch(-1)
#> OGR feature set
#> FID name geometry
#> 1 100 Suva WKB POINT: raw 01 01 00 00 ...
#> 2 128 Canberra WKB POINT: raw 01 01 00 00 ...
#> 3 143 Wellington WKB POINT: raw 01 01 00 00 ...
#> 4 213 Melbourne WKB POINT: raw 01 01 00 00 ...
#> 5 240 Sydney WKB POINT: raw 01 01 00 00 ...
v$close()
library(vapour)
g <- vapour_read_geometry(url, sql = SQL)
f <- vapour_read_fields(url, sql = SQL)
tibble::as_tibble(f) |> dplyr::mutate(geometry = wk::wkb(g))
#> # A tibble: 5 × 2
#> name geometry
#> <chr> <wk_wkb>
#> 1 Suva <POINT (178.4417 -18.13302)>
#> 2 Canberra <POINT (149.129 -35.28303)>
#> 3 Wellington <POINT (174.7772 -41.29207)>
#> 4 Melbourne <POINT (144.9731 -37.81809)>
#> 5 Sydney <POINT (151.2125 -33.87137)>Created on 2026-03-17 with reprex v2.0.2