top | item 44847663

(no title)

nnnnico | 6 months ago

it's beautiful. btw, could this be all done in client side js? didnt look at the implementation, probably server is used to resolve location?

discuss

order

wonger_|6 months ago

(not author) from the source:

  const { latitude = "0", longitude = "0" } = Astro.locals.runtime.cf || {};
To do it client-side, you would probably have to call some less-reputable IP geolocation service, or settle for navigator.geolocation which has a permission popup

mcteamster|6 months ago

Depending on how "approximate" is acceptable, I've found that using timezone names can be a good proxy for location. As most users have their timezones set correctly it's more consistent and private than IP or GPS.

I've made a library for my own use cases that does this (https://github.com/mcteamster/virgo), but it's also pretty straightforward to parse the city/state name out of the timezone and look it up somewhere.