2017-02-28 7 views
5

Ich habe zwei Standorte, und ich brauche zwei zeichnen Polylinie zwischen diesen beiden Ort, ich bin fertig mit dem Zeichnen der Polylinie zwischen diesen Orten.Wie zeichne Polylinie auf Google-Karte mit zwei verschiedenen Farben zwischen zwei Standorten

Ausgabe ist, dass Linienzug ist von einer Farbe, aber aufgrund Anforderung i Linienzug von zwei verschiedenen Farben zu zeichnen, wie in unten dargestellt: - enter image description here

wenn jemand einige sinnvollen Code-Schnipsel hat oder einen Vorschlag zu diesem Problem ... Vielen Dank im Voraus

Antwort

7

Seit 15. Februar 2017 können Sie die Strichlinie einer Polylinie ändern. Von the Release Notes (Hervorhebung von mir)

Diese Version enthält benutzerdefinierte Styling für Polylinien und für die Umrisse von Polygonen und Kreisen. Ändern Sie das Strichmuster von einer durchgezogenen Linie (Standard) zu Ihrer Auswahl aus Bindestrichen, Punkten und Lücken. In Polylinien und Polygonen können Sie eine Abschrägung oder einen runden Verbindungstyp angeben, um die standardmäßigen festen Gehrungsverbindungen zu ersetzen. Sie können auch die Begrenzung an jedem Ende einer Polylinie von einem Anschlag (Standard) zu einer quadratischen oder runden Begrenzung ändern oder eine benutzerdefinierte Bitmap angeben, die als Begrenzung verwendet wird. Das Design von Strichmustern, Verbindungstypen und Start-/Endkappen ist in der vollständigen API, jedoch nicht im Lite-Modus verfügbar.

Beachten Sie, dass Sie Google Play Services 10.2 oder höher verwenden müssen. So in Ihrem build.gradle müssen Sie hinzufügen:

dependencies { 
    compile 'com.google.android.gms:play-services-maps:10.2.0' 
} 

Sie können die Strichmuster Ihrer Linienzug angeben, aber Sie können nicht die Farbe ändern, so müssen Sie eine feste Polylinie zeichnen und eine polypine auf gestrichelte oben drauf gewünschten Muster zu erreichen (berücksichtigen Sie, dass Sie zwei Polylinien zeichnen werden wird statt nur einer und dies die Leistung beeinträchtigen können):

List<LatLng> latLngs = new ArrayList<>(); 
// Add all your LatLngs to the List 

// Draw a solid green polyline 
mMap.addPolyline(new PolylineOptions() 
     .addAll(latLngs) 
     .color(Color.GREEN)); 

// Draw a dashed (60px spaced) blue polyline 
List<PatternItem> dashedPattern = Arrays.asList(new Dash(60), new Gap(60)); 
mMap.addPolyline(new PolylineOptions() 
     .addAll(latLngs) 
     .pattern(dashedPattern) 
     .color(Color.BLUE)); 

Das Ergebnis sieht wie folgt aus:

enter image description here

Sie können weitere Informationen über die neue Styling-Polylinien-Funktion here finden.

+0

Danke Buddy ... Du hast es genagelt ... habe meinen Tag gemacht, ich habe das schon lange gesucht und konnte die Lücke nicht finden. Danke für deine Bemühungen ... Happy Coding. –

0
Random rnd = new Random(); 
    int color = Color.argb(255, rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)); 

--- Schleife für jeden lat lng und fügen ----

mMap.addPolyline(new PolylineOptions() 
    .add(new LatLng(lats, lons), new LatLng(late,lone)) 
    .width(5) 
    .color(color)); 

ändern der c Codierung nach Ihren Anforderungen

+0

Ich habe zwei spezifische Farben grün und blau, ich muss diese zwei Farben verwenden. Nach Ihrem Code wird eine Polylinie von zufälligen Farben gezeichnet. –

+1

Wie ich es erwähnt habe. Verwenden Sie die Farbcodierung basierend auf Ihren Anforderungen. Bitte erwarte nicht, dass du mit dem Löffel gefüttert wirst. Es tut uns leid. –

+1

danke für die Erwähnung von Löffel gefüttert ... aber für Sie freundliche Informationen Ich habe bereits diesen Ansatz durchlaufen, bevor Sie dieses Problem veröffentlichen. Kumpel beurteile die Person nicht nach deinen Annahmen und deinem Denkvermögen. –

Verwandte Themen