1. How to query for all highways in Overpass API (demo: overpass-turbo.eu/s/3sB):

    <osm-script output="json">
      <query type="way" into="highways">
        <bbox-query {{bbox}}/>
        <has-kv k="highway" />
      </query>
     
      <union>
        <item set="highways"/>
        <recurse from="highways" type="down"/>
      </union>
      
      <print mode="body" order="quadtile"/>
    </osm-script>
    

    This returns all highways without filtering, check out the OSM Highway docs for different possible types of highway, and add a v="" attribute to the has-kv element to filter.

  2. If you’re working with undocumented lat/long coordinate data and, when plotted, everything’s coming out sort of in the right place but a little way off, check to see whether or not what looks like decimal lat long data is actually traditional DMS data.

    For example, I recently had to parse and plot a bunch of coordinates which looked like this: 6359550-2154605. I initially thought it was decimal lat/long data missing decimal points for some reason, so I plotted it as 63.59550, -21.54605. All of the coordinates were in the right place relative to each other, but about 1/3rd of a degree off. Turns out the data actually needed to be plotted as 63˚ 59' 55.0", -21˚ 54' 60.5".

    Here’s the python I wrote to clumsily convert the strange original form into decimal:

    def dms_to_decimal(old):
        if old[0] == '-':
            old = old[1:]
            multiplier = -1
        else:
            multiplier = 1
    
        return (int(old[0:2])+int(old[2:4])/60.0+int(old[4:6])/3600.0) * multiplier
  3. The problem with all mapping software ever:

    “Hm, that placename is a bit small to read” (zooms in) “TEXT, WHY U GET SMALLER AGAIN”

  4. Tom Morris: Details on how to become a balloon pilot in the UK. Why? Because (a) it'd be cool and (b) taking aerial photographs. http://t.co/ddCON05h

    @tommorris that would be cool, but I’ll stick to adding POIs for the moment and build up to piloting a balloon :)