Android SDK的Google Maps API插件是否支持Google地图上的路由(路线)功能。 如果否,是否有任何好方法可用于在Android上实现Google地图的路线
自Android SDK 1.1以来,DriverDirection包(com.google.googlenav.DrivingDirection)已被删除。
答案 0 :(得分:0)
获取从src到目的地的行车路线。
使用以下方法获取arrayList
中的行车路线private ArrayList<String> getDirectionData(String srcPlace, String destPlace) {
String urlString = "http://maps.google.com/maps?f=d&hl=en&saddr="
+ srcPlace + "&daddr=" + destPlace
+ "&ie=UTF8&0&om=0&output=kml";
Log.d("URL", urlString);
Document doc = null;
HttpURLConnection urlConnection = null;
URL url = null;
ArrayList<String> pathConent = new ArrayList<String>();
try {
url = new URL(urlString.toString());
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.setDoOutput(true);
urlConnection.setDoInput(true);
urlConnection.connect();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
doc = db.parse(urlConnection.getInputStream());
} catch (Exception e) {
}
NodeList nl = doc.getElementsByTagName("LineString");
for (int s = 0; s < nl.getLength(); s++) {
Node rootNode = nl.item(s);
NodeList configItems = rootNode.getChildNodes();
for (int x = 0; x < configItems.getLength(); x++) {
Node lineStringNode = configItems.item(x);
NodeList path = lineStringNode.getChildNodes();
pathConent.add(path.item(0).getNodeValue());
}
}
placeMarks=new ArrayList<String>();
NodeList place=doc.getElementsByTagName("Placemark");
for(int i=0;i<place.getLength();i++){
Node root=place.item(i);
NodeList config=root.getChildNodes();
Node placenode=config.item(0);
NodeList name=placenode.getChildNodes();
placeMarks.add(name.item(0).getNodeValue());
Log.i("Node Value: ", ""+name.item(0).getNodeValue());
}
placeMarks.remove((placeMarks.size()-1));
Log.i("LineString: ", pathConent.get(0));
ArrayList<String> tmpcoords=new ArrayList<String>();
for(int i=0;i<pathConent.size();i++){
tmpcoords.addAll(Arrays.asList(pathConent.get(i).split(" ")));
}
//String[] tempContent = pathConent.split(" ");
return placeMarks;
}