geo2tz - 4 years later

Andrea Giacobino - Jun 30 - - Dev Community

tl;dr after 4y, the projects have been substantially updated and it is now well-tested and mature.

In July 2020, I wrote on this platform about geo2tz, a rest API to retrieve the timezone from latitude and longitude coordinates.

I have sporadically updated the project from time to time, and now, four years later, something has happened that moved me to give it some love and make sure it is up to date, this led to a complete rewrite of the engine that powers it, and this post is about what are the reasons and what are the results of this rewrite.

When I published the project in 2020, I was working on another project, and I needed something like geo2tz, but I could not find anything that fit my requirements, so I decided to create it by putting together a web framework, the timezone data and a library that was providing the logic to process and query the timezones GeoJson, and that was it.

Fast forward to the beginning of 2023, I get an issue open of a person complaining about a set of coordinates missing, but it looked like it was a dataset issue, so there was nothing much to do. But at the beginning of 2024, someone pointed out that the service was not working properly for other coordinates.

Clearly, something was afoul, and since there were people who took the time to comment, I took it more seriously to check what was going on. What I found out is that the issues were coming from the library that I was using to manage the timezone data, the library stopped being updated and was actually returning incorrect results.

I took my sweet time to do it, not gonna lie, but eventually, I rewrote the GeoJSON parser, re-engineered the index and algorithm to match the timezone from coordinates, and added a lot of tests to make sure that geo2tz behaves correctly and here we have, a new shiny version (2.4.0) that is ready to put to use!

. . . . . . . . . .