Find Potential Roadside Parking with Google Street View

Site google.comTask find-roadside-parking-with-google-street-viewVersion v4Updated Aug 16, 2026Category maps

Resolve a landmark or area in Google Maps, open Street View at its coordinates and, when useful, several nearby viewpoints and headings, then identify visually plausible roadside stopping or parking locations without asserting legality or safety. This skill was captured from a live agent session on google.com and publishes here verbatim, exactly as an agent receives it.

NoteSelectors and URL schemes drift as sites change. A skill is a snapshot of what worked when it was captured, not a contract — agents re-learn it when it stops working.

Purpose

Given {landmark-query} and optional {area-query}, resolve the intended place in Google Maps, open Street View near its coordinates, and report visually plausible pull-offs, widened shoulders, lay-bys, entrances, or nearby lots. Inspect more than one road-facing heading or nearby viewpoint when a single panorama does not show the approach clearly. This is read-only. Do not claim that a location is legal, permitted, safe, or public solely because it appears usable in imagery.

When to Use

  • Finding possible roadside parking near a rural landmark, lake, trailhead, shrine, viewpoint, or dam.
  • Checking access roads around a named place before a visit.
  • Comparing visible turnouts, widened shoulders, lay-bys, and nearby lots.
  • Requests explicitly requiring Google Street View rather than only map or satellite imagery.
  • Inspecting several approaches or orientations around a landmark when one panorama has insufficient visibility.

Workflow

  1. Resolve the place with one direct Maps search navigation; do not visit Google's homepage or type into a search box:
https://www.google.com/maps/search/?api=1&query={url-encoded-area-query-and-landmark-query}

Wait for results, then evaluate anchors containing /maps/place/. Select the result whose visible name, locality, and landmark type best match {landmark-query}. Japanese searches may resolve to romanized names; compare both scripts and locality. Read the complete result href and never fabricate an opaque place identifier.

  1. Resolve coordinates from the selected result URL. Prefer the coordinate pair in /@{latitude},{longitude},... or the !3d{latitude}!4d{longitude} segments. If absent, open the selected result once and read its rendered map/place context. Coordinates are intermediate data, not reusable constants.

  2. Open Street View directly at the resolved point:

https://www.google.com/maps/@?api=1&map_action=pano&viewpoint={latitude},{longitude}

Use one or more optional orientations without clicking the Street View control:

https://www.google.com/maps/@?api=1&map_action=pano&viewpoint={latitude},{longitude}&heading={degrees}&pitch={degrees}

Batch navigation, a 3–5 second render wait, and evaluation in as few browser-agent calls as possible. If the exact point has no imagery, use a nearby coordinate obtained from the resolved map/road context; do not invent a road position. When the road layout warrants it, inspect the same viewpoint with different heading values and/or inspect a small set of nearby road viewpoints. Keep the actual viewpoint URLs for provenance.

  1. Run this evaluator on each loaded Maps page:
