Right now we have an all-or-nothing approach to automatic configuration of projection scale and translate parameters: either all geo data is passed to the fitting function or, in the case of custom projections, there is no auto-fitting at all.
I think we could support an intermediate option in which selected data sources (e.g., visualized points on a map) drive the fitting but other sources (e.g., a base map that may vastly exceed the other data points) are not. The basic logic seems straightforward, and we would want to enable clipping (just as we do for custom projections) when only fitting to a subset of the data.
The main question in my mind is what the VL syntax should be for specifying this behavior.
Should this be a mark-level property (similar to clip, filled, etc)? I'm not sure where else to put it. I don't think the projection works because then we need a way of externally referencing the various marks that are either included or excluded.
If this were a mark-level property, what should its name be? projectionFit: true/false?
Should we support whitelists (mark for inclusion, exclude others), blacklists (mark for exclusion, include others), or some kind of hybrid (based on presence of true and/or false values for projectionFit)? As a starting point, I think I would default to true (our current behavior) and then exclude through an explicit opt-out.
Right now we have an all-or-nothing approach to automatic configuration of projection
scale
andtranslate
parameters: either all geo data is passed to the fitting function or, in the case of custom projections, there is no auto-fitting at all.I think we could support an intermediate option in which selected data sources (e.g., visualized points on a map) drive the fitting but other sources (e.g., a base map that may vastly exceed the other data points) are not. The basic logic seems straightforward, and we would want to enable clipping (just as we do for custom projections) when only fitting to a subset of the data.
The main question in my mind is what the VL syntax should be for specifying this behavior.
clip
,filled
, etc)? I'm not sure where else to put it. I don't think the projection works because then we need a way of externally referencing the various marks that are either included or excluded.projectionFit: true/false
?projectionFit
)? As a starting point, I think I would default totrue
(our current behavior) and then exclude through an explicit opt-out.Thoughts? @domoritz @kanitw @willium