ユーザーに Google Gears をインストールしてもらいたくないので、推測した場所を表示できます。Google Gears を使用せずに位置を取得する方法はありますか?
http://www.wipmania.com/de/blog/google-geolocation-api/を見つけましたが、例はありません。
ユーザーに Google Gears をインストールしてもらいたくないので、推測した場所を表示できます。Google Gears を使用せずに位置を取得する方法はありますか?
http://www.wipmania.com/de/blog/google-geolocation-api/を見つけましたが、例はありません。
Google は、AJAX API loaderを介してユーザーの場所を取得する方法を提供しています。これは、Gears がインストールされていなくても機能します。JsAPI を指すスクリプト タグを含めるだけです。
<script type="text/javascript"
src="http://www.google.com/jsapi?key=ABCDEFG">
</script>
アプリケーションが AJAX API ローダーを使用する場合、ローダーは IP アドレスに基づいてクライアントの位置を特定しようとします。このプロセスが成功すると、メトロ レベルにスコープされたクライアントの場所が google.loader.ClientLocation プロパティで使用可能になります。プロセスで一致が見つからない場合、このプロパティは null に設定されます。
if (google.loader.ClientLocation){
var center = new google.maps.LatLng(
google.loader.ClientLocation.latitude,
google.loader.ClientLocation.longitude
);
map.setCenter(center);
}
データが入力されると、google.loader.ClientLocation オブジェクトには次の大都市レベルの粒度プロパティが入力されます。
ClientLocation.latitude
— クライアントの IP アドレスに関連付けられた低解像度のラチチュードを提供しますClientLocation.longitude
— クライアントの IP アドレスに関連付けられた低解像度の経度を提供しますClientLocation.address.city
— クライアントの IP アドレスに関連付けられた都市の名前を提供しますClientLocation.address.country
— クライアントの IP アドレスに関連付けられた国の名前を提供しますClientLocation.address.country_code
— クライアントの IP アドレスに関連付けられた ISO 3166-1 国コードの名前を提供します。ClientLocation.address.region
— クライアントの IP アドレスに関連付けられた国固有の地域名を提供します。これは通常、IP Geolocation と呼ばれます。
例はこちらです。
問題は、ほとんどのサイト (これを Web サービスとして呼び出すことを計画している場合) が料金を請求することです。それ以外の場合は、ジオロケーション ページを取得し、それを解析してアドレスを取得し、その情報を返す Web サービスを一緒にスローします。
PHPでは、これはかなりうまくいくようです:
<?php
if(isset($_GET["ip"])){
echo geolocate($_GET["ip"]);
}
function geolocate($ip){
$raw_html = file_get_contents("http://www.geody.com/geoip.php?ip=$ip");
if(preg_match('/Location:(.*)/',$raw_html,$matches)){
$location_raw = $matches[1];
//Get rid of pesky HTML tags
$location = preg_replace("/<[^>]*>/","",$location_raw);
return $location;
}else{
return "ERROR";
}
}
地理位置情報サービスまたはライブラリで注意すべきことの 1 つは、100% 正確ではないということです。私たちはその 1 つIP2Locationを使用していますが、これは実際にカスタマー サービス部門への苦情の絶え間ない原因となっています。サイトの動作を変更する方法を検討し、サイトを完全に削除する要因を検討しています。
問題は、IP をユーザーに関連付ける負担がユーザーの ISP にあるという事実にあります。IP 範囲の大きなブロックがあり、特定の場所に属するブロックを登録します。問題は、ISP がブロックを移動したり、ブロックがあまりにも広い領域をカバーしたりするときに、この情報を更新しないことが多いことです。
たとえば、私はマンハッタンの北約 60 マイルに住んでいますが、私の IP は、検索ツールのほとんどがシカゴにあることを示しています。私はFIOSを持っており、同じ行動を確認した他の数人と話しました.
この目的で HTML5 を使用できます。それはとても簡単です。これが例です。
ユーザーがモバイルを使用している場合、Xitfyも無料のオプションです。彼らは、ユーザーが同意した後、携帯電話にシームレスにインストールできる小さなクライアントを持っています. その後、REST ベースの API を呼び出して、gps/wifi またはセル タワーから正確な緯度/経度を取得できます。
Android、Windows Mobile、BlackBerry、およびほぼすべてのスマートフォンをカバーする Symbian をサポートしています。
この単純なコードを使用して、IP アドレスをジオコーディングできます。それはうまくいきます。これを試して:
function functionname(Your IP Here)
{
$ip = $ClientIP;
$json = file_get_contents("http://api.easyjquery.com/ips/?ip=".$ip."&full=true");
$json = json_decode($json,true);
return $json;
}