I recently learned about Overture places data through a blog post by Drew Breunig. This dataset “contains more than 53 million point representations of real-world entities: schools, businesses, (โฏ), mountain peaks, and much more”1. You can explore this data through the Overture Maps Explorer.
I regularly have breakfast with a friend, and we like exploring new breakfast places. The Overture dataset could provide us with new breakfast places in Brussels. For this, we need the bounding box around the area of Brussels in which we’re interested in. We can find this using bboxfinder.com. For this example, we take the bounding box around the Vijfhoek of Brussels.
Checking out some of the regular places we visit through the Maps Explorer shows that they have the "breakfast_and_brunch_restaurant"
category in common. Using duckdb
, we can download all places within our defined bounding box of 50.832939, 4.337368, 50.858410, 4.369812
. The code below is based on an example from the Overture Maps website:
-- Load necessary modulesLOAD spatial;LOAD httpfs; -- Set the AWS S3 regionSET s3_region = 'us-west-2'; -- Copy the filtered data from S3 to a local Parquet fileCOPY ( SELECT id, names, categories, websites, addresses, ST_GeomFromWKB(geometry) FROM read_parquet('s3://overturemaps-us-west-2/release/2024-07-22.0/theme=places/*/*') WHERE -- Filter by bounding box (xmin and ymin) bbox.xmin BETWEEN 4.337368 AND 4.369812 AND bbox.ymin BETWEEN 50.832939 AND 50.858410) TO 'vijfhoek.parquet';
Next, we can query all the places where the primary category is "breakfast_and_brunch_restaurant"
:
SELECT names.primary AS name, addresses[1].freeform AS address, websites[1] AS website FROM 'vijfhoek.parquet' WHERE categories.primary = 'breakfast_and_brunch_restaurant';
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ name โ address โ website โโ varchar โ varchar โ varchar โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโคโ Flower food โ Rue Blaes 264 โ โโ Le Pรจre Tranquille โ Rue des Renards 4 โ โโ Brussels Waffle Workshop โ Rue des Foulons 30 โ http://www.waffleworkshop.com โโ Woodpecker 20 โ Rue Jourdan 20 โ โโ EatClub Brussels โ Rue de Stassart 18 โ โโ Cafรฉ Boudin โ Rue Ravenstein 20 โ https://cafeboudin.be โโ bloom_and_brunch_by_sabri โ Rue de la Paix 7 โ โโ Lastra โ Rue du Conseil 24 โ โโ Le Coin Des Saveurs โ Boulevard de l'Abattoir 19 โ โโ Kandinsky โ Chaussรฉe de Gand 37 โ https://kandinsky-family.be/ โโ Restaurant Baurade โ Boulevard Anspach 153 โ โโ Kafei Dansaert โ Rue Antoine Dansaert 57 โ https://kafei.be โโ Le Odin Royal โ Oude Graanmarkt 2 โ โโ Movenpick โ โ โโ Woodpecker St. Cath. โ Quai au Bois ร Brรปler 27 โ โโ Restaurant Al Andalus โ Rue de Ribaucourt 4 โ โโ Gaufres and Waffles โ Chemin du Croquet 1 โ http://www.gaufresandwaffles.com โโ Oats Day Long โ Europakruispunt 3 โ https://www.oatsdaylong.com โโ Belrose cake โ Boulevard รmile Jacqmain 3 โ https://www.belrosecake.com/ โโ Spread the moon โ Rue du Gentilhomme 13 โ https://www.instagram.com/spreadthemoon/ โโ Longitude Nord-Sud โ Quai aux Pierres de Taille 14 โ http://longitude.blog4ever.com/ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโคโ 21 rows 3 columns โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
This is a good start, but lots of places we already visited are still missing from this list. We can query for all places where 'breakfast_and_brunch_restaurant'
is listed under alternate categories using OR 'breakfast_and_brunch_restaurant' = ANY (categories.alternate);
.
I’m planning to pick this idea up later, and check if I can find a way to include more breakfast and brunch spots. In a next step, I could attempt to scrape the provided websites to check menus for our usual order.