-
Notifications
You must be signed in to change notification settings - Fork 327
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
Architecture #7
Comments
Based on experiences from http://www.webglearth.com/ available at https://github.com/webglearth/webglearth2 and based on what has been done before at https://github.com/openlayers/ol3/tree/cesium we are reviewing the possibilities for ideal integration of Cesium with OL3. @petrsloup will comment soon. |
In order to keep the integration easy to maintain, it is indeed a good idea to keep the integration code separate from the ol3 itself. Although it makes sense to consider cesium to be just another renderer, it would require a lot of new code inside ol3 itself (namely ol.View3D), plus the ol3 is not ready to change renderer on-the-fly. I think the best approach is to create "ol3 cesium plugin" and (if possible) completely avoid any ol3 or cesium modifications:
This way, any 2D ol3 application could be switched to 3D by creating the additional 3D interface object:
But there are still some new methods needed to be able to utilize the 3D features (setting tilt, roll, altitude in meters, animations, ...) -- these could all be part of the integration object ( I think, however, some minor changes might be required to the ol3 itself in order to ensure optimal integration without any "hacks" -- particular requirements will become more clear after initial implementation. |
Thanks @petrsloup! +1 on implementing this as a plugin. This is also in line with my initial thinking and with what we had discussed in past ol3 dev meetings. I think, however, that we should avoid using the ol namespace for the plugin. What namespace to use is a matter of taste. Personally, I would like something like this (i.e. factory instead of constructor): var map = new ol.Map(..);
// setup...
var ol3d = ol3cesium({map: map, ...});
ol3d.setEnabled(true); Minimal changes to ol3 are fine - also something we have a general agreement on. |
I agree this direction sounds good. My only suggestion is in line with @ahocevar's I think. In my opinion, nobody should ever use the So +1 on an adapter. |
Hello, I will not comment on the renderer vs plugin design choice, but I'd like to stress that we would probably be interested in the future to have a ol3js / Three.js integration too. Keeping this in mind would be great, just in order not to make technical decisions hindering that. |
Suggested |
This integration is developed in an open source layer built ontop of ol3js as ol3js is not bound to a specific 3D globe. This layer should allow to provide a common and efficient way to have ol3js and cesium working closely together.
Technical issues
How to keep both ol3js and cesium synchronized?
Save computing resources
Smooth transition needs to know the elevation of the destination point of the camera
Cesium camera entering the terrain
The text was updated successfully, but these errors were encountered: