Field service jobs: address and rounds
A wrong number on the street costs a technician a trip. A day of jobs split by hand gives one van the whole north of the city. Two commands cover both.
Does the address exist
gridpin exists spain.bin "Calle Gran Via 9999, Madrid"
{"exists":"no","reason":"number_not_on_street"}
gridpin batch spain.bin jobs.csv jobs_checked.csv --with exists
no with number_not_on_street means the street is there and the house number is not: call the customer before the trip.
Split the jobs into areas
gridpin cluster jobs_checked.csv --k 6 --max-size 15 -o rounds.csv --geojson rounds.geojson
cluster reads the gp_lat and gp_lon columns of the batch output as they are. Each job gets an area and the area's centre; no area holds more than --max-size jobs. It groups by distance in a straight line, not by road: a river without a bridge is not seen.