WebGL2 powered geospatial visualization layers

Overview

version build downloads Coverage Status

deck.gl | Website

WebGL2-powered, highly performant large-scale data visualization

docs

deck.gl is designed to simplify high-performance, WebGL-based visualization of large data sets. Users can quickly get impressive visual results with minimal effort by composing existing layers, or leverage deck.gl's extensible architecture to address custom needs.

deck.gl maps data (usually an array of JSON objects) into a stack of visual layers - e.g. icons, polygons, texts; and look at them with views: e.g. map, first-person, orthographic.

deck.gl handles a number of challenges out of the box:

  • Performant rendering and updating of large data sets
  • Interactive event handling such as picking, highlighting and filtering
  • Cartographic projections and integration with major basemap providers
  • A catalog of proven, well-tested layers

Deck.gl is designed to be highly customizable. All layers come with flexible APIs to allow programmatic control of each aspect of the rendering. All core classes such are easily extendable by the users to address custom use cases.

Flavors

Script Tag

<script src="https://unpkg.com/deck.gl@latest/dist.min.js"></script>

NPM Module

npm install deck.gl

Pure JS

React

Python

pip install pydeck

Third-Party Bindings

Learning Resources

Contributing

deck.gl is part of vis.gl, a Urban Computing Foundation project. Read the contribution guidelines if you are intrested in contributing.

Attributions

Data sources

Data sources are listed in each example.

The deck.gl project is supported by

