我使用 Google Map API 开发了一个 android 应用程序。当我使用本地提供商的家庭互联网时,该应用程序正在运行。
但是,当我将 Internet 更改为 AT&T 时,出现以下错误:
地点错误 - 已达到对 Google 地点的查询限制。
我不明白为什么会这样。2个互联网连接有区别吗?
谢谢
我认为你超过了谷歌地图 API 的使用。如果您超出了谷歌地图 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,则错误将显示为“Places Error sorry query limit to google places is reached”。你可以在这个部分看到它
else if(status.equals("OVER_QUERY_LIMIT"))
{
alert.showAlertDialog(MainActivity.this, "Places Error",
"Sorry query limit to google places is reached",
false);
}
您可以通过以下方式超出 Google Maps API Web 服务使用限制:
每天发送太多请求。发送请求太快,即每秒请求太多。发送请求太快太久或以其他方式滥用 Web 服务。超出其他使用限制,例如 Elevation API 中每个请求的点数。
上述问题可以通过结合两种方法来解决:
通过优化应用程序以更有效地使用 Web 服务来降低使用率。在可能的情况下,通过为您的 Maps API for Business 许可证购买额外的配额来增加使用限制。
有关更多信息,您可以在此处查看-> Google Places API
如果您有任何问题,请随时在评论中提问:)