thiskevinwang / thekevinwang-utterances

0 stars 0 forks source link

2021/05/17/hexagonal-geospatial-gps-data-visualization/ #8

Open utterances-bot opened 1 year ago

utterances-bot commented 1 year ago

Hexagonal Geospatial GPS Data Visualization App | Kevin Wang's Blog

Using Uber's H3, React Native, and DynamoDB to build a serverless system, end-to-end, to track and visualize my own GPS locations

https://thekevinwang.com/2021/05/17/hexagonal-geospatial-gps-data-visualization/

testflyjets commented 1 year ago

Hey, Kevin, this was really helpful for a project I'm working on using H3, so thank you for putting it out there. I hadn't considered using DynamoDB but your approach pointed out how it could be useful.

I'm curious about two things and wondering if you can share more. First, what does the full schema of your DynamoDB table look like? What attributes did you find it useful to store from what your app provided to the API? Did you compute any additional attributes server-side?

And second, you mentioned adding the two GSIs to support some query use cases. Can you elaborate more on those? If I've learned anything about DynamoDB is that you need to really think through your data access patterns before you create your tables and indexes. Any additional info you can share would be much appreciated!

Chris

thiskevinwang commented 1 year ago

(Responding from GitHub mobile)

Hey @testflyjets, thanks for reading! I'll admit I've forgotten a good deal of what I did here once upon a time, but I'll try address what you asked!

I used one of Expo's device location APIs, and sent most if not all of that data directly to my API. Beyond creating an H3 hash inside my lambda function before writing to the DB, I don't remember computing anything else! The lambda function was very few lines of code.

And beyond the attributes I needed for my GSI's I don't remember anything else as particularly useful.

One outstanding compromise I remember having to come to terms with was to only use a single H3 resolution in the DB (like 0). I still stored lat and long so I could convert those to different H3 resolutions elsewhere, like in clientside code.

...this is all I can remember for now 😝

testflyjets commented 1 year ago

Thanks, Kevin, I appreciate the response. Is the code for this project available in a Github repo anywhere, or would you be willing to add me as a read-only collaborator to take a look at it?