The base application would be a database. This database would contain at least 3 tables of records.
1. A list of the customers you bill for the work completed. Name, address, phone, email, billing type, billing rate, etc.
2. A list of the road segments you work. The road segment could be as short as a driveway or as long as any continuous path you maintain for a jurisdiction. Each road segment record would include a description, distance, customer, operator and any other information you need to track. The table of these records are your "working area map".
3. Work Completed. Each record in this table would identify the road segment, date, time work started, time work ended, scope of work, operator, notes, etc.
I suspect the first two tables will be fairly stable and once entered would require few updates. The Work Completed table records what you do. The issue becomes how to best record this information.
Without GPS, it would be easy for the operator to quickly start a new record and select the Road Segment from a drop-down list. The database can automatically date/time stamp the record. You could also select from a drop-down: the road condition, type of work, etc. At the end of the Road Segment, click a Save Button to record the end time and save the record
The database can link the tables together. Work table to Road Segment and then Road Segment to Customer. So you could create lists of work by operator, road segment, customer, date or any other way you wanted filter and sort the records, even by the road segment that has not been worked for the longest time. You could even look at how fast each segment is requiring work.
The benefits of adding GPS Tracking to the database would be minimal. GPS Data Loggers are available. You turn them on and they record the Latitude and Longitude coordinates and the time. The problem is you now have to reconcile this huge list of LAT/LONG coordinates to a billable road segment. This will require a bunch of code. You would also have to import this data into the database. On the surface this a lot of overhead compared with the operator selecting a Road Segment from a drop-down list.
Other GPS options are GPS receivers that can be connected to a computer running in the cab. Most of the older handheld GPS receivers had data cables that allowed them to send their position data through the cable as NMEA data sentences. The National Marine Electronics Association (NMEA) defined a standard of how and what these units transmit. The GPS receiver continuously transmits a series of sentences. Each sentence starts with an identifier and is followed by a number of data elements. For example, a $GPGLL sentence is the current Latitude and Longitude coordinates, Time, and an Active code. This solution also requires the LAT/LONG coordinates to reconcile to a Road Segment.
I don't know the capabilities of the GPS in smart phones, however I suspect a good App programmer may be able to identify the road you are on and pass it to the database. You would still have to identify the road segment.
The issue with GPS is it identifies a point in space. That point has to be matched to a datum that is understood by the user, ie the nearest road, building, water course, jurisdiction, farm, etc. GPS is not a map, GPS identifies a position that can be identified on a map. For your requirements, it is not just the location, it is who you bill for work at that location.
A mapping interface could be accomplished to display what needs to be done or what has been done. I suspect this is in addition to the above functionality.