1. ホーム
  2. javascript

[解決済み] ジオロケーションで訪問者の位置(国)を取得するには?

2022-06-25 15:41:37

質問

ネイティブのジオロケーション機能を拡張しようとしています。

if(navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(function(position) {
        var latitude = position.coords.latitude;
        var longitude = position.coords.longitude;
    });
}

で、訪問者の国名を使えるようにします (おそらく、情報提供のための配列を返すでしょう)。

今のところ、私が見つけることができたのは、グーグルマップインターフェースを表示する関数だけですが、私が欲しいものを実際に与えてくれるものはありませんでした。 このライブラリ これはうまくいきました この例では が、なぜか私のコンピュータではうまくいきませんでした。なぜそこでうまくいかなかったのか、よくわかりません。

とにかく、緯度と経度の値から、国、都市などの情報を含む配列を単純に返す方法をご存知ですか?

どのように解決するのですか?

ユーザーの国名が必要なだけなら、ユーザーの所在地を特定する必要はありません。IPアドレスは、IP-to-locationサービス(例えば maxmind , ipregistry または ip2location ). これはほとんどの場合、正確です。

Ipregistryを使用したクライアントサイドの例です(免責事項、私はこのために働いています)。

fetch('https://api.ipregistry.co/?key=tryout')
    .then(function (response) {
        return response.json();
    })
    .then(function (payload) {
        console.log(payload.location.country.name + ', ' + payload.location.city);
    });

もし本当に位置情報を取得する必要があるのなら、このメソッドで緯度/経度を取得し、次にクエリ Google の または ヤフーの の逆ジオコーディングサービスです。