gpt4 book ai didi

android - 绘制多段线对齐道路 Android 谷歌地图应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:24:55 25 4
gpt4 key购买 nike

我目前正在开发一个 Android 谷歌地图应用程序来帮助获取 map 上两点之间的方向。我能够从谷歌地图服务(Direction API)获得响应并根据步骤列表绘制折线(Google Maps Android SDK),但该线没有捕捉到道路(曲线贴在 map 上的道路上),这只是一条直线。

如何在 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);
}

感谢您的帮助。

最佳答案

这是你可以做到的:

  • 一旦您将 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);
  • 最后添加折线选项,方法是遍历列表并设置与您要显示的道路相对应的折线属性,该道路是从 Google map 上的 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);

关于android - 绘制多段线对齐道路 Android 谷歌地图应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30068048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com