Firstly, you should know that the accuracy of these services is, and always will be, low.
MaxMind Geolite city is free. If it is not good enough, you can apparently upgrade to a more accurate paid-version. I can't speak for the quality of the paid version, as I have never used it.
If you like your SQL, download the CSV version. Load it into your database of choice, and query away.
The faster and space-efficient option is to download the file binary blob version of the same database, and then use a language specific API from the same website to query it.
Alternatively, I have found ipinfodb.com to be useful. Query is by simple HTTP GET. For example, to geolocate stackoverflow.com try:
http://ipinfodb.com/ip_query.php?timezone=false&ip=69.59.196.211
This will return an XML file containing latitude and longitude, that looks like:
<Response>
<Ip>69.59.196.211</Ip>
<Status>OK</Status>
<CountryCode>US</CountryCode>
<CountryName>United States</CountryName>
<RegionCode>41</RegionCode>
<RegionName>Oregon</RegionName>
<City>Corvallis</City>
<ZipPostalCode>97333</ZipPostalCode>
<Latitude>44.4698</Latitude>
<Longitude>-123.343</Longitude>
</Response>
One issue might be the number of satellites.
Some formats - such as NMEA as described here - include a number of satellites record for each point.
With that information you could remove points where satellite coverage is poor, as being potentially unreliable. NMEA also includes a Horizontal Dilution of Precision (HDOP) value which you can also use to filter out poor quality readings.
As an addition to the above:
To be honest the disparity between results does seem awfully high on reflection. You're talking about a 20% difference and that's quite the gap.
Two thoughts:
1) Are these distances coming straight from the GPS?
I would worry that the two GPS are using different coordinate systems.
eg measuring a line in a state plane coordsys gives a different value to UTM.
Can you somehow check that?
2) Can you trace the route in Google Earth, and measure it that way?
Not saying that would be perfect, but it would - hopefully - be a close match to one of the GPS and help uncover why the two are so different.
Personally, to merge multiple routes I'd create a solution in FME; but then I have it on my computer because I work for the company!
Best Answer
Google Earth not accurate enough (you are looking for cm accuracy here) especially if you are taking your points from the rubber-sheeted aerial images. When you combine this with the inaccuracy of your phone's GPS (+/- a few meters - the US government quotes about 5m - see here) you will get a wiggly fence line using the method you suggest (or all your posts offset potentially on somebody else's land). The GPS systems surveyors use are a different thing altogether. They also use lasers instead of string. They are much more expensive and more accurate too.
The two suggestions in the comments are worth considering. If you have a smaller or very simple boundary and can clearly identify the corners, go with DPSSpatial's suggestion of string (but not in a high wind as it will bend). If your boundary is larger and/or more complicated, get a surveyor to mark it out. If there are any legal considerations, then the absolute cheapest option in the long run is to have a surveyor come on site and mark the line for you (it will potentially save you thousands in expensive court disputes). They say good fences make good neighbours, but putting a fence on the neighbour's land will make for a very sour relationship no matter how beautifully straight you manage to make it!