Work Location: Denton, TX and West Des Moines, KS (see my wife's travel log).
I did not get a lot of work done on the site this month. Too much towing (Texas to Kansas to Iowa); a week at the RV manufacturers in Kansas getting a laundry list of stuff done; visiting with my daughter in Iowa.
Can now edit GPS coordinates by dragging a point on a Google Map.
Fixed crasher in creation of a new location. Added an integration test for the condition. Fixed bad location integration test. Add a few other tests, also.
Added fields for editor and admin roles. Currently the only way to set the fields is by manually modifying database fields.
As a security and sanity measure, location can now only be edited by a user under these conditions:
Refactored editing code in controller to make it easier to add option buttons.
Edit action now only saves location if there were changes.
Maps have been deactivated for this release. Next release will include buttons to turn them on and off. On slow internet connections the maps are a problem. Cannot have them until they can be turned on and off.
Continued refactoring the location controller and display code to facilitate adding of option commands.
Map display can now be turned on and off. Default is off. This capability has already be handy in development on days when the satellite connection is slow.
Can now switch between editing two GPS formats:
Defaults to DMS format to make it easier to enter coordinates from Google Earth maps and from our truck's GPS navigation system.
Longitude is always negative, since all locations are in the Americas. Now automatically make the longitude degrees negative if it was not as such. I got tired of always typing a negative sign when there was no other option anyway.
If GPS coordinates have not yet been set, the map is not displayed.
Added a table to be used in describing the status of GPS coordinates. The intent is to indicate the "quality" of GPS coordinates. Initial use is in the Locations table.
Here are the possible GPS Coordinate states, from worst quality to best:
| Status Code / Id | Category | Name | Description | |
|---|---|---|---|---|
| Code | Meaning | |||
| 1 | 0 | Uknown | Unknown | Coordinates not set and no attempt to set the coordinates has occurred. |
| 2 | 0 | Uknown | Failed | Guess failed or user supplied values were invalid. |
| 3 | 1 | Guessed | City | Guess based on city only. Accuracy: within tens of miles? |
| 4 | 1 | Guessed | Postal Code | Guess based on postal code only. Accuracy: within tens of miles? |
| 5 | 1 | Guessed | Full Address | Guess based on full address. Accuracy: generally within ten or twenty miles? |
| 6 | 2 | Verified | Cross Checked | Verified by a person cross referencing maps, driving directions, and/or low resolution aerial imagery. |
| 7 | 2 | Verified | Aerial Imagery | Verified by a person using aerial imagery of high enough resolution to clearly see RV's, buildings, etc. |
| 8 | 2 | Verified | Feet On Ground GPS | Verified by a person at the location using a reliable GPS unit. |
Location details display the status as "GPS Quality".
Can now modify "GPS Quality".
Major overhaul of Location model with respect to setting attributes from edit form.
As more specific address location is added, GPS coordinate guesses are refined. The most refined guess is based on street address when added to city and state.
Any time an address component is changed, GPS coordinates are re-guessed UNLESS the GPS quality/state is set to one of the "verified" values. Re-guessing can be forced by setting GPS quality to one of the "unknown" values.
Note that GPS guesses based on city, state, and postal code are based on data from ZipCodeWorld.com.
Guesses based on street address use Google's geo-coding API.
Limitations:
Adding integration tests to ensure tht the GPS quality/status and the geo-coding continue to work as advertised.