2017-07-10 1 views
-1

enter image description hereAndroid wie Navigationspfad wie die blaue Linie im Bild

I Navigationspfad wie Google Navigation Pfad der blauen Linie zeichnen zeichnen möchten. Wie soll ich zeichnen?

+0

Mögliches Duplikat von [Android: So zeichnen Sie Routenanweisungen Google Maps API V2 vom aktuellen Standort zum Ziel] (https://stackoverflow.com/questions/14444228/android-how-to-draw-route-directions-google -maps-api-v2-from-current-location-t) –

+0

Ich möchte nicht die Google API verwenden, ich möchte nur die Funktion implementieren, die einen blauen Pfad zeichnen –

+0

Erstellen Sie eine benutzerdefinierte Ansicht und Zeichnen Sie die Zeile mit Canvas und Malen, indem Sie den Pfad der Linie angeben. – Abbas

Antwort

1

Verwenden Sie den folgenden Code für Pass intent google Map.

String url = "http://maps.googleapis.com/maps/api/directions/xml?" 
       + "origin=" + start.latitude + "," + start.longitude 
       + "&destination=" + end.latitude + "," + end.longitude 
       + "&sensor=false&units=metric&mode=driving"; 

Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
          Uri.parse(url); 
        startActivity(intent); 

hoffen, dass es Sie ..

+0

Ich habe eine besondere Nachfrage, dass ich eine Menge Punkte habe, etwa hunderttausend. Ich muss sie mit einem Pfad verbinden, aber das wird hier zu Stottern führen. Was ist der beste Weg, um es zu lösen? –

+0

Sie meinen, Sie müssen mehrere Punkte (Ziele) in gmap verbinden. Wenn ich recht habe, erlaubt Google dir, nur 10 Punkte frei zu verbinden. Mehr als zehn hast du Kaufschlüssel. Bitte beachten Sie den folgenden Link. Es wird dir helfen. http://wptrafficanalyzer.in/blog/route-between-two-locations-mit-waypoints-in-google-map-android-api-v2/ – Suresh

+0

Vielleicht ist mein Englisch nicht gut, die Problembeschreibung ist nicht sehr klar. Ich möchte Google Map's API nicht verwenden. Ich möchte die Funktion erreichen, dass er den Weg gemalt hat, aber ohne Erfolg. Ich zeichne den Weg ist sehr vage und hässlich nach dem Vergrößern. Also ich möchte wissen, ob es keine Möglichkeit gibt, den schönen Pfad wie Google Map zu zeichnen (ps: Ich habe viele Punkte). Vielen Dank. –

0

Unter Berücksichtigung Ihrer spezifischen Frage nur helfen, den blauen Weg zeichne ich gerade Zeichnung des blauen Weg als einer der Kommentare hat bereits die Verwendung von eingeschlossen meine Antwort darauf beschränken würde, Google API zum Zeichnen der Route.

Es ist ziemlich einfach:

// PolylineOptions that defines the characteristics of line 
PolylineOptions mPolylineOptions = new PolylineOptions(); 
// points of line 
mPolylineOptions.addAll(points); 
// width of line that will be drawn 
mPolylineOptions.width(16); 
// and add the color of your line and other properties 
mPolylineOptions.color(Color.parseColor("#1976D2")).geodesic(true).zIndex(8);  
// finally draw the lines on the map 
Polyline line1 = mMap.addPolyline(mPolylineOptions); 
// change the width and color 
mPolylineOptions.width(14);  
mPolylineOptions.color(Color.parseColor("#2196F3")).geodesic(true).zIndex(8); 
Polyline line2 = mMap.addPolyline(mPolylineOptions); 

Die points berechnet, um die Google Maps API für Android verwenden. Was wir hier machen ist, dass wir nicht nur eine Linie, sondern zwei Linien mit unterschiedlicher Breite und Farbe machen. Die line1 ist die untere Linie der dunklen Farbe, die die Grenze (oder der Strich) der line2 wird, die von der hellen Farbe ist. Die .geodesic(true) teilt mit, dass der Pfad, der gezeichnet werden soll, glatt statt in scharfen Kanten sein sollte, und .zIndex gibt die Stapelreihenfolge dieser Zeile relativ zu anderen Linien auf der Karte an. Der Standard-Z-Indexwert ist 0.

Der obige Code folgende Zeile Ausgang gibt:

enter image description here

Weitere Details finden this und this.

+0

Ich habe eine besondere Nachfrage, dass ich eine Menge Punkte habe, etwa hunderttausend. Ich muss sie mit einem Pfad verbinden, aber das wird hier zu Stottern führen. Was ist der beste Weg, um es zu lösen? –

+0

"Einhunderttausend" ist eine große Sache! Lass mich zuerst wissen, ob sie die Punkte des gleichen Pfades sind (d. H. Sie liegen alle auf demselben Pfad) oder sie sind nur zufällige Punkte.Wenn dies der Fall ist, dann reduziert die Array-Liste, die Sie verwenden, um diese Punkte vor dem Hinzufügen zu den PolylineOptions zu speichern, die Größe der Liste um einen Faktor von 4 oder 5 und sehen, ob die "Ruckler" vorhanden sind, wenn sie immer noch reduziert werden sie um einen größeren Faktor. Wenn Letzteres der Fall ist, müssen Sie möglicherweise GOOGLE bezahlen oder den Link besuchen, den @Suresh bereitgestellt hat. –

+0

Vielleicht ist mein Englisch nicht gut, die Problembeschreibung ist nicht sehr klar. Ich möchte Google Map's API nicht verwenden. Ich möchte die Funktion erreichen, dass er den Weg malte, aber ohne Erfolg. Ich zeichne den Weg ist sehr vage und hässlich nach dem Vergrößern. Also ich möchte wissen, ob es keine Möglichkeit gibt, den schönen Pfad wie Google Map zu zeichnen (ps: Ich habe viele Punkte). Vielen Dank. –

Verwandte Themen