0

GoogleMapAPIを使用してAndroidアプリを開発しました。ローカルプロバイダーの自宅のインターネットを使用している場合、アプリは実行されています。

しかし、インターネットをAT&Tに変更すると、次のエラーが発生します。

場所のエラー-Googleの場所に対する申し訳ありませんがクエリの制限に達しました。

なぜこれが起こっているのか分かりません。2つのインターネット接続に違いはありますか?

ありがとう

4

1 に答える 1

0

あなたはグーグルマップAPIの使用量を超えていると思います。google map APIの使用量を超えると、応答ステータスコードはOVER_QUERY_LIMITになります。これと同じように実行していると思います。

protected void onPostExecute(String file_url) {
            // dismiss the dialog after getting all products
            pDialog.dismiss();
            // updating UI from Background Thread
            runOnUiThread(new Runnable() {
                public void run() {
                    /**
                     * Updating parsed Places into LISTVIEW
                     * */
                    // Get json response status
                    String status = nearPlaces.status;

                    // Check for all possible status
                    if(status.equals("OK")){
                        // Successfully got places details
                        if (nearPlaces.results != null) {
                            // loop through each place
                            for (Place p : nearPlaces.results) {
                                HashMap<String, String> map = new HashMap<String, String>();

                                // Place reference won't display in listview - it will be hidden
                                // Place reference is used to get "place full details"
                                map.put(KEY_REFERENCE, p.reference);

                                // Place name
                                map.put(KEY_NAME, p.name);

                                // adding HashMap to ArrayList
                                placesListItems.add(map);
                            }
                            // list adapter
                            ListAdapter adapter = new SimpleAdapter(MainActivity.this, placesListItems,
                                    R.layout.list_item,
                                    new String[] { KEY_REFERENCE, KEY_NAME}, new int[] {
                                            R.id.reference, R.id.name });

                            // Adding data into listview
                            lv.setAdapter(adapter);
                        }
                    }
                    else if(status.equals("ZERO_RESULTS")){
                        // Zero results found
                        alert.showAlertDialog(MainActivity.this, "Near Places",
                                "Sorry no places found. Try to change the types of places",
                                false);
                    }
                    else if(status.equals("UNKNOWN_ERROR"))
                    {
                        alert.showAlertDialog(MainActivity.this, "Places Error",
                                "Sorry unknown error occured.",
                                false);
                    }
                    else if(status.equals("OVER_QUERY_LIMIT"))
                    {
                        alert.showAlertDialog(MainActivity.this, "Places Error",
                                "Sorry query limit to google places is reached",
                                false);
                    }
                    else if(status.equals("REQUEST_DENIED"))
                    {
                        alert.showAlertDialog(MainActivity.this, "Places Error",
                                "Sorry error occured. Request is denied",
                                false);
                    }
                    else if(status.equals("INVALID_REQUEST"))
                    {
                        alert.showAlertDialog(MainActivity.this, "Places Error",
                                "Sorry error occured. Invalid Request",
                                false);
                    }
                    else
                    {
                        alert.showAlertDialog(MainActivity.this, "Places Error",
                                "Sorry error occured.",
                                false);
                    }
                }
            });

        }

Androidによるこのサンプルコードでわかるように、 HiveはGoogle Places APIから応答を取得し、その後それを確認します。ステータスがOVER_QUERY_LIMITの場合、エラーは「PlacesError申し訳ありませんがGooglePlacesへのクエリ制限に達しました」と表示されます。あなたはこのセクションでそれを見ることができます

else if(status.equals("OVER_QUERY_LIMIT"))
                    {
                        alert.showAlertDialog(MainActivity.this, "Places Error",
                                "Sorry query limit to google places is reached",
                                false);
                    }

次の方法で、Google MapsAPIWebサービスの使用制限を超えることができます。

1日に送信するリクエストが多すぎます。リクエストの送信が速すぎます。つまり、1秒あたりのリクエストが多すぎます。リクエストの送信が速すぎて長すぎるか、Webサービスを悪用している。Elevation APIのリクエストごとのポイントなど、他の使用制限を超えています。

上記の問題は、次の2つのアプローチを組み合わせることで解決できます。

Webサービスをより効率的に使用するようにアプリケーションを最適化することにより、使用量を削減します。可能であれば、Maps API for Businessライセンスの追加のアローワンスを購入して、使用制限を増やします。

詳細については、こちらをご覧ください-> Google Places API

ご不明な点がございましたら、コメント欄でお気軽にお問い合わせください:)

于 2012-11-21T00:42:23.733 に答える