2

ユーザーの緯度と経度の位置に基づいてユーザーの位置を特定する Android アプリを作成しています。だから私はを使用していGoogle Maps reverse geocoderます。しかし問題は、Google が 1 日に 2500 回の API 呼び出ししかできないと言っていることです。しかし、私のユーザーは 2500 人をはるかに超えると予想してGoogle Maps reverse geocoderいます。では、1 日あたり無制限の API 呼び出しを行う代替手段はありますか?

4

3 に答える 3

3

パラメータで経度と緯度を挿入し、サーバーとサーバーにリクエストを送信して、アドレスで応答を返すなど、Google APIを介して使用できます。

public static String  getAddressUrl(Context context) {
    String responseText = null;
    // String latitude = "38.89";
    // String longitude  = "-77.03";
    String googleurl = "http://maps.google.com/maps/geo?";
    Log.v(TAG , "Latitude is: " + latitude + "Longitude is:" + longitude);
    StringBuilder sbuilder = new StringBuilder();
    sbuilder.append(googleurl);

    sbuilder.append("q = " + latitude + "," + longitude);
    sbuilder.append("&output = responseText&sensor = true");
    String url = sbuilder.toString();

    Log.v(TAG, "url is: " + url);
    try {
        DefaultHttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(url);
        HttpResponse httpresponse = httpclient.execute(httppost);
        HttpEntity httpentity = httpresponse.getEntity();
        InputStream is = httpentity.getContent();
        BufferedReader reader = new BufferedReader(
            new InputStreamReader(is, "iso-8859-1"), 8);
        StringBuilder sb = new StringBuilder();
        String line = null;
        while((line = reader.readLine()) != null) {
            sb.append(line + "\n");
        }
        is.close();
        responseText = sb.toString();
    }
    catch(ClientProtocolException e) {
        e.printStackTrace();
    }
    catch (IOException e) {
        e.printStackTrace();
    }
    return responseText;
}
于 2013-05-12T07:50:09.680 に答える