[Geoserver-devel] W3DS Inclusion of 3D Models X3D/KML

Hi,

I just made a pull request https://github.com/geoserver/geoserver/pull/226.

Basically, this pull request extends W3DS to support the inclusion of inline 3D models in SLDs. For example the following 3D style can be seen as the default 3D style for 3D points for the X3D format (the red cone in the print screens). To have the same for KML we will need to provide a COLLADA model, which is the GoogleEarth supported format.

<?xml version="1.0" encoding="ISO-8859-1"?> Point Cone [http://localhost:8080/models/cone.x3d](http://localhost:8080/models/cone.x3d)

This feature is available for KML and X3D(HTML5) response formats. Note, the 3D horse is an export from a 3D model created in blender to the x3D format (the model is available on X3DOM site).

The print screens are the result of this request:

http://localhost:8080/geoserver/w3ds?version=0.4&service=w3ds&request=GetScene&crs=EPSG:27492&format=text/html&layers=dem_3d,interest_points&boundingbox=-16511.374635294116,198979.99271111112,-16099.38084929972,199372.85817777776&styles=,point_model

The dem_3D layer is a TIN stored in a POSTGIS database and the layer
interest_points is a list of georeferenced points with a description.

The style used to produced the scene:

<?xml version="1.0" encoding="utf-8"?> Point Cone description CONE [http://localhost:8080/models/cone.x3d](http://localhost:8080/models/cone.x3d) description HORSE [http://localhost:8080/models/horse.x3d](http://localhost:8080/models/horse.x3d) description HOUSE [http://localhost:8080/models/house.x3d](http://localhost:8080/models/house.x3d) description AIRPLANE relativeToGround 50 [http://localhost:8080/models/airplane.x3d](http://localhost:8080/models/airplane.x3d)

In the nexts days i will provide a tutorial.

Any comments are very wellcome.

Best regards,

Nuno Oliveira

(attachments)

Capture du 2013-05-01 04:38:56.png
Capture du 2013-05-01 04:39:33.png
Capture du 2013-05-01 04:39:57.png

On Sat, May 4, 2013 at 11:27 PM, Nuno Miguel Carvalho Oliveira <
nmco51845@anonymised.com> wrote:

Hi,

I just made a pull request https://github.com/geoserver/geoserver/pull/226
.

Just merged it. Don't you have commit access yet?
Sorry I'm asking again but I don't remember, did you sign the contribution
agreement?

I only skimmed though the patch, but it seems the new KML architecture made
it easy enough to setup the
export of collada models.

Basically, this pull request extends W3DS to support the inclusion of
inline 3D models in SLDs. For example the following 3D style can be seen as
the default 3D style for 3D points for the X3D format (the red cone in the
print screens). To have the same for KML we will need to provide a COLLADA
model, which is the GoogleEarth supported format.

<?xml version="1.0" encoding="ISO-8859-1"?>
<StyledLayerDescriptor>
  <NamedLayer>
    <Name>Point Cone</Name>
    <UserStyle>
      <FeatureTypeStyle>
        <Rule>
          <PointSymbolizer>
            <Graphic model="true">
              <href>http://localhost:8080/models/cone.x3d&lt;/href&gt;
            </Graphic>
          </PointSymbolizer>
        </Rule>
      </FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>

This feature is available for KML and X3D(HTML5) response formats. Note,
the 3D horse is an export from a 3D model created in blender to the x3D
format (the model is available on X3DOM site).

Right, makes sense. So... in order to export in X3D you use a x3d graphics,
but in order to exit in KML you'd have to support collada?
Or, is there any runtime transformation between x3d and collada?

The print screens are the result of this request:

http://localhost:8080/geoserver/w3ds?version=0.4&service=w3ds&request=GetScene&crs=EPSG:27492&format=text/html&layers=dem_3d,interest_points&boundingbox=-16511.374635294116,198979.99271111112,-16099.38084929972,199372.85817777776&styles=,point_model

So, the request is generating a XD3 output that is then viewed with some
external tool?
What can one use to do the visualization?
Is the rendering mode, wireframe vs raytrace, controlled by the client?

Sorry for the dumb questions, it really shows I haven't tried to play with
W3DS yet

The dem_3D layer is a TIN stored in a POSTGIS database and the layer
interest_points is a list of georeferenced points with a description.

Ah ha, so you are getting data form PostGIS that is a multipoligon with z
values
on the point coordinates?
Or did you have to modify the GeoTools PostGIS store somehow?

The style used to produced the scene:

<?xml version="1.0" encoding="utf-8"?>
<StyledLayerDescriptor>
  <NamedLayer>
    <Name>Point Cone</Name>
    <UserStyle>
      <FeatureTypeStyle>
        <Rule>
          <Filter>
            <PropertyIsEqualTo>
              <PropertyName>description</PropertyName>
              <Literal>CONE</Literal>
            </PropertyIsEqualTo>
          </Filter>
          <PointSymbolizer>
            <Graphic model="true">
               <href>http://localhost:8080/models/cone.x3d&lt;/href&gt;
            </Graphic>
          </PointSymbolizer>
        </Rule>
        <Rule>
          <Filter>
            <PropertyIsEqualTo>
              <PropertyName>description</PropertyName>
              <Literal>HORSE</Literal>
            </PropertyIsEqualTo>
          </Filter>
          <PointSymbolizer>
            <Graphic model="true">
              <href>http://localhost:8080/models/horse.x3d&lt;/href&gt;
            </Graphic>
          </PointSymbolizer>
        </Rule>
        <Rule>
          <Filter>
            <PropertyIsEqualTo>
              <PropertyName>description</PropertyName>
              <Literal>HOUSE</Literal>
            </PropertyIsEqualTo>
          </Filter>
          <PointSymbolizer>
            <Graphic model="true">
              <href>http://localhost:8080/models/house.x3d&lt;/href&gt;
            </Graphic>
          </PointSymbolizer>
        </Rule>
        <Rule>
          <Filter>
            <PropertyIsEqualTo>
              <PropertyName>description</PropertyName>
              <Literal>AIRPLANE</Literal>
            </PropertyIsEqualTo>
          </Filter>
          <PointSymbolizer>
            <Graphic model="true">
              <altitudeMode>relativeToGround</altitudeMode>
              <altitude>50</altitude>
              <href>http://localhost:8080/models/airplane.x3d&lt;/href&gt;

Hum, so to parse the above you have your own SLD3DParser, which seems to be
a forked and augmented version of SLDParser.
Any change the code duplication could be avoided by means of subclassing?

            </Graphic>
          </PointSymbolizer>
        </Rule>
      </FeatureTypeStyle>
    </UserStyle>
  </NamedLayer>
</StyledLayerDescriptor>

In the nexts days i will provide a tutorial.

Nice, looking forward to it

Cheers
Andrea

--

GeoServer training in Milan, 6th & 7th June 2013! Visit
http://geoserver.geo-solutions.it for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

Hi Nuno,
I would like to give you some feedback on your fork.
I am not expert on github, but from my understanding you have forked ( like svn branch) and added w3ds service code. Can I checkout your fork? How can I do it?
Furthermore, you are using your code gdal to preprocess model and put it into postgis, can you share this code too. Otherwise, we are a bit experience with openwebglobe ( http://www.openwebglobe.org/ ), it has a dataprocess component that process model and put in filesystem and postgis (not verified yet), do you think we can expose data coming from openwebglobe through your w3ds service?

Finally, do you know when will the openlayer 3D support be available?

Thank you in advance,
Matteo.

···

Hi,

I just made a pull request https://github.com/geoserver/geoserver/pull/226.

Just merged it. Don’t you have commit access yet?
Sorry I’m asking again but I don’t remember, did you sign the contribution agreement?

I only skimmed though the patch, but it seems the new KML architecture made it easy enough to setup the
export of collada models.

Basically, this pull request extends W3DS to support the inclusion of inline 3D models in SLDs. For example the following 3D style can be seen as the default 3D style for 3D points for the X3D format (the red cone in the print screens). To have the same for KML we will need to provide a COLLADA model, which is the GoogleEarth supported format.

<?xml version="1.0" encoding="ISO-8859-1"?> Point Cone [http://localhost:8080/models/cone.x3d](http://localhost:8080/models/cone.x3d)

This feature is available for KML and X3D(HTML5) response formats. Note, the 3D horse is an export from a 3D model created in blender to the x3D format (the model is available on X3DOM site).

Right, makes sense. So… in order to export in X3D you use a x3d graphics, but in order to exit in KML you’d have to support collada?
Or, is there any runtime transformation between x3d and collada?

The print screens are the result of this request:

http://localhost:8080/geoserver/w3ds?version=0.4&service=w3ds&request=GetScene&crs=EPSG:27492&format=text/html&layers=dem_3d,interest_points&boundingbox=-16511.374635294116,198979.99271111112,-16099.38084929972,199372.85817777776&styles=,point_model

So, the request is generating a XD3 output that is then viewed with some external tool?
What can one use to do the visualization?
Is the rendering mode, wireframe vs raytrace, controlled by the client?

Sorry for the dumb questions, it really shows I haven’t tried to play with W3DS yet

The dem_3D layer is a TIN stored in a POSTGIS database and the layer
interest_points is a list of georeferenced points with a description.

Ah ha, so you are getting data form PostGIS that is a multipoligon with z values
on the point coordinates?
Or did you have to modify the GeoTools PostGIS store somehow?

The style used to produced the scene:

<?xml version="1.0" encoding="utf-8"?> Point Cone description CONE [http://localhost:8080/models/cone.x3d](http://localhost:8080/models/cone.x3d) description HORSE [http://localhost:8080/models/horse.x3d](http://localhost:8080/models/horse.x3d) description HOUSE [http://localhost:8080/models/house.x3d](http://localhost:8080/models/house.x3d) description AIRPLANE relativeToGround 50 [http://localhost:8080/models/airplane.x3d](http://localhost:8080/models/airplane.x3d)

Hum, so to parse the above you have your own SLD3DParser, which seems to be
a forked and augmented version of SLDParser.
Any change the code duplication could be avoided by means of subclassing?

In the nexts days i will provide a tutorial.

Nice, looking forward to it

Cheers
Andrea

==
GeoServer training in Milan, 6th & 7th June 2013! Visit http://geoserver.geo-solutions.it for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


Thanks for merging the pull request. Yes we signed the contribution agreement and send it to OpenPlans, but no response. I will make a post about this situation in the next days. (contribution agreement in attach). Both X3D and KML support the inclusion of externals 3D models, but infortunatlly they support diferent formats X3D support X3D models and KML support Collada models. Tools like Blender support the export to X3D, Collada and others formats. The role of W3DS is only to include that models in the produced scene it no regrad tof the model format. The user is responsible to provide the model in the correct format, using diferent SLDs, SLDs rules, etc … A 3D model can be something very complicated (millions of geometries, several textures, material properties, etc …) a runtime transformation is not suitable. On the other side, the client should be responsible to handle the external 3D models. Some rendering engines, like the GooleEarth one, are very good in handling external models. GooleEarth only download a textures and models once in the time and store them in a cache and make a lot of other oprimizations. The main objective is that the produced scenes can be directly viewed on browsers. For KML scenes we need to use the GoogleEarth plugin but for X3D the scenes can be directly viewed using for example X3DOM ( ). W3DS implementation on GeoServer supports the format ‘text/html’ which produced an html+x3dom+x3d page that can be viewed in any browser that support WebGL without any adicional plugin. Example: For sample visualizations in X3D (test propose) just make the request with ‘text/hmlt’ format and make sure you have a browser that support WebGL. KML needs a test page with Google Earth Plugin installed. For more advanced uses cases I’m waiting for OpenLayers3. In the meantime , and . Be aware that openwebglobe use a custom format. Yes, X3DOM give some default options and javascript events handling: an example with JQuery: . No dumb questions :slight_smile: Yes, we get MultiPolygons from PostGis with Z values. W3Ds will take any 2D/3D feature and encode them in the correct format. No changes have be made to GeoTools or GeoServer. Yes. Not in an easy way. The duplication of code should be removed and I know that the use of SLD3D parser is not the solution, is just an workaround. When I have some time i will look at this. Will work on the turtorial this week and update the test server. Best regards, Nuno Oliveira

(attachments)

PTInovacao_TOPP_20121221_163831.pdf (384 KB)

···

Hi,

On 05/12/2013 04:03 PM, Andrea Aime wrote:

On Sat, May 4, 2013 at 11:27 PM, Nuno Miguel Carvalho Oliveira <nmco51845@anonymised.com> wrote:

Hi,

I just made a pull request https://github.com/geoserver/geoserver/pull/226.

Just merged it. Don’t you have commit access yet?
Sorry I’m asking again but I don’t remember, did you sign the contribution agreement?

I only skimmed though the patch, but it seems the new KML architecture made it easy enough to setup the
export of collada models.

Basically, this pull request extends W3DS to support the inclusion of inline 3D models in SLDs. For example the following 3D style can be seen as the default 3D style for 3D points for the X3D format (the red cone in the print screens). To have the same for KML we will need to provide a COLLADA model, which is the GoogleEarth supported format.

<?xml version="1.0" encoding="ISO-8859-1"?> Point Cone [http://localhost:8080/models/cone.x3d](http://localhost:8080/models/cone.x3d)

This feature is available for KML and X3D(HTML5) response formats. Note, the 3D horse is an export from a 3D model created in blender to the x3D format (the model is available on X3DOM site).

Right, makes sense. So… in order to export in X3D you use a x3d graphics, but in order to exit in KML you’d have to support collada?

Or, is there any runtime transformation between x3d and collada?

The print screens are the result of this request:

http://localhost:8080/geoserver/w3ds?version=0.4&service=w3ds&request=GetScene&crs=EPSG:27492&format=text/html&layers=dem_3d,interest_points&boundingbox=-16511.374635294116,198979.99271111112,-16099.38084929972,199372.85817777776&styles=,point_model

So, the request is generating a XD3 output that is then viewed with some external tool?

http://www.x3dom.org/

http://3dwebgis.di.uminho.pt/geoserver3D/geoserver3D/w3ds?version=0.4&service=w3ds&request=GetScene&format=text/html&crs=EPSG:4326&layers=geoserver3D:level_lines&boundingbox=-17.207,32.834,-17.19,32.843&styles=ll_by_type

What can one use to do the visualization?

http://www.openwebglobe.org/http://www.x3dom.org/http://www.google.com/earth/explore/products/plugin.html

Is the rendering mode, wireframe vs raytrace, controlled by the client?

http://x3dom.org/x3dom/example/x3dom_runtime.html
http://x3dom.org/x3dom/example/x3dom_jQueryManip.xhtml

Sorry for the dumb questions, it really shows I haven’t tried to play with W3DS yet

The dem_3D layer is a TIN stored in a POSTGIS database and the layer
interest_points is a list of georeferenced points with a description.

Ah ha, so you are getting data form PostGIS that is a multipoligon with z values
on the point coordinates?

Or did you have to modify the GeoTools PostGIS store somehow?

The style used to produced the scene:

<?xml version="1.0" encoding="utf-8"?> Point Cone description CONE [http://localhost:8080/models/cone.x3d](http://localhost:8080/models/cone.x3d) description HORSE [http://localhost:8080/models/horse.x3d](http://localhost:8080/models/horse.x3d) description HOUSE [http://localhost:8080/models/house.x3d](http://localhost:8080/models/house.x3d) description AIRPLANE relativeToGround 50 [http://localhost:8080/models/airplane.x3d](http://localhost:8080/models/airplane.x3d)

Hum, so to parse the above you have your own SLD3DParser, which seems to be
a forked and augmented version of SLDParser.

Any change the code duplication could be avoided by means of subclassing?

In the nexts days i will provide a tutorial.

Nice, looking forward to it

Cheers
Andrea

==
GeoServer training in Milan, 6th & 7th June 2013! Visit http://geoserver.geo-solutions.it for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


On Mon, May 13, 2013 at 11:34 AM, Nuno Oliveira <
nuno-miguel-oliveira@anonymised.com> wrote:

Thanks for merging the pull request.
Yes we signed the contribution agreement and send it to OpenPlans, but no
response.
I will make a post about this situation in the next days. (contribution
agreement in attach).

I guess I can give you access in the meantime. What is your github id?

Both X3D and KML support the inclusion of externals 3D models,
but infortunatlly they support diferent formats X3D support X3D models and
KML support Collada models.
Tools like Blender support the export to X3D, Collada and others formats.
The role of W3DS is only to include that models in the produced scene it
no regrad tof the model format.
The user is responsible to provide the model in the correct format, using
diferent SLDs, SLDs rules, etc ...

Fair enough :slight_smile:

The main objective is that the produced scenes can be directly viewed on
browsers.
For KML scenes we need to use the GoogleEarth plugin but for X3D the
scenes can be
directly viewed using for example X3DOM ( http://www.x3dom.org/). W3DS
implementation
on GeoServer supports the format 'text/html' which produced an
html+x3dom+x3d page that
can be viewed in any browser that support WebGL without any adicional
plugin.

Example:

http://3dwebgis.di.uminho.pt/geoserver3D/geoserver3D/w3ds?version=0.4&service=w3ds&request=GetScene&format=text/html&crs=EPSG:4326&layers=geoserver3D:level_lines&boundingbox=-17.207,32.834,-17.19,32.843&styles=ll_by_type

Ah ha, cool. I find the navigation a bit hard, but it's sure quite
interesting
With a bit of love to improve a bit the GUI a preview such as this one
would make quite the showcase for GeoServer.
Btw, I'd change the output format from text/html to something like
application/x3d or application/x3dom, so that it's
evident what we are getting back. In the end application/openlayers also
produces a html no?

For sample visualizations in X3D (test propose) just make the request with
'text/hmlt'
format and make sure you have a browser that support WebGL.
KML needs a test page with Google Earth Plugin installed.

Right... or it will work with Google Earth desktop edition too, right?
Btw, I've tried stating "application/vnd.google-earth.kml+xml" as the
output format, but it did not work.
Checked the caps document, can't find the list of supported output formats

For more advanced uses cases I'm waiting for OpenLayers3. In the meantime
http://www.openwebglobe.org/, http://www.x3dom.org/ and
http://www.google.com/earth/explore/products/plugin.html.
Be aware that openwebglobe use a custom format.

Right, so a new output format should be written for it?

Not in an easy way.
The duplication of code should be removed and I know that the
use of SLD3D parser is not the solution, is just an workaround.
When I have some time i will look at this.

Nice thanks

Cheers
Andrea

--

GeoServer training in Milan, 6th & 7th June 2013! Visit
http://geoserver.geo-solutions.it for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

Thanks, here my github info: As I said in a previous email ,unfortunately I will not be able to have a decent contribution “rate” to W3DS until July 2013. (Need to finish my thesis, some papers to submit, a lot of work in my “oficial” job, and so on …) Yes, the navigation is hard. X3DOM have nice examples about how the GUI can be improved: I agree with you a decent GUI can make a nice showcase for GeoServer. I agree, ‘text/html’ was the first experience about two years ago :), +1 for application/x3dom. Yes it will, but we can only use the produced KML (No API). It the GoogleEarth Plugin we have an API that let us make interesting things. The test server have not been update yet it this version so KML is not available … sorry. Until the end of this I will updated it. In the last Agile conference I have a talk with one of the authors of openwebglobe ( Martin Christen) about the possibility to use GeoServer W3DS service as input for the globe, the drawback as the implementation of a custum format in W3DS. So Yes a new output format (if I am not wrong, based on JSON) should be implemented. Best regards, Nuno Oliveira

···

On 05/13/2013 10:57 AM, Andrea Aime wrote:

On Mon, May 13, 2013 at 11:34 AM, Nuno Oliveira <nuno-miguel-oliveira@anonymised.com> wrote:

Thanks for merging the pull request.

Yes we signed the contribution agreement and send it to OpenPlans, but no response.
I will make a post about this situation in the next days. (contribution agreement in attach).

I guess I can give you access in the meantime. What is your github id?

username: nmco
mail: nuno-miguel-oliveira@anonymised.com

Both X3D and KML support the inclusion of externals 3D models,
but infortunatlly they support diferent formats X3D support X3D models and KML support Collada models.
Tools like Blender support the export to X3D, Collada and others formats.
The role of W3DS is only to include that models in the produced scene it no regrad tof the model format.
The user is responsible to provide the model in the correct format, using diferent SLDs, SLDs rules, etc …

Fair enough :slight_smile:

The main objective is that the produced scenes can be directly viewed on browsers.
For KML scenes we need to use the GoogleEarth plugin but for X3D the scenes can be
directly viewed using for example X3DOM ( http://www.x3dom.org/). W3DS implementation
on GeoServer supports the format ‘text/html’ which produced an html+x3dom+x3d page that
can be viewed in any browser that support WebGL without any adicional plugin.

Example:
http://3dwebgis.di.uminho.pt/geoserver3D/geoserver3D/w3ds?version=0.4&service=w3ds&request=GetScene&format=text/html&crs=EPSG:4326&layers=geoserver3D:level_lines&boundingbox=-17.207,32.834,-17.19,32.843&styles=ll_by_type

Ah ha, cool. I find the navigation a bit hard, but it’s sure quite interesting
With a bit of love to improve a bit the GUI a preview such as this one would make quite the showcase for GeoServer.

http://www.x3dom.org/?page_id=5

Btw, I’d change the output format from text/html to something like application/x3d or application/x3dom, so that it’s
evident what we are getting back. In the end application/openlayers also produces a html no?

For sample visualizations in X3D (test propose) just make the request with ‘text/hmlt’
format and make sure you have a browser that support WebGL.
KML needs a test page with Google Earth Plugin installed.

Right… or it will work with Google Earth desktop edition too, right?

Btw, I’ve tried stating “application/vnd.google-earth.kml+xml” as the output format, but it did not work.
Checked the caps document, can’t find the list of supported output formats

For more advanced uses cases I’m waiting for OpenLayers3. In the meantime
http://www.openwebglobe.org/, http://www.x3dom.org/ and http://www.google.com/earth/explore/products/plugin.html.
Be aware that openwebglobe use a custom format.

Right, so a new output format should be written for it?

Not in an easy way.
The duplication of code should be removed and I know that the
use of SLD3D parser is not the solution, is just an workaround.
When I have some time i will look at this.

Nice thanks

Cheers
Andrea

==
GeoServer training in Milan, 6th & 7th June 2013! Visit http://geoserver.geo-solutions.it for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


On Mon, May 13, 2013 at 1:10 PM, Nuno Oliveira <
nuno-miguel-oliveira@anonymised.com> wrote:

Thanks, here my github info:

*username: **nmco
mail: **nuno-miguel-oliveira@anonymised.com*

Added

As I said in a previous email ,unfortunately I will not be able to have a
decent contribution "rate" to W3DS until July 2013.
(Need to finish my thesis, some papers to submit, a lot of work in my
"oficial" job, and so on ...)

Don't worry, we don't have a "contribution rate" requirement :slight_smile:

Right... or it will work with Google Earth desktop edition too, right?

Yes it will, but we can only use the produced KML (No API).
It the GoogleEarth Plugin we have an API that let us make interesting
things.

Right, good point.

  Btw, I've tried stating "application/vnd.google-earth.kml+xml" as the
output format, but it did not work.
Checked the caps document, can't find the list of supported output formats

The test server have not been update yet it this version so KML is not
available ... sorry.
Until the end of this I will updated it.

No problem

For more advanced uses cases I'm waiting for OpenLayers3. In the meantime
http://www.openwebglobe.org/, http://www.x3dom.org/ and
http://www.google.com/earth/explore/products/plugin.html.
Be aware that openwebglobe use a custom format.

Right, so a new output format should be written for it?

In the last Agile conference I have a talk with one of the authors of
openwebglobe ( Martin Christen)
about the possibility to use GeoServer W3DS service as input for the
globe, the drawback as the
implementation of a custum format in W3DS. So Yes a new output format (if
I am not wrong, based on JSON)
should be implemented.

All right, no problem. When there is demand someone will code it :slight_smile:

Cheers
Andrea

--

GeoServer training in Milan, 6th & 7th June 2013! Visit
http://geoserver.geo-solutions.it for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it

-------------------------------------------------------

Acess confirmed. Thanks ! Best regards, Nuno Oliveira

···

Hi,

On 05/13/2013 12:58 PM, Andrea Aime wrote:

On Mon, May 13, 2013 at 1:10 PM, Nuno Oliveira <nuno-miguel-oliveira@anonymised.com> wrote:

Thanks, here my github info:

username: nmco
mail: nuno-miguel-oliveira@anonymised.com

Added

As I said in a previous email ,unfortunately I will not be able to have a decent contribution “rate” to W3DS until July 2013.
(Need to finish my thesis, some papers to submit, a lot of work in my “oficial” job, and so on …)

Don’t worry, we don’t have a “contribution rate” requirement :slight_smile:

Right… or it will work with Google Earth desktop edition too, right?

Yes it will, but we can only use the produced KML (No API).
It the GoogleEarth Plugin we have an API that let us make interesting things.

Right, good point.

Btw, I’ve tried stating “application/vnd.google-earth.kml+xml” as the output format, but it did not work.
Checked the caps document, can’t find the list of supported output formats

The test server have not been update yet it this version so KML is not available … sorry.
Until the end of this I will updated it.

No problem

For more advanced uses cases I’m waiting for OpenLayers3. In the meantime
http://www.openwebglobe.org/, http://www.x3dom.org/ and http://www.google.com/earth/explore/products/plugin.html.
Be aware that openwebglobe use a custom format.

Right, so a new output format should be written for it?

In the last Agile conference I have a talk with one of the authors of openwebglobe ( Martin Christen)
about the possibility to use GeoServer W3DS service as input for the globe, the drawback as the
implementation of a custum format in W3DS. So Yes a new output format (if I am not wrong, based on JSON)
should be implemented.

All right, no problem. When there is demand someone will code it :slight_smile:

Cheers
Andrea

==
GeoServer training in Milan, 6th & 7th June 2013! Visit http://geoserver.geo-solutions.it for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it


Nice. W3DS is available as a GeoServer community module, so you just need to clone (checkout in svn) the GeoServer repository ( . W3DS is available under the ‘w3ds’ maven profile (mvn clean install -DskipTests=true -Pw3ds). Geoserver developper documentation have some guidelines about this: . Yes, I need to make a post on gdal mailing list … In the mean time I will make it available on github. (I think) The main objective of OpenwebGlobe is to be a 3D Gis Client (3D Globe), W3DS works on server side. A tipycally use case for the integration between OpenWebGlobe and W3DS will be the use of W3DS to provide 3D models to OpenWebGlobe. Currently OpenWebGlobe use some custom JSON format to represent 3D models but they have been working on the import of Collada models. To answer the question; the data process component of openwebglobe serves the same propose of W3DS, so yes it will be possible to serve OpenWebGlobe content from W3DS. But, I think the most common use case will be to use W3DS to serve content to OpenWebGlobe. At the moment they are working on the integration with cesium ( ) but I have no idea when this will be ready. I checkout the OpenLayers3 code last week … when I have a free time I will try to make a show case with W3DS and OL3. My pleasure.

···

Hi Matteo,

On 05/13/2013 07:48 AM, Matteo Cusmai wrote:

Hi Nuno,
I would like to give you some feedback on your fork.

I am not expert on github, but from my understanding you have forked ( like svn branch) and added w3ds service code. Can I checkout your fork? How can I do it?

https://github.com/geoserver/geoserver)

http://docs.geoserver.org/latest/en/developer/

Furthermore, you are using your code gdal to preprocess model and put it into postgis, can you share this code too.

Otherwise, we are a bit experience with openwebglobe ( http://www.openwebglobe. org/ ), it has a dataprocess component that process model and put in filesystem and postgis (not verified yet), do you think we can expose data coming from openwebglobe through your w3ds service?

Finally, do you know when will the openlayer 3D support be available?

http://cesium.agi.com/

Thank you in advance,

Matteo.

On 12 May 2013 17:03, “Andrea Aime” <andrea.aime@anonymised.com> wrote:

On Sat, May 4, 2013 at 11:27 PM, Nuno Miguel Carvalho Oliveira <nmco51845@anonymised.com> wrote:

Hi,

I just made a pull request https://github.com/geoserver/geoserver/pull/226.

Just merged it. Don’t you have commit access yet?
Sorry I’m asking again but I don’t remember, did you sign the contribution agreement?

I only skimmed though the patch, but it seems the new KML architecture made it easy enough to setup the
export of collada models.

Basically, this pull request extends W3DS to support the inclusion of inline 3D models in SLDs. For example the following 3D style can be seen as the default 3D style for 3D points for the X3D format (the red cone in the print screens). To have the same for KML we will need to provide a COLLADA model, which is the GoogleEarth supported format.

<?xml version="1.0" encoding="ISO-8859-1"?> Point Cone [http://localhost:8080/models/cone.x3d](http://localhost:8080/models/cone.x3d)

This feature is available for KML and X3D(HTML5) response formats. Note, the 3D horse is an export from a 3D model created in blender to the x3D format (the model is available on X3DOM site).

Right, makes sense. So… in order to export in X3D you use a x3d graphics, but in order to exit in KML you’d have to support collada?
Or, is there any runtime transformation between x3d and collada?

The print screens are the result of this request:

http://localhost:8080/geoserver/w3ds?version=0.4&service=w3ds&request=GetScene&crs=EPSG:27492&format=text/html&layers=dem_3d,interest_points&boundingbox=-16511.374635294116,198979.99271111112,-16099.38084929972,199372.85817777776&styles=,point_model

So, the request is generating a XD3 output that is then viewed with some external tool?
What can one use to do the visualization?
Is the rendering mode, wireframe vs raytrace, controlled by the client?

Sorry for the dumb questions, it really shows I haven’t tried to play with W3DS yet

The dem_3D layer is a TIN stored in a POSTGIS database and the layer
interest_points is a list of georeferenced points with a description.

Ah ha, so you are getting data form PostGIS that is a multipoligon with z values
on the point coordinates?
Or did you have to modify the GeoTools PostGIS store somehow?

The style used to produced the scene:

<?xml version="1.0" encoding="utf-8"?> Point Cone description CONE [http://localhost:8080/models/cone.x3d](http://localhost:8080/models/cone.x3d) description HORSE [http://localhost:8080/models/horse.x3d](http://localhost:8080/models/horse.x3d) description HOUSE [http://localhost:8080/models/house.x3d](http://localhost:8080/models/house.x3d) description AIRPLANE relativeToGround 50 [http://localhost:8080/models/airplane.x3d](http://localhost:8080/models/airplane.x3d)

Hum, so to parse the above you have your own SLD3DParser, which seems to be
a forked and augmented version of SLDParser.
Any change the code duplication could be avoided by means of subclassing?

In the nexts days i will provide a tutorial.

Nice, looking forward to it

Cheers
Andrea

==
GeoServer training in Milan, 6th & 7th June 2013! Visit http://geoserver.geo-solutions.it for more information.

Ing. Andrea Aime
@geowolf
Technical Lead

GeoSolutions S.A.S.
Via Poggio alle Viti 1187
55054 Massarosa (LU)
Italy
phone: +39 0584 962313
fax: +39 0584 1660272
mob: +39 339 8844549

http://www.geo-solutions.it
http://twitter.com/geosolutions_it