The Phone Finder - Release Notes
Release Notes Version 3.0
- Added the ability to track multiple devices in the same database, differentiated by the name field. On opening the page the first listed device will be displayed, and a new dropdown list has been added to choose other devices.
- Added the defaultName user-specified variable to set the device that is displayed by default.
- Added support for Self-Hosted GPS Tracker for Android, with the limitation that all coordinates from this app will be listed as "Self-Hosted GPS Tracker" and accuracy is assumed to be 100 meters.
- Added support for Open GPS Tracker for Android.
- Added XML POST request support. Specifically, the Btraced protocol is now supported, but only some recieved data is actually used at this time. Support for all data passed by the Btraced protocol is planned for a future version.
- Fixed a problem processing addresses with apostrophes or quotations.
- Major rewrite of the address consolidation code. The first stage now consolidates identical addresses and addresses with the same number on two adjoining streets, and the second sorts by a partially- reversed address string to identify locations that are both close enough together and have low enough accuracy to determine a high probability that they were recorded at the same address. This increased the accuracy of address identification, and the main sources of errors should now be a lack of sufficient coordinate data and flaws in Google's address database.
- Slightly reduced memory requirements.
- Corrected a text error that cropped up when there was an ampersand in an address.
- Corrected a consolidation error that occurred when a stay consisted of two gathered coordinate sets with different accuracies.
- Slightly increased the default and recommended $errorCorrectCell values to correct for observed inaccuracies.
- Added a step to eliminate inaccurate coordinates that were likely derived via wifi by a stationary device.
- Corrected a bug in the address table that caused duplicate entries when the current address was not accurate enough to be included in a stay but was still valid.
- Corrected a bug that caused coordinates without addresses to be analyzed for the address table. This reduced the memory requirement and processing time of the script.
- Corrected for a pattern where coordinates gathered through cell triangulation with an accuracy of exactly 100m were egregiously inaccurate.
- Lowered the default and recommended $errorCorrectCell values back to Version 2.1 levels, which gives greater accuracy once the above anomaly has been corrected.
- Added a multiplier equation to the required reported accuracy for the elimination of a set of coordinates. This mimics the former LiveUpdates adjustments in that it allows for the display of finer movements when the device is reporting coordinates frequently.
- Eliminated the $errorCorrectAddress variable and instead used the already-present accuracy data to determine consolidation of addresses. This improves the accuracy of reverse-geolocation as well as the accuracy of determining which stays are at the same address.
- Fixed an error that caused nonstandard characters in addresses to be displayed incorrectly.
- Added a 'Display More Addresses' link to list six additional addresses when available.
- Major rewrite of the code to improve the way that the Phone Finder groups information derived from a recieved coordinate set. This will improve my ability to provide future improvements and fine-tune the script.
- Abandoned the Live Updates adjustments since mapping apps (including Device Locator) that use a change of cell towers to trigger a capture of coordinates would frequently and inappropriately trigger this functionality. This may return in the future.
- The Phone Finder now accepts the undocumemted timediff variable from the Device Locator website. This means that the script will properly adjust the coordinates' time of recording based on how long they were stored before being transmitted. Device Locator users should adjust their 'Forwarding URL' setting to match the instructions above. Use of the timediff variable is optional, but strongly recommended.
- Improved the address consolidation algorithm to better consolidate locations that are actually at the same address, even if Google returns two different addresses for those locations.
- Fixed a bug that sometimes listed double entries for addresses in the address table.
- Adjusted the algorithm that determines how long the device has remained in the same location so that it does not include adjacent reported coordinates of questionable accuracy. This will reduce the length but improve the accuracy of time stayed listings.
- Color-coded the map markers, address table, and coordinate table to highlight when the device was stationary in the same location at different times.
- Improved the accuracy of the algorithm that determines whether a set of coordinates were gathered from cell tower locations, wifi triangulation, or GPS, mainly by comparing the returned accuracy against standard GPS accuracies that are based on the number of GPS satellites visible to the device.
- Increased the default and recommended values for the $errorCorrectCell variable due to improved accuracy in the code that determines when this will be used.
- Implemented a second check to the address cache after addresses are consolidated to improve accuracy of listed addresses.
- Removed the shadow from the red marker to make it similar to the other markers.
- The coordinates table now displays minutes for long stays.
- Added a user-defined $errorCorrectAddress veriable. This is similar to other error correct variables, except it specifies error tolerance when determining whether two positions are at the same address.
- Added accuracy circles around all of the secondary map markers.
- Adjusted all displayed accuracy information to take into account the errorCorrect variables.
- Added the $errorCorrectOther user-defined variable to add an accuracy multiplier to any coordinates that were either determined by wifi triangulation or where the source was indeterminable. This dramatically increases the accuracy of reverse- geolocation.
- Added accuracies to address listings.
- Rounded all accuracy listings to two decimal places, since listing them to the millimeter seems excessive.
- Improved the speed and memory usage of the code that reads the coordinate table.
- Improved the speed and memory usage of the code that reads the cache table.
- Decreased the amount of loading text printed while geocoding and broke it up with spaces.
- Improved (but did not quite perfect) consolidation of same-address coordinates for correction of Google reverse-geolocation errors.
- Added 2 weeks, 3 months, and 6 months time interval options.
- Updated instructions for use of this script with the Device Locator app.
- A fix to a critical bug in 2.0 that prevented the red marker from being displayed when the current position wasn't accurate enough for address identification. Fixing this bug also simplified the map drawing code somewhat.
- Added address identification. A new table between the map and the coordinate table displays the three street addresses where the phone has most frequently been and that can also be identified by the Google API. It also displays the address associated with the most recent coordinates.
- Added a MySQL table to cache addresses and reduce calls to the Google geocoding service. This table is automatically created on the first run and does not need to be created by the user.
- Added code to eliminate errors related to identification of certain addresses that are adjacent to street corners, as well as some "next door" errors due to inaccurate GPS coordinates.
- Added map markers for the street address identification.
- The map now takes a nontrivial amount of time to load, the length of which depends on the speed of the server, its internet connection, the amount of coordinates that the script is analyzing, and the amount of addresses that have been cached. Added text displaying the status of the script as it is loading.
- Added safeguards to stop address identification queries when the daily query limit is reached. In this case, the script skips display of addresses and processes the rest of the data normally.
- Abandoned the markers for the second and third most frequently visited locations since those were obnoxious and not typically necessary.
- Modified the map to always display the marker for the most recently visited location in front of other markers.
- Fixed a minor error in the identification of coordinates that have been determined through cell tower triangulation.
- Added automatic table creation on the script's first run. The user no longer has to manually create the MySQL coordinates table.
- Improved error messages for MySQL failures.
- Added an error message for a lack of coordinates.
- The 'Time to Analyze' form will now display the currently selected time interval if it is one of the choices in the form.
- Applied correct pluralization to all text in the script.
- Fixed a bug that caused the earliest analyzed location not to be displayed on the map.
- Corrected the map so it always includes the accuracy circle within its initial bounds.
- Fixed multiple errors and unpredictable behaviors related to displaying the map and tables when the database contains less than three sets of coordinates.
- Removed a piece of testing code that had been left in the last few versions.
- Fixed an error that prevented the 'Time to Analyze' form from working on some servers.
- Improved the visibility of the LiveUpdate color
- Gaps in the data that exceed 12 hours will now be displayed regardless of whether or not the phone has moved, assuming the $interval variable is used.
- Fixed a bug that could cause problems with the MySQL database if the script has been running for a long time.
- Added map markers and table colors for the last three visited places.
- Fixed a table color display bug related to LiveUpdates.
- Added a table row color legend.
- Added "1 Year" and "All" choices to the "Time to Analyze" menu.
- Modified the LiveUpdates correction to also take into account the user-defined $errorCorrect accuracy multiplier variable.
- Minor interface enhancements.
- Slightly increased the accuracy of LiveUpdate detection
- Added tests to recognize LiveUpdate coordinates and significantly reduced the stay threshhold and error correction when LiveUpdating. This reduces (but does not completely eliminate) unpredictable behavior when using this script with LiveUpdates.
- Marked LiveUpdate coordinates in yellow on the coordinate table.
- Fixed an error that made the map fail to display properly on Internet Explorer.
- Added code to make the lines thinner when a lot of them are being displayed.
- Made an adjustment to the cell tower algorithm to display certain good coordinates that were eliminated in version 1.3
- Fixed a bug where the page displayed more locations than it should have when the phone hadn't consistently reported its locations to the server.
- Added an optional parameter for the Cerebro GPS interval. If it is used, then this page will display gaps in the coordinates and specify the reasons for those gaps.
- Added an accuracy multiplier parameter to allow easy fine-tuning of which coordinates gathered by cell triangulation are considered stationary instead of the previous static 12km limit. I debated doing this since it seems to make the algorithm more accurate in some places and less so in others, but overall it seems to allow slightly more accurate coordinates to be displayed than before.
- Eliminated the 30km upper accuracy limit on accepted coordinates since the above change seems to take care of this in all relevant cases.
- Added true averaging of stationary coordinates for better error correction.
- Improved basic error correction to base it on the given coordinate accuracies instead of the previous static algorithm. This eliminates some bad error correction decisions made when coordinates have been determined at locations with poor GPS signals.
- Fixed a bug that caused coordinates to be included in a consolidated stay listing when the true location of those coordinates were indeterminable.
- Simplified cell tower coordinate detection and fixed a bug that caused those coordinates to occasionally be improperly listed when better coordinates are available.
- Fixed two bugs that caused some stationary coordinates to be incorrectly interpreted as non- stationary.
- Added an accuracy multiplier parameter to allow easy fine-tuning of which coordinates are considered stationary.
- Added calculations to base error correction on great-circle distances instead of latitude and longitude differences. This improves the accuracy of error correction and eliminates unpredictable behavior at extremely high and low longitudes.
- Fixed a rare bug concerning altitude correction near sea level.
- Removed extraneous tests that were intended to help determine whether particular coordinates were found by geolocation using cell towers.
- Removed an error correction test that did not appear to affect the calculations in any way.
- Added new error correction test that can eliminate a particular type of error which may be caused by geolocation using wifi networks.
- Eliminated egregiously inaccurate addresses from the address table.
- Initial Release
Known Issues
- The algorithm cannot tell the difference between coordinates that were gathered using wifi network triangulation and some sea-level coordinates. This may rarely cause valid sea-level coordinates to be inappropriately discarded.
- The loading text does not display on all web browsers and server configurations, most notably Safari for iOS.
- Google has a limit on the number of server calls that can be used for address identification in a single day. As of August 2010, this limit is 2,500. While this script takes measures to limit the number of such calls made, address identification will temporarily stop working if the script is reloaded a couple hundred times in a given day or if an excessive amount of coordinates are being processed. If this happens, the rest of the script will still function normally, but the address table and markers will disappear until the next day.
For questions, e-mail me using the form on the Contact Me page.
If you like this script and wish to do something in return, please consider donating to my fundraiser to get my brother some needed surgery at: http://www.FixMyBrothersButt.com/
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
For a copy of the GNU General Public License, see http://www.gnu.org/licenses/.
Eugene - Springfield - Florence - Oakridge - Cottage Grove
Copyright © 2010-2024 Savvy Duck Computers, LLC
Terms and Conditions Privacy Policy
Copyright © 2010-2024 Savvy Duck Computers, LLC
Terms and Conditions Privacy Policy