我正在我的安卓应用程序中实现谷歌方向api。它可以工作,但需要时间(约 30 秒(才能获取结果。如何减少此获取时间。 我在谷歌控制台上启用了谷歌方向 api,但在那里,我得到了 99% 的谷歌方向 API 错误率。
private DirectionsResult getDirectionsDetails(String origin, String destination, TravelMode mode) {
mMap.clear();
DateTime now = new DateTime();
try {
return DirectionsApi.newRequest(getGeoContext())
.mode(mode)
.origin(origin)
.destination(destination)
.departureTime(now)
.await();
} catch (ApiException e) {
e.printStackTrace();
return null;
} catch (InterruptedException e) {
e.printStackTrace();
return null;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
private GeoApiContext getGeoContext() {
GeoApiContext geoApiContext = new GeoApiContext();
return geoApiContext
.setQueryRateLimit(3)
.setApiKey(getResources().getString(R.string.apikey))
.setConnectTimeout(1, TimeUnit.SECONDS)
.setReadTimeout(1, TimeUnit.SECONDS)
.setWriteTimeout(1, TimeUnit.SECONDS);
}
将1s
设置为所有可能的超时值时,您的大多数尝试可能只是超时。
。最好尝试使用默认设置的GeoApiContext.Builder()
:
private GeoApiContext getGeoApiContext() {
return new GeoApiContext.Builder()
.apiKey(getResources().getString(R.string.apikey))
.build();
}