BrowserStack
Comments
  • Interleaving DeckGL layers with a base map

    Interleaving DeckGL layers with a base map

    Hello, this is just a continuation #4529. After successfully integrating harp.gl's map with deck.gl, I was experimenting with things and found my Icon Layer laid on top of the buildings of the map.

    Normally in mapbox this could be solved by using the mapboxLayer and adding the icon layer beneath the building layer but harp.gl doesn't provide that sort of functionality.

    In essence deckgl is just drawing to an overlay canvas which is laid on top of the base canvas (harpgl's map in this case) if I understood correct. Is there any way to inform the overlay canvas of the depth buffer of the base canvas so everything renders correctly?

    An example screen. the red circles show where the icon should be behind the buildings. testt

    Thanks.

    question 
    opened by gallickgunner 61
  • initial integration of deck.gl with Google Maps

    initial integration of deck.gl with Google Maps

    For #1122 , provide an example to be updated of the integration of deck.gl with Google Maps.

    @Pessimistress and @ibgreen , feel free to use your (mapping) expertise to correct this semi working example.

    opened by MeTaNoV 35
  • v3 - scatterplot not rendering anymore

    v3 - scatterplot not rendering anymore

    Works fine on latest 2.x, updating to 3.x causes scatterplots to quit rendering.

    Additional info:

    • Tested on 3.0.0-beta17
    • Present on both core and fp64 layers
    • Choropleth layer in the dame overlay works fine
    • Using OSX Sierra on a MBP

    Tested the latest dev branch demo and the core scatter layer works, but the fp64 does not.

    Not sure if you're worried about it since it is a dev branch, but these layers don't work on the 3.x dev branch demo:

    • Solid Choropleth
    • Hexagon Select
    • Extruded Choropleth
    P0 
    opened by yocontra 32
  • heatmap layer shows only one color from colorRange

    heatmap layer shows only one color from colorRange

    Description

    Repro Steps

    const heatMap_layer = new HeatmapLayer({ data: this.geoJson.features, id: 'heatmp-layer', opacity: 0.6, getPosition: d => d.geometry.coordinates, getWeight: d => d.properties['Max Capacity'], colorFormat: 'RGBA', colorRange: [[1, 152, 189, 255], [73, 227, 206, 255], [216, 254, 181, 255], [254, 237, 177, 255],[254, 173, 84, 255],[209, 55, 78, 255]], intensity: 1, radiusPixels: 80, threshold: 0.9 });

    -->

    Environment (please complete the following information):

    • Framework Version: [e.g. deck.gl 7.2.3]
    • Browser Version: [e.g. Chrome 71.0]
    • OS: [e.g. Mac OS X 10.4]
    bug 
    opened by UttamRahane 31
  • Memory Size and TileCache

    Memory Size and TileCache

    Target Use case

    Hello! I am developing something that looks like it will have off-screen (i.e not visible) custom BaseTileLayers that I would like to have loaded for quick use and I would love to be able to allocate cache size equally and/or have each layer take up a predetermined percentage of the memory.

    Proposed feature

    I'd like if we could implement the maxCacheSize of the TileCache as a function of memory (allowing the user to control a percentage config, perhaps). I see that there is a TODO for it already here so I just wanted to make my use-case known. I am aware that my last PR seems to have opened something of a can of worms as per #4139 (very excited for these improvements, by the way!!!) so I understand if this is not coming for a while (until the API and location of the TileCache are finalized).

    feature 
    opened by ilan-gold 28
  • Unknown shader module project32

    Unknown shader module project32

    Description

    My usage of path layer leads to error: "Unknown shader module project32" Same goes for this example: https://deck.gl/showcases/gallery/highway

    Repro Steps

    Use example above.

    Environment (please complete the following information):

    • Framework Version:
    • Browser Version: Version 76.0.3809.6 (Official Build) canary (64-bit)
    • OS: Mac OS X 10.14.5

    Logs

    dist.min.js:1 deck: error while initializing PathLayer({id: 'path-layer'}) Error: Unknown shader module project32 at i (dist.min.js:1) at e.value (dist.min.js:1) at dist.min.js:1 at Array.map () at e.value (dist.min.js:1) at h (dist.min.js:1) at T (dist.min.js:1) at t.value (dist.min.js:1) at t.value (dist.min.js:1) at t.value (dist.min.js:1) value @ dist.min.js:1 value @ dist.min.js:1 value @ dist.min.js:1 value @ dist.min.js:1 value @ dist.min.js:1 value @ dist.min.js:1 setProps @ dist.min.js:12 value @ dist.min.js:1 value @ dist.min.js:1 value @ dist.min.js:1 (anonymous) @ dist.min.js:1 Promise.then (async) value @ dist.min.js:1 e @ dist.min.js:1 o @ dist.min.js:12 (anonymous) @ 2416456071?v=5:147 dist.min.js:1 Uncaught (in promise) Error: Unknown shader module project32 at i (dist.min.js:1) at e.value (dist.min.js:1) at dist.min.js:1 at Array.map () at e.value (dist.min.js:1) at h (dist.min.js:1) at T (dist.min.js:1) at t.value (dist.min.js:1) at t.value (dist.min.js:1) at t.value (dist.min.js:1) i @ dist.min.js:1 value @ dist.min.js:1 (anonymous) @ dist.min.js:1 value @ dist.min.js:1 h @ dist.min.js:1 T @ dist.min.js:1 value @ dist.min.js:1 value @ dist.min.js:1 value @ dist.min.js:1 e @ dist.min.js:1 t @ dist.min.js:1 value @ dist.min.js:1 value @ dist.min.js:1 value @ dist.min.js:1 value @ dist.min.js:1 value @ dist.min.js:1 value @ dist.min.js:1 value @ dist.min.js:1 value @ dist.min.js:1 value @ dist.min.js:1 value @ dist.min.js:1 setProps @ dist.min.js:12 value @ dist.min.js:1 value @ dist.min.js:1 value @ dist.min.js:1 (anonymous) @ dist.min.js:1 Promise.then (async) value @ dist.min.js:1 e @ dist.min.js:1 o @ dist.min.js:12 (anonymous) @ 2416456071?v=5:147

    bug 
    opened by cschlueter 27
  • The correct way to hide scatterplot items and practical count limits?

    The correct way to hide scatterplot items and practical count limits?

    I've got a Scatterplot that hides items in response to a time scrubber, which I've implemented by returning 0 from getRadius for items outside the active time range. getRadius is specified in updateTriggers as well, but I'm wondering if this is the most performant way to do this.

    Would setting the alpha to 0 or filtering the items out of the data ahead of time be a better approach? I'm also curious if smoothly scrubbing through 1M+ points is a realistic goal or not. I've rendered up to about 7M points but things get pretty bogged down.

    question bug 
    opened by bclinkinbeard 27
  • Highlight features spread across tiles

    Highlight features spread across tiles

    Background

    Right now, only one feature is highlighted when autoHighlight property is enabled and the feature is split into several tiles. We would need to highlight the whole feature instead of only the hovered part.

    I misunderstood the object index and returned the index within the provided data array instead of the picking index. Is there a way to get the picking index from a given property?

    Change List

    • Add highlightedObjectIndex to rendered sublayers in TileLayer.
    • Implement getHighlightedObjectIndex in MVTTileLayer.
    • Save hoveredFeatureId into MVTTileLayer state.
    opened by jesusbotella 26
  • IconLayer (png) render artifacts

    IconLayer (png) render artifacts

    I use IconLayer with png sprite. Icons render with a small glitch, something like a gray border or shadow but originally they have only a white border.

    Preview

    opened by jarekpelczynski 25
  • [Feat] Masking based on a polygon

    [Feat] Masking based on a polygon

    Target Use Case

    Currently deck.gl has a ClipExtension which allows rendering of layers clipped to rectangular region. This feature proposes adds a new extension, MaskExtension, which performs masking based on an arbitrary polygon region.

    The MaskExtension would enable richer visualizations as clipping only by a rectangle is of limited use.

    Proposal

    The MaskExtension can be added to a deck.gl layer in the standard fashion:

    const maskExtension = new MaskExtension();
    new SolidPolygonLayer({
      data,
      getFillColor: [255, 0, 0],
      extensions: [maskExtension],
      maskPolygon: [[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]
    });
    
    

    The MaskExtension adds the following props:

    • maskPolygon: polygon outline (format the same as that used by the SolidPolygonLayer data prop)
    • maskEnabled: set to false to disable masking
    • maskByInstance: whether to clip by pixel or by the geometry instance (analogous to ClipExtension.clipByInstance)

    Below is a short video showing the MaskExtension in action.

    Mask_demo

    The demo is composed of a number of different layers using the MaskExtension in different fashions:

    • A GeoJsonLayer with US states. When a state is selected, its geometry is used for the maskPolygon
    • A SolidPolygonLayer covering the entire USA with a solid green fill. This is masked using the maskPolygon. Thus when Texas is selected, it appears to have a green background
    • A ArcLayer showing the links between sources and target (flights between cities). As the maskByInstance prop is true, all arcs originating inside the mask are showing in their entirety
    • A ScatterplotLayer showing a buffer around each target. As the maskByInstance prop is set to false, these regions (in white) are clipped to the mask by pixel, and thus appear to be within the selected state.
    • 2 ScatterplotLayers showing the sources and targets for the sources and targets. As the maskByInstance prop is true, the red and green circles are not clipped by pixel
    feature 
    opened by felixpalmer 24
  • Deck.gl fails to initialize when run with AOT compilation with Angular

    Deck.gl fails to initialize when run with AOT compilation with Angular

    Description

    I am using the Deck.gl GoogleMapsOverlay with a Google map in an Angular application. It works just fine with the JIT compilation used most commonly by angular during development, but when the application is run with AOT compilation w/ Webpack as one would in a production environment, the resulting bundles don't load deck.gl correctly and all I see is the default google map. I believe it may be a treeshaking bug similar to #3213.

    My current work-around is to load it via the CDN link (https://unpkg.com/deck.gl@latest/dist.min.js) but that increases the bundle size considerably and breaks all IDE code suggestion support and whatnot.

    Repro Steps

    I created a simple angular project which demonstrates the issue. Refer to the README to get running quickly. https://github.com/SterlingMcCall/angular-deck-gl-error-demo

    Environment:

    • Framework Version: deck.gl 7.2.3 and earlier, 7.3.0-alpha.6
    • Browser Version: Chrome, Firefox
    • Webpack: tested with versions 4.19.1, 4.23.1, and 4.39.3

    Logs

    Unhandled Promise rejection: TIMER_QUERY ; Zone: <root> ; Task: Promise.then ; Value: Error: TIMER_QUERY
        at r (assert.js.pre-build-optimizer.js:3)
        at c (features.js.pre-build-optimizer.js:30)
        at features.js.pre-build-optimizer.js:10
        at Array.every (<anonymous>)
        at s (features.js.pre-build-optimizer.js:9)
        at Function.value (query.js.pre-build-optimizer.js:27)
        at animation-loop.js.pre-build-optimizer.js:147
        at e.invoke (zone.js.pre-build-optimizer.js:391)
        at t.run (zone.js.pre-build-optimizer.js:150)
        at zone.js.pre-build-optimizer.js:910 Error: TIMER_QUERY
        at r (http://localhost:4201/vendor.6ff8643349f59a82f6c2.js:1:211879)
        at c (http://localhost:4201/vendor.6ff8643349f59a82f6c2.js:1:494543)
        at http://localhost:4201/vendor.6ff8643349f59a82f6c2.js:1:494339
        at Array.every (<anonymous>)
        at s (http://localhost:4201/vendor.6ff8643349f59a82f6c2.js:1:494314)
        at Function.value (http://localhost:4201/vendor.6ff8643349f59a82f6c2.js:1:384784)
        at http://localhost:4201/vendor.6ff8643349f59a82f6c2.js:1:613204
        at e.invoke (http://localhost:4201/polyfills.42fc305c63116b2cde64.js:1:7375)
        at t.run (http://localhost:4201/polyfills.42fc305c63116b2cde64.js:1:2578)
        at http://localhost:4201/polyfills.42fc305c63116b2cde64.js:1:14554
    
    bug 
    opened by SterlingMcCall 23
  • [Bug] Incorrect prop type on `internalTextures`

    [Bug] Incorrect prop type on `internalTextures`

    Description

    https://github.com/visgl/deck.gl/blob/master/modules/core/src/utils/texture.ts#L14

    I think this:

    const internalTextures: Record<string, Texture2D> = {};
    

    should actually be this:

    const internalTextures: Record<string, boolean> = {};
    

    https://github.com/visgl/deck.gl/blob/master/modules/core/src/utils/texture.ts#L14

    Flavors

    • [ ] React
    • [ ] Python/Jupyter notebook
    • [ ] MapboxLayer
    • [ ] GoogleMapsOverlay
    • [ ] CartoLayer
    • [ ] DeckLayer/DeckRenderer for ArcGIS

    Expected Behavior

    n/a

    Steps to Reproduce

    n/a

    Environment

    • Framework version:
    • Browser:
    • OS:

    Logs

    No response

    bug 
    opened by jeffpeck10x 0
  • FillStyleExtension leverages new default props behavior

    FillStyleExtension leverages new default props behavior

    Follow up of #7496

    Change List

    • Remove ad-hoc prop handling in FillStyleExtension, use core async resolution system
    • image prop type accepts a new option to override default texture parameters
    • Tests
    • Docs
    opened by Pessimistress 0
  • [Bug]Tile3DLayer example is broken

    [Bug]Tile3DLayer example is broken

    Description

    Tile3DLayer example is broken. This link https://deck.gl/examples/tile-3d-layer/ is not rendering the 3d tile.

    Flavors

    • [ ] React
    • [ ] Python/Jupyter notebook
    • [ ] MapboxLayer
    • [ ] GoogleMapsOverlay
    • [ ] CartoLayer
    • [ ] DeckLayer/DeckRenderer for ArcGIS

    Expected Behavior

    No response

    Steps to Reproduce

    Go to this link https://deck.gl/examples/tile-3d-layer/, it is not rendering the 3d tile. I also can't render 3d tile from cesium ION in my code.

    Environment

    • Framework version:8.8.21
    • Browser: Chrome

    Logs

    No response

    bug 
    opened by Piaotian 6
  • [Bug] Globe View Tooltips show on other side of globe

    [Bug] Globe View Tooltips show on other side of globe

    Description

    Hey all, if I have a ArcLine with a tooltip on the other side of the globe, the picking engine incorrectly assumes I am hovering over the line, despite it behind occluded by the globe itself.

    This definitely does not seem like intended behavior, but I am not really sure how to go about fixing it.

    Flavors

    • [ ] React
    • [ ] Python/Jupyter notebook
    • [ ] MapboxLayer
    • [ ] GoogleMapsOverlay
    • [ ] CartoLayer
    • [ ] DeckLayer/DeckRenderer for ArcGIS

    Expected Behavior

    Tooltip only shows if you hover over the ArcLayer

    Steps to Reproduce

    Draw an ArcLayer from Australia to California. Add a tooltip and follow line beyond what is visible. Tooltip continues to show even when occluded by the globe.

    Environment

    Logs

    No response

    bug 
    opened by DrewRidley 1
  • [Bug] ScatterplotLayer hover/click not working properly when circles overlap

    [Bug] ScatterplotLayer hover/click not working properly when circles overlap

    Description

    https://user-images.githubusercontent.com/20474783/209679807-02fa8bc2-4311-478e-b762-9cb3505c3926.mp4

    I'm using ScatterplotLayer and the circles that are drawn first (bottom ones) are hovered instead of the ones at the top when there's an overlap. Same with onClick.

    Although it works fine when the map is pitched and billboard is set to true. Also works when interleaved:false

    const overlay = useControl<IControl>(() => {
        return new MapboxOverlay({
          layers: [
             new ScatterplotLayer({
                  data: [...],
                  visible: true,
                  pickable: true,
                  stroked: true,
                  autoHighlight: true,
                  billboard: true,
                  highlightColor: [...],
                  radiusUnits: "meters",
                  getRadius: 70,
                  getLineColor: ...,
                  getLineWidth: ...,
                  beforeId: "country-label-lg"
             })
         ],
          interleaved: true,
        }) as IControl;
    });
    

    Is this a known issue or am I doing something wrong here ?

    Flavors

    • [ ] React
    • [ ] Python/Jupyter notebook
    • [X] MapboxLayer
    • [ ] GoogleMapsOverlay
    • [ ] CartoLayer
    • [ ] DeckLayer/DeckRenderer for ArcGIS

    Expected Behavior

    • Circles that are on top should be picked (hovered/clicked)

    Steps to Reproduce

    /

    Environment

    • Framework version: 8.8.20
    • Browser: Chromium 108.0.5359.125; Safari 16.1
    • OS: macOS Ventura 13.0.1
    bug 
    opened by dusanjovanov 0
  • Bump wheel from 0.37.1 to 0.38.1 in /bindings/pydeck-carto/requirements

    Bump wheel from 0.37.1 to 0.38.1 in /bindings/pydeck-carto/requirements

    Bumps wheel from 0.37.1 to 0.38.1.

    Changelog

    Sourced from wheel's changelog.

    Release Notes

    UNRELEASED

    • Updated vendored packaging to 22.0

    0.38.4 (2022-11-09)

    • Fixed PKG-INFO conversion in bdist_wheel mangling UTF-8 header values in METADATA (PR by Anderson Bravalheri)

    0.38.3 (2022-11-08)

    • Fixed install failure when used with --no-binary, reported on Ubuntu 20.04, by removing setup_requires from setup.cfg

    0.38.2 (2022-11-05)

    • Fixed regression introduced in v0.38.1 which broke parsing of wheel file names with multiple platform tags

    0.38.1 (2022-11-04)

    • Removed install dependency on setuptools
    • The future-proof fix in 0.36.0 for converting PyPy's SOABI into a abi tag was faulty. Fixed so that future changes in the SOABI will not change the tag.

    0.38.0 (2022-10-21)

    • Dropped support for Python < 3.7
    • Updated vendored packaging to 21.3
    • Replaced all uses of distutils with setuptools
    • The handling of license_files (including glob patterns and default values) is now delegated to setuptools>=57.0.0 (#466). The package dependencies were updated to reflect this change.
    • Fixed potential DoS attack via the WHEEL_INFO_RE regular expression
    • Fixed ValueError: ZIP does not support timestamps before 1980 when using SOURCE_DATE_EPOCH=0 or when on-disk timestamps are earlier than 1980-01-01. Such timestamps are now changed to the minimum value before packaging.

    0.37.1 (2021-12-22)

    • Fixed wheel pack duplicating the WHEEL contents when the build number has changed (#415)
    • Fixed parsing of file names containing commas in RECORD (PR by Hood Chatham)

    0.37.0 (2021-08-09)

    • Added official Python 3.10 support
    • Updated vendored packaging library to v20.9

    ... (truncated)

    Commits
    • 6f1608d Created a new release
    • cf8f5ef Moved news item from PR #484 to its proper place
    • 9ec2016 Removed install dependency on setuptools (#483)
    • 747e1f6 Fixed PyPy SOABI parsing (#484)
    • 7627548 [pre-commit.ci] pre-commit autoupdate (#480)
    • 7b9e8e1 Test on Python 3.11 final
    • a04dfef Updated the pypi-publish action
    • 94bb62c Fixed docs not building due to code style changes
    • d635664 Updated the codecov action to the latest version
    • fcb94cd Updated version to match the release
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies python 
    opened by dependabot[bot] 1
Releases(v8.8.22)
  • v8.8.22(Jan 7, 2023)

    • Fix FillStyleExtension (#7568)
    • Fix SimpleMeshLayerProps.wireframe and SimpleMeshLayerProps._instanced type (#7556)
    • Improve logic to update auto highlight module settings (#7562)
    Source code(tar.gz)
    Source code(zip)
  • v8.8.21(Dec 28, 2022)

    • Fix disablePickingColor with externally supplied startIndices (#7543)
    • Update types for MapViewProps (#7519)
    • Improve filtered data rendering performance (#7510)
    Source code(tar.gz)
    Source code(zip)
  • v8.8.20(Nov 15, 2022)

    • CARTO: Include aggregation and geoColumn in POST (#7404)
    • CARTO: better API error reporting (#7340)
    • CARTO: Support JSON format in QuadbinLayer (#7383)
    Source code(tar.gz)
    Source code(zip)
  • v8.8.19(Nov 12, 2022)

  • v8.8.18(Nov 10, 2022)

  • v8.8.17(Nov 4, 2022)

  • v8.8.16(Nov 2, 2022)

  • v8.8.15(Oct 27, 2022)

    • CARTO: fetchMap disable depthTest for point layers (#7332)
    • [CARTO] Support custom markers with original colors (#7311)
    • CARTO: Pass access token in load options (#7287)
    • CARTO: switch to using quadbin library (#7257)
    • Display helpful error if h3 v4 is accidentally included (#7283)
    • Chore: Bump loaders to 3.2.10 (#7305)
    Source code(tar.gz)
    Source code(zip)
  • v8.9.0-alpha.5(Oct 20, 2022)

    • Support MaskExtension in FirstPersonView (#7240)
    • CARTO: Encode stats URL query value (#7319)
    • Chore: Bump loaders to 3.2.10 (#7305)
    • Font Atlas Manager: Always update the atlas with the cached version (#7337)
    • CARTO: Explicitly set geoColumn when requesting GeoJSON (#7338)
    • Display helpful error if h3 v4 is accidentally included (#7283)
    • CARTO: fetchMap disable depthTest for point layers (#7332)
    • Fix pydeck render in Google Colab (#7325)
    • Minor fix in widget-tooltip: reset value on every iteration (#7329)
    • Update MapboxOverlay docs (#7320)
    • Fix altitude projection dependence on geometry.worldPosition (#7318)
    • [pydeck-carto] fixed example for H3 strokes (#7306)
    Source code(tar.gz)
    Source code(zip)
  • v8.8.14(Oct 20, 2022)

    • Minor fix in widget-tooltip: reset value on every iteration (#7329)
    • CARTO: Explicitly set geoColumn when requesting GeoJSON (#7338)
    • add Encode stats URL query value #7319
    Source code(tar.gz)
    Source code(zip)
  • v8.8.13(Oct 12, 2022)

  • v8.9.0-alpha.4(Oct 5, 2022)

  • v8.9.0-alpha.3(Sep 27, 2022)

    • CARTO: Pass access token in load options (#7287)
    • Improve makeTooltip template in jupyter-widget (#7278)
    • Add configuration attribute in pydeck. Fix css_background_color (#7255)
    • Carto: fetchMap support for custom markers (#7250)
    • Text-Layer: Improve SDF Font Rendering (Text Outlines) (#7212)
    • Add styling functions in pydeck (#7249)
    • CARTO: Support fields when parsing CartoVectorTiles (#7248)
    • CARTO: Tidy up binary loaders (#7194)
    • CARTO: CartoTileLayer picking coordinates correct (#7242)
    • Support dynamic functions in configuration (#7253)
    • CARTO fetchMap fix: parametrized queries are not working (#7238)
    • Use correct parameters when resizing icon atlas (#7232)
    Source code(tar.gz)
    Source code(zip)
  • v8.8.11(Sep 16, 2022)

  • v8.8.10(Sep 8, 2022)

    • CARTO: Support fields when parsing CartoVectorTiles (#7248, #7194)
    • CARTO: CartoTileLayer picking coordinates correct (#7242)
    • Support dynamic functions in configuration (#7253)
    • CARTO fetchMap fix: parametrized queries are not working (#7238)
    • Use correct parameters when resizing icon atlas (#7232)
    Source code(tar.gz)
    Source code(zip)
  • v8.9.0-alpha.1(Sep 1, 2022)

    • [feat] Add a _full3d prop that uses the plane with the maximum area to tesselate (#7205)
    • [mapbox] Match base map camera when terrain is used (#7114)
    Source code(tar.gz)
    Source code(zip)
  • v8.8.9(Aug 22, 2022)

  • v8.8.8(Aug 13, 2022)

  • v8.8.7(Aug 11, 2022)

  • v8.8.6(Jul 28, 2022)

  • v8.8.5(Jul 25, 2022)

    • Support customising textureParameters on auto-packed texture (#7126) (#7136)
    • Fix MapboxLayer index resolution (#7164)
    • CARTO: fetchMap support spatial index layers (#7065)
    Source code(tar.gz)
    Source code(zip)
  • v8.8.4(Jul 11, 2022)

    • Bump dependency versions (#7134)
    • Fix TRANSITION_EVENTS export (#7131)
    • Fixing issue where event listeners were not being removed after finalizing DeckGL when used with google maps (#7127)
    • [ts] Improve carto/style typings. (#7120)
    Source code(tar.gz)
    Source code(zip)
  • v8.8.3(Jul 5, 2022)

  • v8.8.2(Jul 2, 2022)

  • v8.8.1(Jul 1, 2022)

  • v8.8.0(Jul 1, 2022)

    • Official TypeScript typings are now available for public preview
    • TileLayer supports custom indexing systems
    • The @deck.gl/mapbox module now exports a new class MapboxOverlay, which implements Mapbox GL JS's IControl API. This control supports both overlaid and interleaved rendering modes.
    • CartoLayer includes native support to work with spatial indexes like H3 or QuadBin
    • Views now accept a padding option to offset the focal point
    • Improved performance when there are many invisible layers
    • Improved picking performance when using the TileLayer

    Visit the upgrade guide for deprecations and breacking changes.

    Source code(tar.gz)
    Source code(zip)
  • v8.8.0-beta.5(Jun 30, 2022)

    • CARTO: Handle minZoom&maxZoom in H3TileLayer (#7108)
    • CARTO: document use of spatial indices (#7107)
    • CARTO: Remove CARTO 2 for documentation (#7106)
    • CARTO - H3Tileset handles large latitude span (#7103)
    • CARTO: Add QuadbinTileLayer (#7095)
    • Add annotation to all layer classes (#7099)
    • Resolve async prop to null if fetch is undefined (#7098)
    Source code(tar.gz)
    Source code(zip)
  • v8.8.0-beta.4(Jun 27, 2022)

    • Fix arcgis integration (#7092)
    • Fix DeckGL component event root (#7091)
    • Add isInitialized flag to Deck class (#7084)
    • Fix FillStyleExtension precision (#7074)
    • GoogleMapsOverlay: Force useDevicePixels to true in interleaved mode (#7066)
    • GoogleMapsOverlay: HeatmapLayer weightsTransform uses correct clearColor (#7071)
    • CARTO: Remove deprecated getData function (#7063)
    • CARTO: Remove format prop from CartoLayer (#7056)
    • Add runtime check for H3 library (#7058)
    Source code(tar.gz)
    Source code(zip)
  • v8.7.12(Jun 23, 2022)

    • Fix FillStyleExtension precision (#7074)
    • GoogleMapsOverlay: Force useDevicePixels to true in interleaved mode (#7066)
    • GoogleMapsOverlay: HeatmapLayer weightsTransform uses correct clearColor (#7071)
    Source code(tar.gz)
    Source code(zip)
  • v8.8.0-beta.3(Jun 27, 2022)

    • Avoid mutating iconMapping value in autopacking (#7060)
    • Fix picking in non-geospatial TileLayer (#7052)
    • Do not access viewports before viewManager initialization (#7049)
    • QuadkeyTileset2D add missing metadata (#7047)
    • Add type for textureParameters (#7045)
    • [ts] Types for CartoLayer aggregation parameters (#7048)
    • Geohash layer (#6917)
    • [ts] TerrainLayer (#7044)
    • Cull TileLayer sub layers during picking (#6733)
    Source code(tar.gz)
    Source code(zip)
Owner
Vis.gl
Frameworks for WebGL-powered large-scale data visualization
Vis.gl
Summary statistics of geospatial raster datasets based on vector geometries.

rasterstats rasterstats is a Python module for summarizing geospatial raster datasets based on vector geometries. It includes functions for zonal stat

Matthew Perry 437 Dec 23, 2022
gpdvega is a bridge between GeoPandas and Altair that allows to seamlessly chart geospatial data

gpdvega gpdvega is a bridge between GeoPandas a geospatial extension of Pandas and the declarative statistical visualization library Altair, which all

Ilia Timofeev 49 Jul 25, 2022
Geospatial Image Processing for Python

GIPPY Gippy is a Python library for image processing of geospatial raster data. The core of the library is implemented as a C++ library, libgip, with

GIPIT 83 Aug 19, 2022
leafmap - A Python package for geospatial analysis and interactive mapping in a Jupyter environment.

A Python package for geospatial analysis and interactive mapping with minimal coding in a Jupyter environment

Qiusheng Wu 1.4k Jan 2, 2023
GeoNode is an open source platform that facilitates the creation, sharing, and collaborative use of geospatial data.

Table of Contents What is GeoNode? Try out GeoNode Install Learn GeoNode Development Contributing Roadmap Showcase Most useful links Licensing What is

GeoNode Development Team 1.2k Dec 26, 2022
🌐 Local tile server for viewing geospatial raster files with ipyleaflet

?? Local Tile Server for Geospatial Rasters Need to visualize a rather large raster (gigabytes) you have locally? This is for you. A Flask application

Bane Sullivan 192 Jan 4, 2023
Minimum Bounding Box of Geospatial data

BBOX Problem definition: The spatial data users often are required to obtain the coordinates of the minimum bounding box of vector and raster data in

Ali Khosravi Kazazi 1 Sep 8, 2022
h3-js provides a JavaScript version of H3, a hexagon-based geospatial indexing system.

h3-js The h3-js library provides a pure-JavaScript version of the H3 Core Library, a hexagon-based geographic grid system. It can be used either in No

Uber Open Source 648 Jan 7, 2023
🌐 Local tile server for viewing geospatial raster files with ipyleaflet or folium

?? Local Tile Server for Geospatial Rasters Need to visualize a rather large (gigabytes) raster you have locally? This is for you. A Flask application

Bane Sullivan 192 Jan 4, 2023
The geospatial toolkit for redistricting data.

maup maup is the geospatial toolkit for redistricting data. The package streamlines the basic workflows that arise when working with blocks, precincts

Metric Geometry and Gerrymandering Group 60 Dec 5, 2022
A part of HyRiver software stack for handling geospatial data manipulations

Package Description Status PyNHD Navigate and subset NHDPlus (MR and HR) using web services Py3DEP Access topographic data through National Map's 3DEP

Taher Chegini 5 Dec 14, 2022
Enable geospatial data mining through Google Earth Engine in Grasshopper 3D, via its most recent Hops component.

AALU_Geo Mining This repository is produced for a masterclass at the Architectural Association Landscape Urbanism programme. Requirements Rhinoceros (

null 4 Nov 16, 2022
Specification for storing geospatial vector data (point, line, polygon) in Parquet

GeoParquet About This repository defines how to store geospatial vector data (point, lines, polygons) in Apache Parquet, a popular columnar storage fo

Open Geospatial Consortium 449 Dec 27, 2022
Simple, concise geographical visualization in Python

Geographic visualizations for HoloViews. Build Status Coverage Latest dev release Latest release Docs What is it? GeoViews is a Python library that ma

HoloViz 445 Jan 2, 2023
Compare outputs between layers written in Tensorflow and layers written in Pytorch

Compare outputs of Wasserstein GANs between TensorFlow vs Pytorch This is our testing module for the implementation of improved WGAN in Pytorch Prereq

Hung Nguyen 72 Dec 20, 2022
High-level geospatial data visualization library for Python.

geoplot: geospatial data visualization geoplot is a high-level Python geospatial plotting library. It's an extension to cartopy and matplotlib which m

Aleksey Bilogur 1k Jan 1, 2023
🎆 A visualization of the CapsNet layers to better understand how it works

CapsNet-Visualization For more information on capsule networks check out my Medium articles here and here. Setup Use pip to install the required pytho

Nick Bourdakos 387 Dec 6, 2022
Regress.me is an easy to use data visualization tool powered by Dash/Plotly.

Regress.me Regress.me is an easy to use data visualization tool powered by Dash/Plotly. Regress.me.-.Google.Chrome.2022-05-10.15-58-59.mp4 Get Started

Amar 14 Aug 14, 2022
This is a super simple visualization toolbox (script) for transformer attention visualization ✌

Trans_attention_vis This is a super simple visualization toolbox (script) for transformer attention visualization ✌ 1. How to prepare your attention m

Mingyu Wang 3 Jul 9, 2022
OS Algo Visualization - Operating system algorithm visualization using python pygame library

OS_Algo_Visualization Operating system algorithm visualization using python pyga

Krushang Satani 2 Feb 17, 2022