どのようにアンドロイドの2つの場所の間のルートを表示するには?

私はこのURLを使用しています

http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f

2つのポイント間の方向ページを表示します。 2つのポイント間のルートを取得するためにこのURLに何が追加できるのかを知りたいと思います。

現在、方向ページを最初に表示しています。ルートタブを押すとルートページが表示されますが、必要なものは直接ルートページに移動する必要があります。

私はこのコードを使用しています

String new_url = "http://maps.google.com/maps?saddr=" + ServerData.LATTITUDE + "," +  ServerData.LONGITUDE + "&daddr=" + latitude + "," + longitude ;

Intent intent_map = new Intent(Intent.ACTION_VIEW, Uri.parse(new_url));
startActivity(intent_map);

助けてください

1
追加された 著者 Paresh Mayani,
Max Gontarのこの回答を確認してください: J2ME/Android/BlackBerry - 運転ルート、2つの場所間のルート
追加された 著者 Paresh Mayani,
私はこのkmlのURLに複数の緯度と経度を渡すことができますか?
追加された 著者 Girish Patel,

3 答え

AndroidでデフォルトのAndroidマップアクティビティを開くことでも同じことができます。

このサンプルコードを見ることができます:

例:URL: - `

https://maps.google.com/maps?saddr=28.61000000,77.23000000&daddr=28.98000000,77.02000000


   String uri = "http://maps.google.com/maps?saddr=" + currentLatitude+","+currentLongitude+"&daddr="+destLatitude+","+destLongitude;
    Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri));
    intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
    startActivity(intent);

Screenshot Attached enter image description here

2
追加された

以下のコードを試してみてください。以下のコードは、緯度と経度のリストを返します。キャンバスを使用して、最も近い点の線を描く必要があります。以下のコードには、それを利用できる場所マーカー文字列のリストもあります。

private ArrayList 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 pathConent = new ArrayList();
        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();
        NodeList place=doc.getElementsByTagName("Placemark");
        for(int i=0;i tmpcoords=new ArrayList();
        for(int i=0;i
2
追加された

Androidは内部アプリケーションへのアクセスをサポートしており、アンドロイドの内部地図活動と呼ばれる最高のソリューションは、2つの地点間のルートを表示します。以下のコードを参照してください。

String uri = "http://maps.google.com/maps?saddr=" + currentLatitude+","+currentLongitude+"&daddr="+fixedLatitude+","+fixedLongitude;
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri));
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
startActivity(intent);

これは、組み込みのマップアクティビティを呼び出し、現在の緯度と経度との間のルートパスを描画します。

0
追加された