这里得到了我们点击的路线的名称,根据路线名称我们可以下载到路线上所有车子的实时信息,下过来存在一个string中,然后把这个string拿来解析,将获得的数据放在ArrayList<VehicleLocationsData> vehicleLocationsData中把,VehicleLocationsData有多个数据成员,包括汽车的朝向,速度,经纬度等等。
private void achieveAllDirection(String RouteName) { String path="http://webservices.nextbus.com/service/publicXMLFeed?command=vehicleLocations&a=mbta&r="+RouteName+"&t=0"; HttpDownloader hd = new HttpDownloader();//下载实时信息 String resultStr = hd.download(path); //System.out.println(resultStr); try{ SAXParserFactory factory = SAXParserFactory.newInstance(); XMLReader reader = factory.newSAXParser().getXMLReader(); VehicleLocationsPrase vehicleLocationsPrase=new VehicleLocationsPrase(); reader.setContentHandler(vehicleLocationsPrase); //开始解析文件 reader.parse(new InputSource(new StringReader(resultStr))); ArrayList<VehicleLocationsData> temp=vehicleLocationsPrase.getVehicleLocationsDatas(); System.out.println(temp.size()); if (temp.size()==0) { Toast.makeText(mapView.getContext(), "这辆车在这个方向上目前没有实时信息", Toast.LENGTH_LONG ); } else { //下载解析好之后开始画图 afterClickBusOnRoute(temp); } } catch(Exception e){ e.printStackTrace(); } }