Skip to content

RandomFractals/vscode-leaflet

Repository files navigation

vscode-leaflet

Apache-2.0 License Version Installs Downloads https://ko-fi.com/dataPixy


Leaflet Map πŸ—ΊοΈ for Notebook πŸ““ cell βŒ— data outputs

See Geo Data Viewer πŸ—ΊοΈ vscode extension for advanced Geo Data Analytics with kepler.gl

Leaflet Map πŸ—ΊοΈ Renderer

Leaflet Map πŸ—ΊοΈ Notebook πŸ““ cell βŒ— output renderer uses Leaflet 🌿 JavaScript library for interactive preview of Geo datasets loaded in VSCode Notebooks πŸ“š

Leaflet Map πŸ—ΊοΈ Renderer

World Countries in Leaflet Map πŸ—ΊοΈ Renderer

World Rivers in Leaflet Map πŸ—ΊοΈ Renderer

Features

Leaflet Map πŸ—ΊοΈ Text Output

Supported Data Formats

Leaflet 🌿 Map πŸ—ΊοΈ Notebook πŸ““ cell βŒ— data output Renderer supports loading Location data from the following output formats:

Data Mime Type Location Data Geo Location Processing Description
application/geo+json Point, LineString, MultiLineString, Polygon, MultiPolygon GeoJSON Location Point coordinates are displyaed as clustered markers using leaflet.markercluster JavaScript library with custom marker cluster icons and config. Lines and polygons are added to the map and displayed via Leaflet 🌿 GeoJSON Layer. See our leafletMap.js for more info about that setup.
application/json Objects that contain geo location property pairs ending with: latitude/longitude, lat/lng, or lat/lng Flat JSON data objects and arrays are processed by our custom GeoConverter to extract Location information and covert loaded dataset to GeoJSON for display on the map.
text/csv CSV data with column names in the 1st header row and columns ending with: latitude/longitude, lat/lng, or lat/lng CSV data is parsed with d3-dsv JavaScript library and converted to flat JSON data array and then to GeoJSON with our GeoConverter to display locations on the map.
application/xml or text/xml XML data with root node children that contain attributes ending with: latitude/longitude, lat/lng, or lat/lng XML data is parsed with fast-xml-parser to load it into JSON data objects array and then processed with our GeoConverter to display locations on the map. XML data support is very alpha and experimental at this point, and might be removed later.
application/ vnd.code.notebook.stdout or text/plain Location data as string in CSV, XML, JSON or GeoJSON data format as described above Text data typically comes from display and console.log() instructions in vscode notebooks. We try to parse text as JSON with JSON.parse(), as CSV with d3-dsv.csvParse(), and as XML with fast-xml-parser. If those parse methods fail, or provided notebook cell text output contains no location data we can extract, we display text output in a custom scrollable text container with code pre-wrap for a quick copy/paste to other places. Otherwise, loaded data is converted to GeoJSON with our GeoConverter for locations display on the map.

πŸ—ΊοΈ Examples

Install and use Data Table 🈸 for Notebooks πŸ“š built-in Notebook πŸ““ Examples to view Leaflet Map πŸ—ΊοΈ with provided sample Geo datasets. You can access built-in Data Table 🈸 Notebook πŸ““ Examples via Data Table: Notebook Examples command from View -> Command Palette...

Data Table 🈸 Notebook Examples

.NET Interactive Notebook Example

  1. Install .NET Install Tool for Extension Authors vscode extension

  2. Install .NET Interactive Notebooks πŸ“š vscode extension

  3. Load USA Airports .NET Interactive Notebook πŸ““

  4. Run All cells βŒ—:

USA Airports .NET Interactive Notebook πŸ““

TypeScript Notebook Example

  1. Install TypeScript Notebooks πŸ“š vscode extension

  2. Download USA State Capitals GeoJSON data file

  3. Load USA State Capitals TypeScript Notebook πŸ““

  4. Run All cells βŒ— to view that GeoJSON data output in a Leaflet 🌿 Map πŸ—ΊοΈ:

USA State Capitals TypeScript Notebook πŸ““

REST Book Example

  1. Install REST Book πŸ““ vscode extension

  2. Load World Cities REST Book πŸ““

  3. Run All cells βŒ—

  4. Click on ... in the gutter of GET data output and change it to Leaflet Map πŸ—ΊοΈ renderer:

World Cities REST Book πŸ““

Also try World Countries REST Book πŸ““ example:

World Countries REST Book πŸ““

Or USA States REST Book πŸ““ example:

USA States REST Book πŸ““

Pyolite Notebook Example

  1. Install Pyolite 🐍 vscode extension

  2. Load Chicago Red Light Cameras Pyolite Notebook πŸ““

  3. Run Python code cell and click on ... -> Choose Output Mimetype -> text/plain Leaflet Map to view red light camera locations on the map πŸ—ΊοΈ:

Chicago Red Light Cameras Pyolite Notebook πŸ““

Recommended Extensions

Recommended extensions for working with Interactive Notebooks πŸ“š data 🈸 charts πŸ“ˆ and geo πŸ—ΊοΈ data formats in VSCode:

Extension Description
REST Book Notebook extension for running REST queries
TypeScript Notebooks TypeScript with Jupyter Notebooks πŸ“š
.NET Interactive Notebooks .NET Interactive Jupyter Notebooks πŸ“š
Pyolite 🐍 Pyodide 🐍 kernel for JupyterLite Notebooks πŸ“š
Observable JS Observable JS compiler with Observable js and md code outline and previews.
JS Notebook πŸ““ Inspector πŸ•΅οΈ Provides Interactive Preview of Observable JS Notebooks πŸ“š, Notebook πŸ““ nodes βŽ‡ & cells βŒ— source code
Data Preivew 🈸 Data Preview 🈸 extension for importing πŸ“€ viewing πŸ”Ž slicing πŸ”ͺ dicing 🎲 charting πŸ“Š & exporting πŸ“₯ large JSON array/config, YAML, Apache Arrow, Avro & Excel data files
Geo Data Viewer πŸ—ΊοΈ kepler.gl Geo Data Analytics tool to gen. some snazzy πŸ—ΊοΈs w/0 Py 🐍 pyWidgets βš™οΈ pandas 🐼 or react βš›οΈ
Vega Viewer πŸ“ˆ Provides Interactive Preview of Vega & Vega-Lite maps πŸ—ΊοΈ & graphs πŸ“ˆ
DeltaXML XPath Notebook πŸ““ XPath 3.1 Notebook for Visual Studio Code
GeoJSON Snippets Create geospatial objects using GeoJSON snippets
Data Table 🈸 Data Table 🈸 for Notebook πŸ““ cell βŒ— data outputs

Dev Log

See #LeafletMapView πŸ—ΊοΈ tag on Twitter for the latest and greatest updates on this vscode extension and what's in store next.

Dev Build

$ git clone https://github.com/RandomFractals/vscode-leaflet
$ cd vscode-leaflet
$ npm install
$ npm run compile
$ code .

F5 to launch Leaflet Map πŸ—ΊοΈ extension vscode debug session.

||

vscode-leaflet>vsce package

to generate VSIX Leaflet Map πŸ—ΊοΈ extension package with vsce from our latest for local dev install in vscode.

Contributions

Any and all test, code or feedback contributions are welcome.

Open an issue or create a pull request to make this Leaflet Map πŸ—ΊοΈ vscode extension work better for all.

Backers

support me on ko-fi.com