約 1 週間前、Android Premium SDK を使用してカスタム ルート (どこでも) を計算するための「応答解析問題」が発生し始めました。しばらく同じコードを使用していますが、最近このエラーが表示されます。だから、私はどこにもカスタムルートを計算することはできません...
開発者サイトを確認したところ、ドキュメントではバージョン 3.18 が最新の SDK バージョンとして示されていますが、パネルでは 3.17 バージョンしかダウンロードできません。それは問題ですか?彼らは別の API を公開しましたが、それは以前のバージョンと互換性がありませんか? その場合、新しいバージョンはどこでダウンロードできますか?
私自身の小さなコード:
FTCRRouteOptions routeOptions = new FTCRRouteOptions();
routeOptions.setTransportMode(FTCRRouteOptions.TransportMode.CAR);
routeOptions.setRouteType(FTCRRouteOptions.Type.SHORTEST);
routeOptions.setUseTraffic(true);
FTCRRoutePlan routePlan = new FTCRRoutePlan(waypoints, routeOptions);
try {
FTCRRouter.Listener routerListener = new FTCRRouter.Listener() {
@Override
public void onCalculateRouteFinished(@NonNull List<FTCRRoute> list, @NonNull FTCRRouter.ErrorResponse errorResponse) {
if (errorResponse.getErrorCode() == RoutingError.NONE) {
if (list != null && list.size() > 0) {
route = list.get(0);
manobras = route.getManeuvers();
traduzir(manobras.get(0).getInstruction());
mapRoute = new FTCRMapRoute(route);
mapRoute.setColor(Color.rgb(34, 162, 229));
map.addMapObject(mapRoute);
gbb = route.getBoundingBox();
map.zoomTo(gbb, Map.Animation.NONE, Map.MOVE_PRESERVE_ORIENTATION);
pontoCentral = new PointF(map.getTransformCenter().x, (map.getTransformCenter().y * 85 / 50));
map.setTransformCenter(pontoCentral);
Image icone = new Image();
marcadorNavegacao = new MapMarker();
try {
icone.setImageResource(R.mipmap.pngegg);
marcadorNavegacao.setIcon(icone);
} catch (IOException ioe) {
}
mapFragment.getPositionIndicator().setVisible(false);
map.setCenter(waypoints.get(0).getNavigablePosition(), Map.Animation.NONE);
map.setZoomLevel(25, Map.Animation.NONE);
marcadorNavegacao.setVisible(true);
marcadorNavegacao.setCoordinate(map.getCenter());
map.addMapObject(marcadorNavegacao);
circulo = new MapCircle();
if (rotaAtual != null || rotasFiltradas != null) {
if (rotaAtual == null) {
rotaAtual = rotasFiltradas.get(0);
}
rotaEstatica = rotaAtual;
circulo.setCenter(map.getCenter());
circulo.setRadius(rotaAtual.SeqRaio);
circulo.setLineColor(Color.RED);
circulo.setFillColor(Color.argb(30, 255, 0, 0));
map.addMapObject(circulo);
}
tvRuaAtual.setVisibility(View.VISIBLE);
ivManobra.setVisibility(View.VISIBLE);
tvProximaRua.setVisibility(View.VISIBLE);
tvDistanciaProximaManobra.setVisibility(View.VISIBLE);
tvEmSeguida.setVisibility(View.VISIBLE);
ivProximaManobra.setVisibility(View.VISIBLE);
map.getMapTransitLayer().setMode(MapTransitLayer.Mode.EVERYTHING);
map.getMapTrafficLayer().setEnabled(MapTrafficLayer.RenderLayer.INCIDENT, true);
startingNavigation();
} else {
Toast.makeText(context, "Rota não encontrada", Toast.LENGTH_LONG).show();
}
} else {
if (errorResponse.getErrorCode() == RoutingError.VIOLATES_OPTIONS) {
Toast.makeText(getApplicationContext(), "Erro interno na HERE. Não é possível prosseguir", Toast.LENGTH_LONG).show();
} else {
try {
if (progressDialog != null) {
progressDialog.cancel();
}
Toast.makeText(context, "Erro ao calcular rota: " + errorResponse.getMessage(), Toast.LENGTH_LONG).show();
navegacaoAssistida(inicio, termino, waypoints);
} catch (Exception e) {
}
}
}
}
};
coreRouter.calculateRoute(routePlan, routerListener);
} catch (
Exception ex) {
Log.e("CoreRouter", ex.getLocalizedMessage());
}