First CRAN release. This release brings the R API to parity with the GeoLibre Python API. The package now covers every layer type the application reads, layer management, data-driven symbology, on-map controls, standalone HTML export, and a Shiny proxy that drives the live map.
add_cog() and keep add_raster() as its generically named alias.add_tile_layer().add_wms(), add_wmts(), and add_wfs().add_vector() for any format the in-browser vector control streams, with
add_geoparquet(), add_flatgeobuf(), add_shp(), add_kml(), and
add_gpkg() wrappers. Local files are read with sf and inlined instead.add_vector_tiles(), add_pmtiles(), add_3d_tiles(), and add_video().add_marker(), add_markers(), add_circle_markers(),
add_marker_cluster(), add_heatmap(), add_xy_data(), and add_csv().add_xy_data() now builds ordinary data-frame point features in one pass,
substantially reducing construction time for large tables.add_geojson() support for HTTP(S) URLs and sfc/sfg objects, and
add_data() for column-driven symbology in one call.add_choropleth() and classify_layer(), which compute the same
graduated vectorStyleStops the application's Style panel produces, using
equal-interval or quantile classification.color_ramp_names(), get_color_ramp(), and
interpolate_ramp_colors().get_layers(), get_layer(), layer_names(), and find_layer_index()
for inspection, and layer_properties() and column_values() for reading
feature attributes back.set_layer_visibility(), show_layer(), hide_layer(),
set_layer_opacity(), set_layer_style(), rename_layer(), move_layer(),
duplicate_layer(), remove_layer(), and clear_layers(). Each accepts a
layer id or a layer name.add_*() function now accepts style overrides as named arguments as
well as through style, so add_geojson(map, data, fillColor = "red") works.add_legend() from a named vector, parallel label and color vectors, or a
built-in preset; builtin_legend_names() lists the presets.add_colorbar() and add_colormap() for continuous rasters, from a named
ramp or a custom gradient.split_map() for before-and-after swipe comparisons.set_center(), set_zoom(), set_bearing(), set_pitch(), and
fit_bounds(), which frames a bounding box and handles boxes that cross the
antimeridian.set_basemap() and add_basemap(), plus the basemaps() catalog.
geolibre() also takes center, zoom, basemap, and name directly.layout and theme arguments to geolibre(). layout = "full" shows the
complete desktop interface. map_only is superseded by layout = "maponly"
and still works.to_html(), which writes a standalone page that needs no running R
session.get_project() and describe_project(), and set_project_name().redact_credentials(), redact_layer(), and redact_url().
save_project() now strips credentials by default; pass
keep_credentials = TRUE for a trusted local file.geolibre_fly_to(),
geolibre_fit_bounds(), geolibre_zoom_to_layer(), geolibre_get_view(),
geolibre_identify(), geolibre_layer_features(),
geolibre_selected_features(), geolibre_drawn_features(),
geolibre_list_algorithms(), geolibre_run_algorithm(),
geolibre_to_image(), and the general geolibre_command().input$<outputId>_result and user interaction on
input$<outputId>_event, alongside the existing _project and _error
inputs.add_marker() and named add_markers() entries now reject invalid coordinates
and properties instead of serializing malformed GeoJSON.set_view(bbox = ) wrote an unknown bounds field that the application
ignored, so the requested extent was silently dropped. It now resolves the box
to the center, zoom, and bbox the application reads.c(-100, 40) at zoom 2,
rather than c(0, 20).Initial release, on GitHub only.
htmlwidgets interface to GeoLibre for RStudio, Quarto,
R Markdown, and Shiny.sf vector layers and remote COG/GeoTIFF raster layers..geolibre.json project import and export.