132 kV and a Puddle: Geolocating a 360° Image in Iceland
One power line voltage put me within 10 m of the answer in minutes. The rest of the day went on the assumption that "the 360 image" meant Google's.
The challenge
Posted by Hacktoria in their Discord. Four lines and one image:
Current Location Found this power line with a voltage of 132 kV, next to some natural water. Flag format:
Link to the 360 image
One image. A flat grassy coastal plain, dark blocky rock outcrops in the middle distance, a shallow lagoon, open water on the horizon, and a distant headland at the far right. Two power line structures: a low wooden pole line on the left, and a taller two-legged pole toward the right.

Everything the challenge hands you. No text, no metadata, no settlement — the voltage in the prompt and the two pole types are the whole starting position.
Two hard constraints came free with the prompt: 132 kV, and natural water. Everything else had to come out of the pixels.
The answer, up front. Austurlandsvegur north of Djúpivogur in eastern Iceland — 64.59995, −14.42027, beside Landsnet’s Hólalína 1 — and the accepted flag is a Já 360 link, not a Google one. The coordinate was in the first candidate list the filter produced, within minutes. The rest of the day went on a question I never asked out loud: whose 360 image. I found the place, submitted a Street View link 10 m away, and had it rejected.
First read
The terrain said sub-Arctic North Atlantic. Treeless, tussocky grass, broken basalt, milky flat light, no trees anywhere on a horizon spanning roughly 180°. That narrows to Iceland, the Faroes, coastal Norway, Scotland’s northern isles — a family of landscapes that all look like each other.
The power lines were the more interesting signal, and my first read of them was wrong in a way worth recording. Short spans, wooden poles, no visible earth wire over the conductors: that reads as distribution voltage, not transmission. Which directly contradicted the 132 kV in the prompt.
That contradiction was the actual lead. When a given fact and an observed fact disagree, one of them is wrong, and finding out which one collapses the search space.
Dead end one: trusting the model
Before the manual work, I ran the image through a GeoCLIP + StreetCLIP pipeline. It returned Iceland at 74% country confidence and a top region of “Snæfellsnes, 73%”.
Same setup as the Norwegian farmhouse solve: StreetCLIP for the country prior, GeoCLIP over the full frame plus overlapping crops, results aggregated by summed probability. Reproduce it there — the point here is what came out, not how it was run.
Snæfellsnes is wrong, and the output said so on its face:
| Rank | Probability | Place |
|---|---|---|
| 1 | 2.89% | Iceland |
| 2 | 2.81% | Snæfellsbær, Vesturland |
| 3 | 1.83% | Iceland |
| 20 | 0.95% | Stykkishólmur, West |
A top candidate at 2.89% with rank 20 at 0.95% is a flat distribution. There is no signal in it. And the place names — Ólafsvík, Stykkishólmur, Snæfellsbær, Sauðárkrókur — are exactly the places in Iceland where people take a lot of geotagged photographs. GeoCLIP is trained on geotagged imagery, so what it returns for a featureless landscape is a popularity prior, not a location. The 73% “region” figure was a cluster spanning half the country.
The country-level output was worth keeping. The region was noise.
And there was a concrete way to test it: Snæfellsnes has no 132 kV. The peninsula runs on the 66 kV regional network, bounded by Vegamót, Vogaskeið, Grundarfjörður and Ólafsvík, connected to the main grid via Vatnshamrar. A 132 kV connection appears in Landsnet’s long-term planning but is not on the construction schedule and has no date attached.
The model’s answer was incompatible with the challenge’s own constraint, and that is
checkable in one query — every power=line on the peninsula comes back voltage=66000,
six ways, no exceptions:
[out:json][timeout:90];
way["power"="line"]["voltage"](64.7,-24.2,65.1,-22.5);
out ids tags;
Snæfellsnes was out.
Reading the grid
The voltage is the strongest constraint in the prompt, and it is directly mappable. Open Infrastructure Map renders the OSM power network with voltage encoded as line colour, so 132 kV corridors are identifiable at a glance without reading a single tag. Iceland has 52 ways tagged 132 kV across roughly 30 named lines — a small enough set to work through visually.
That is what I used. Find the lines by colour, then trace them and look for where they run close to both natural water and a road, since a 360° image almost always implies a drivable way nearby.

