Offline Reverse Geocoding in Python

前端 未结 2 1261
挽巷
挽巷 2020-12-30 17:48

I am writing a Python script that passes a latitude and longitude to a module and performs a reverse geocode function to return the address of the location. I have been usi

相关标签:
2条回答
  • 2020-12-30 17:58

    Have you considered using OpenStreetMap? You can download the whole database (the "planet") or one of the extracts if you just need a specific area. Afterwards you can filter out all addresses and use the resulting data for your geocoding. There are several search engines for OSM available, the most popular one is Nominatim. It is used on the main website and can do both geocoding and reverse-geocoding. So it might be a good starting point for your task.

    0 讨论(0)
  • 2020-12-30 18:07

    I created a module to do exactly that: https://bitbucket.org/richardpenman/reverse_geocode

    >>> import reverse_geocode 
    >>> coordinates = (-37.81, 144.96), (31.76, 35.21)
    >>> reverse_geocode.search(coordinates)
    [{'city': 'Melbourne', 'code': 'AU', 'country': 'Australia'},
     {'city': 'Jerusalem', 'code': 'IL', 'country': 'Israel'}]
    

    Internally it uses locations from the geonames database and a k-d tree to find the nearest neighbour.

    0 讨论(0)
提交回复
热议问题