feat: WIP add MVT and PMTiles support#1440
Draft
AlaricBaraou wants to merge 4 commits intoNASA-AMMOS:masterfrom
Draft
feat: WIP add MVT and PMTiles support#1440AlaricBaraou wants to merge 4 commits intoNASA-AMMOS:masterfrom
AlaricBaraou wants to merge 4 commits intoNASA-AMMOS:masterfrom
Conversation
- Add PMTilesLoaderBase for core PMTiles archive handling - Add PMTilesMeshPlugin for 3D mesh rendering from PMTiles - Add PMTilesPlugin and PMTilesImageSource for texture rendering - Refactor MVT rendering into composable parts: - VectorTileStyler: shared styling configuration - VectorTileCanvasRenderer: canvas/texture rendering - VectorTileMeshRenderer: 3D mesh rendering - VectorTileIterator: feature iteration utility
5a47a43 to
27a1805
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR is a first attempt at introducing support for Mapbox Vector Tiles (MVT).
I explored two approaches, rendering either as native Three.js geometry or as rasterized textures.
This addresses the goals outlined in #982 and expands upon the initial work in #990.
This can be used as a start to build on top of / refine.
I have very little knowledge of MVT, most of this have been achieved by imitating the existing plugins and loaders and through LLM assistance.
While it seems to mostly work ( especially the rasterized approach )
It would be better to validate / review everything.
I'm more than happy to assist with that and will commit my own future improvements as I start to use this in my app.
Here is a video of the two added examples.
http://localhost:5173/three/mvt.html to debug loading a single tile and comparing it with the expected result.
http://localhost:5173/three/mvt_globe.html to test the projection of the tiles on a globe.
demoMVT.mp4