私は Linux (Debian Sid も含む) を実行するデスクトップ ワークステーションを持っています。このワークステーションには、GPS や、独自の地理的位置を取得するための他の特定の手段がありません (Gnome マップは、約 11.5 マイルの誤差で、正確にイタリアのローマに配置します)。
どこに配置されているかを簡単に伝える方法はありますか?
私は見たこの質問ただし、これはブラウザベースのアプリケーションのみを扱います。デフォルトの配置を上書きしたいと思います (つまり、Gnome Maps が大まかなデータを取得するために使用したものと同じもの)。
答え1
Linuxには「標準」の地理的位置APIがありません。一部のプログラムは、ジオクルー(GNOME の一部)、その他は独自に GPS/GNSS/Wi-Fi デバイスと通信します (geoclue の動作を複製します)。
GNOME マップは常に Geoclue デーモンから位置を取得します。GPS がないため、Geoclue は 1) IP アドレスと 2) 近くの Wi-Fi ネットワーク (Mozilla の位置情報サービスに送信しますが、API キーが指定されている場合は Google のネットワークも使用できます) に基づいておおよその位置を取得します。Wi-Fi もないため、IP ジオロケーション データベースが推定する場所だけになります。
現在ジオクルーではない固定位置を設定するパラメータがあります。残りのオプションは次のとおりです。
- Geoclue ソース コードをハックして、常に固定の回答を返すようにします。
- Geoclue デーモン自体をカスタム デーモン (Python または適切な D-Bus API バインディングを持つ他の言語で記述) に置き換え、常に固定の回答を返すようにします。
- GeoclueにGPSデバイスが接続されていると認識させるには、gpsdデーモンと付属のGPSフェイクツール(下記参照)。
Geoclue の Mozilla 位置情報サービス URL を変更して、常に固定の回答を返すカスタム Web サービスを指すようにします。(これは Bugzilla スレッドで言及されていましたが、Wi-Fi ハードウェアがないので、そもそも Geoclue が MLS に問い合わせることはないと思います...)- Geoclue が近くのネットワークをスキャンし、Mozilla Location Service 経由で現在地にマップできるように、Wi-Fi アダプターを追加します (これには NetworkManager も必要です)。
Geoclueを使わず、直接話しかけることでGPSをサポートするプログラムの場合gpsd(Firefoxなど)では、GPSフェイク常に GPS センサーが接続されているかのように見せかけるためです。ただし、座標を指定するための簡単なオプションはありません。実際の GPS デバイスからキャプチャした出力を渡す必要があります。正しい座標になるように手動で編集する必要があるかもしれません。