现在我正在开发移动应用程序,它以特定间隔获取 gps 位置,将位置数据发送到服务器。服务器根据这些信息绘制谷歌路线图。
请帮我解决以下场景
有时,在对面路线上标记的 gps 坐标实际上已经行进,并使路线完全错误。
例如我在这样的路线上旅行(在谷歌地图上)
但我得到地图(在谷歌地图上)
B点在平行道路上被提取/标记
我怎么解决这个问题?
现在我正在开发移动应用程序,它以特定间隔获取 gps 位置,将位置数据发送到服务器。服务器根据这些信息绘制谷歌路线图。
请帮我解决以下场景
有时,在对面路线上标记的 gps 坐标实际上已经行进,并使路线完全错误。
例如我在这样的路线上旅行(在谷歌地图上)
但我得到地图(在谷歌地图上)
B点在平行道路上被提取/标记
我怎么解决这个问题?
尝试路线卓尔的亚历山大图书馆
编译'com.github.jd-alexander:library:1.1.0'
例子:
private void startRouting() {
LatLng origin = new LatLng(18.01455, -77.499333);
LatLng destination = new LatLng(18.0145600, -77.491333);
Routing routing = new Routing.Builder()
.travelMode(Routing.TravelMode.DRIVING)
.alternativeRoutes(false)
.withListener(new RoutingListener() {
@Override
public void onRoutingFailure(RouteException e) {
Log.e("onRoutingFailure: ", e.getMessage());
}
@Override
public void onRoutingStart() {
}
@Override
public void onRoutingSuccess(ArrayList<Route> routes, int shortestRouteIndex) {
if (routes != null && routes.size() > 0) {
for (Route route : routes) {
List<LatLng> latlngs = route.getPoints();
try {
Random rnd = new Random();
int color = Color.argb(200, rnd.nextInt(256), rnd.nextInt(256), 0);
/* int color1 = Color.argb(225, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));
int color2 = Color.argb(225, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));
int color3 = Color.argb(225, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256));*/
mMap.addPolyline(new PolylineOptions().addAll(latlngs).color(color).width(12.0f));
} catch (Exception e) {
e.printStackTrace();
Log.e("onRoutingSuccess: ", e.getMessage());
Toast.makeText(MainActivity.this, "An internal error occurred!", Toast.LENGTH_SHORT).show();
}
}
//showBottomSheet(routes.get(shortestRouteIndex));
}
}
@Override
public void onRoutingCancelled() {
Log.e("onRoutingCancelled: ", "Routing cancelled");
}
})
.waypoints(origin, destination)
.build();
routing.execute();
}