[Creating an Idea for this per Jonas Eckhardt's request.]
Issue: If the Hyper API is used to add polygon spatial fields that have the opposite vertex winding order from what Hyper requires then whenever the spatial field is used in Tableau Desktop the default zoom level is the entire planet, rather than set to the extents of the spatial objects. In particular ESRI .shp files and some GeoJSON files can cause this issue since they use that opposite order.
This is a known issue, some links:
Alteryx community thread: Spatial Geometry Output to Hyper vs SHP Difference... - Alteryx Community
Tableau Slack #data-dev thread: https://tableau-datadev.slack.com/archives/CHTG096LD/p1580336896022600
Request: Ideally Hyper would simply detect the vertex winding order and automatically adjust...however I'd be satisfied with having an option on insert/update that let me specify the winding order of the input data and then the Hyper API would do the conversion.
There are two current workarounds, neither are great:
- Instead of using the Hyper API use multiple connections (to the data and spatial file(s)) and join within Tableau Desktop. In that case when Tableau Desktop connects to the ESRI shape file, etc. Tableau is automatically adjusting for the winding order and the default zoom levels work as expected. This is not ideal for maintaining extracts on Tableau Server because Tableau Server must be configured to have access to the spatial files in order to refresh the extracts.
- Tableau's Sarah Battersby wrote some vertex flipping code for Python Tableau/ExtractAPI2.0 at master · sarahbat/Tableau · GitHub and we use that in our data pipelines to flip the vertices before writing. This adds unwanted extra complexity to our data pipelines; for example even though Alteryx has an Output tool that supports Hyper the complexity is such that we've had to build our own set of macros for handling spatial data and writing it to Hyper files.