tangram-unity icon indicating copy to clipboard operation
tangram-unity copied to clipboard

The Master Plan

Open matteblair opened this issue 7 years ago • 2 comments

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
  • ???

matteblair avatar Mar 21 '17 21:03 matteblair

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)

tallytalwar avatar Mar 21 '17 23:03 tallytalwar

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.

matteblair avatar Mar 22 '17 14:03 matteblair