OpenStreetMap logo OpenStreetMap

Some Overpass Ultra Updates

Posted by dpschep on 14 June 2024 in English. Last updated on 15 June 2024.

In January, I introduced Overpass Ultra v2. Today, I’m pleased to announce some updates to further improve Overpass Ultra’s customization capabilities, enabling you to make custom maps like this one:

Screenshot of a map of gardens in Richmond, Va made with Overpass Ultra

Loading queries from URLs & Gists

In order to facilitate sharing updatable overpass queries&maps, Overpass Ultra is now able to load queries from a URL or Github Gist.

To use this feature, specify either query=url:... or query=gist:... in the hash parameters. For example to load a Gist:

https://overpass-ultra.us/#query=gist:02ab2139d146dd2ee0306a38d96a9c9d

or to load that same Gist with the more flexible (but more verbose when using Gists) url: option:

https://overpass-ultra.us/#query=url:https://gist.githubusercontent.com/dschep/02ab2139d146dd2ee0306a38d96a9c9d/raw/8d4b0d38eac64e8dbd772284d4cc094708cd3b26/gistfile1.txt

Improved configurability for the Overpass Ultra “interactive map” view

The YAML-frontmatter options key

When an Overpass Ultra query is run in “interactive map” mode, you can specify the MapOptions that are passed to the MapLibre constructor.

For example, you can use this to fit to bounds rather than relying on the z/x/y URL parameters, making for a more consistent experience across screen sizes. EG:

---
options:
  bounds: [-77.64656066894544,37.577235791111384,-76.92558288574232,38.13563674858875]
---

the YAML-frontmatter controls key

When an Overpass Ultra query is run in “interactive map” mode, you can specify controls to be added to the map with the controls key in the YAML-front matter. The key should contain a list of objects. Each object must specify a type key containing the name of a control present in MapLibre. It can optionally contain an options key who’s contents are passed to the control’s constructor and a position key that is passed to map.addControl.

For example, to add a NavigationControl to your map:

---
controls:
  - type: NavigationControl
    options:
      visualizePitch: true
    position: bottom-left
---

Bundled Icons

In order to make it as easy as possible to put nice icons on your map, Overpass Ultra now bundles the Maki and Temaki iconsets as SDFs. These can be loaded via a relative path, eg:

icon-image: /icons/maki/garden.png

You can browse all the available icons in Overpass Ultra’s source code: https://gitlab.com/trailstash/overpass-ultra/-/tree/main/static/icons

Putting it all together

The reason for all of these changes is to enable sharing easy-to-use Overpass-powered maps. The map of gardens at the top of this post is created using the following config&query:

---
options:
  hash: m
  attributionControl:
    customAttribution: '<a href=".">Overpass Ultra</a>'
  bounds: [-77.49784362036736,37.50408772391166,-77.40437276428577,37.57742791260068]
  maxBounds: [-77.49784362036736,37.50408772391166,-77.40437276428577,37.57742791260068]
controls:
  - type: GeolocateControl
    options:
      positionOptions:
        enableHighAccuracy: true
      trackUserLocation: true
style:
  extends: https://styles.trailsta.sh/protomaps-light.json
  layers:
    - type: circle
      paint:
        circle-color: '#6dad6f'
        circle-stroke-color: white
        circle-stroke-width: 2
        circle-radius: 3
    - type: symbol
      paint:
        icon-color: '#6dad6f'
        icon-halo-color: white
        icon-halo-width: 2
        text-halo-color: white
        text-halo-width: 2
      layout:
        icon-padding: 0
        icon-image:
          - case
          - [==, [get, 'garden:type'], community]
          - /icons/maki/garden-centre.png
          - /icons/maki/garden.png
        text-field: '{name}'
        text-font: [Noto Sans Regular]
        text-variable-anchor: [left, right, top, bottom]
        text-optional: true
        text-justify: auto
        text-radial-offset: 1
---
[bbox:37.50408772391166,-77.49784362036736,37.57742791260068,-77.40437276428577];
nwr[leisure=garden];
out center;

Here is a link demonstrating loading that from a Gist in Overpass Ultra’s “interactive map” mode: https://overpass-ultra.us/#map&query=gist:8ecb8ba0a0136f4f0dbc36de82061de4

More

There is more documentation and examples available on the OSM Wiki.

For the historical mapping fans out there, a version of Overpass Ultra pre-configured for use with OpenHistoricalMap is available at ohm.overpass-ultra.us

Report bugs and feedback on GitLab or Mastodon.

Email icon Bluesky Icon Facebook Icon LinkedIn Icon Mastodon Icon Telegram Icon X Icon

Discussion

Comment from Kovoschiz on 15 June 2024 at 08:08

Can query= load Overpass Turbo permalinks directly?

Comment from dpschep on 15 June 2024 at 12:43

@Kovoschiz, nope. But I do have a prototype of a turbo2ultra bookmarklet I can clean up and formally release. I could also look into supporting #query=turbo:SHORTLINK_ID if there are appropriate CORS headers from the turbo backend.

Comment from Kovoschiz on 16 June 2024 at 08:51

Thank for the personal notification. OSM does email you for both diary and changesets. You can see the “unsubscribe” button on the top-right here. Unfortunately the website itself doesn’t notify us. When it was discussed, it seemed there are some concerns about changeset replies being annoying potentially

Log in to leave a comment