The following fix works for me. The project in which I'm using this fieldtype does not require the use of most of the product's more advanced features so I can't guarantee that it fixes everything. Nor can I guarantee that it won't break something else. But hey, it's a start :-)
Open up /themes/third_party/gmap/javascript/gmap_field.js and search for "var updateValues". (The line number will vary depending on your addon version.) Modify the code as follows:
// @HACK VMG 2016-05-26
// Fixes "this.lat is not a function" error caused by
// the response object containing float values for lat
// and lng instead of a LatLng object.
$.each(response.markers.results, function(i, result) {
response.markers.results[i].geometry.location = new google.maps.LatLng(result.geometry.location.lat, result.geometry.location.lng);
});
$.each(response.waypoints.results, function(i, result) {
response.waypoints.results[i].geometry.location = new google.maps.LatLng(result.geometry.location.lat, result.geometry.location.lng);
});
$.each(response.regions.results, function(i, result) {
response.regions.results[i].geometry.location = new google.maps.LatLng(result.geometry.location.lat, result.geometry.location.lng);
});
var updateValues = [
JSON.stringify(response.markers.results),
JSON.stringify(response.waypoints.results),
JSON.stringify(response.regions.results)
];
Hopefully that helps others of you who are facing the same problem.