iTowns / itowns

A Three.js-based framework written in Javascript/WebGL for visualizing 3D geospatial data
http://www.itowns-project.org
Other
1.08k stars 293 forks source link

Implement getCapabilities call to follow WMTS, WMS etc... specs #285

Open autra opened 7 years ago

autra commented 7 years ago

Before querying WMTS or WMS servers for textures, we need to query their getCapabilities method.

I have already started implemented this, so better create an issue to follow this.

gcebelieu commented 7 years ago

If this this is implemented, user should still have the possibility to disable this feature and provide wms or wmts layers configuration by themself. Indeed : querying capabilities introduces a delay before accessing to textures that may degrade user experience.

autra commented 7 years ago

@gcebelieu I don't plan on breaking existing functionalities (yet).

Some questions:

gcebelieu commented 7 years ago

how will user update their conf if the getCapabilities has changed? Will they periodically check manually?

My opinion is that if user (I mean : application developer using itowns) don't use getCapabilities features but json conf, it is its responsability to check capabilities changes.

what is the geoportail planning to use ? GetCap of json conf?

This is my point :) For geoportal site we will use json conf with iTowns.

If the latter, where will you put your json configuration ? External files ? in Index.html ? In code ?

The process is already in place and running : We grab all layers conf "periodically" from getcapabilites (this is a backoffice web site task), store them in the web site dedicated database. At run time, they are thus immediately available and given as json parameters to the viewer for each layers users display (in 2D or 3D mode either). The libraries currently used (OpenLayers and VirtualGeo) allow this.

autra commented 7 years ago

@gcebelieu is this code published somewhere, to have a clear idea of what is happening in your side?

gcebelieu commented 7 years ago

@gcebelieu is this code published somewhere, to have a clear idea of what is happening in your side?

No, it isn't. The mechanism I explained aboved with our backoffice has been set up precisely to avoid latency due to external webservices call (like getCapabilities) when adding layers to the viewer. The webmaster of the site configure (once and for all) layers that has to be proposed on the geoportal site before publishing them. The viewer has then all the parameters needed to simply send GetMap or GetTile requests.

Thus my need is only to have the possibility of explicitly providing layers parameters to iTowns (as it is currently possible) to avoid a getCapabilities request when adding a wmts or wms layer if this feature (which may have also an interest, I don't deny it) is added to iTowns.

autra commented 7 years ago

ok thanks for your answers.