GeoIP Legacy Python API

Overview

MaxMind GeoIP Legacy Python Extension API

Requirements

  • Python 2.5+ or 3.3+
  • GeoIP Legacy C Library 1.4.7 or greater

Installation

With pip:

$ pip install GeoIP

From source:

$ python setup.py build
$ python setup.py install

IP Geolocation Usage

IP geolocation is inherently imprecise. Locations are often near the center of the population. Any location provided by a GeoIP database should not be used to identify a particular address or household.

Usage

See the examples in the examples folder.

Troubleshooting

If you get a "libGeoIP.so.1: cannot open shared object No such file or directory" error, add /usr/local/lib to /etc/ld.so.conf then run /sbin/ldconfig /etc/ld.so.conf

License

Copyright (c) 2014 MaxMind LLC

All rights reserved. This package is free software; it is licensed under the LGPL 2.1 or greater.

Comments
  • GeoIP doesn't build on OSX 10.9

    GeoIP doesn't build on OSX 10.9

    Pip install fails with the following output:

    building 'GeoIP' extension
        /usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -pipe -Os -fwrapv -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/opt/local/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c py_GeoIP.c -o build/temp.macosx-10.9-x86_64-2.7/py_GeoIP.o -fno-strict-aliasing
        py_GeoIP.c:23:10: fatal error: 'GeoIP.h' file not found
        #include "GeoIP.h"
                 ^
        1 error generated.
        error: command '/usr/bin/clang' failed with exit status 1
        Complete output from command /mnt/bin/python -c "import setuptools, tokenize;__file__='/mnt/build/GeoIP/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/z5/wdtm1zm57bb99dq2nztfcf2m0000gn/T/pip-Mk_hHx-record/install-record.txt --single-version-externally-managed --compile --install-headers /mnt/bin/../include/site/python2.7:
    
    opened by rickeyski 9
  • Python 3 support

    Python 3 support

    Please consider these changes, which collectively add Python 3 support. The bulk of the work is modernizing CAPI use to the >=2.6 standard; the only Py3-specific changes are related to str/unicode and the different signature for module initialization.

    opened by zackw 9
  • MacOs Install Fail

    MacOs Install Fail

    I am installing using pip3 install geoip or sudo pip3 install geoip. I get this that makes it fail.

    ERROR: Command errored out with exit status 1: command: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/tmp/pip-install-k23lgxdu/geoip/setup.py'"'"'; file='"'"'/private/tmp/pip-install-k23lgxdu/geoip/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /private/tmp/pip-record-e5rjznon/install-record.txt --single-version-externally-managed --compile --install-headers /Library/Frameworks/Python.framework/Versions/3.9/include/python3.9/GeoIP cwd: /private/tmp/pip-install-k23lgxdu/geoip/ Complete output (15 lines): /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/dist.py:274: UserWarning: Unknown distribution option: 'bugtrack_url' warnings.warn(msg) Warning: 'classifiers' should be a list, got type 'tuple' running install running build running build_ext building 'GeoIP' extension creating build creating build/temp.macosx-10.9-x86_64-3.9 gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -arch x86_64 -g -I/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 -c py_GeoIP.c -o build/temp.macosx-10.9-x86_64-3.9/py_GeoIP.o py_GeoIP.c:23:10: fatal error: 'GeoIP.h' file not found #include "GeoIP.h" ^~~~~~~~~ 1 error generated. error: command '/usr/bin/gcc' failed with exit code 1 ---------------------------------------- ERROR: Command errored out with exit status 1: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3.9 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/tmp/pip-install-k23lgxdu/geoip/setup.py'"'"'; file='"'"'/private/tmp/pip-install-k23lgxdu/geoip/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' install --record /private/tmp/pip-record-e5rjznon/install-record.txt --single-version-externally-managed --compile --install-headers /Library/Frameworks/Python.framework/Versions/3.9/include/python3.9/GeoIP Check the logs for full command output.

    opened by RocketNinja15 6
  • Encoding fixes for python 3.4

    Encoding fixes for python 3.4

    In python 3.x PyUnicode_FromString() function accepts an UTF-8 encoded strings only. But country_code, country_name, country_continent are all ISO-8859-1 encoded. This commit fixes the issue.

    Before fix:

    Python 3.4.1 (default, Aug 21 2014, 16:21:32) 
    [GCC 4.6.3] on linux
    >>> import GeoIP
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe7 in position 4: invalid continuation byte
    

    After fix:

    Python 3.4.1 (default, Aug 21 2014, 16:20:07) 
    [GCC 4.6.3] on linux
    >>> import GeoIP
    >>> GeoIP.country_names['CW']
    'Curaçao' 
    
    opened by sfarbotka 5
  • GeoIP.c:23:10: fatal error: GeoIP.h: No such file or directory    23 | #include

    GeoIP.c:23:10: fatal error: GeoIP.h: No such file or directory 23 | #include "GeoIP.h"while trying to install GeoIP package for python PART 2

    I want install this python dependency (GeoIP) for one of my tools. I installed GeoIP-1.3.2 from here https://pypi.org/project/GeoIP/#files and i'm getting this error again and again when im writing this code "sudo python3 setup.py install" and im getting this error root@shreyas-kali-linux:~/Downloads/GeoIP-1.3.2# sudo python3 setup.py install /usr/lib/python3.9/distutils/dist.py:274: UserWarning: Unknown distribution option: 'bugtrack_url' warnings.warn(msg) Warning: 'classifiers' should be a list, got type 'tuple' running install running bdist_egg running egg_info writing GeoIP.egg-info/PKG-INFO writing dependency_links to GeoIP.egg-info/dependency_links.txt writing top-level names to GeoIP.egg-info/top_level.txt reading manifest file 'GeoIP.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'ChangeLog' writing manifest file 'GeoIP.egg-info/SOURCES.txt' installing library code to build/bdist.linux-x86_64/egg running install_lib running build_ext building 'GeoIP' extension x86_64-linux-gnu-gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -ffile-prefix-map=/build/python3.9-RNBry6/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -g -ffile-prefix-map=/build/python3.9-RNBry6/python3.9-3.9.2=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -I/usr/include/python3.9 -c py_GeoIP.c -o build/temp.linux-x86_64-3.9/py_GeoIP.o py_GeoIP.c:23:10: fatal error: GeoIP.h: No such file or directory 23 | #include "GeoIP.h" | ^~~~~~~~~ compilation terminated. error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1 PLEASE HELP I NEED THAT TOOL VERY BADLY

    opened by FrankensteinEvil0069 4
  • cannot install pip geoip!

    cannot install pip geoip!

    sudo pip install geoip
    Collecting geoip
      Using cached https://files.pythonhosted.org/packages/f2/7b/a463b7c3df8ef4b9c92906da29ddc9e464d4045f00c475ad31cdb9a97aae/GeoIP-1.3.2.tar.gz
      Running setup.py (path:/tmp/pip-install-Gu5vyc/geoip/setup.py) egg_info for package geoip produced metadata for project name geoIp. Fix your #egg=geoip fragments.                                                            
    Building wheels for collected packages: geoIp, geoIp
      Running setup.py bdist_wheel for geoIp ... error
      Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-Gu5vyc/geoip/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-d4TgHm --python-tag cp27:
      /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'
        warnings.warn(msg)
      running bdist_wheel
      running build
      running build_ext
      building 'GeoIP' extension
      creating build
      creating build/temp.linux-x86_64-2.7
      x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-07FOaN/python2.7-2.7.17=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c py_GeoIP.c -o build/temp.linux-x86_64-2.7/py_GeoIP.o -fno-strict-aliasing
      py_GeoIP.c:23:10: fatal error: GeoIP.h: BΓΆyle bir dosya ya da dizin yok
         23 | #include "GeoIP.h"
            |          ^~~~~~~~~
      compilation terminated.
      error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
      
      ----------------------------------------
      Failed building wheel for geoIp
      Running setup.py clean for geoIp
      Running setup.py bdist_wheel for geoIp ... error
      Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-Gu5vyc/geoip/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-7_QeFg --python-tag cp27:
      /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'
        warnings.warn(msg)
      running bdist_wheel
      running build
      running build_ext
      building 'GeoIP' extension
      creating build
      creating build/temp.linux-x86_64-2.7
      x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-07FOaN/python2.7-2.7.17=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c py_GeoIP.c -o build/temp.linux-x86_64-2.7/py_GeoIP.o -fno-strict-aliasing
      py_GeoIP.c:23:10: fatal error: GeoIP.h: BΓΆyle bir dosya ya da dizin yok
         23 | #include "GeoIP.h"
            |          ^~~~~~~~~
      compilation terminated.
      error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
      
      ----------------------------------------
      Failed building wheel for geoIp
      Running setup.py clean for geoIp
    Failed to build geoIp geoIp
    Installing collected packages: geoIp
      Running setup.py install for geoIp ... error
        Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-Gu5vyc/geoip/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-2WSvBi/install-record.txt --single-version-externally-managed --compile:
        /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'
          warnings.warn(msg)
        running install
        running build
        running build_ext
        building 'GeoIP' extension
        creating build
        creating build/temp.linux-x86_64-2.7
        x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-07FOaN/python2.7-2.7.17=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c py_GeoIP.c -o build/temp.linux-x86_64-2.7/py_GeoIP.o -fno-strict-aliasing
        py_GeoIP.c:23:10: fatal error: GeoIP.h: BΓΆyle bir dosya ya da dizin yok
           23 | #include "GeoIP.h"
              |          ^~~~~~~~~
        compilation terminated.
        error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
        
        ----------------------------------------
    Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-Gu5vyc/geoip/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-2WSvBi/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-Gu5vyc/geoip/
    
    opened by azamet90 4
  • Question: Any Security Reason For Python3?

    Question: Any Security Reason For Python3?

    I hope you don't mind a question here?

    Is there any reason to switch to the latest 1.3.2 for any security reasons?

    I'm only going to use GeoIP for the P2P app nicotine;

    https://github.com/eLvErDe/nicotine-plus

    I'm using at present GeoIP 1.6.7, so not sure if there's any real benefit from 1.2.9 to 1.3.2, in regards to what I'm doing here?

    Thank you very much for your time and help.

    opened by ghost 4
  • Upload wheels for Python 2

    Upload wheels for Python 2

    I need to run the legacy code that uses GeoIP, and I have problems getting all the dependencies (gcc and libs) for GeoIP right. Is it possible to upload wheels for Python2 to PyPI?

    opened by abitrolly 3
  • py_GeoIP.c:23:19: fatal error: GeoIP.h: No such file or directory

    py_GeoIP.c:23:19: fatal error: GeoIP.h: No such file or directory

    Hi,

    Im so sorry. I can't build the package. I dont find the header file.

    /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url' warnings.warn(msg) running build running build_ext building 'GeoIP' extension creating build creating build/temp.linux-i686-2.7 gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c py_GeoIP.c -o build/temp.linux-i686-2.7/py_GeoIP.o -fno-strict-aliasing py_GeoIP.c:23:19: fatal error: GeoIP.h: No such file or directory compilation terminated. error: command 'gcc' failed with exit status 1

    opened by ghost 3
  • can not install ?

    can not install ?

    Both pip install GeoIP and install from source (GeoIP-1.3.2)

    GOT THIS FATAL ERROR:

    py_GeoIP.c:21:20: fatal error: Python.h: No such file or directory

    #include <Python.h>
    ^

    compilation terminated.

    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

    opened by vince67 3
  • install fails on python 3.7+

    install fails on python 3.7+

    Here is the error:

    Ignoring funcsigs: markers 'python_version < "3.0"' don't match your environment
      🐍   β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰β–‰ 45/45 β€” 00:00:05
    An error occurred while installing geoip==1.3.2 --hash=sha256:a890da6a21574050692198f14b07aa4268a01371278dfc24f71cd9bc87ebf0e6! Will try again.
    Ignoring ruamel.ordereddict: markers 'platform_python_implementation == "CPython" and python_version <= "2.7"' don't match your environment
    Installing initially failed dependencies...
    [pipenv.exceptions.InstallError]:   File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pipenv/core.py", line 1874, in do_install
    [pipenv.exceptions.InstallError]:       keep_outdated=keep_outdated
    [pipenv.exceptions.InstallError]:   File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pipenv/core.py", line 1253, in do_init
    [pipenv.exceptions.InstallError]:       pypi_mirror=pypi_mirror,
    [pipenv.exceptions.InstallError]:   File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pipenv/core.py", line 859, in do_install_dependencies
    [pipenv.exceptions.InstallError]:       retry_list, procs, failed_deps_queue, requirements_dir, **install_kwargs
    [pipenv.exceptions.InstallError]:   File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pipenv/core.py", line 763, in batch_install
    [pipenv.exceptions.InstallError]:       _cleanup_procs(procs, not blocking, failed_deps_queue, retry=retry)
    [pipenv.exceptions.InstallError]:   File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pipenv/core.py", line 681, in _cleanup_procs
    [pipenv.exceptions.InstallError]:       raise exceptions.InstallError(c.dep.name, extra=err_lines)
    
    opened by allnash 2
