tangram-unity
tangram-unity copied to clipboard
The Master Plan
Part 0: Data types and utilities
- LngLat
- MercatorMeters
- TileAddress
- TileData
- Coordinate transforms
Part 1: Data sources
- Asynchronous file/http requests
- Vector tile format parser(s)
Part 2: Vector data mesh generation
- Polygon tesselation
- Polygon extrusion
- Polyline tesselation
- Point quads
Part 3: Feature filtering
- Feature property matching
- Filter composition
- Script filters
Part 4: Automatic tile coverage
- Fixed coverage based on input bounds
- Streaming coverage following a moving viewport
Part 5: Terrain data mesh generation
- Elevation grid mesh with normal maps
- Extruded polygon offsets by elevation grid
- Polygon and polyline subdivision by elevation grid
Future Parts:
- Custom location providers
- Geocoding queries
- Reverse geocoding queries
- Routing queries
- ???
This looks like a solid plan and flow of work. Following are few ideas, opinions and maybe future work, I can think of right now, we can add to the list:
- Generic projection: Again could be part of the future (probably more useful in game design scenarios). We never added more map projection support in ES though.
- More on tile coverage: Borrowing proxy tiles and overzoomed tiles concept from tangram
- places APIs?
- isochrones support? (again maybe for future)
Yeah, thinking about projection options is a good idea. In particular I'd like to think about a non-projection, where map features are drawn on a globe in their true 3D positions.
Some things I forgot on the list:
- Developer workflows: This is less of a coding task and more of a thought process for determining how to make it easy for game devs to use the output of our code (e.g. exporting models to an editable format)
- Deployment: We'll need to think about whether this belongs in the Unity Asset store and how we would get it there.
- Dot Net Core: Throughout development we should make a conscious effort to keep Unity-specific code as contained as possible, in order to enable later deployment to other Dot Net platforms.