A tool for processing toilet data and converting it into kml
D Makefile
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Toilets To KML

A command line tool for processing australian public toilet data (available at https://data.gov.au/dataset/national-public-toilet-map) and converting it into kml for viewing in Google Earth

Depends on kxml (http://code.dlang.org/packages/kxml)


build [-ht] [-o outputFile] [-f queryfile] [-q "query"] inputFile

Flags Description
  -t, --maxtoilets Sets the maximum number of toilets to output
  -l, --showlabels Enables the drawing of labels
  -o, --outputfile Specifies a filename for the output
  -f, --queryfile Specifies a file to read a query from
  -q, --query Specifies a query to run
  -h, --help Displays help


This tool uses a simple query language for processing toilet data. There are several commands in the language

  sort [ascending|descending] distto <latitude> <longitude> 
    - Sorts data based on distance (km) from a geographical point

  sort [ascending|descending] postcode
    - Sorts data based on postcode

  sort [ascending|descending] <feature>
    - Sorts data based on a feature
    - e.g. `sort descending showers` moves all toilets with showers
      to 'front' of the dataset

  filter [!] postcode <op> <value> [<op> <value> [...]]
    - Filters data based on one or several comparisons of postcodes
    - Using ! negates the result of the comparisons
    - e.g. `filter postcode > 4000 < 5000` returns toilets with postcodes
      between 4000 and 5000

  filter [!] distto <latitude> <longitude> <op> <value> [...]
    - Filters data based on one or several comparisons of distance (km) to
      a geographical point
    - Using ! negates the result of the comparisons
    - e.g. `filter distto -25.1212 123.56 > 10` returns toilets with further
      than 10km from point (-25.1212, 123.56)

  filter [!] <feature>
    - Filters toilets based on whether or not they have a feature/facility
    - Using ! selects toilets that do not have the specified feature/facility
    - e.g. `filter ! ParkingAccessible` returns toilets that do not
      have accessible parking

  limit <count>
    - Reduces the size of the set to be at maximum `count` large
    - e.g. `limit 200` returns the first 200 toilets in the set

    - Pushes the current set onto a stack

    - Returns set to previously pushed state
    - Discards the results of sorts, filters and limits

  style <style>
    - Sets the style of all data in the set
    - Not affected by push/pop
    - Useful for conditional styling

    - Prints the set as it is in it's current state

<feature/facility> can be one of the following: Male, Female, AccessibleMale, AccessibleFemale, AccessibleUnisex, ParkingAccessible, BabyChange, Showers, DrinkingWater, SharpsDisposal, SanitaryDisposal

<op> can be one of the following: <, >, <=, >=, ==, !=

<style> can be one of the following default (yellow), good (green), bad (red), red, green, blue, cyan, magenta, yellow, white, black