Как нарисовать маршрут между многими географическими точками на карте Google (обратите внимание: это линия маршрута автобусной остановки)? - PullRequest
0 голосов
/ 07 июня 2019

Это мое изображение. Неправильный маршрут. Я хочу этот маршрут как этот. Правильный маршрут.

У меня есть много статических географических точек для географических точек для автобусных остановок. Иногда географических точек существует более ста. Я могу проложить маршрут с использованием полилинии, но это показывает мне прямую линию. Я хочу увидеть линию дороги.

Я пытался найти много вопросов, но вижу только между двумя точками. Я пробовал использовать API-интерфейсы дорог от Google. Но это ограничение всего 100 баллов. Так что я не могу использовать API-интерфейсы дорог. Пожалуйста, укажите меня.

public void getBusStopInfo() {
    HttpService httpService = NetManager.getInstance().create(HttpService.class);
    Observable<GdResultData> observable = httpService.findByRoute(id);
    RxManager.getInstance().getHttpListResult(observable, newRxSubscriber<GdResultBean<List<BusStopServerBean>>>(getContext()) {
        @Override
        protected void _onError(Throwable e) {
            e.printStackTrace();
            if (mLoadingDialog != null) {
                mLoadingDialog.dismiss();
            }
        }

        @Override
        protected void _onNext(GdResultBean<List<BusStopServerBean>>listGdResultBean) {
            if (listGdResultBean.getErrorID() != HttpFields.HTTP_RESULT_OK) {
                return;
            }
            List<BusStopServerBean> object = listGdResultBean.getObject();
            for (BusStopServerBean busStopServerBean : object) {
                if (isMmLanguage) {
                    mMap.addMarker(new MarkerOptions().position(new LatLng(busStopServerBean.getLat(), busStopServerBean.getLng()))
                           .title(busStopServerBean.getNameMm()).snippet(busStopServerBean.getRoadMm())
                            .icon(BitmapDescriptorFactory.fromResource(R.mipmap.bus_stop_circler)).alpha(0.9f).flat(true))
                            .setTag(busStopServerBean.getId());
                } else {
                    mMap.addMarker(new MarkerOptions().position(new LatLng(busStopServerBean.getLat(), busStopServerBean.getLng()))
                            .title(busStopServerBean.getNameEn()).snippet(busStopServerBean
                                   .getRoadEn()).icon(BitmapDescriptorFactory.fromResource(R.mipmap.bus_stop_circler))
                           .alpha(0.9f).flat(true)).setTag(busStopServerBean.getId());
                }
            }
            insertBusLine(object);
            mLoadingDialog.dismiss();
        }
    }, BusStopServerBean.class);
}



private void insertBusLine(List<BusStopServerBean> object) {
    if (object == null || object.size() == 0) {
        return;
    }
    LatLngBounds.Builder boundBuilder = new LatLngBounds.Builder();
    LatLng latLng;

//This is for route
    PolylineOptions polylineOptions = new PolylineOptions()
            .color(Color.parseColor(color))
            .geodesic(false)
            .width(5);

    //this is for geo points latlng over 100 obj size
    for (BusStopServerBean busStopServerBean : object) {
        latLng = new LatLng(busStopServerBean.getLat(), busStopServerBean.getLng());busStopServerBean.getLng()));
        polylineOptions.add(latLng);
        boundBuilder.include(latLng);
    }


    mMap.addPolyline(polylineOptions);//this is show route on map[enter image description here][1]
    mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(boundBuilder.build(), 11));

}

1 Ответ

0 голосов
/ 07 июня 2019

Каждый маршрут с несколькими путевыми точками состоит из маршрутов между двумя путевыми точками. Итак, с учетом ограничений :

Внимание: Запросы с использованием 10 или более путевых точек или путевых точек Оптимизация, оплачивается по более высокой ставке. Узнайте больше о выставлении счетов для продуктов Google Maps Platform.

Вы можете разделить ваш единственный запрос с более чем 100 путевыми точками на несколько запросов с менее чем 10 путевыми точками (и даже запустить их параллельно) и объединить его результаты, чтобы получить весь маршрут.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...