Skip to content
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

More Actions #352

Open
3 tasks
m-mohr opened this issue Jul 24, 2023 · 2 comments
Open
3 tasks

More Actions #352

m-mohr opened this issue Jul 24, 2023 · 2 comments
Assignees
Labels
enhancement New feature or request

Comments

@m-mohr
Copy link
Collaborator

m-mohr commented Jul 24, 2023

Proposals for more actions (see #342):

@m-mohr m-mohr added the enhancement New feature or request label Jul 24, 2023
@jo-chemla
Copy link

jo-chemla commented Jun 12, 2024

For 3D STAC producers/consumers, it could also make sense to implement support for

  • OGC 3D-Tiles
  • Potree
  • eventually single-mesh formats like gltf, obj
  • or even gaussian-splats.

Edit:

  • In case it's useful, Felt now supports more formats for loading data from url endpoints, not only XYZ but also WMS, ESRI FeatureServer, and all the file formats hosted at a url endpoint, see Felt doc Upload Anything - URL section
  • quick question, at the moment, these actions appear as buttons linking to the suited viewers corresponding to the item format. Has it been already discussed a way to embed these viewers as iframes within stac-browser? Would that be too ugly to add these as a third tab (replacing Map/Thumbnail component)?

Potree/COPC

Example for potree to represent potree or copc tilesets can be based on Darren Wiens potree viewer implementation, which takes dataset url as urlParam:

// color type can be among rgba, elevation, color, elevation, etc
// potree_cloud_js_url = https://potree.org/potree/pointclouds/vol_total/cloud.js
potree_darren_wiens_url = `https://mpc-copc-viewer.netlify.app/?r=${potree_cloud_js_url}&c=rgba`

OGC 3D Tiles

Example for cesium to represent OGC 3D-Tiles, via the Cesium Sandcastle:

tileset_url = 'tileset_url'
code_payload = {
    html: `
      <style> @import url(../templates/bucket.css); </style>
      <div id="cesiumContainer" class="fullSize"></div>
    `, 
    code: `
const viewer = new Cesium.Viewer("cesiumContainer", {
  terrain: Cesium.Terrain.fromWorldTerrain(),
});

try {
  const tileset = await Cesium.Cesium3DTileset.fromUrl(${tileset_url});
  viewer.scene.primitives.add(tileset);
  viewer.zoomTo(tileset);
} catch (error) {
  console.log('Error loading tileset');
} 
`
}
code_str = window.btoa(JSON.stringify(code_payload))
cesium_sandcastle_url = `https://sandcastle.cesium.com/index.html?code=${code_str}` 

Static meshes

Example for single static meshes based on open-source 3dviewer, works for gltf/glb, obj, ply, fbx etc

3dviewer_url = `https://3dviewer.net/#model=${modelUrl}`

Other cited data formats in the original issue thread, see here

@m-mohr
Copy link
Collaborator Author

m-mohr commented Jun 12, 2024

PRs are more than welcome :-)

Has it been already discussed a way to embed these viewers as iframes within stac-browser? Would that be too ugly to add these as a third tab (replacing Map/Thumbnail component)?

Not yet. I'm a bit sceptical about iframes, but I could also see a modular approach to actually embedding e.g. Cesium (maybe via ol-cesium as migrating to ol would anyway be on the roadmap), directly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants