Skip to content

add Map3d for 3d tiling#95

Merged
SimonDanisch merged 41 commits intomasterfrom
sd/3dtyler
Aug 13, 2024
Merged

add Map3d for 3d tiling#95
SimonDanisch merged 41 commits intomasterfrom
sd/3dtyler

Conversation

@SimonDanisch
Copy link
Copy Markdown
Member

@SimonDanisch SimonDanisch commented Aug 2, 2024

This refactors quite a lot of the package:

Tiling performance

  • Factor out tile loading from Map into TileCache
  • Rewrote tile queue and plot queue for clarity and performance
  • Clean up stale tiles from download queue
  • Streamline disk vs binary in memory downloaders for tile providers (via a configurable donwloader type)

Providers

Tile plotting

  • Added an overloadable plotconfig which can be passed to Tyler.Map, to change how the tiles look (allows to completely change plot type, or just to add some attribute like alpha, or pre/post process data/plot.

Map3D

  • Add Map3D to tyler, which calls Map with parameters to create a 3d map
  • Fetch tiles for 3d camera frustrum with earth intersection
  • optimize downloading and multi-thread it, reverse order of tile queue
  • Optimize camera far / near for the large range of zooming for earth data
  • Added a camera with some optimizations for navigating earth data

TODO

  • clean up a few things
  • if time, optimize 3d tile loading
  • add documentations

@rafaqz
Copy link
Copy Markdown
Collaborator

rafaqz commented Aug 3, 2024

Does mapping.csv need to be that big?

@SimonDanisch
Copy link
Copy Markdown
Member Author

Does mapping.csv need to be that big?

Its really not optimal, but I haven't had time to find a better solution yet ;) I'm quite sure though if we put some time into it, there should be a better solution!

mini, maxi = extrema(bounds)
plot[1] = (mini[1], maxi[1])
plot[2] = (mini[2], maxi[2])
plot[3] = rotr90(data)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
plot[3] = rotr90(data)
# TODO: remove this once we can mutate image UVs in Makie
plot[3] = rotr90(data)

Comment on lines +14 to +15
p = Point2f[(0, 0), (1, 0), (1, 1), (0, 1)]
GO.intersects(Polygon(p), Polygon(map(x -> x .- 1.1, p)))
Copy link
Copy Markdown
Member

@asinghvi17 asinghvi17 Aug 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
p = Point2f[(0, 0), (1, 0), (1, 1), (0, 1)]
GO.intersects(Polygon(p), Polygon(map(x -> x .- 1.1, p)))

(orphaned code)

@asinghvi17
Copy link
Copy Markdown
Member

This looks super cool!

@lazarusA
Copy link
Copy Markdown
Collaborator

lazarusA commented Aug 8, 2024

The point cloud example also doesn't work. It never shows anything.

@SimonDanisch SimonDanisch merged commit bc114fd into master Aug 13, 2024
@SimonDanisch SimonDanisch deleted the sd/3dtyler branch August 13, 2024 07:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants