Search code examples
androidgoogle-mapsdirections

How to make Google Maps direction using android?


Does Google Maps API add-on for Android SDK support the routing(directions) functions on Google maps. If No, is there any good method to be used in implementing a directions for Google maps on android

The DrivingDirection package (com.google.googlenav.DrivingDirection) is removed since Android SDK 1.1.


Solution

  • to get driving directions from src to destination.

    use following method to get driving directions in 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;
        }