The Blurred Fuel Station: Timing a Chicago bp Photo to the Minute

Hacktoria GEOINT. One photo of a bp forecourt with the shop signs blurred out, and a question about when it was uploaded. A logo read through the blur, 211 candidate stations, and a delivery van that ruled out Google.

Title: 🕊️ (posted without a name; I call it The Blurred Fuel Station)

Description: When Was This exact image Uploaded

Flag: Hacktoria{Month DD, YYYY, HH:MM AM} eg. Hacktoria{July 10,2023 10:03 AM}

The answer, up front: the photo is an Apple Look Around panorama taken on the forecourt of the bp at 4248 S Wentworth Ave, Chicago, on the corner of W 43rd St next to the Dan Ryan Expressway. Panorama 1927738103062066833 carries a capture timestamp to the second, and that timestamp in Chicago local time is the flag.

2025-06-09 14:02:30 UTC = 9:02 AM CDT (UTC−5)
Hacktoria{June 09, 2025, 09:02 AM}

The rest of the post is the route. It covers why reverse image search had nothing, how a blurred logo became an Overpass query, and the delivery van that ruled out Google Street View before I had opened it.

The challenge photo: a bp canopy seen from underneath, a white Vestis van at the pumps on the left, a strip mall with blurred signs in the middle, and a multi-lane road with a concrete wall and trees on the right

The whole brief. No EXIF (it’s a PNG screenshot), no caption, and the shop signs in the background have been blurred by the author on purpose.

Step 1: What’s in the frame, and what was taken out

The author blurred exactly one thing: the row of shop signs behind the canopy. Everything else was left alone, so it’s fair game.

The challenge photo with boxes around the Vestis van, the blurred strip mall, a distant overpass, the two SUVs on the road, and the red and yellow paint marks on the forecourt floor

What’s worth writing down. The van and the cars move; the strip mall, the road, the overpass and the paint on the floor don’t.

  1. A Vestis van. Vestis is the uniform-rental business Aramark spun off as its own company on 30 September 2023. A van in Vestis colours means the photo was taken after that date. Vans move around, so this dates the photo and says nothing about the place. That comes back in Step 5.
  2. bp pumps with the Invigorate branding, the version bp uses in the US. So the country is the US and the brand is bp.
  3. A strip mall behind the forecourt, with blurred signs: one red, then a block of yellow next to green.
  4. A wide multi-lane road on the right with a concrete wall behind it and trees beyond. That reads like a frontage road next to a sunken expressway.
  5. An overpass far down the road, a grey band just left of the trees.
  6. Paint on the forecourt floor: a red spot and a yellow ring between the pumps. Useless for finding the place, but exactly the kind of detail that proves a match later.

The camera is low, a little over head height, the picture is very wide, and the canopy edge bends. That looks like a crop from a 360° panorama, which in turn points at a street-level imagery service, not a phone photo someone uploaded.

Step 2: Reverse image search finds nothing, and one plausible false lead

The standard first try: Google Lens on the full image and on two crops (the canopy with the van, and the canopy with the road), then Yandex and Bing Visual Search.

No exact match anywhere. Lens said so directly: “No exact matches found.” The visual matches were dozens of other bp stations on three continents. That fits a panorama crop: a frame cut out of a 360° image isn’t on any web page, so there’s nothing to index.

False lead: the Romulus bp

Lens ranked one visual match first twice: a Detroit News article about a price-gouging case against a bp in Romulus, Michigan, with a green-canopied station photo next to a road. I checked it. It’s a different station: a smaller canopy, a kiosk instead of a strip mall, and no wall. It only looked relevant because it was at the top of the list. Lesson: a Lens visual match that returns every time is showing you what the model thinks is similar, not what is the same.

Step 3: Reading the logo through the blur

This is the key step. Blow up the strip mall:

A zoomed crop of the blurred strip mall: a red smear on the left; one box marks a yellow patch next to a green one on the storefront, a second box a smaller yellow-green sign higher up, labelled SUBWAY in yellow and green

Yellow next to green, twice: once on the storefront, once on a smaller sign higher up. That is Subway’s logo in colour alone.

A blur removes the letters but keeps colour and proportion. Yellow and green side by side, on a small unit in a US strip mall right next to a gas station, is Subway. I’m not claiming more than that: probably Subway, next to a bp. But that’s enough to turn it into a query.

How sure? Sure enough to spend a query on, not sure enough to call it proven. What confirms it is Step 4, where the station the search returns turns out to have a Subway in exactly that spot.

Step 4: bp + Subway + a major road, across the whole US

“A bp within walking distance of a Subway, directly on a major road” is a question for OpenStreetMap. I ran it on the public Overpass API:

[out:json][timeout:600];
area["ISO3166-1"="US"][admin_level=2]->.us;
nwr["brand"="Subway"](area.us)->.s;
nwr["amenity"="fuel"]["brand"~"^(BP|bp|Amoco)$"](around.s:150)->.bp;
way["highway"~"^(motorway|trunk|primary|motorway_link|trunk_link)$"](around.bp:45)->.r;
nwr.bp(around.r:45);
out center tags;

Without the road filter there are 386 bp/Amoco stations within 150 m of a Subway. With the road filter, 211 remain. That’s too many to walk through in Street View, but not too many to look at from above. I pulled a 250 m satellite tile for each one (Esri World Imagery, one export request per candidate) and put them on contact sheets. The target was: a long canopy, a strip mall behind it, and an expressway with a frontage road right beside it.

