【问题标题】:API Level for Google Maps Interactive Polylines?谷歌地图交互式折线的 API 级别?
【发布时间】:2017-05-11 14:36:00
【问题描述】:

我使用交互式折线突出显示来自 Google 地图的计算路线:

如您所见,herehere 我得到了一个 base64 字符串,然后将其输入:

if (!TextUtils.isEmpty(stringPolyline)) {
    List<LatLng> latLngList = PolyUtil.decode(stringPolyline);

    PolylineOptions polylineOptions = new PolylineOptions();
    polylineOptions.addAll(latLngList);
    polylineOptions.color(Color.RED);

    Polyline polyline = googleMap.addPolyline(polylineOptions);
}

在我的装有 Android 6 和 7 的设备上,它可以完美运行。但我有一个带有 Android 4.4.4 的设备作为示例。在那里我看不到那些完全相同的折线。

如何使折线在我的 Android 4.4 设备上可见?

【问题讨论】:

  • 您是否尝试在 polylineOptions 中添加widthpolylineOptions.width(8)
  • 是的,没有变化 :(
  • 奇怪...当您将折线添加到地图时,您是否调试了应用程序仔细检查 googleMap != null &amp;&amp; latLngList.size() &gt; 1
  • 两个设备上的调试都是一样的,stringPolyline 有一个有效的字符串,最多 40 个字符..
  • 与其使用 polylineOptions.addAll ,不如尝试使用循环迭代 latLngList 看看它是否完成了整个循环

标签: android google-maps google-maps-android-api-2 google-polyline


【解决方案1】:

不要使用具有多个位置的单一折线,而是尝试绘制多条线:

List<LatLng> latLngList = PolyUtil.decode(stringPolyline);

if (googleMap != null && latLngList.size() > 1) {
    for (int i = 0; i < latLngList .size() - 1; i++) {
        LatLng src = latLngList.get(i);
        LatLng dest = latLngList.get(i + 1);

        Polyline polyline = googleMap.addPolyline(
            new PolylineOptions().add(
                new LatLng(src.latitude, src.longitude),
                new LatLng(dest.latitude,dest.longitude)
            ).width(5).color(Color.RED).geodesic(true)
        );
    }
}

【讨论】:

    猜你喜欢
    • 2011-07-02
    • 1970-01-01
    • 2013-06-29
    • 2013-01-21
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 2013-07-02
    • 2023-04-06
    相关资源
    最近更新 更多