Releases(v1.3.2)
  • v1.3.2(Aug 22, 2014)

    • The description for org_by_name incorrectly directed people to use name_by_addr rather than name_by_name.
    • Previously GeoIP.country_names was populated from GeoIP_country_name in the libGeoIP C API. Some versions of the libGeoIP include non-ASCII ISO-8859-1 characters in these names, causing encoding errors under Python
      1. When installed under Python 3, this API now uses UTF-8 country names to populate this dict. Reported and fixed by Sergey Farbotka. GitHub PR #15.
    Source code(tar.gz)
    Source code(zip)
  • v1.3.1(Mar 21, 2014)

    Strings with non-ASCII characters would throw a UTF-8 decoding error. In Python 3, all strings from the database are in UTF-8 and using set_charset to set the character set to something other than UTF-8 will throw an ValueError exception.

    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Mar 21, 2014)

    • Python 3 support and significant code cleanup. ( Zack Weinberg )
    • The methods name_by_addr, name_by_addr_v6, name_by_name, and name_by_name_v6 were added for ISP, Org, and ASNum lookups. ( Carlos Rodrigues )
    • Portability fixes.
    • Expose GEOIP_MMAP_CACHE from the C library. ( George Macon )
    • Unit tests were added.
    Source code(tar.gz)
    Source code(zip)
  • v1.2.8(Jul 8, 2013)

  • v1.2.7(Jul 8, 2013)

  • v1.2.6(Jul 8, 2013)

  • v1.2.5(Jul 8, 2013)

    • Remove Confidence and Accuracy Database it is unsued anyway. ( Boris Zentner )
    • Add new methods enable_teredo, teredo, time_zone_by_country_and_region and lib_version ( Boris Zentner )
    • Add support for Confidence and Accuracy Database.
    • Add support for Netspeed Database. via: id_by_addr id_by_name
    • Add IPv6 glue *** needs libGeoIP 1.4.7 *** country_code_by_name_v6 country_name_by_name_v6 country_code_by_addr_v6 country_name_by_addr_v6 ( Boris Zentner )
    Source code(tar.gz)
    Source code(zip)
