Discussion: how to symbolize isochrones and isodistances
See original GitHub issueAs discussed in today’s meeting, symbolizing returned features will be a blocker for users during CF workflows.
Below I present the problem with currently available “out-of-the-box” methods and propose a couple of ideas for how we can overcome. The solutions will require some work to think about how we provide more suitable styling by default.
In the examples below, I am using a dataset of Whole Foods and Safeway grocery stores in the city of Denver. For each location, I’ve created walk time polygons at 5,10 and 20 minute intervals.
Default symbology
By default, the polygons draw from lowest to highest values. In this case, that means that the largest (20 minute) polygon is covering the other two polygons:
Helper cartography
If styled with something like our color_bins_layer
the default still doesn’t solve the issue and also aren’t suited for mapping these values.
Customize color bins
If using this helper, the classification method should change to Equal Intervals and the number of class breaks should reflect the number of data range values. Even with those modifications, we still can’t really “see” the result as this has been applied to the fill of the symbol and these are modifications that might not be readily apparent to the user. Also, the legend still isn’t what we would expect to see on this kind of map
Alternative ideas
-
of course the ideal scenario would be to have the polygons ordered from max to min, but since that is a limitation we have, we need to think of other ideas.
-
change the default opacity for polygons. This isn’t the best path forward because that will have implications for all polygon data that is added. If for example someone has small polygons, they would be really hard to see with such a high level of opacity.
-
Return lines. If we returned lines, we would need to create a new helper method and make sure we have a matching legend. Also, we would not be able to add any fill color to the polygons because we will once again run into the same issue of the larger polygon obscuring the smaller ones.
-
Have a precanned default style that loads with the output. Instead of modifying the opacity of all polygon features, we could think of a way to only add opacity to output isochrone/distance polygons. And in VL terms, use
filter
instead of opacity to have it at the layer level. But if we go back through the styling loop here, we will still run into the same problems outlined above when people begin to apply their own styling
Issue Analytics
- State:
- Created 4 years ago
- Comments:19 (19 by maintainers)
Top GitHub Comments
IMO it’s easy to add this method so we can provide a simple solution to visualize isolines, which, on the other hand, is not trivial to do.
After having added the
exclusive
option, overlapping is not a problem, and color ramps can be easily added, but the legends are not appropriate:This is because our data already is in ranges, and we’re creating new equal ranges based on the top values of our ranges.
One possible solution is to use a categorical column:
Now legends and hover values are fine. But we must either always add the new text column and waste space or instruct the user how to create it.