Everything the prompt asks for meets at the circled point: a line the colour scale renders as 132 kV, open water immediately south of it, and Þjóðvegur 1 close enough alongside to have been driven. Fourth entry in the first candidate list — and the one I then spent a day failing to recognise.
If you want the same intersection as a list rather than a picture — hundreds of
candidates to feed into something else — Overpass does it in one query using
around:
[out:json][timeout:600];
{{geocodeArea:Iceland}}->.a;
way["power"="line"]["voltage"~"132000"](area.a)->.hv;
node(w.hv)->.p;
way["natural"="water"](area.a)(around.p:300)->.w;
.w out center;
288 of Iceland’s 132 kV line vertices sit within 300 m of natural water. Public
Overpass instances rate-limit aggressively; on 503 or 429 try overpass.osm.ch,
or work from a Geofabrik extract locally — the Iceland file is 62 MB.
Pick by what you need next. The map is better for judging a handful of candidates against terrain; the query is better when the output feeds a script.
One thing worth internalising either way: search area costs almost nothing here. Whether you filter Iceland or all of Scandinavia is a difference in runtime, not in feasibility. The work is done by the intersection of constraints, not by narrowing the map first. I wasted time later reasoning about which country I could “afford” to check — an instinct left over from manual searching that does not apply once the constraints are computable.
Probing for panorama coverage
The third constraint — does a 360° image exist here — is in no OSM database, and there is no query frontend for it. This is where the actual tooling was needed.
Google. The internal endpoint
maps.googleapis.com/$rpc/google.internal.maps.mapsjs.v1.MapsJsInternalService/SingleImageSearch
takes a coordinate and a radius and returns the nearest panorama’s ID, its true
position, and its capture date. No API key. Its sibling GetMetadata takes a
panorama ID and returns the neighbour graph plus, where they exist, entries for
older capture layers tagged with year and month.
Panorama tiles come from streetviewpixels-pa.googleapis.com/v1/tile with
panoid, x, y and zoom. One catch that costs an hour if you miss it: the
tile endpoint returns 403 without a browser Referer header. Set
Referer: https://www.google.com/ and it serves — or it did. Re-running this while writing
the post, every tile comes back PERMISSION_DENIED with the header set, so treat the whole
block as undocumented and perishable rather than as an interface. zoom=2 gives 4×2 tiles of
512 px, enough to identify a scene; zoom=3 gives a full 4096×2048
equirectangular.
curl -H 'Referer: https://www.google.com/' \
'https://streetviewpixels-pa.googleapis.com/v1/tile?panoid=iv4C03X7vwdTDMLvV75uRA&x=0&y=0&zoom=3' \
-o tile_0_0.jpg
Of the 288 candidate points, only 17 had any panorama at all.
Mapillary. Two things worth knowing, because the documentation does not make them obvious:
The Graph API image search is unreliable for this. graph.mapillary.com/images?bbox=
returns HTTP 500 “reduce the amount of data” for anything but a tiny box, and an
empty data array when your token lacks permissions — no error, just nothing,
which is far more confusing than a failure.
The vector tiles are the reliable enumeration path. tiles.mapillary.com/maps/vtp/mly1_public/2/{z}/{x}/{y}
works with a plain client token and gives positions, is_pano, capture time and
image IDs.
curl 'https://tiles.mapillary.com/maps/vtp/mly1_public/2/14/8402/4869?access_token=MLY|...' \
-o tile.mvt
The Graph API object endpoint then fetches the actual image, and that one needs a proper access token.
So: tiles to find, Graph API to fetch. That split is the most reusable thing this challenge produced.
Result along the Icelandic 132 kV corridors: 142 images in a suburban part of the capital region, 15 dashcam frames on a main road near Reykjavík, three near Egilsstaðir. Nothing coastal, nothing matching.
Two providers. That was my entire list, and I never wrote it down as a list — which is why I never noticed it was missing an entry.
Dead end two: Norway
At this point the Iceland sweep looked exhaustive and negative, and I built a case for northern Norway: 132 kV is the standard regional voltage there rather than an exception, Finnmark’s treeless coastal tundra with frost-shattered block fields and coastal lagoons is visually identical, and a closer look at the tall two-legged pole seemed to show a wooden A-frame — a construction I believed Iceland did not use at 132 kV.
The premise was simply false. Iceland does use two-legged wooden structures on this network. The mast-type argument should never have carried the weight I put on it, because it was read off a blurred low-resolution crop.
There was also a prior pointing the other way that I did not weigh. Hacktoria’s geolocation challenges lean Nordic — a farmhouse brewery in Norway, an airport in Denmark — so the country was never going to be decided by the author’s habits, since Norway fits that pattern as well as Iceland does. What the prior should have done is stop me from treating a country switch as cheap. Iceland had a filter hit on a 132 kV line beside water; Norway had a hunch about a mast silhouette. Those are not the same kind of evidence, and I traded down.
The hint, and a plausible wrong answer
Two things broke the deadlock.
First, a hint: view is roughly south-east. That fixes the geometry — open water to the south-east, the headland at the right edge toward the south-west, a coast facing south-east with a low far shore. Combined with the eastern half of the country, that is a short enough stretch of coast to walk manually: switch on the photo layer in Google Maps and work along it, checking every 360° marker. Crude, but at that point the search space was small enough that crude was faster than clever.
Second: the target image was not the current panorama. The probe returns only the newest capture at each point. I checked one location for historical layers, found none, and generalised that to all of them.
Google drove Iceland in 2013 and again in 2024. The 2024 imagery at the correct location shows green grass and a blue sky. The target image is hazy, yellow-dry and low-contrast. Side by side they do not read as the same place — and I discarded the correct candidate on exactly that basis.
Querying the historical layer costs one extra GetMetadata call per candidate. At
the target location that list contained an August 2013 layer alongside July 2024,
pointing at panorama iv4C03X7vwdTDMLvV75uRA. Hazy, dry, low-contrast — much closer to the
target than the 2024 capture, and enough of a resemblance that I stopped looking.
That link is worth keeping for its own sake, because the 5s segment is the part that pins a
Street View URL to a historical capture:
https://www.google.com/maps/@64.5999053,-14.4204404,3a,75y,150h,90t/data=
!3m7!1e1!3m5!1siv4C03X7vwdTDMLvV75uRA!2e0!5s20130801T000000!7i13312!8i6656
Drop !5s20130801T000000 and the same URL resolves to July 2024 — a different image of the
same place. I submitted it.
It was rejected.
What “the 360 image” meant
The flag format says Link to the 360 image. I read that as the 360 image, meaning the
obvious one, meaning Google’s. It says nothing of the sort.
Iceland has its own panorama layer. Já 360, run by Sýn hf. alongside the national directory, has driven the ring road with its own car, and along Austurlandsvegur its coverage is from June 2023 — between Google’s two passes, and much closer in season and light to the challenge image than either of them.
Two practical notes, because the viewer is not built for this:
- Coordinates are ISN93 (EPSG:3057), not WGS84. The URL carries
x/yin metres —x=719072&y=463341is the target — and nothing in the interface converts for you. It is a Lambert Conformal Conic 2SP on GRS80,lat_1=64.25 lat_2=65.75 lat_0=65 lon_0=-19, false easting and northing both 500000. ja360=1opens the panorama,jh=is the heading. Both survive in a shared link, which is what makes a Já 360 URL usable as an answer at all.
from pyproj import Transformer
lon, lat = Transformer.from_crs(3057, 4326, always_xy=True).transform(719072, 463341)
# 64.599952, -14.420266
That is 10 m from the coordinate I had already submitted. The location was never the problem.
The match

