39 lines
829 B
Python
Executable file
39 lines
829 B
Python
Executable file
#!/usr/bin/env python
|
|
|
|
import overpy
|
|
|
|
# brandname : overpass query filters
|
|
BRANDS: dict[str, str] = {
|
|
"greggs": "[\"brand:wikidata\"=\"Q3403981\"]",
|
|
}
|
|
|
|
|
|
def fetch_data(brand: str) -> list[tuple[float | None, float | None]]:
|
|
api = overpy.Overpass()
|
|
|
|
filters = BRANDS[brand]
|
|
query = api.query(f"nwr{filters}; out center;")
|
|
|
|
result = []
|
|
|
|
for way in query.ways:
|
|
result.append((way.center_lat, way.center_lon))
|
|
|
|
for node in query.nodes:
|
|
result.append((node.lat, node.lon))
|
|
|
|
for (lat, lon) in result:
|
|
if (lat is None) or (lon is None):
|
|
raise ValueError("Item missing coords!")
|
|
|
|
return result
|
|
|
|
|
|
def main():
|
|
print("Running query...")
|
|
greggs = fetch_data("greggs")
|
|
print(f"Query done - got {len(greggs)} Greggs!")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|