◆ GPS のないデスクトップ PC でも家を特定できる精度で位置情報を取得できてる
◆ プロバイダか回線業者によるみたいで別の場所だと同じ市区町村内に入ってる事が多いかもくらいの精度
◆ 携帯電波の受信などもできないので IP アドレスを使ってるはず
◆ 外部 API で調べてるみたいでブラウザ外で使える機能ではないみたい
◆ ブラウザごとに得られる結果も違う

Geolocation API で情報を取得する時 基本は GPS で 使ってるデバイスから情報を取得するものと思ってました
でも GPS など位置情報を取得するデバイスがないデスクトップ PC でも取得できてるんですよね

位置情報取得の機能がなくてもとれるとなると おそらく IP アドレスから取ってるんだと思います
昔 IP アドレスから住所を調べれる系のツールを使ったときは 全然当てにならず都道府県が違うようなこともあってプロバイダの本社的な場所になってるのかなと思ったくらいです
そんなだったので IP アドレスからだと精度が低いと思っていたのですが 現在ではかなり正確になってるようです
地図で表示すると完全に家の場所と一致して 隣の家と間違うこともないくらいの精度です
自分が知らないだけでどこかに GPS 付いてるんじゃないのと思うほどだったのですが 別の PC で試しても同じ結果でした
GPS を使っても 1, 2 件隣と判断つかないような場所になることがありますし ちゃんと IP アドレスが今どの家に紐付いてるかの情報を使ってると考えたほうが納得できます

これはすごい!と思ってたのですが プロバイダか回線業者によるようで 別の家でネットにつないで試すと隣の区や市になったりで大体の場所はわかるけど 都道府県くらいしか当てにできないような精度でした



それでも IP アドレスによっては かなりの精度でわかるなら色々役立ちそうです
ブラウザ通さず使えたらいいなと思って 調べてみたのですが ほとんど情報が出てきません
Windows アプリだと Windows10 の機能が必要みたいで 昔ながらの Windows の API が提供してる機能ではなさそうです
Node.js や Python で調べてみても これといった情報がなく Google の API を呼び出すラッパーライブラリくらいしか出てきません

GPS のように ブラウザ外でも使える機能をブラウザが提供してると思い込んでましたが 外部の API を呼び出して取得しているのかもしれません
そう思ってブラウザを Chrome/Edge/Firefox でそれぞれ試してみました
すると どれも違う緯度経度になりました

ブラウザごとに 使ってる API が違うようです
Chrome は Google ですし Google の API でしょう
Edge は Microsoft ですし Microsft もそういうサービスがあってそれを使ってるんでしょう
Windows アプリで取得できるものも Edge と同じ情報源になるのかもしれません
Firefox だとこれでしょうか
他にも IP アドレスから位置情報を取得するサービスはあるようです

無料とは言え アカウントを登録しないといけないのが面倒なので 実際に使ってませんが こういう API を直接呼び出す場合は他人の IP アドレスで検索もできます
IP アドレスでの検索が正確すぎると ウェブサーバ管理者が このコメント書いた人はこの家に住んでるのか とわかるような危険性もありますがどうなんでしょうね