Owner
MaxMind
MaxMind
Documentation and samples for ArcGIS API for Python

ArcGIS API for Python ArcGIS API for Python is a Python library for working with maps and geospatial data, powered by web GIS. It provides simple and

Esri 1.4k Dec 30, 2022
Python module to access the OpenCage geocoding API

OpenCage Geocoding Module for Python A Python module to access the OpenCage Geocoder. Build Status / Code Quality / etc Usage Supports Python 3.6 or n

OpenCage GmbH 57 Nov 1, 2022
A simple python script that, given a location and a date, uses the Nasa Earth API to show a photo taken by the Landsat 8 satellite. The script must be executed on the command-line.

What does it do? Given a location and a date, it uses the Nasa Earth API to show a photo taken by the Landsat 8 satellite. The script must be executed

Caio 42 Nov 26, 2022
An API built to format given addresses using Python and Flask.

An API built to format given addresses using Python and Flask. About The API returns properly formatted data, i.e. removing duplicate fields, distingu

null 1 Feb 27, 2022
Program that shows all the details of the given IP address. Build with Python and ipinfo.io API

ip-details This is a program that shows all the details of the given IP address. Build with Python and ipinfo.io API Usage To use this program, run th

null 4 Mar 1, 2022
Tile Map Service and OGC Tiles API for QGIS Server

