Ich habe eine Desktop-Workstation mit Linux (Debian Sid, falls relevant). Sie hat kein GPS oder andere spezielle Mittel, um ihren eigenen geografischen Standort zu ermitteln (Gnome Maps verortet sie korrekt in Rom, Italien, mit einem Fehler von etwa 11,5 Meilen!).
Gibt es eine Möglichkeit, ihm einfach mitzuteilen, wo es platziert ist?
Ich habe gesehendiese Frage, aber es funktioniert nur mit browserbasierten Anwendungen. Ich möchte die Standardpositionierung überschreiben (also: dieselbe, die Gnome Maps verwendet, um seine groben Daten zu erhalten).
Antwort1
Linux hat keine „Standard“-API für geografische Positionen – einige Programme erhalten zusammengefasste Daten vonGeohinweis(Teil von GNOME), während andere selbstständig mit GPS-/GNSS-/Wi-Fi-Geräten kommunizieren (und so die Funktion von Geoclue nachahmen).
GNOME Maps erhält seine Position immer vom Geoclue-Daemon. Da Geoclue kein GPS hat, erhält es seinen ungefähren Standort basierend auf 1) Ihrer IP-Adresse und 2) Ihren WLAN-Netzwerken in der Nähe (die es an Mozillas Standortdienst übermittelt, aber Googles verwenden kann, wenn ein API-Schlüssel angegeben wird). Da Sie auch kein WLAN haben, hängt alles davon ab, wo die IP-Geolokalisierungsdatenbank Ihren Standort vermutet.
Derzeit Geocluenichthaben einen Parameter, um einen festen Standort festzulegen. Ihre verbleibenden Optionen sind:
- Hacken Sie den Geoclue-Quellcode, um immer eine feste Antwort zurückzugeben.
- Ersetzen Sie den Geoclue-Daemon selbst durch einen benutzerdefinierten (geschrieben in Python oder einer anderen Sprache, die über anständige D-Bus-API-Bindungen verfügt) und sorgen Sie dafür, dass er immer eine feste Antwort zurückgibt.
- Lassen Sie Geoclue glauben, dass ein GPS-Gerät angeschlossen ist, indem Sie dasGPS-NavigationDaemon und Verwendung des enthaltenenGPS-FälschungWerkzeug (siehe unten).
Ändern Sie die URL des Mozilla-Standortdienstes in Geoclue, sodass sie auf einen benutzerdefinierten Webdienst verweist, der immer eine feste Antwort zurückgibt.(Dies wurde im Bugzilla-Thread erwähnt, aber da Sie über keine Wi-Fi-Hardware verfügen, glaube ich nicht, dass Geoclue sich überhaupt die Mühe machen wird, das MLS zu fragen …)- Fügen Sie einen WLAN-Adapter hinzu, damit Geoclue nach Netzwerken in der Nähe suchen und diese über den Mozilla-Standortdienst Ihrem Standort zuordnen kann (hierfür ist auch NetworkManager erforderlich).
Für Programme, die Geoclue nicht verwenden, aber GPS-Unterstützung haben, indem sie direkt mitGPS-Navigation(wie Firefox) können SieGPS-Fälschungum vorzutäuschen, dass immer ein GPS-Sensor angeschlossen ist. Es gibt jedoch keine einfachen Optionen zum Angeben der Koordinaten – Sie müssen ihm die erfasste Ausgabe eines echten GPS-Geräts geben, möglicherweise manuell bearbeitet, um die richtigen Koordinaten zu erhalten.