绘制折线对话Android Android谷歌地图应用程序

Dav*_*yen 5 android google-maps polyline

我正在开发一个Android谷歌地图应用程序帮助获取地图上的2点之间的方向.我可以从谷歌地图服务(方向API)获得响应,并根据步骤列表绘制折线(谷歌地图Android SDK),但线路不会与道路对齐(地图上的曲线粘在路上),这只是直线.

如何在Android应用中绘制折线对齐?我正在使用Android Studio.

这是我绘制折线的代码.

void updateMapDirection() {
    Polyline newPolyline;
    PolylineOptions options = new PolylineOptions().width(3).color(Color.BLUE).geodesic(true);
    LatLng latLng = new LatLng(mLegs.get(0).getmStartLocation().getmLatitude(),
            mLegs.get(0).getmStartLocation().getmLongitude());
    options.add(latLng);
    for (WNStep i : mLegs.get(0).getmSteps()) {
        latLng = new LatLng(i.getmEndLocation().getmLatitude(), i.getmEndLocation().getmLongitude());
        options.add(latLng);
    }
    newPolyline = map.addPolyline(options);
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

Ani*_*niV -1

您可以这样做:

  • 一旦您将 JSON 对象作为“结果”。解析它,同时以列表的形式解码折线。

    final JSONObject json = new JSONObject(result);
            JSONArray routeArray = json.getJSONArray("routes");
            JSONObject routes = routeArray.getJSONObject(0);
            JSONObject overviewPolylines = routes
                    .getJSONObject("overview_polyline");
            String encodedString = overviewPolylines.getString("points");
            List<LatLng> list = decodePoly(encodedString);
    
    Run Code Online (Sandbox Code Playgroud)
  • 最后,通过循环列表并设置与您想要显示的从 Google 地图上的 Direction API 检索到的道路相对应的折线属性来添加折线选项。

    PolylineOptions options = new PolylineOptions().width(5).color(Color.BLUE).geodesic(true);
    for (int z = 0; z < list.size(); z++) {
    LatLng point = list.get(z);
    options.add(point);
    }
    line = myMap.addPolyline(options);
    
    Run Code Online (Sandbox Code Playgroud)