MapView:在路线上绘制线条

时间:2012-12-16 20:57:46

标签: android android-mapview draw routes

我试图在谷歌的MapView上画一条路线。但是在截图

中,我的画面并没有像这样在街道上画出来

Example image

我用过这段代码:

    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));
    }
}

我如何在街道叠加上绘制线条? 谢谢

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。 如果其他人有同样的问题,我会发布这个答案。

开始 - &amp; end_location只是路线的要点。绘制一个详细的路径,你必须使用xml并将其解析为geoPoint。

为此我已经使用了这个功能:polyline to geoPoints

然后你必须将geoPoints传递给你的draw方法。

问候。