Это мое изображение. Неправильный маршрут.
Я хочу этот маршрут как этот. Правильный маршрут.
У меня есть много статических географических точек для географических точек для автобусных остановок. Иногда географических точек существует более ста. Я могу проложить маршрут с использованием полилинии, но это показывает мне прямую линию. Я хочу увидеть линию дороги.
Я пытался найти много вопросов, но вижу только между двумя точками. Я пробовал использовать 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));
}