-
Notifications
You must be signed in to change notification settings - Fork 299
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[loader] Vector tiles support #182
Comments
I'm currently working on integrating vector tiles, and I identified a few step ahead:
First I'm concentrating on solving one way, and then the others (that should be smooth). Below are a list of PR related to this work (will be updated):
|
Let's lay a solid basis, with the aim to easily iterate later on this subject (for example when expanding style possibilities). Here's a more detailed point of view I got. Tile loadingVector tiles are accessible through TMS, WMTS, WMS and WFS. Currently, no provider can fetch Question: do we add all the methods related to vector tiles in a new file, like
Those methods could be used in each Provider, using the Tile stylingThe
The same reasoning can be applied to Let's discuss it further ! |
We should start rethinking other Providers / Drivers as well. For instance WMTS_Provider does different things for elevation and color textures while it's completely unrelated to the WMTS protocol. An option is to reorganize providers: ImageryProvider, ElevationProvider, VectorProvider for instance. They would then use some protocol aware code (WMTSProtocolHandler ? TMSProtocoHandler?) that would simply build the correct url and fetch the result. And maybe VectorProvider isn't even useful, since it'll provide textures or meshes. You could declare an imagery layer using the xyz protocol and a vector-tiles data source. Then ImageryProvider would do: return tmsProtocolHandler.fetch(params).then(tile => VectorTile.toImageryTexture(tile) For a layer using a raster data source ImageryProvider would do: return tmsProtocolHandler.fetch(params).then(tile => Raster.toImageryTexture(tile)
return tmsProtocolHandler.fetch(params).then(tile => Raster.toElevationTexture(tile) WDYT? |
Please allow me to jump in, as this discussion is very much related to recent experience with students having a really hard time to customize itowns with new datasources, new data formats or new portraying styles (without even talking about interaction) and facing monolithic providers that they have a hard time to customize. We definitely need this discussion and clarification of the roles of providers/protocolhandlers, loaders/drivers and feature_transformer/stylizers. Current providers are basically responsible for orchestrating the whole transformation from datasources/servers to Three.js objects, so it is very cumbersome to mix and match different protocols, formats and styles. This discussion has multiple facets, my proposition, definitely up to discussion, would be that :
|
I quite agree with you @mbredif on the role of providers. For the rest, no opinion yet :-)
Note that this is already possible with providers, at least. Also, if you import iTowns with a module bundler, you can already customize a lot of things (but I do agree that this process still requires too much inner knowledge of iTowns :-/ ). |
@mbredif I agree - it's more or less what I wrote in my comment, but yours is way clearer :) |
url functions in some provider (tms, wfs, wms and wmts) share quite the same content. Following the work in iTowns#182, these functions can be put outside the providers without problem. Full documentation has been added, for easier usage outside the core, and unit testing as well.
url functions in some provider (tms, wfs, wms and wmts) share quite the same content. Following the work in iTowns#182, these functions can be put outside the providers without problem. Full documentation has been added, for easier usage outside the core, and unit testing as well.
url functions in some provider (tms, wfs, wms and wmts) share quite the same content. Following the work in iTowns#182, these functions can be put outside the providers without problem. Full documentation has been added, for easier usage outside the core, and unit testing as well.
url functions in some provider (tms, wfs, wms and wmts) share quite the same content. Following the work in #182, these functions can be put outside the providers without problem. Full documentation has been added, for easier usage outside the core, and unit testing as well.
Solved in multiple PRs |
iTowns should support vector tiles at some point.
Vector tiles are an efficient vector format for rendering of 2D data. Vector tile services start to be available, and server-side components do exist.
Implementing vector tiles support suppose having Clamping available first ( #181 ).
We could use the following services for testing purposes :
The text was updated successfully, but these errors were encountered: