2012-12-31 10 views

答えて

5

ipを使用して位置を取得するには、APIを使用してください。

Ip2Location API

+0

、何もこのリンク上で – SREE

2

あなたはIPアドレスから緯度と経度の値を提供、いくつかのWebサービスがあります。 EXためapi.ipinfodb.com

であり、あなたが

http://api.ipinfodb.com/v3/ip-city/?key=<your_api_key> 
       &ip=74.125.45.100&format=json 

ような要求を送信することによって、緯度と経度ができ、これはJSON形式でデータを返し、あなたが応答を得ることができるよう

1 format = xml。(APIキーを取得するには登録する必要があります)を設定してXMLを作成します。

またはthisおよびthisリンクからデータベースをダウンロードできます。

データセットはダウンロードできますが、常に更新する必要があります。

+0

私はこのサイトのAPIキーを取得しようとしましたが、unsuccessfully.Itはあなたがあなたのキーを共有したいと思っても、私の場所を要求しています。 –

1

私はあなたがHTTP要求を行うために、FirefoxのアドオンをRESTCLIENTを使用することができますテストするデバイス

のIP、国や都市を取得するためにthisを使用しています。

は、単にブラウザのアドレスバーにRESTCLIENTか、単に過去にhttps://addons.mozilla.org/en-us/firefox/addon/restclient/このURLとテストをコピー

・ホープ、このことができます!

+0

Good find。そのリンクを使用すると非常に簡単です: http://api.hostip.info/get_json.php –

3

アウトGoogle Maps Geolocation API

サンプルPOST:

https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_API_KEY 

サンプル応答:

{ 
    "location": { 
    "lat": 51.0, 
    "lng": -0.1 
    }, 
    "accuracy": 1200.4 
} 

制限:

01標準APIのの

ユーザー:1日あたり

2,500自由クエリ毎秒 10クエリ、ユーザー あたりの高いクォータのロックを解除する従量制課金を有効にする:

$ 0.50 USD/1000、追加クエリ、毎日最大10万人。

MORE

0

あなたはfreegeoip.netを使用することができます。

無料のオープンソースサービスです。サービスを直接使用することも、個人のサーバー上で実行することもできます。それはまたかなり簡単にHerokuに展開することができます。

String url = "https://freegeoip.net/json/" 
Request mRequest = new Request.Builder() 
     .url(url) 
     .build(); 
Context mContext // A UI context 
new OkHttpClient().newCall(mRequest).enqueue(new Callback() { 
    Handler mainHandler = new Handler(mContext.getApplicationContext().getMainLooper()); 

    @Override 
    public void onResponse(Call call, Response response) { 
     String responseBody = null; 
     try { 
      responseBody = response.body().string(); 
     } catch (final IOException e) { 
      mainHandler.post(new Runnable() { 
       @Override 
       public void run() { 
        // handle error 
       } 
      }); 
     } 

     final String finalResponseBody = responseBody; 
     mainHandler.post(new Runnable() { 
      @Override 
      public void run() { 
       // handle response body 
       try { 
        JSONObject locationObject = new JSONObject(finalResponseBody); 
       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    } 

    @Override 
    public void onFailure(Call call, final IOException e) { 
     mainHandler.post(new Runnable() { 
      @Override 
      public void run() { 
       mNetworkListener.onNetworkError(e.getMessage()); 
      } 
     }); 
    } 
}); 

と応答がこのような何かのようになります:IPの場所は、単にHTTP/HTTPSリクエストを送信するためにOkHttp使用取得するには

これらの年後に、悲しいこと

{ 
    "ip": "192.30.253.113", 
    "country_code": "US", 
    "country_name": "United States", 
    "region_code": "CA", 
    "region_name": "California", 
    "city": "San Francisco", 
    "zip_code": "94107", 
    "time_zone": "America/Los_Angeles", 
    "latitude": 37.7697, 
    "longitude": -122.3933, 
    "metro_code": 807 
} 
関連する問題