Google Maps overview_polyline给出了错误的价值

时间:2012-09-05 10:20:41

标签: java google-maps google-maps-api-3

我的应用程序是java谷歌地图Web应用程序。获得2分并发送给Google http://maps.googleapis.com/maps/api/directions/json?origin="+saddr+"&destination="+daddr+"&sensor=false,它给了json。然后我解码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;
     }

enter image description here

黑色标记,代表没有前往那条路。但它就是这样画的。 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

第二个错误路径enter image description here

这是我的db示例数据... enter image description here

请说明一下?什么问题?

提前致谢。

1 个答案:

答案 0 :(得分:1)

documentation中所述,这可能只是应用于点的平滑误差:

  

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

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

我猜这个调用输出中的元素只是用于远距离缩放或类似的东西。

但是,您仍然可以按照in this post所述解析其余内容。