谷歌方向给出0个值



嘿,我使用谷歌方向来获取它的工作持续时间,但有时它会向json数组路由返回0值。当我在第二天测试时返回了一个值。每天谷歌方向请求有限制吗?

这是我获取持续时间的函数

public String getDistanceInfo(LatLng origin, LatLng dest) {
			StringBuilder stringBuilder = new StringBuilder();
			String str_origin = "origin=" + origin.latitude + "," + origin.longitude;
			// Destination of route
			String str_dest = "destination=" + dest.latitude + "," + dest.longitude;
			String dura = "";
			try {
				String sensor = "sensor=false";
				String output = "json";
				String mode = "mode=walking";
				String parameters = str_origin + "&" + str_dest + "&" + sensor + "&" + mode;
				// Output format
				// Building the url to the web service
				String url = "https://maps.googleapis.com/maps/api/directions/" + output + "?" + parameters;
				//String url = "http://maps.googleapis.com/maps/api/directions/json?origin=" + str_origin + "," + str_dest + "&destination=" + destinationAddress + "&mode=driving&sensor=false";
				HttpPost httppost = new HttpPost(url);
				HttpClient client = new DefaultHttpClient();
				HttpResponse response;
				stringBuilder = new StringBuilder();
				response = client.execute(httppost);
				HttpEntity entity = response.getEntity();
				InputStream stream = entity.getContent();
				int b;
				while ((b = stream.read()) != -1) {
					stringBuilder.append((char) b);
				}
			} catch (ClientProtocolException e) {
			} catch (IOException e) {
			}
			JSONObject jsonObject = new JSONObject();
			try {
				jsonObject = new JSONObject(stringBuilder.toString());
				JSONArray array = jsonObject.getJSONArray("routes");
				JSONObject routes = array.getJSONObject(0);
				JSONArray legs = routes.getJSONArray("legs");
				JSONObject steps = legs.getJSONObject(0);
				JSONObject duration = steps.getJSONObject("duration");
				dura = duration.getString("text");
			} catch (JSONException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			return dura;
		}

org.json.JSONException: Index 0 out of range [0..0)
org.json.JSONArray.get(JSONArray.java:282)
org.json.JSONArray.getJSONObject(JSONArray.java:510)

检查您的JSON响应中是否也出现了类似的情况,在持续时间内除了0之外。

{"status":"OVER_QUERY_LIMIT","routes":[]}.

这意味着您超出了Direction API使用的限制。请注意,对于标准版本,每天只有2500个免费方向请求可用。如果您需要更多的要求,他们是相关的额外费用。

查看Google Maps Directions API Usage Limits上的官方文档了解更多详细信息。

相关内容

  • 没有找到相关文章

最新更新