1

我正在尝试在谷歌的 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 回答