首页 > 解决方案 > 如何使用 io.reactivex.rxjava3.core

问题描述

我想使用“io.reactivex.rxjava3.core”,所以我从“io.reactivex.Single”修复了我的代码,但我无法修复它。它使用 Google Directions API 源代码。

我该如何解决?

这是我的 ApiInterface.java

package com.example.sample;
import io.reactivex.rxjava3.core.Single;
//import io.reactivex.Single;
//import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Query;

public interface ApiInterface {
    @GET("maps/api/directions/json")
    Single<Result> getDirection(@Query("mode") String mode,
                                @Query("transit_routing_preferance") String preferance,
                                @Query("origin") String origin,
                                @Query("destination") String destination,
                                @Query("key") String key);
}

这是我在 MainActivity 中的 getDirection 方法。我认为“(Schedulers.io())”是错误的,也许?

private void getDirection(String origin, final String destination) {
        apiInterface.getDirection("driving", "less_driving", origin, destination,
                getString(R.string.api_key)
        ).subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new SingleObserver<Result>() {
                    @Override
                    public void onSubscribe( Disposable d) {

                    }

                    @Override
                    public void onSuccess( Result result) {
                        polylinelist = new ArrayList<>();
                        List<Route> routeList = result.getRoutes();
                        for(Route route:routeList) {
                            String polyline = route.getOverviewPolyline().getPoints();
                            polylinelist.addAll(decodePoly(polyline));

                        }
                        polylineOptions = new PolylineOptions();
                        polylineOptions.color(ContextCompat.getColor(getApplicationContext(), R.color.black));
                        polylineOptions.width(8);
                        polylineOptions.startCap(new ButtCap());
                        polylineOptions.jointType(JointType.ROUND);
                        polylineOptions.addAll(polylinelist);
                        mMap.addPolyline(polylineOptions);

                        LatLngBounds.Builder builder = new LatLngBounds.Builder();
                        builder.include(origion);
                        builder.include(dest);
                        mMap.animateCamera(CameraUpdateFactory.newLatLngBounds(builder.build(), 100));

                    }

                    @Override
                    public void onError( Throwable e) {

                    }
                });
    }

标签: javaandroidgoogle-apigoogle-directions-api

解决方案


推荐阅读