Want 2D map and 3D globe functionality

Hii

Our company want to make a GIS application which can support both 2D Map and 3D globe functionality. We need following features atleast.

  1. Support for 2D map.

  2. Support for 3D glove.

  3. Support for raster data by WMS.

  4. Support for WFS, WFS-T for vector data.

So We have two options

  1. Cesium : Cesium support both 2D and 3D functionality. It also has WMS support but it does support WFS, WFS-T.

  2. OL3 : ol3 supports 2D map, WMS and will support WFS,WFS-T soon.

So We can do 2 things

  1. Contribute to cesium : Add support for WFS, WFS-T in cesium.

  2. Contribute to OL3 :Integrate cesium in ol3. I know this is in roadmap of ol3 team, but we need this ASAP. So we will do the integration of cesium in ol3 ourself.

Now I want to ask,

  1. which is better approach?

  2. Which involve less effort.

3.Which is easy to do.

NOTE: Our company can put some dedicated resource on these tasks to work in collaboration with cesium or ol3 team.

Any Suggestions … We need to start this ASAP.

Regards

Pankaj Bansal

Hi,

I noticed this same post to the ol3 list. I can’t speak to OL3 roadmap or to the level of effort involved to add features to it.

For Cesium, a simple WFS implementation will be straightforward. Just make the WFS calls and create geometries using the references I previously sent you. WFS-T will be a bit more work. Cesium supports “picking” for 3D object editing so all the fundamental capabilities are there but need to be brought together.

Patrick

Also, can you tell us more about the GIS app you are building?

Patrick

Hi Patrick

Thanks for the quick reply and sorry for my delayed response.

About app, it is to allow customers to load imagery data from diff sources, add useful info on that data using point,line,polygon marking etc. If you can give me some ID, I can mail you the brochure for that Application.

Thanks

Pankaj Bansal

Hi

Can you tell me where is the code to make WMS calls to load data from serve and then draw the image.

Sorry but I could not find any POST command in cesium.js and I think you need to POST to get WMS data.

PS. I loaded a WMS layer from geoserver and it was loaded successfully. But could not debug properly to know how the loading was done.

I saw some Post that code is minified even in unminified cesium file and starts by

/**

@license

Knockout JavaScript library v3.0.0

© Steven Sanderson - http://knockoutjs.com/

License: MIT (http://www.opensource.org/licenses/mit-license.php)

*/

Regards

Pankaj Bansal

Our WMS implementation is in: https://github.com/AnalyticalGraphicsInc/cesium/blob/master/Source/Scene/WebMapServiceImageryProvider.js

And the tests are here: https://github.com/AnalyticalGraphicsInc/cesium/blob/master/Specs/Scene/WebMapServiceImageryProviderSpec.js

Patrick

Hi Patrick

I have some more questions…

  1. Is it possible to create the primitives on the fly. Like the draw control in open layers. I create 2 points and a line is created between them. Now if I draw third point, a line line should be extended to third point also. Or will I have to recreate the line again and again as I choose more and more points.

  2. What about modifying primitives. Is there something like open layers or we will have to do it ourself. I know I can pick objects using the picking method in cesium.

Regards

Pankaj Bansal

Answers below.

  1. Is it possible to create the primitives on the fly. Like the draw control in open layers. I create 2 points and a line is created between them. Now if I draw third point, a line line should be extended to third point also. Or will I have to recreate the line again and again as I choose more and more points.

For a polylines, see setPositions. You can call this as many times as needed to change the positions of a polyline. Geometries, on the other hand, generally can’t be modified and need to be recreated.

  1. What about modifying primitives. Is there something like open layers or we will have to do it ourself. I know I can pick objects using the picking method in cesium.

Currently Cesium doesn’t have any higher-level selection constructs than picking as shown in the Sandcastle example.

Patrick

hi patrick

Some more questions

  1. Is there a concept of feature in cesium. If I load a layer from geoserver by WFS, it should a load a full feature with geometry and all other attributes. It should load full feature with attributes not just geometry. Is it possible in cesium. Or I will have to take care of these things while I implement WFS.

  2. If I create a point, I will have to create a feature which will have default value for the attributes of the feature. Are these supported or these have to be implemented ?

Regards

Pankaj Bansal

Look at the DynamicScene layer, which we built GeoJSON and TopoJSON on and are also building KML on. This doesn’t provide all the WFS infrastructure, but it is higher-level than using geometries directly.

Patrick

hi Pankaj,
we are also planning to do somthing similar, which path did you choose. please tell us about your challenges...