Tiles API Add tiles API to QGIS Server Tiles Map Service API OGC Tiles API Tile Map Service API - TMS The TMS API provides these URLs: /tms/? to get i

3Liz 6 Dec 1, 2021
Mmdb-server - An open source fast API server to lookup IP addresses for their geographic location

mmdb-server mmdb-server is an open source fast API server to lookup IP addresses

Alexandre Dulaunoy 67 Nov 25, 2022
This is a simple python code to get IP address and its location using python

IP address & Location finder @DEV/ED : Pavan Ananth Sharma Dependencies: ip2geotools Note: use pip install ip2geotools to install this in your termin

Pavan Ananth Sharma 2 Jul 5, 2022
Python bindings and utilities for GeoJSON

geojson This Python library contains: Functions for encoding and decoding GeoJSON formatted data Classes for all GeoJSON Objects An implementation of

Jazzband 765 Jan 6, 2023
Geocoding library for Python.

geopy geopy is a Python client for several popular geocoding web services. geopy makes it easy for Python developers to locate the coordinates of addr

geopy 3.8k Dec 30, 2022
Python Data. Leaflet.js Maps.

folium Python Data, Leaflet.js Maps folium builds on the data wrangling strengths of the Python ecosystem and the mapping strengths of the Leaflet.js

