Skip to content

v1.1.0

Choose a tag to compare

@dgraf-gh dgraf-gh released this 06 Mar 14:04
· 16 commits to main since this release
86141c8

Hello everyone,

Hope you're all doing great! I'm back so soon because I've just published PAIKKA v1.1.0! I know it feels like just yesterday we celebrated the 1.0 release, but I've managed to squeeze in a small, yet impactful, feature that I think many of you will appreciate.


PAIKKA 1.1.0 Release Notes

Summary

PAIKKA continues its journey as my specialized reverse geocoding service, built with efficiency and meaningful results in mind, especially for anyone interested in personal location data like with Reitti. This v1.1.0 release brings a focused improvement, enhancing the data provided for your geocoded locations.

What's New in PAIKKA 1.1.0

The main focus of this release is a small but really useful addition to the geocoding results:

  • country_code in Hierarchy Items: Now, when you perform a reverse geocoding request, the hierarchy items in the response will include a country_code field if that information is available in the OpenStreetMap data for that specific administrative boundary.
    This means you'll get a standardized, two-letter ISO 3166-1 alpha-2 country code directly alongside other administrative details (like state, county, city). This should make it much easier to filter, sort, or process results based on country, directly from the structured hierarchy.

    Example Snippet (Illustrative):

{
 "query": {
   "lon": 7.426712,
   "limit": 1,
   "lang": "en",
   "lat": 43.740382
 },
 "count": 1,
 "results": [
   {
     "id": 157719659,
     "lat": 43.740383,
     "lon": 7.4266815,
     "type": "leisure",
     "subtype": "park",
     "distance_km": 0.0,
     "names": {
       "default": "Jardins de la Petite Afrique",
       "ko": "작은 아프리카 정원"
     },
     "display_name": "Jardins de la Petite Afrique",
     "address": {
       "country": "MC",
       "city": "Monte-Carlo"
     },
     "hierarchy": [
       {
         "level": 2,
         "type": "administrative",
         "name": "Monaco",
         "osm_id": 1124039,
         "country_code": "MC",
         "geometry_url": "http://localhost:8080/api/v1/geometry/latest/1124039"
       },
       {
         "level": 8,
         "type": "administrative",
         "name": "Monaco",
         "osm_id": 2220322,
         "country_code": "",
         "geometry_url": "http://localhost:8080/api/v1/geometry/latest/2220322"
       },
       {
         "level": 10,
         "type": "administrative",
         "name": "Monte-Carlo",
         "osm_id": 5986438,
         "country_code": "",
         "geometry_url": "http://localhost:8080/api/v1/geometry/latest/5986438"
       }
     ],
     "boundary": {
       "type": "Polygon",
       "coordinates": [
         [
           [
             7.425781700000001,
             43.7405601
           ],
           [
             7.4260567,
             43.7409672
           ],
           [
             7.4263418,
             43.7408452
           ],
           [
             7.426474700000001,
             43.7409486
           ],
           [
             7.426830900000001,
             43.7407003
           ],
           [
             7.4273037,
             43.7404771
           ],
           [
             7.427460900000001,
             43.740402800000005
           ],
           [
             7.427551200000001,
             43.7403107
           ],
           [
             7.4275814,
             43.7402207
           ],
           [
             7.427515100000001,
             43.7400643
           ],
           [
             7.4272815,
             43.739834
           ],
           [
             7.4272339,
             43.739795900000004
           ],
           [
             7.427164,
             43.7398085
           ],
           [
             7.426375500000001,
             43.740245200000004
           ],
           [
             7.425781700000001,
             43.7405601
           ]
         ]
       ]
     },
     "query": {
       "lat": 43.740382,
       "lon": 7.426712,
       "lang": "en"
     }
   }
 ]
}

Core PAIKKA Philosophy (Still Strong!)

The underlying principles of PAIKKA remain as strong as ever: tailored reverse geocoding, intelligent boundary awareness, planet-scale efficiency on modest hardware, and an opinionated approach to POI selection, all delivered via a fast REST API and robust data preparation tools.

Getting Started with Your Own Instance

For anyone wanting to run their own, the process is the same as with 1.0, and I still highly recommend it for heavy usage:

  1. Make sure you pull the latest image:
    docker compose pull
  2. Then, simply update your running service:
    docker compose up -d
    (Or follow the initial setup steps from the previous release if you're new!)

What's Next?

With v1.1.0 out the door, I'll be dedicating some more time to Reitti again. PAIKKA's development will continue, of course, but probably at a slightly slower pace for a bit. There's always more to do, and I'm always thinking about future improvements!

A Heartfelt Thank You!

Please try out PAIKKA 1.1.0, give the new country_code field a spin, and integrate it into your projects. If you find any issues or have ideas for future features, the GitHub repository is the best place to reach me.

Happy geocoding!

Best,

Daniel