(()=>{const clean=s=>(s||'').replace(/\s+/g,' ').trim();const u=new URL(location.href);const body=clean(document.body?.innerText);const coord=(u.pathname.match(/@(-?\d+(?:\.\d+)?),(-?\d+(?:\.\d+)?)/)||[]);const pano=/map_action=pano|street.?view|photosphere|pano/i.test(location.href+' '+body);const blocked=/consent|sign in|captcha|unusual traffic|verify you are human/i.test(body)&&!pano;const labels=[...new Set([...document.querySelectorAll('[aria-label]')].map(e=>clean(e.getAttribute('aria-label'))).filter(Boolean))].slice(0,100);const evidence=[...new Set((document.body?.innerText||'').split(/\n+/).map(clean).filter(x=>x&&/(parking|park|車|駐車|路肩|駐車場|停車|shoulder|lay.?by|pull.?off|no parking|通行止め|立入禁止|湖|杉|street view|streetview)/i.test(x)))].slice(0,50);const nearbyLinks=[...document.querySelectorAll('a[href]')].map(a=>({text:clean(a.innerText||a.getAttribute('aria-label')),href:a.href})).filter(x=>x.href&&/(parking|park|駐車|路肩|車止め|trail|lake|dam)/i.test(x.text+' '+x.href)).slice(0,30);return{url:location.href,isGoogleMaps:/((^|\.)google\.com)$/.test(u.hostname)&&u.pathname.startsWith('/maps'),isStreetView:pano,latitude:coord[1]?Number(coord[1]):null,longitude:coord[2]?Number(coord[2]):null,heading:u.searchParams.get('heading'),pitch:u.searchParams.get('pitch'),blocked,visibleLabels:labels,parkingEvidence:evidence,nearbyLinks,bodyExcerpt:body.slice(0,2000)}})()
  1. Inspect the rendered panorama itself. Record a candidate only when imagery visibly shows a widened shoulder, turnout, lay-by, entrance, or nearby lot. For each candidate report the actual viewpoint URL, approximate coordinates or pano position, road/approach, visual evidence, obstructions, signs or markings, and confidence. Compare evidence across headings/viewpoints rather than treating a single obstructed view as definitive. If coverage or visibility is inadequate, return no candidate rather than guessing.

  2. Separate potentially_usable from not_recommended. A missing visible sign means unknown, not permission. Advise checking current signs, road markings, private-property status, traffic, weather, gates, and local rules in person. Do not recommend blocking traffic, stopping on curves, entering private land, or stopping where signs or markings prohibit it.

Site-Specific Gotchas

  • Google Maps search uses https://www.google.com/maps/search/?api=1&query=... and resolves Japanese and area-qualified landmark names in one navigation.
  • Search result hrefs contain opaque place identifiers and may contain coordinates in /@lat,lng or !3d...!4d...; read them from the DOM and never guess them.
  • The direct Street View form is https://www.google.com/maps/@?api=1&map_action=pano&viewpoint=lat,lng; heading and pitch are optional orientation parameters useful for inspecting different road approaches.
  • Multiple direct pano navigations can be used to compare nearby road viewpoints and orientations. Preserve each actual URL in the result, but do not save instance-specific coordinates, pano hashes, analytics parameters, or challenge URLs as canonical recipe data.
  • A nearby panorama may be selected instead of the exact landmark point. Report the actual viewpoint URL and distinguish landmark coordinates from panorama coordinates.
  • Street View imagery is time-dependent and may omit current signs, construction, gates, snow, parked vehicles, or road conditions. Report the imagery date when Google exposes it.
  • Panorama pages can have sparse textual DOM. Use the evaluator for page state and labels, but rely on rendered imagery for shoulder width, barriers, entrances, and obstructions.
  • Consent, login, CAPTCHA, or unusual-traffic interstitials are blocked states. Do not infer candidates unless the panorama is actually rendered.
  • Nearby lots or access roads may be private, gated, or intended only for customers or residents. Treat them as visual observations, not permission.

Expected Output

{
  "success": true,
  "resolvedPlace": {
    "name": "{visible landmark name}",
    "address": "{visible locality/address}",
    "placeUrl": "{resolved /maps/place URL}",
    "latitude": 0,
    "longitude": 0
  },
  "streetViewUrls": [
    "https://www.google.com/maps/@?api=1&map_action=pano&viewpoint={lat},{lng}&heading={degrees}"
  ],
  "candidates": [
    {
      "locationDescription": "{visible turnout or widened shoulder}",
      "approximateCoordinates": {"latitude": 0, "longitude": 0},
      "viewpointUrl": "{actual inspected Street View URL}",
      "roadOrApproach": "{road name or direction if visible}",
      "status": "potentially_usable",
      "visualEvidence": ["{widened shoulder visible}"],
      "hazardsOrRestrictions": ["{sign, curve, narrow road, private entrance, or unknown}"],
      "confidence": "medium",
      "caveat": "Verify current signs, legality, and safety on site."
    }
  ],
  "blocked": false,
  "pageEvidence": [{"url": "{viewpoint URL}", "parkingEvidence": [], "bodyExcerpt": "..."}]
}

If no suitable pull-off is visible, return an empty candidates array and explain that Street View did not provide sufficient evidence. Never invent a parking location.

Call it

GET https://production-sfo.browserless.io/skills?token=TOKEN-HERE&domain=google.com&task=find-roadside-parking-with-google-street-view