1

我认为这个错误在这里很常见,但不幸的是没有人给出正确的答案。我的绘制路径功能运行良好,但一周后它停止了!我收到此错误:

unterminated entity ref (position:ENTITY_REF @1:811 in java.io.InputStreamReader@41e8b990).

这是我的代码:

private void DrawPath(GeoPoint src,GeoPoint dest, int color, MapView mMapView01) 
    { 
            // connect to map web service 
            StringBuilder urlString = new StringBuilder(); 
            urlString.append("http://maps.google.com/maps?f=d&hl=en"); 
                urlString.append("&saddr=");//from 
            urlString.append( Double.toString((double)src.getLatitudeE6()/1.0E6 )); 
            urlString.append(","); 
            urlString.append( Double.toString((double)src.getLongitudeE6()/1.0E6 )); 
            urlString.append("&daddr=");//to 
            urlString.append( Double.toString((double)dest.getLatitudeE6()/1.0E6 )); 
            urlString.append(","); 
            urlString.append( Double.toString((double)dest.getLongitudeE6()/1.0E6 )); 
            urlString.append("&ie=UTF8&0&om=0&output=kml"); 
            Log.d("xxx","URL="+urlString.toString()); 
            // get the kml (XML) doc. And parse it to get the coordinates(direction route). 
            Document doc = null; 
            HttpURLConnection urlConnection= null; 
            URL url = null; 
            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()); 
          //  doc = db.parse(url.openStream());
            if(doc.getElementsByTagName("GeometryCollection").getLength()>0) 
            { 
            //String path = doc.getElementsByTagName("GeometryCollection").item(0).getFirstChild().getFirstChild().getNodeName(); 
            String path = doc.getElementsByTagName("GeometryCollection").item(0).getFirstChild().getFirstChild().getFirstChild().getNodeValue() ; 
            Log.d("xxx","path="+ path); 
            String [] pairs = path.split(" "); 
            String[] lngLat = pairs[0].split(","); // lngLat[0]=longitude lngLat[1]=latitude lngLat[2]=height 
            // src 
            GeoPoint startGP = new GeoPoint((int)(Double.parseDouble(lngLat[1])*1E6),(int)(Double.parseDouble(lngLat[0])*1E6)); 
            mMapView01.getOverlays().add(new MyOverLay(startGP,startGP,1)); 
            GeoPoint gp1; 
            GeoPoint gp2 = startGP; 
            for(int i=1;i<pairs.length;i++) // the last one would be crash 
            { 
            lngLat = pairs[i].split(","); 
            gp1 = gp2; 
            // watch out! For GeoPoint, first:latitude, second:longitude 
            gp2 = new GeoPoint((int)(Double.parseDouble(lngLat[1])*1E6),(int)(Double.parseDouble(lngLat[0])*1E6)); 
            mMapView01.getOverlays().add(new MyOverLay(gp1,gp2,2,color)); 
            Log.d("xxx","pair:" + pairs[i]); 
            } 
            mMapView01.getOverlays().add(new MyOverLay(dest,dest, 3)); // use the default color 
            } 
            } 
            catch (MalformedURLException e) 
            { 
            e.printStackTrace(); 
            } 
            catch (IOException e) 
            { 
            e.printStackTrace(); 
            } 
            catch (ParserConfigurationException e) 
            { 
            e.printStackTrace(); 
            } 
            catch (SAXException e) 
            { 
            e.printStackTrace(); 
            } 
    }
4

0 回答 0