Hello! The issue is in impossibility to change size of point circles in a deck.gl geojson chart. Although the interface allows setting the size manually with any figure, if it is less than 100, all point circles disappear. Thus, it's only possible to build enormous circles, that sometimes hide the necessary information below them. Moreover, there are no options in interface to switch static size (meters) to a dynamic one (pixels), depending on a map scale.

image (1) image (2) image (3)

I've also tried to set the size manually by editing a geojson itself. I used the folowing options in "properties" dict to fit it, but didn't succeed.

[geojson building in PostGIS]...

'properties', jsonb_build_object(
        'guid', guid,
        'strokeColor', '#0000FF',

        'pointRadius', 30,
        'getRadius', 30,
        'radius', 30,
        'getPointRadius', 30,
        'size', 30,
        'getSize', 30,
        'marker-size', 30,
        'radiusPixels', 30,
        'getRadiusPixels', 30,
        'point_size', 30,
        'circle-radius', 30,
        'point_size_pixels', 30,
        'getPointSize', 30,
        'pointRadiusUnits', 'pixels',
        'radiusUnits', 'pixels'
    )

So, there are two questions: 1) Is it possible to set the correct size now (any in (0;100) pixels, dynamically scaling with map)? 2) Is it possible to modify interface menu for deck.gl geojson charts to allow user setting proper radii directly there?

Thank you!

P.S.: Superset version: 3.1.2; also tried in 4.1.1 with the same result.

Comment From: dosubot[bot]

Hello, @rdyatlov! I'm here to assist you with any bugs, questions, or contributions you have. Let's tackle this issue together!

1) In Superset, the default units for circle size in deck.gl geojson charts are in "square meters" and can be configured using the point_unit control. However, there is no direct setting in the interface to switch from static size (meters) to dynamic size (pixels) based on map scale. The min_radius and max_radius settings ensure that the circle respects minimum and maximum radius sizes in pixels as the zoom level changes, but these are not directly configurable through the interface for dynamic scaling [1].

2) Currently, there is no built-in configuration or setting in the Superset interface that allows users to set point circle sizes directly in pixels, bypassing the default unit settings. The interface does not provide an option to dynamically scale circle sizes with the map. Adjustments to the interface to allow setting radii directly would require changes to the codebase, potentially involving modifications to the control panel configuration for the deck.gl geojson charts [1].

To continue talking to Dosu, mention @dosu.

Comment From: rdyatlov

@dosu, I'va added options you proposed to "properties", but it also didn't help:

  {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          85.151252,
          52.509425
        ]
      },
      "properties": {
        "color": [
          0,
          255,
          0,
          255
        ],
        "max_radius": 50,
        "min_radius": 5,
        "point_unit": "pixels",
      }

Hello, @rdyatlov! I'm here to assist you with any bugs, questions, or contributions you have. Let's tackle this issue together!

  1. In Superset, the default units for circle size in deck.gl geojson charts are in "square meters" and can be configured using the point_unit control. However, there is no direct setting in the interface to switch from static size (meters) to dynamic size (pixels) based on map scale. The min_radius and max_radius settings ensure that the circle respects minimum and maximum radius sizes in pixels as the zoom level changes, but these are not directly configurable through the interface for dynamic scaling [1].
  2. Currently, there is no built-in configuration or setting in the Superset interface that allows users to set point circle sizes directly in pixels, bypassing the default unit settings. The interface does not provide an option to dynamically scale circle sizes with the map. Adjustments to the interface to allow setting radii directly would require changes to the codebase, potentially involving modifications to the control panel configuration for the deck.gl geojson charts [1].

To continue talking to Dosu, mention @dosu.

Comment From: dosubot[bot]

The point_unit property you added as "pixels" is not a recognized unit in the Superset codebase for deck.gl geojson charts. The valid units for point_unit are square_m, square_km, square_miles, radius_m, radius_km, and radius_miles [1][2].

To achieve dynamic scaling of circle sizes in pixels, you would need to modify the Superset codebase. This involves implementing a feature that allows point sizes to be specified in pixels and dynamically scale with the map. Currently, this functionality is not available out of the box in Superset.

To continue talking to Dosu, mention @dosu.

Comment From: rdyatlov

@dosu, Also didn't help. Can it be set by developing a custom plugin-chart?

Thank you!

The point_unit property you added as "pixels" is not a recognized unit in the Superset codebase for deck.gl geojson charts. The valid units for point_unit are square_m, square_km, square_miles, radius_m, radius_km, and radius_miles [1][2].

To achieve dynamic scaling of circle sizes in pixels, you would need to modify the Superset codebase. This involves implementing a feature that allows point sizes to be specified in pixels and dynamically scale with the map. Currently, this functionality is not available out of the box in Superset.

To continue talking to Dosu, mention @dosu.

Comment From: dosubot[bot]

Yes, it is possible to achieve dynamic scaling of circle sizes in pixels by developing a custom plugin-chart for Superset. You can create a custom plugin that dynamically adjusts circle sizes based on the map scale. This involves implementing a custom chart component where you can control the rendering logic, such as dynamically calculating circle sizes in pixels. The ScatterPlotGlowOverlay in Superset demonstrates how circle sizes can be dynamically scaled, which you can adapt for your custom plugin [1].

To continue talking to Dosu, mention @dosu.

Comment From: rusackas

For anyone interested, I opened t draft PR above taking a look at this. The controls are indeed weird for this. I'm not sure we really need the Point Radius Scale control at all, and I'm having trouble sorting out the rhyme or reason of how it should work, but adding controls to set the radius of the dot explicitly, and another control to make it meters/common/pixels is pretty straightforward. I'll try to find more time to fiddle with it, but no guarantees... anyone is willing to comment on or adopt my work and try to get a fix merged.

Comment From: rdyatlov

For anyone interested, I opened t draft PR above taking a look at this. The controls are indeed weird for this. I'm not sure we really need the Point Radius Scale control at all, and I'm having trouble sorting out the rhyme or reason of how it should work, but adding controls to set the radius of the dot explicitly, and another control to make it meters/common/pixels is pretty straightforward. I'll try to find more time to fiddle with it, but no guarantees... anyone is willing to comment on or adopt my work and try to get a fix merged.

@rusackas Hello Evan! Are there any news on this issue? Thank you!

Comment From: rusackas

Nope... please feel free to dive in! I'm not currently working on this, so a PR (based on mine, or otherwise) would be warmly welcomed.