Skip to content

Terrain-Viewer ToDos #5

@jo-chemla

Description

@jo-chemla

Quick Fixes

  • composite layer for dura into single cog or multiple layers
  • no need to patch geomatico a scale and maplibre linear gl instead of nearest
  • download button spins
  • edit gdal_translate command to include convert encoding to raw altitude DEM
  • add note to say where to find gdal, ogeo4w, qgis, conda etc
  • bounds of slider should accept only minus, without showing nan to validate
  • duplicate source name on byod basemaps. Check with distinct ids if zoom autofit works
  • touchscreen max bounds
  • min max zoom for source not set on load only on layer switch, and map zoom not set depending on source
  • add mapterhorn in inspiration, add suggest new terrain source to mapterhorn or terrainrgb
  • add overlay primitives geometry to hide unwanted areas like rc artefacts, or cog mask or no data clip or alpha
  • custom stac terrain sources catalog, with footprint, Web-map-link extension or cog, or country isoa3 or regional and ingest stac, or Nextgis-QMS equivalent like terria catalog stac editor stac-manager
  • make play360 nuqs state
  • TBD: switch theme from jotai storage to nuqs url
  • animation bug when closing sidepanel, state kept but cannot pause
  • WIP min/max zoom for map and source not working on load, factorize MapSources, terrainrgb reset color function
  • look at deckgl-raster and Kyle barron geotiffjs alternative
  • set max zoom source on ign wms example
  • add for projects or custom source optional fields like geometry features to be shown like masks, or custom home bounds
  • make sure there are no better oss geocoders
  • edit vanishing point padding when sidebar open

Todo Easy

  • Dura dsm and see if can do geomatico fake geo
  • Rework the whole animation state, local etc see instructions below: make animation state (pose1, pose2, play, 360) vars nuqs ready. uqs store compact compressed anim state Ways to compress url search query for animation (repeated state complex json object) 47ng/nuqs#1343
  • find the right command for DSM with rescale, fakegeo, nodata propagating large pixels overviews, band interp gray, 1 band, alpha. SEE BELOW comment and try to generalize, and add projects
  • allow passing project id or terrain or basemap url, in which case terrain and basemap sources and byod should not be shown. Probably only for cog if urls via search params, structured sources for project id
  • when nuqs state url shows query pitch = 0.000, then switch to 3D or globe view, with mouse i cannot use the mouse right click to edit pitch, I'm locked in top down view
  • auto elevation cannot be set on mobile, nor mac, or 2d Uncaught TypeError: can’t access property “getAllIds”, Ae is undefined
  • Allow for Tilejson basemap and simplify TMS, COG, WMS etc pure maplibre or through titiler for basemaps and terrain, maybe factorize url definition and source definition given a source type
  • Add a raster-dem WMS float32 raw-elevation geotiff source support maplibre/maplibre-gl-js#7127
  • url-shorten with og:media: in social share, add switch to share as intent-url, the terrain-viewer url produced via url-shortener like dubco, passing OG:media as image url posted to imgbb or equivalent
  • Harden gpkg loading (in CRS other than 4326) via loadersgl or warn when wrong proj4 crs not 4326 etc, see Issues with polyfills and vite visgl/loaders.gl#2379
  • pixel visible in hillshade, might be wrong tileSize for COG or TMS source (maptiler) ? Also can geomatico use terrarium instead of terrainrgb for sub 10cm accuracy? see below referenced issues in maplibre section
  • show histogram for terrain for frescoes, eg via titiler /cog/statistics?histogram_bins=100
  • export contours vector static file see Add abililty to export via API raw contour lines vector onthegomap/maplibre-contour#432 probably via queryRenderedFeatures map.queryRenderedFeatures({ layers: ['contour-lines'] })

Maplibre features (shaders) & bugfixes threads:

Todo long-term

Todo harder

Server mode features

  • accounts
  • saved views
  • saved BYOD terrain and basemaps
  • share-urls
  • custom og:media
  • trending/recent board
  • custom vector sources

Instructions

Animation rework instructions

Currently, I've got a react-map-gl maplibre app, with control-panel which expose an animation section with CameraButtons. These buttons let me set play360 play/pause, as well as set pose1, pose2, and play/pause animation and scrub via timeline slider. It's not very maintainable, and I want the given requirements :

  • animationDuration, loopMode, should be controlled by nuqs url query-params (currently duration is part of animState, it should not otherwise i cannot edit/update duration after setting psoes)
  • playing for keyframe animation, and playing360 would also usefully be url-controlled by nuqs
  • resolution, fps, render quality should be controlled by atoms with storage
  • ideally, pose1, pose2, should live in url as well, probably compressed, eg base64 encode/decode to avoid overflowing url length
  • i want 2 modes, one smooth, smoothCamera (also url controlled by nuqs) which would only interpolate camera pose, and one complete, which would also interpolate every other state variable, mostly numericValues, like opacities etc. but using nuqs shallow mode, to not propagate to url
  • in addition, there are some local state variables, like elapsed (only elapsed ?)
  • if I close and reopen the sidepanel, I want to still be able to clear raf by pausing anim.

Actually want to store deltas only between pose-1 and pose-2, so no-need to compress.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions