Skip to content

DinoTools/python-overpy

Repository files navigation

Python Overpass Wrapper

A Python Wrapper to access the Overpass API.

Have a look at the documentation to find additional information.

Latest Version License https://github.com/DinoTools/python-overpy/actions/workflows/ci.yml/badge.svg?branch=master https://coveralls.io/repos/DinoTools/python-overpy/badge.png?branch=master

Features

  • Query Overpass API
  • Parse JSON and XML response data
  • Additional helper functions

Install

Requirements:

Supported Python versions:

  • Python >= 3.7
  • PyPy3

Install:

$ pip install overpy

Examples

Additional examples can be found in the documentation and in the examples directory.

import overpy

api = overpy.Overpass()

# fetch all ways and nodes
result = api.query("""
    way(50.746,7.154,50.748,7.157) ["highway"];
    (._;>;);
    out body;
    """)

for way in result.ways:
    print("Name: %s" % way.tags.get("name", "n/a"))
    print("  Highway: %s" % way.tags.get("highway", "n/a"))
    print("  Nodes:")
    for node in way.nodes:
        print("    Lat: %f, Lon: %f" % (node.lat, node.lon))

Helper

Helper methods are available to provide easy access to often used requests.

import overpy.helper

# 3600062594 is the OSM id of Chemnitz and is the bounding box for the request
street = overpy.helper.get_street(
    "Straße der Nationen",
    "3600062594"
)

# this finds an intersection between Straße der Nationen and Carolastraße in Chemnitz
intersection = overpy.helper.get_intersection(
    "Straße der Nationen",
    "Carolastraße",
    "3600062594"
)

License

Published under the MIT (see LICENSE for more information)