null 6k Jan 2, 2023
Python tools for geographic data

GeoPandas Python tools for geographic data Introduction GeoPandas is a project to add support for geographic data to pandas objects. It currently impl

GeoPandas 3.5k Jan 3, 2023
Python interface to PROJ (cartographic projections and coordinate transformations library)

pyproj Python interface to PROJ (cartographic projections and coordinate transformations library). Documentation Stable: http://pyproj4.github.io/pypr

null 832 Dec 31, 2022
Python bindings and utilities for GeoJSON

geojson This Python library contains: Functions for encoding and decoding GeoJSON formatted data Classes for all GeoJSON Objects An implementation of

Jazzband 763 Dec 26, 2022
PySAL: Python Spatial Analysis Library Meta-Package

Python Spatial Analysis Library PySAL, the Python spatial analysis library, is an open source cross-platform library for geospatial data science with

Python Spatial Analysis Library 1.1k Dec 18, 2022
Simple, concise geographical visualization in Python

Geographic visualizations for HoloViews. Build Status Coverage Latest dev release Latest release Docs What is it? GeoViews is a Python library that ma

HoloViz 445 Jan 2, 2023
A package built to support working with spatial data using open source python

EarthPy EarthPy makes it easier to plot and manipulate spatial data in Python. Why EarthPy? Python is a generic programming language designed to suppo

Earth Lab 414 Dec 23, 2022
pure-Python (Numpy optional) 3D coordinate conversions for geospace ecef enu eci

Python 3-D coordinate conversions Pure Python (no prerequistes beyond Python itself) 3-D geographic coordinate conversions and geodesy. API similar to

Geospace code 292 Dec 29, 2022
:earth_asia: Python Geocoder

Python Geocoder Simple and consistent geocoding library written in Python. Table of content Overview A glimpse at the API Forward Multiple results Rev

Denis 1.5k Jan 2, 2023