# Node 3D Portrayal Service ![](figures/home.jpg) This is a 3D Portrayal Service implementation that is compatible with [3D Tiles](https://github.com/CesiumGS/3d-tiles) and [i3s](https://github.com/Esri/i3s-spec) specifications (returns metadata in the response). ## Installing The service is implemented using [Node js](https://nodejs.org/en/). Install the dependencies with the `npm install` command. For the moment there is no bundler. Place the contents of the repository on your server with Node.js installed and run the "start" script with npm. `npm run start` If your server has a process manager installed, then configure accordingly. ## Usage You can change the port in `config.js`, default port is 9000. You access the service with the `/service/v1` endpoint and then provide additional query parameters: * getCapabilities: `{host}:{port}/service/v1?` * getCapabilities query parameters: `service=3DPS` `&acceptversions=1.0` `&request=getCapabilities` The getCapabilities request generates dynamically a response based on the `assets/assets.json` file. * getScene: `{host}:{port}/service/v1?` * getScene query parameters: `service=3DPS` `&acceptversions=1.0` `&request=getScene` `&layers=Buildings_Hamburg` `&boundingbox=lon_1,lat_1,lon_2,lat_2` (optional) `&crs=EPSG:4326` When the query parameters are not valid an xml exception is returned. ## Examples * [localhost getCapabilities](http://localhost:9000/service/v1?service=3DPS&acceptversions=1.0&request=getCapabilities) * [localhost getScene](http://localhost:9000/service/v1?service=3DPS&acceptversions=1.0&request=getScene&layers=Niedernhall&boundingbox=9.6158087151,49.2935455509,9.6202933686,49.2963390299&crs=EPSG:4326)