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

Redesign the website homepage #836

Draft
wants to merge 28 commits into
base: master
Choose a base branch
from

Conversation

isaacbrodsky
Copy link
Collaborator

@isaacbrodsky isaacbrodsky commented May 3, 2024

Here are some work in progress screenshots:

Screenshot 2024-05-03 at 3 08 29 PM
Screenshot 2024-05-03 at 3 08 20 PM

Goals are for the h3geo.org home page to be more informative and useful.

  • Paste in one or more hexagon IDs and see where they are.
  • Paste in coordinates and see the hexagon ID
  • "Where am I" in H3 (using the user location, if permission granted)
  • More informative text - what is it, what can it be used for, what are facts someone needs to know about it

I adapted the code from deck.gl. There is still a lot of extra abstraction that can be cleaned up and removed here. We will also need to substitute appropriate basemap keys for this website.

@coveralls
Copy link

coveralls commented May 3, 2024

Coverage Status

coverage: 98.826% (+0.002%) from 98.824%
when pulling d7db1c4 on isaacbrodsky:website-deck
into 3a71b09 on uber:master.

@ajfriend
Copy link
Contributor

ajfriend commented May 4, 2024

How easy would it be to let users click on the map to select and deselect hexes? And maybe in a way that would sync with the text box of given hexes?

@isaacbrodsky
Copy link
Collaborator Author

How easy would it be to let users click on the map to select and deselect hexes? And maybe in a way that would sync with the text box of given hexes?

The text box and the map can certainly be synchronized to each other. Right now we need to remove a lot of deck.gl's example boilerplate to make that state code easier to follow.

Selecting and deselecting hexes is possible but depends heavily on the exact logic for the selection interaction. Maybe we could use the approach @nrabinowitz mentioned to figure out what resolution of cell to select for a click?

@isaacbrodsky
Copy link
Collaborator Author

@ajfriend can you look into the license/snyk check and let me know what's going on? I do not have access to that report.

Copy link
Collaborator

Choose a reason for hiding this comment

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

What's going on with the /example code? Doesn't seem to be H3-related.

lineWidthMinPixels: 3,
highPrecision: true,
})] : [
new H3HexagonLayer({
Copy link
Collaborator

Choose a reason for hiding this comment

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

Are you intending to implement support for finer resolutions (viewport-only)? Or is the idea to just show the first 3 resolutions? If it's the latter, this might actually be simpler and more performant just with Mapbox/Maplibre styles, rather than Deck...

@ajfriend
Copy link
Contributor

ajfriend commented May 6, 2024

I got added to Synk, here's what it is complaining about:
Screenshot 2024-05-06 at 9 11 53 AM

I'm asking if we can have external accounts also added to Synk.

@ajfriend
Copy link
Contributor

ajfriend commented May 6, 2024

Oh, its "snyk". Not "synk". :/

@dfellis
Copy link
Collaborator

dfellis commented May 20, 2024

Now that it's building, here's some updated screenshots. :)

Screenshot from 2024-05-20 18-38-30
Screenshot from 2024-05-20 18-38-51

@ajfriend
Copy link
Contributor

Amazing! This is super exciting, and the screenshots look great!

I'll try building locally to test things out in the next few days.

Quick thoughts just based off of the screenshots: Of the information you're displaying in each cell, I'd actually consider the following to be fairly "advanced" H3 content that the average user probably wouldn't know what to make of:

  • pentagon
  • base cell
  • icosa faces
  • indexing digits

For a maximally-welcoming front-page display, I wonder if we'd want to limit it down to just the basics of what might be the most relevant to a new user:

  • cell id
  • resolution
  • center (and should we specify lat/lng order?)

Maybe a separate view could provide more of the advanced cell stats, or just reordering or deprioritizing the advanced stuff? Also, all this info might be fine, this is just my first impression :)

@isaacbrodsky
Copy link
Collaborator Author

Maybe a separate view could provide more of the advanced cell stats, or just reordering or deprioritizing the advanced stuff? Also, all this info might be fine, this is just my first impression :)

I agree these things can move off to a new page that acts as the official "index inspector". The home page should focus on:

  • Showing the overall grid structure
  • Allowing the user to copy paste some indexes and see what they are
  • Allow the user to enter their own location, or some location they got elsewhere, and see how it looks in H3 (what is the index for this coordinate pair)

Things that will move to another page include:

  • Navigating the grid structure (children, parents, neighbors)
  • Advanced details of an index that aren't things we expect users to need to easily copy/paste for development use - so the indexing digits, etc.

@isaacbrodsky
Copy link
Collaborator Author

Some notes from reviewing this live:

  • It would be nice to just select a resolution for the user automatically
  • It would be nice on mobile to show where the user is. We probably need to shrink the map & disable touch interactions so it doesn't mess up scrolling the rest of the page.
  • It would be great to have more eyes on the text that's shown under the map.
  • TBD if the details stay on the home page or which details are shown -- maybe we can rank what we want and choose a couple of them.

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.

None yet

5 participants