Skip to main content

r-freestiler

Use when code loads or uses freestiler, working with .pmtiles files, creating or serving PMTiles vector tilesets in R, or preparing spatial data for mapgl/MapLibre visualization

Zur Installation springen

Quellinformationen

Repository
arthurgailes/r-package-skills
Letzte Quellaktivität
24. April 2026 um 15:12
Erkannte Sprache von SKILL.md
Englisch
Sterne
21
Forks
1

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
8 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
r-freestiler
description
Use when code loads or uses freestiler, working with .pmtiles files, creating or serving PMTiles vector tilesets in R, or preparing spatial data for mapgl/MapLibre visualization
# freestiler: Vector Tile Generator ## Overview **freestiler converts spatial data into PMTiles vector tilesets.** Rust-powered tool for creating `.pmtiles` from sf objects, files, or DuckDB SQL. ## References Read `references/API.md` before writing code. - `references/API.md` - Complete function reference with all parameters - `references/getting-started.md` - Usage patterns and parameter examples - `references/zoom-strategy.md` - Zoom level guidance by geometry type - `references/workflows.md` - Complete workflows and integration patterns - `references/mapping.md` - Visualization and server configuration ## When to Use **Use when:** - Dataset >10k features (too large for direct mapgl) - Need static hosting - Dataset exceeds memory **Don't use:** - <10k features - pass sf to mapgl directly - Quick exploration - use `maplibre_view()` - Existing tile pipeline works ## Quick Reference | Function | Use Case | Key Params | | ------------------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------ | | `freestile()` | Tile sf objects | `input`, `output`, `layer_name`, `min_zoom`, `max_zoom`, `base_zoom` (opt), `drop_rate` (opt), `tile_format` (opt) | | `freestile_query()` | Tile from SQL (streaming) | `query`, `output`, `layer_name`, `min_zoom`, `max_zoom`, `streaming = "always"` | | `freestile_file()` | Tile without loading | `input`, `output`, `layer_name`, `min_zoom`, `max_zoom`, `engine` | | `view_tiles()` | Quick visualization | `input`, `layer_type`, `color` | | `serve_tiles()` | Start local server | `path`, `port` | ## Quick Start ```r library(freestiler) library(sf) # Basic workflow - counties use max_zoom = 10 nc <- st_read(system.file("shape/nc.shp", package = "sf")) freestile(input = nc, output = "nc.pmtiles", layer_name = "counties", max_zoom = 10) view_tiles("nc.pmtiles") # Auto-starts server + opens map # Large datasets: streaming freestile_query(query = "SELECT * FROM read_parquet('huge.parquet')", output = "points.pmtiles", layer_name = "locations", streaming = "always") # Critical for 10M+ points # Direct file (no loading to memory) freestile_file(input = "data.gpkg", output = "output.pmtiles", layer_name = "features") ``` ## Visualization **view_tiles() (Easiest)**: `view_tiles("nc.pmtiles")` **Manual Server + mapgl**: ```r serve_tiles("tiles/") maplibre() |> add_pmtiles_source(id = "src", url = "http://localhost:8080/data.pmtiles") |> add_fill_layer(source = "src", source_layer = "layer1") ``` **Direct file://**: Requires absolute path in `add_pmtiles_source(url = "file://W:/...")` ## Common Mistakes 1. **Parameter names:** Use `input`, `output`, `layer_name` (NOT `data`, `tileset`, `layer`) 2. **Source layer must match:** `layer_name` in `freestile()` must match `source_layer` in mapgl 3. **CRS must be WGS84:** Use `st_transform(4326)` before tiling 4. **Large sf objects:** Use `freestile_file()` or `freestile_query()` to avoid loading into memory 5. **Massive points (10M+):** Add `streaming = "always"` to `freestile_query()` 6. **Tile format:** MLT (default, smaller files) vs MVT (broader compatibility, use for Python) 7. **Large tilesets (>500MB):** `serve_tiles()` struggles with byte-range requests; launch `npx http-server` from R via `processx::process$new()` instead. See `references/mapping.md` "Serving Large Tilesets" for a ready-made helper function. ## When NOT to Use - Small datasets (<10k features) - pass sf directly to mapgl - Quick exploration - use `maplibre_view()` from mapgl - Existing tile pipeline already works ## Advanced See `references/` for: - **API.md**: Complete function reference - **getting-started.md**, **mapping.md**: CRAN vignettes - Workflows, zoom strategy, SQL patterns, performance tips **Test with validator:** Use `lib/r-validators/plot-validator.R` to verify map output in tests **Resources:** [Docs](https://walker-data.com/freestiler/) | [GitHub](https://github.com/walkerke/freestiler/) | See `r-mapgl` skill
Auf GitHub ansehen