GREAT GREAT JOB DONE.
A few questions - probably answers seem obious but it wuld be nice to have them documented.
geoLocation.setWatch(true); //what does it do?
geoLocation.setHighAccuracy(true);
geoLocation.setTimeout(100000); // in ms? //what does it do?
geoLocation.setMaxAge(200000);// //what does it do?
geoLocation.addValueChangeListener( e->{...});
geoLocation.addErrorListener( e->{...});
add(geoLocation);