- Downgrade minimum traitlets version to fix use with Colab. #687
- Fix using
TripsLayer.from_movingpandas
with numpy v2.
- Fix import when pandas not installed.
- New
TripsLayer
for animating moving objects, which integrates with MovingPandas. See the Air Traffic Control example and the MovingPandas integration example. - New
ColumnLayer
for rendering extruded cylinders. See the newColumnLayer
example. - Removed required dependencies!
geopandas
,pandas
,shapely
,pyarrow
,matplotlib
, andpalettable
are now optional dependencies. Lonboard will still work out of the box with them, but they aren't required to use Lonboard. This gives Lonboard a smaller footprint and makes it easier to use in environments such as Pyodide. - You can now draw bounding boxes on the map. This is exposed as the
selected_bounds
attribute on theMap
object, stored as a two-dimensional bounding box(minx, miny, maxx, maxy)
. - Improved documentation
- How to use Lonboard in pyodide, a Python environment that is fully running in your browser.
- Add linked maps example by @ATL2001 in #655
- Add troubleshooting doc by @kylebarron in #654
- Add longraph to showcase by @kylebarron in #595
- New
Map.add_layer
method for easily adding more layer(s) to an existingMap
instance. - Add
highlight_color
to change the color ofauto_highlight
by @kylebarron in #666 - Use deterministic colors in
viz
by @kylebarron in #621 - Categorical data filtering. The
DataFilterExtension
now has afilter_categories
attribute that lets you filter categorical data on the map. by @kylebarron in #609
- The tooltip shown on hover was replaced with a side panel. You now must click on a geometry to view its attributes. By @vgeorge in #636
- We've switched from storing
list
objects to storingtuple
objects (e.g. the list of layers in aMap
). The immutability of thetuple
ensures that a any changes in the sequence of layers will be propagated to the frontend.Fixed in #620 - A class of bugs was fixed when using Arrow input, where the chunking structure of the main
table
did not match the chunking of accessors. Fixed in #644 - Fix reading from DuckDB with only geometry column by @kylebarron in #625
- Fix attribution by @vgeorge in #561
- @MarcSkovMadsen made their first contribution in #539
- @ATL2001 made their first contribution in #655
Full Changelog: https://github.com/developmentseed/lonboard/compare/v0.9.3...v0.10.0
- Fix reprojecting GeoArrow input by @kylebarron in #532
Full Changelog: https://github.com/developmentseed/lonboard/compare/v0.9.2...v0.9.3
- Reverse the layer order for automatically split geometry by @RaczeQ in #516
- Perf: Use ravel, not flatten, for numpy to pyarrow by @kylebarron in #512
- Update docstring in as_html by @kylebarron in #519
- Add type checks to fly_to by @kylebarron in #521
- Add pypi classifiers by @kylebarron in #523
- @RaczeQ made their first contribution in #516
Full Changelog: https://github.com/developmentseed/lonboard/compare/v0.9.1...v0.9.2
- Fix parquet-wasm WASM version mismatch by @kylebarron in #508
Full Changelog: https://github.com/developmentseed/lonboard/compare/v0.9.0...v0.9.1
- Direct DuckDB Spatial integration. Refer to the DuckDB example notebook and the DuckDB page in the documentation. by @kylebarron in #498
- Add overture buildings notebook by @kylebarron in #479
- Adding PathStyleExtension code by @shriv in #487
- Handle mixed geometry types in
viz
by @kylebarron in #495 - Render map as static HTML file by @kylebarron in #474. You can use
Map.as_html
to render a map in notebook environments that support HTML but not widgets. - Improved integration with geoarrow-pyarrow by @kylebarron in #470
- Updated Map keyword arguments by @kylebarron in #496
- validate basemap style is a url by @kylebarron in #497
Full Changelog: https://github.com/developmentseed/lonboard/compare/v0.8.0...v0.9.0
- A new
PolygonLayer
! This layer renders polygon outlines for easier visibility. @kylebarron in #330 - An example using
PolygonLayer
by @naomatheus in #351 - Sync view state between JS and Python by @kylebarron in #448
- Support geoarrow array input into
viz()
by @kylebarron in #427 - Internal architecture documentation by @kylebarron in #450
- Fix CLI with unset
geometry_name
by @kylebarron in #451
Full Changelog: https://github.com/developmentseed/lonboard/compare/v0.7.1...v0.8.0
- Fix CLI with geopackage files by @kylebarron in #434
Full Changelog: https://github.com/developmentseed/lonboard/compare/v0.7.0...v0.7.1
-
There's a new command-line interface (CLI)! Use the
lonboard
command to quickly visualize one or more data files readable by GDAL! For example:lonboard admins.geojson features.gpkg
. By @kylebarron in #379 -
Type hinting for constructors and
from_geopandas
method. This should make it easier to pass the correct parameters into layers. This has been tested to work in IDEs like VSCode, but unfortunately appears not to work in JupyterLab. By @kylebarron in #399 -
Warn on missing CRS. One of the most common reasons that you might see an empty map is from accidentally visualizing data that is not in EPSG 4326 (longitude-latitude). We now emit a warning for data that doesn't have a CRS defined on the data. By @kylebarron in #395.
-
Lonboard is now on
conda-forge
! Install withconda install -c conda-forge lonboard
. By @giswqs in #223 -
Add PointCloudLayer. By @kylebarron in #396
-
Add fly-to map action to "fly" the map to a new location. By @kylebarron in #408
-
Docs showcase page by @kylebarron in #401
-
Improve default colors in
viz
. We now attempt to apply some basic styling onto data passed intoviz
. This will likely further improve in the future. By @kylebarron in #389
- Set exported HTML height to 100% by @kylebarron in #377
- Raise error on single input to MultiRangeSlider by @kylebarron in #367
- Fix pandas
to_numeric
FutureWarning by @kylebarron in #368 - Fix viewing polygons in local html files by @kylebarron in #387
- Fix: fix sliced array input for reprojection by @kylebarron in #391
- Fix: Don't reproject for epsg:4326 input by @kylebarron in #392
- Fix: Fix weighted centroid calculation by @kylebarron in #393
- Fix
viz()
with__geo_interface__
input by @kylebarron in #426 - Add DataFilterExtension notebook to website by @kylebarron in #362
- Allow non-compliant geoarrow CRS metadata by @kylebarron in #369
- Automatically parse geoarrow.wkb to native geoarrow by @kylebarron in #372
- Parse GeoParquet metadata by @kylebarron in #407
- CLI: 'crs' in geoparquet metadata should be optional. by @jwass in #411
- Creating a new user bug report by @emmalu in #386
- Update epic template by @emmalu in #382
- NormalAccessor by @naomatheus in #376
- Conda: Try including
manifest.in
file forstatic
folder inclusion by @kylebarron in #421 - Switch to animated hero image by @kylebarron in #423
- Add CRS to GeoDataFrame in notebook examples by @kylebarron in #419
- @emmalu made their first contribution in #382
- @naomatheus made their first contribution in #376
- @jwass made their first contribution in #411
- @giswqs made their first contribution in #223
Full Changelog: https://github.com/developmentseed/lonboard/compare/v0.6.0...v0.7.0
- DataFilterExtension by @kylebarron in #278
- Multi-range sliders for DataFilterExtension by @kylebarron in #340
- BitmapLayer and BitmapTileLayer by @kylebarron in #288
- Improved GeoArrow interop by @kylebarron in #308
- Allow passing a positional
layers
object intoMap
by @kylebarron in #319 - GeoArrow-based multithreaded coordinate reprojection by @kylebarron in #337
- Support
pyarrow.Table
withgeoarrow.pyarrow
extension types as geometry columns by @jorisvandenbossche in #218 - Add ecosystem/integrations documentation by @kylebarron in #350
- Add font to index.css to fix static HTML export by @jtmiclat in #284
- Fix displaying tooltip for first row by @kylebarron in #287
- accept matplotlib colormap input to apply_cmap by @kylebarron in #289
- Use preferred OSM tile url by @kylebarron in #290
- set max zoom on osm layer by @kylebarron in #291
- Update contributor docs by @kylebarron in #316
- Check epsg:4326 bounds in layer creation by @kylebarron in #317
- add reference for installing from source by @kylebarron in #318
- Fix inferring number of rows per chunk by @kylebarron in #327
- Fix null checks by @kylebarron in #331
- Set max number of chunks per layer by @kylebarron in #332
- Move accessor length validation to serialization by @kylebarron in #333
- Deduplicate serialization for accessors by @kylebarron in #334
- Multi-dimensional GPU-based data filtering by @kylebarron in #335
- Bump anywidget to 0.9 & simplify Wasm initialization by @kylebarron in #344
- Fix null checks by @kylebarron in #348
- docs fixes by @kylebarron in #354
- Add
DataFilterExtension
example by @kylebarron in #358 - fix arc layer default arguments by @kylebarron in #359
- @jtmiclat made their first contribution in #284
- @jorisvandenbossche made their first contribution in #218
Full Changelog: https://github.com/developmentseed/lonboard/compare/v0.5.0...v0.6.0
- Improve map height by @vgeorge in #220
- Add method to apply a categorical colormap by @kylebarron in #251
- Deduce environment and set map height in colab and vscode by @kylebarron in #252
- Add various carto basemaps as options by @kylebarron in #268
- Sync the clicked index back to Python by @kylebarron in #270
- Set
width_min_pixels
in PathLayer example by @kylebarron in #276 - Bump deck.gl layers for performance benefits by @kylebarron in #277
Full Changelog: https://github.com/developmentseed/lonboard/compare/v0.4.2...v0.5.0
- Fixed ScatterplotLayer rendering by @kylebarron in #246
Full Changelog: https://github.com/developmentseed/lonboard/compare/v0.4.1...v0.4.2
- Fixed Polygon rendering by @kylebarron in #243
Full Changelog: https://github.com/developmentseed/lonboard/compare/v0.4.0...v0.4.1
- New
HeatmapLayer
- New
experimental
module, with new layers (ArcLayer
,TextLayer
) and "layer extensions" (BrushingExtension
,CollisionFilterExtension
). - New "migration" notebook using the experimental
ArcLayer
.
-
Add pandas v2 requirement by @kylebarron in #229
-
bump anywidget to 0.7.1 by @kylebarron in #233
This should error when the JS files have not been included when packaging.
Full Changelog: https://github.com/developmentseed/lonboard/compare/v0.3.0...v0.4.0
- Save widget to standalone HTML file by @kylebarron in #199
- Support for rendering inside Visual Studio Code
- Allow customized picking radius by @kylebarron in #212
- New example notebooks
- Automatically downcast data types in
from_geopandas
by @kylebarron in #195
- Allow pandas series as accessor to FloatAccessor by @kylebarron in #208
- Raise error when creating class with unknown keyword argument by @kylebarron in #209
- fix tooltip rendering when not hovering over an object by @kylebarron in #215
Full Changelog: https://github.com/developmentseed/lonboard/compare/v0.2.0...v0.3.0
- Layers no longer render a map object. Instead, pass one or more layer instances into a
lonboard.Map
and display that.
- Support multiple layers on a single map.
- Tooltip with data information on hover.
- Allow hex string color input to ColorAccessor.
- Versioned documentation website
- New examples
- Experimental API to change map height
- Fix handling of 3d coordinates by @kylebarron in #160
- Improved validation error messages by @kylebarron in #161
- @chrisgervang made their first contribution in #150
Full Changelog: https://github.com/developmentseed/lonboard/compare/v0.1.2...v0.2.0
- Actually update
@geoarrow/deck.gl-layers
to version 0.2.0, whoops 😅
- Updates to
@geoarrow/deck.gl-layers
version 0.2.0:- Fixed MultiPolygon rendering
- Fixed rendering of polygons with holes.
- Polygon rendering is roughly 35% faster.
- Initial public release.
- Initial support for
ScatterplotLayer
,PathLayer
, andSolidPolygonLayer
.