• darkpanda@lemmy.ca
    link
    fedilink
    English
    arrow-up
    2
    ·
    10 months ago

    15 or so years ago I did a rough and dirty implementation of approximate addresses using the idea of just dividing street segments up by the address numbers on them and going from there. For instance, in the Canadian Road Network Files, they provide smallish segments of streets that usually line up to things like cross streets in metro areas, and they come with the ranges of the street numbers in the metadata, so you’d get something like a starting value of say 200 and and an ending value of 212 for a section of, say, Yonge St, and you could just divide that segment up across those values directly. You’d generally get within a few metres of the correct address. Close enough at the time for our use cases, at least. For more rural areas it didn’t work out so well, but for metro areas it was actually pretty decent. This could all be done via a single Postgres/PostGIS query with the right inputs and address parsing in front of it.

    It wasn’t perfect and later came various APIs and whatnot for doing this sort of stuff, but it was pretty decent for such a relatively simple implementation.