Skip to main content

Reverse geocode the given latitude / longitude

Project description

Reverse Geocode

Reverse Geocode takes a latitude / longitude coordinate and returns the nearest known country, state, and city. This can be useful when you need to reverse geocode a large number of coordinates so a web API is not practical.

The geocoded locations are from geonames. This data is then structured in to a k-d tree for efficiently finding the nearest neighbour.

Note that as this is point based and not a polygon based lookup it will only give a rough idea of the location/city.

Example usage

Example reverse geocoding a coordinate:

>>> import reverse_geocode
>>> melbourne_coord = -37.81, 144.96
>>> reverse_geocode.get(melbourne_coord)
{'country_code': 'AU', 'city': 'Melbourne', 'latitude': -37.814, 'longitude': 144.96332, 'population': 4917750, 'state': 'Victoria', 'country': 'Australia'}

Example reverse geocoding a list of coordinates:

>>> nyc_coord = 40.71427000, -74.00597000
>>> reverse_geocode.search((melbourne_coord, nyc_coord))
[{'country_code': 'AU', 'city': 'Melbourne', 'latitude': -37.814, 'longitude': 144.96332, 'population': 4917750, 'state': 'Victoria', 'country': 'Australia'},
 {'country_code': 'US', 'city': 'New York City', 'latitude': 40.71427, 'longitude': -74.00597, 'population': 8804190, 'state': 'New York', 'country': 'United States'}]

By default the nearest known location is returned, which may not be as expected when there is a much larger city nearby. For example querying for the following coordinate near NYC will return Seaport:

>>> nyc_coordinate = 40.71, -74.00
>>> reverse_geocode.get(nyc_coordinate)
{'country_code': 'US', 'city': 'Seaport', 'latitude': 40.70906, 'longitude': -74.00317, 'population': 8385, 'state': 'New York', 'county': 'New York County', 'country': 'United States'}

To filter for larger cities a minimum population can be set. Using a minimum population of 100000 with the above coordinate now returns NYC:

>>> reverse_geocode.get(nyc_coordinate, min_population=100000)
{'country_code': 'US', 'city': 'New York City', 'latitude': 40.71427, 'longitude': -74.00597, 'population': 8804190, 'state': 'New York', 'country': 'United States'}

Install

pip install reverse-geocode

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reverse_geocode-1.6.6.tar.gz (3.5 MB view details)

Uploaded Source

Built Distribution

reverse_geocode-1.6.6-py3-none-any.whl (3.5 MB view details)

Uploaded Python 3

File details

Details for the file reverse_geocode-1.6.6.tar.gz.

File metadata

  • Download URL: reverse_geocode-1.6.6.tar.gz
  • Upload date:
  • Size: 3.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.6

File hashes

Hashes for reverse_geocode-1.6.6.tar.gz
Algorithm Hash digest
SHA256 14165815816cc639dd74eb660a74e464aeebcd1d0814de74a897d62071c99f2a
MD5 eed25e3dd3c551b5d541578d9ce7dc0b
BLAKE2b-256 baa6be1e9403cd4b668ff2ec7fd532b534f8f4b31e62637ce7476fbb20ae1b37

See more details on using hashes here.

File details

Details for the file reverse_geocode-1.6.6-py3-none-any.whl.

File metadata

File hashes

Hashes for reverse_geocode-1.6.6-py3-none-any.whl
Algorithm Hash digest
SHA256 f639fdb99cc88c08d2ffaf39dfb1eb5a0ecc2860c50288c4613eea30826d6a9f
MD5 6aca7156622f568363cb03afa02151f9
BLAKE2b-256 95948df60b4efe9edc8934218bac4764024ac423d2a2ed082bd0eb48d9321fe6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page