mapbox / geobuf

A compact binary encoding for geographic data.
ISC License
967 stars 84 forks source link

Split analysis and encoding steps #117

Open JannikGM opened 3 years ago

JannikGM commented 3 years ago

I feel like the analysis step should return recommended options, which the encoder should consume. If someone has a huge dataset with known precision and dimension (for example, because they just generated it), they should be able to skip the analysis phase (for performance reasons).

This could even be a feature, in that someone could use geobuf.encode(obj, {precision:4, dimensions:2}) to simplify their coordinates (also see https://github.com/mapbox/geobuf/issues/96#issuecomment-576001554). Additionally, if the offered precision can not be handled by the encoder, then one could fallback to things like JSON.stringify. An actual use-case for this can be found in https://github.com/maplibre/maplibre-gl-js/issues/106#issuecomment-802834969.