1

Google の MapView でルートを描画しようとしています。しかし、私の線はスクリーンショットのように通りに描かれていません

サンプル画像

私はこのコードを使用しました:

    GeoPoint gp1;
    GeoPoint gp2 = null;
    StringBuilder sb = new StringBuilder();
      sb.append("http://maps.google.com/maps/api/directions/xml").append("?origin=").append(origin)
      .append("&destination=").append(destination)
      .append("&mode=driving&sensor=true&language=de");
    System.out.println(sb.toString());
    xmlPaser parser = new xmlPaser();
    String xml = parser.getXmlFromUrl(sb.toString());
    Document doc = parser.XmlFromString(xml);
    System.out.println(doc);
    NodeList start = doc.getElementsByTagName("start_location");
    NodeList end = doc.getElementsByTagName("end_location");
    for (int intLoop = 0 ; intLoop < start.getLength() ; intLoop++){
        Element eStart = (Element) start.item(intLoop);
        Element eEnd = (Element) end.item(intLoop);
        String test = parser.getValue(eStart, "lat");
        String test2 = parser.getValue(eStart, "lng");
        if (intLoop == 0){
            gp1 = new GeoPoint((int) (Double.parseDouble(parser.getValue(eStart, "lat")) * 1E6),(int) (Double.parseDouble(parser.getValue(eStart, "lng")) * 1E6));
        }else{
            gp1 = gp2;
        }
        gp2 = new GeoPoint((int) (Double.parseDouble(parser.getValue(eEnd, "lat")) * 1E6),(int) (Double.parseDouble(parser.getValue(eEnd, "lng")) * 1E6));
        ViewMap.getMap().getOverlays().add(new DirectionPathOverlay(gp1, gp2));
    }
}

ストリート オーバーレイに線を引く方法を教えてください。ありがとうございました

4

1 に答える 1

0

私は問題を解決しました。他の誰かが同じ問題を抱えている場合、この回答を投稿しています。

start- & end_location は、ルートの主要なポイントです。ルートの詳細ビューを描画するには、xml から を使用し、これを geoPoint に解析する必要があります。

これを行うために、私はこの関数を使用しました: polyline to geoPoints

次に、geoPoints を draw メソッドに渡す必要があります。

ご挨拶。

于 2012-12-17T11:58:42.733 に答える