1

我的应用程序是 java google map web 应用程序。获得 2 分并发送给 Google http://maps.googleapis.com/maps/api/directions/json?origin="+saddr+"&destination="+daddr+"&sensor=false,它会给出 json。然后我有 decode overview_polyline。我的问题是有时它会提供扩展的价值。

这是我的解码部分。

  public static ArrayList<Location> decodePoly(String encoded) {
      ArrayList<Location> poly = new ArrayList<Location>();
      int index = 0, len = encoded.length();
      int lat = 0, lng = 0;
      while (index < len) {
       int b, shift = 0, result = 0;
       do {
        b = encoded.charAt(index++) - 63;
        result |= (b & 0x1f) << shift;
        shift += 5;
       } while (b >= 0x20);
       int dlat = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));
       lat += dlat;
       shift = 0;
       result = 0;
       do {
        b = encoded.charAt(index++) - 63;
        result |= (b & 0x1f) << shift;
        shift += 5;
       } while (b >= 0x20);
       int dlng = ((result & 1) != 0 ? ~(result >> 1) : (result >> 1));
       lng += dlng;
       Location p = new Location((((double) lat / 1E5)),
         (((double) lng / 1E5)));

     //  System.out.println("==p==" +p.getLatitude());
      // System.out.println("==p==" +p.getLongitude());
       poly.add(p);
      }
      return poly;
     }

在此处输入图像描述

黑色标记,代表没有前往那条路径。但它是这样画的。 http://maps.googleapis.com/maps/api/directions/json?origin=6.95522,79.8864&destination=6.96165,79.8958&sensor=falseoverview_polyline_pmi@}xqfNEkEM{@DREUOc@Wi@MOkBmCi@k@o@o@gA}@qD_DiDgD{MoN_DeDJEVGvBS

绘制的第二条错误路径在此处输入图像描述

这是我的数据库示例数据... 在此处输入图像描述

请给出一些想法?什么是问题?

提前致谢。

4

1 回答 1

1

可能这只是应用于点的平滑错误,如文档中所述:

overview_polyline 包含一个对象,该对象包含一个编码点数组,这些编码点表示结果方向的近似(平滑)路径。

我实际上看到了我的路径是如何绘制的两次,所以最后一个点与第一个点相连,形成一条封闭的路径。

我猜想调用输出中的这个元素只是用于远变焦或类似用途。

但是,您仍然可以按照本文所述解析其余内容

于 2012-12-14T11:13:03.570 回答