1

私のアプリケーションは Java Google マップ 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=false これoverview_polyline_pmi@}xqfNEkEM{@DREUOc@Wi@MOkBmCi@k@o@o@gA}@qD_DiDgD{MoN_DeDJEVGvBS

描かれたこの 2 番目の間違ったパスここに画像の説明を入力

これは私のdbサンプルデータです... ここに画像の説明を入力

アイデアを教えてください。問題とは何ですか?

前もって感謝します。

4

1 に答える 1

1

ドキュメントで説明されているように、おそらくこれは、ポイントに適用されたスムーズの単なるエラーです。

overview_polyline には、結果の方向のおおよその (平滑化された) パスを表すエンコードされたポイントの配列を保持するオブジェクトが含まれています。

パスが 2 回描かれている様子を実際に見たので、最後のポイントが最初のポイントと接続され、近いパスが作成されます。

呼び出し出力のこの要素は、遠ズームの使用または同様のもののためのものだと思います。

ただし、この投稿で説明されているように、残りのコンテンツを解析することはできます。

于 2012-12-14T11:13:03.570 に答える