これにはhttps://ipinfo.io API を使用できます(これは私のサービスです)。1 日あたり 1,000 件までは無料です (SSL サポートの有無にかかわらず)。座標、名前などを提供します。次に例を示します。
curl ipinfo.io
{
"ip": "172.56.39.47",
"hostname": "No Hostname",
"city": "Oakland",
"region": "California",
"country": "US",
"loc": "37.7350,-122.2088",
"org": "AS21928 T-Mobile USA, Inc.",
"postal": "94621"
}
から取得したものと一致する API 応答で coords オブジェクトを構築する例を次に示しますgetCurrentPosition()
。
$.getJSON('https://ipinfo.io/geo', function(response) {
var loc = response.loc.split(',');
var coords = {
latitude: loc[0],
longitude: loc[1]
};
});
そして、これを のフォールバックとして使用する方法を示す詳細な例を次に示しますgetCurrentPosition()
。
function do_something(coords) {
// Do something with the coords here
}
navigator.geolocation.getCurrentPosition(function(position) {
do_something(position.coords);
},
function(failure) {
$.getJSON('https://ipinfo.io/geo', function(response) {
var loc = response.loc.split(',');
var coords = {
latitude: loc[0],
longitude: loc[1]
};
do_something(coords);
});
};
});
詳細については、 http://ipinfo.io/developers/replaceing-navigator-geolocation-getcurrentpositionを参照してください。