私のウェブページ上のクライアントの位置を取得したい。ロケーションの取得方法 -
私はPHPかJavascriptのどちらでもできます。
私は現在、クライアントのIPアドレスとPHPのgeoip拡張子を使用して場所を取得しようとしています。
しかし、それはdatgabaseを必要とし、私はそれを望んでいません。
他にクライアントの場所を見つける方法はありますか?
私のウェブページ上のクライアントの位置を取得したい。ロケーションの取得方法 -
私はPHPかJavascriptのどちらでもできます。
私は現在、クライアントのIPアドレスとPHPのgeoip拡張子を使用して場所を取得しようとしています。
しかし、それはdatgabaseを必要とし、私はそれを望んでいません。
他にクライアントの場所を見つける方法はありますか?
サードパーティのデータベースであるhttp://ipinfo.io/を使用できます。
そのデータベースにはアドオンが必要ないので、PHPで使いやすいです。
$ip = $_SERVER['REMOTE_ADDR']; // get client's IP
$details = json_decode(file_get_contents("http://ipinfo.io/{$ip}/json"));// Send to ipinfo
echo $details->city; // Gives you the city of the client.
echo $details->country; // Gives you the country of the client.
EDIT:jQueryでもこれを行うことができます。
$.get("http://ipinfo.io", function(response) {
console.log(response.city);
}, "jsonp");
JavaScriptを使用して緯度と経度を取得できます。
<body>
<p>Click the button to get your coordinates.</p>
<button onclick="getLocation()">Try It</button>
<p id="demo"></p>
<script>
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition, showError);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
x.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
function showError(error) {
switch(error.code) {
case error.PERMISSION_DENIED:
x.innerHTML = "User denied the request for Geolocation."
break;
case error.POSITION_UNAVAILABLE:
x.innerHTML = "Location information is unavailable."
break;
case error.TIMEOUT:
x.innerHTML = "The request to get user location timed out."
break;
case error.UNKNOWN_ERROR:
x.innerHTML = "An unknown error occurred."
break;
}
}
</script>
緯度と経度では、Google APIを使用して逆引き検索を実行して都市を取得できます –
anwsersのいずれかがあなたを助けましたか?受け入れてください。 – Ofir