A contact sheet of 36 satellite tiles of bp candidates; tile 163 is boxed in red: a canopy between a strip mall and a wide expressway, with a road bridge crossing the expressway

Sheet 5 of 6. Tile 163 is the only one on any sheet with the whole layout: strip mall, canopy, frontage road, sunken expressway, and a bridge across it.

Tile 163 is 4250 South Wentworth Avenue, Chicago in OSM, and Google lists the station as bp, 4248 S Wentworth Ave. A closer look:

Annotated satellite view: boxes labelled SHOPS around the strip mall, GAS STATION around the canopy just south of it, and S WENTWORTH AVE on the road running north–south between the station and the Dan Ryan Expressway; the W 43rd St bridge crosses the expressway just below the station

Everything from Step 1 in one place: shops behind the canopy, Wentworth Ave as the multi-lane road, the Dan Ryan’s retaining wall behind it, and the 43rd St bridge across the expressway right next to the station.

A side note for anyone who wants to reproduce this: a follow-up query to narrow things further with bridge=yes timed out on the public Overpass server twice (“The server is probably too busy”). Viewing the satellite tiles by eye was quicker than waiting for it.

Confirming the Subway

Google Street View from the corner of W 43rd St, July 2025:

Google Street View at W 43rd St and Wentworth, July 2025: the bp canopy and price sign, with boxes around the China Express, Subway and Nicky's Gyros signs in the strip mall behind it and a small box on the forecourt floor

The strip mall behind the canopy: China Express, the Subway sign and Nicky’s Gyros. Step 3’s guess is confirmed at this address.

The place is settled. The question, though, is about a time.

Step 5: The van rules out Google

The question says “this exact image”, and a 360° crop comes from one specific panorama. So which service took it?

Google’s metadata endpoint (/maps/photometa/v1, the same request the Maps web client sends) lists every panorama around the station along with its capture month. I asked it about the panoramas on the forecourt itself (within ~20 m of the canopy) and got Aug 2016, Aug 2018, May 2019 and Jun 2022. Everything newer (Sep 2024, Jul/Aug 2025) is out on Wentworth and 43rd St, taken by the car driving past, not from under the canopy.

Now the van from Step 1. Vestis didn’t exist as a brand before 30 September 2023. None of Google’s forecourt panoramas is that recent, so the photo can’t be from Google. The same van that says nothing about the place rules out a whole provider.

The next service to check is Apple Look Around. Its survey cars do drive onto forecourts, and its panoramas look exactly like this: very wide and slightly bent at the edges.

Step 6: Apple Look Around and the timestamp

Apple Maps itself only shows a month and a year for Look Around imagery. lookmap by sk-zk reads Apple’s coverage tiles directly and shows each panorama’s full capture timestamp. That link opens the exact panorama and view direction:

Jun 9, 2025, 9:02:30 AM
Pano ID: 1927738103062066833   Build ID: 2147485287
Position: 41.816565, -87.631407   Height: 183.00 m

Side by side with the challenge:

Left: the Apple Look Around panorama with nothing blurred; right: the challenge photo. Matching boxes on both sides mark the Vestis van, the strip mall, a small sign above it, the two SUVs on the road and the red and yellow paint marks on the forecourt floor

Left: Apple Look Around, 9 June 2025. Right: the challenge. Same van at the same pump, same two SUVs on Wentworth, same paint on the floor. The signs the author blurred read China Express, Econo Food Mart, Subway, Nicky’s Gyros.

Parked and passing vehicles are what settle it, and the paint on the floor confirms the camera position. Buildings stay put for decades. A particular pickup in a particular spot only happens in one panorama, so the match is to the image, not just to the place.

Step 7: Which clock?

A timestamp without a time zone isn’t an answer, and this flag has an AM in it. So it’s worth checking which clock lookmap is showing. I pulled the same panorama from Apple’s coverage tile myself with streetlevel:

from streetlevel import lookaround
from zoneinfo import ZoneInfo

tile = lookaround.get_coverage_tile_by_latlon(41.816565, -87.631407)
p = next(p for p in tile.panos if p.id == 1927738103062066833)
print(p.date)                                           # 2025-06-09 14:02:30.417+00:00
print(p.date.astimezone(ZoneInfo("America/Chicago")))  # 2025-06-09 09:02:30.417-05:00

Apple stores UTC, and lookmap converts it to the panorama’s local time. It isn’t the viewer’s clock: in Germany the same moment is 16:02. A morning capture also fits the long, low shadows in the picture.

One honest caveat about the wording: Apple doesn’t publish an upload time. What exists is the capture timestamp. The challenge asks when the image was uploaded, but this is the only minute-precise time the image has anywhere, so it’s the one the flag is built on.

Flag

Hacktoria{June 09, 2025, 09:02 AM}

The format in the brief (Month DD, YYYY, HH:MM AM) and the example (July 10,2023 10:03 AM) don’t agree on commas and zero-padding. If one spelling is rejected, try the other.

Takeaways

  • A blur hides letters, not colours. Brand colours and their order (yellow next to green, red then white) survive heavy blurring. One logo you can read through a blur turns a photo you can’t search into a query you can.
  • Search for combinations, not single places. “bp” alone is thousands of stations. “bp within 150 m of Subway, on a major road” is 211, and 211 satellite tiles take about ten minutes to check by eye.
  • Moving objects date a photo, and a date can rule out a provider. The van said nothing about where. It did say not before October 2023, and that ruled out every Google panorama on the forecourt.
  • A question about “when” needs a clock and a source. Know which timestamp a service stores (capture vs upload), which zone it stores it in, and which zone your viewer shows.

Sources