3dcitydb / importer-exporter

3D City Database client for high-performance import and export of 3D city model data
Apache License 2.0
126 stars 54 forks source link

Question: Error when display KML/GLTF with 3D Web Map Client! #71

Closed HuyQuoc closed 5 years ago

HuyQuoc commented 5 years ago

Hi,

I imported Samples CityGML and success to export to KML/GLTF. But after that I run NodeJS Server and Add Layer as your Example, but nothing can be displayed (although I can view exported 3D data in Google Earth). So please help me to do:

Thanks, Regards.

Son-HNguyen commented 5 years ago

Fixed a bug that prevents the web client from parsing the value -1 as infinity for maxLodPixels correctly, see https://github.com/3dcitydb/3dcitydb-web-map/commit/2c78f004e7a2e0d6296a8024c58a658faba3e50f.

MinLod: 1 MaxLod: -1

Nevertheless, unless you want to display all data tiles at once (until MaxCountOfVisibleTiles is reached), it is recommended to keep the value maxLodPixels - minLodPixels relatively small, or in other words increase the minLodPixels (such as to 120) and/or decrease the maxLodPixels.

If I have a CityGML with another CRS (not EPSG:3608 and EPSG:5783), how can I export to 3DCityDB to KML/GLTF to display with 3DWebMapClient ?

Normally I'd create a new database for a new CRS using the CREATE_DB script. There you can enter which CRS you'd like to use and then import the CityGML file in the same CRS accordingly using the Importer/Exporter.

HuyQuoc commented 5 years ago

Fixed a bug that prevents the web client from parsing the value -1 as infinity for maxLodPixels correctly, see 3dcitydb/3dcitydb-web-map@2c78f00.

MinLod: 1 MaxLod: -1

Nevertheless, unless you want to display all data tiles at once (until MaxCountOfVisibleTiles is reached), it is recommended to keep the value maxLodPixels - minLodPixels relatively small, or in other words increase the minLodPixels (such as to 120) and/or decrease the maxLodPixels.

If I have a CityGML with another CRS (not EPSG:3608 and EPSG:5783), how can I export to 3DCityDB to KML/GLTF to display with 3DWebMapClient ?

Normally I'd create a new database for a new CRS using the CREATE_DB script. There you can enter which CRS you'd like to use and then import the CityGML file in the same CRS accordingly using the Importer/Exporter.

Hallo, Thanks for ur quick reply and fix. So I understand that I can import one CRS for one database and KML/GLTF export can be displayed for all CRS without transformation for 3D Web Map Client, right ?

Another question about minLodPixels and maxLodPixels, I've read in 3DCityDB 4.0 Documentation but still not understand how to calculate it or how to get it to put in 3D Web Map Client.

@Son-HNguyen : u come from VN ?

Son-HNguyen commented 5 years ago

Yes typically one DB for each CRS. You don't have to manually transform your data for the COLLADA/KML/glTF export. The exported files are in WGS84 and can be visualized in Google Earth or Cesium, but the transformation is done by the tool itself.

Whether the values of minLodPixels and maxLodPixels are suitable depends on your own datasets. For LOD2 building models in an urban area with tile size of about 125m (which can be adjusted in the Importer/Exporter), you could choose e.g. 120 for the minLodPixels and -1 for the maxLodPixels. Additionally you can set the MaxCountOfVisibleTiles and MaxSizeOfCachedTiles to 100 or leave them as default, i.e. 200. (To set these values, you'd need to click on the Show / Hide Toolbox button in the top left corner of the Web Map Client, and select Add / Configure Layer.) But it really depends on your datasets and hardware settings as well as your own preferences, so I'd recommend that you try out some combinations and decide which one suits your use case the best.

HuyQuoc commented 5 years ago

Yes typically one DB for each CRS. You don't have to manually transform your data for the COLLADA/KML/glTF export. The exported files are in WGS84 and can be visualized in Google Earth or Cesium, but the transformation is done by the tool itself.

Whether the values of minLodPixels and maxLodPixels are suitable depends on your own datasets. For LOD2 building models in an urban area with tile size of about 125m (which can be adjusted in the Importer/Exporter), you could choose e.g. 120 for the minLodPixels and -1 for the maxLodPixels. Additionally you can set the MaxCountOfVisibleTiles and MaxSizeOfCachedTiles to 100 or leave them as default, i.e. 200. (To set these values, you'd need to click on the Show / Hide Toolbox button in the top left corner of the Web Map Client, and select Add / Configure Layer.) But it really depends on your datasets and hardware settings as well as your own preferences, so I'd recommend that you try out some combinations and decide which one suits your use case the best.

Hi, Thank you. I still can not display exported KML/GLTF in WebMapClient althought I can see my exported KML/DAE in Google Earth. So I think the problem dont come from exported data. Can u check some parameters that I exported and input to 3DWebMapClient for me? Here is some figures:

GLTF Export Parameters: https://ibb.co/1fdHt9s GLTF Export Configs: https://ibb.co/mXZ5Cmn Google Earth: https://ibb.co/1LdxF5w 3D Web Map Client: https://ibb.co/D571s15

Regards.

UPDATE: I displayed data in 3D Web Map Client. The problem is when I add Layer, map cannot be zoomed to location of data (or bounding box of data), and I need to pan, zoom-in by my self. So I think it's better if when we add layer, map can automatic zoom to bbox of data.

After that I have a new problem with export data with CRS 4326. When I export from database to gml and gltf, If I export all data, I can get GML with objects. But If I export data with bbox from exported GML file, I cannot get any objects in new GML file. I dont know why ?

In addition, u and ur team have any plan to export 3DCityDB to 3DTiles (integrated with Draco Compress) of Cesium ? I think 3DTiles is one of best technology to display 3D data on web at the moment. And have any plan for integrated IndoorGML to 3DCityDB ?

Son-HNguyen commented 5 years ago

I displayed data in 3D Web Map Client. The problem is when I add Layer, map cannot be zoomed to location of data (or bounding box of data), and I need to pan, zoom-in by my self.

Or you can double-click on the layer name and it will fly to its bounding box.

So I think it's better if when we add layer, map can automatic zoom to bbox of data.

Good idea. The client should zoom automatically to the first added layer. For 2 or more layers, we really don't need this though.

In addition, u and ur team have any plan to export 3DCityDB to 3DTiles (integrated with Draco Compress) of Cesium ? I think 3DTiles is one of best technology to display 3D data on web at the moment.

The 3DCityDB Importer/Exporter has a built-in tiling mechanism that was developed before the 3D Tiles and is still being used. This tiling scheme works well with the 3DCityDB Web Map Client (the 3DCityDB Web Map Client also supports 3D Tiles). The current version of the Importer/Exporter does not (yet) support exporting to 3D Tiles. If you'd like to contribute, you are more than welcome. :) For now, there are some tools already on the internet that can convert CityGML files to 3D Tiles.

After that I have a new problem with export data with CRS 4326. When I export from database to gml and gltf, If I export all data, I can get GML with objects. But If I export data with bbox from exported GML file, I cannot get any objects in new GML file. I dont know why ?

And have any plan for integrated IndoorGML to 3DCityDB ?

Perhaps @clausnagel can help you here.

Son-HNguyen commented 5 years ago

Closed due to inactivity. Feel free to reopen if you still have any issues.