Four features, same order, same spacing: the two-legged pole (1) at 71 % of frame width in both, the lagoon behind it (2), the headland on the horizon (3), the outcrop row (4). The lower frame is wider, which is why the left-hand pole line sits further out in the challenge image — the geometry between the marked features is unchanged.
Location: 64.59995, −14.42027 — Austurlandsvegur, Múlaþing, eastern Iceland, north of Djúpivogur, beside Hólalína 1.
The line is the independent check, and it is not the panorama. The coordinate sits on Hólalína 1, Landsnet’s 132 kV line — the same corridor the filter selected, arrived at from OSM rather than from the picture. Voltage, natural water and the visible pole line agree at one point. Had the visual match landed anywhere off a 132 kV way, the prompt itself would have refused the answer.
Panorama: Já 360, captured June 2023.
Flag: the 360° link
What this cost, and what it should have cost
The location was in the very first candidate table the filter produced, ranked fourth, within minutes. Everything after that was spent on the wrong question. I asked where is this, got an answer, and then spent a day defending it — first against Norway, then against a Street View capture that did not look right. The question I never asked was who took the picture.
Four lessons worth keeping:
“The 360 image” is not a synonym for Street View. Google is one provider of panoramic imagery, and outside the countries it prioritises it is often not the densest. National directories, mapping agencies and telecoms operators drive their own cars: Já 360 in Iceland, and there are equivalents elsewhere. Before concluding that a coordinate has no matching panorama, enumerate the providers, not just the years.
A national dataset speaks its national CRS. Já 360 addresses points in ISN93, and a
coordinate that looks like nonsense next to a WGS84 pair is usually a projection, not an
error. One pyproj call settles it.
Do not read construction details off a blurred crop. The mast-type argument sent me to another country on the strength of pixels that could not support it. A visual inference from a low-resolution source has to be held far more loosely than a computed one.
Treat AI geolocation output as a country-level prior at best. Check the shape of the distribution before using any of it. If ranks 1 and 20 are within a factor of three, the model has told you nothing about the region — and the place names it returns are where photographers go, not where your photo is.
The filter was correct. The pipeline was correct. Both dead ends and the rejected submission came out of the same habit: reaching for the tool I know and treating its silence as evidence. GeoCLIP was believed because it is the model I run. Street View was searched because it is the imagery I check. Neither had anything to say about eastern Iceland, and both said it convincingly.
Sources
- Hacktoria — the organisers; the challenge was posted in their Discord
- Já 360 — Iceland’s own panorama layer, and where the accepted answer lives; the target point
- EPSG:3057 — ISN93 / Lambert 1993 — the projection Já 360’s
x/yare in - Open Infrastructure Map — renders the OSM power network with voltage as line colour; the 132 kV corridors are readable without touching a tag
- Overpass API and the
aroundfilter — the query that intersects 132 kV vertices withnatural=water - Geofabrik Iceland extract — 62 MB, the way around the public instances’ rate limits
- Landsnet — the operator; every 132 kV way in the queries above carries
operator=Landsnet - Hólalína 1 in OSM —
voltage=132000,operator=Landsnet, the way the final coordinate sits on - Street View Static API — the documented, key-based counterpart. The
SingleImageSearch/GetMetadata/ tile endpoints used here are internal and undocumented; nothing above is a stable contract, and theRefererrequirement was found by trying it - Mapillary — vector tiles — the reliable enumeration path, with
is_panoand capture time - Mapillary — Graph API — fetching the actual image once a tile has given you the ID
- GeoCLIP and StreetCLIP — the models behind the first dead end
Image credits
Map screenshot: Open Infrastructure Map, rendering OpenStreetMap data © OpenStreetMap contributors, licensed under ODbL 1.0.
Panorama screenshot in the comparison: Já 360 © Sýn hf., captured June 2023, reproduced for identification of the challenge location. The challenge image is Hacktoria’s. Annotations are the author’s own.