Bei einem Request https://www.googleapis.com/geolocation/v1/geolocate?key=AIzaSyD-s-mXL4mBzF7KMRkhTCIbG2RKnRGXzJc den ich mit diesem Key und jedem beliebigen Useragent ausführen kann, wird google die REMOTE_ADDR des UserAgent heranziehen um den Standort zu bestimmen.
Zwangsläufig, falls du keine weiteren Daten zur Verfügung stellst. Normalerweise ist das eine POST-Anfrage, die eine Liste der für das Gerät sichtbaren Mobilfunk- und WLAN-Zellen enthält, aber das steht in der Geolocation-API-Anleitung, auf die dedlfix schon hingewiesen hatte.
Eine kleine Anmerkung zu diesem Request: Ein POST-Request mit GET-Parametern ist nicht gerade eine zweckmäßige Empfehlung, ein Request erfolgt mit einer Methode. Des Weiteren ist es reichlich ungeschickt, einen API-Key, den nicht jeder gleich sehen soll, im URI als GET-Parameter unterzubringen. Der für den Request programmierte Content-Type: application/json passt außerdem besser zur Requestmethode PUT anstelle POST.
Ich würde klare Verhältnisse schaffen, ein PUT-Request und den API-Key im JSON-String unterbringen. Zumal der Request mit SSL erfolgt, in diesem Fall wird der API-Key gleich mit verschlüsselt. Anstelle PUT gäbe es auch die Möglichkeit den Content-Type: multipart/form-data zu verwenden, Request-Method POST, den JSON-String als application/json und als ein Attachment anzuhängen, hier wäre der API-Key ein eigenständiger Parameter im Request.
Wie navigator.geolocation mit der google-API zusammenspielt, ist ansonsten soweit klar.
Weiterhin schönen Sonntag.