2013-08-16 11 views
7

wie Pfeilspitzen über Linienzug in Android Google map v2 zeigenPfeil Mark über Linienzug in Android Google Routenkarte

Ich habe durch einige Links gegangen, die meisten von ihnen gibt Link zu JS https://google-developers.appspot.com/maps/documentation/javascript/examples/overlay-symbol-arrow aber ich brauche in Android nicht JS und ich kann nicht diese Codes in Android verwenden

Einige verwenden MapActivity folgte ich ein Tutorial Karte Aktivität zu https://developers.google.com/maps/documentation/android/v1/hello-mapview creat, aber es hat nicht funktioniert ich kann die mapactivity erzeugen und so konnte ich nicht die locationoverlays verwenden

Ich habe auch einige Kommentare kommentieren wie es in v3 zur Verfügung, aber für jetzt meine Anforderung ist in v2

diese Frage wurde hier schon oft viel gefragt, ich weiß, aber noch konnte ich keine richtige Antwort

finden, wie ich eine Pfeilspitze zeigen kann über die Polylinie, um die Richtung zu zeigen, wo ich gehen soll

alle Beispiele oder Tutorials werden sehr hilfreich sein.

dank

Antwort

3

Im Google Maps API v2 Demo gibt es eine MarkerDemoActivity Klasse, in der Sie, wie ein benutzerdefiniertes Bild wird auf einen GoogleMap gesetzt sehen. Sie könnten einen Marker verwenden, um die Pfeilspitze wie diese zu zeigen:

// First you need rotate the bitmap of the arrowhead somewhere in your code 
Matrix matrix = new Matrix(); 
matrix.postRotate(rotationDegrees); 
// Create the rotated arrowhead bitmap 
Bitmap arrowheadBitmap = Bitmap.createBitmap(originalBitmap, 0, 0, 
         width, height, matrix, true); 
// Now we are gonna to add a marker 
mArrowhead = mMap.addMarker(new MarkerOptions() 
.position(POSITION) 
.icon(arrowheadBitmap)); 

Einige Erläuterungen: Wenn Sie eine Route zeichnen, oder wenn Sie bekam nur zwei Punkte, ziehen sie die rotationDegrees Sie können zu bekommen bekommen durch dies zu tun:

rotationDegrees = Math.toDegrees(Math.atan2(originLat-destinyLat, originLon-destinyLon)); 

der klassische Dreh Spiel Algorithmus: D

Seien Sie sicher, dass Sie Pfeilspitze Bild nach oben zeigt. Beachten Sie, dass Sie, wenn Sie ein Bild nicht zum Anzeigen der Pfeilspitze verwenden möchten und stattdessen nur Polylinien verwenden möchten, dies erreichen, indem Sie den letzten LatLng-Punkt (wo Sie die Pfeilspitze anzeigen) verwenden und a verwenden translation Algorithmus von 45º, um die zwei Linien zu zeichnen, die die Pfeilspitze machen.

+1

Diese fast perfekt funktioniert. Das Problem besteht darin, dass der untere Rand der Bitmap an der von Ihnen angegebenen Position beginnt. Der Pfeil erscheint daher leicht über der Linie. Es sieht fast wie <____ statt <--- aus. Irgendwelche Lösungen? –

+1

Wenn Sie Marker hinzufügen, können Sie die Verschiebung markieren. marker.setAnchor (0.5f, 0f); spiele einfach mit Variablen – Alpha

2

Vor kurzem hat Google diese Funktion für Polylinien in Google Maps Android API v2 implementiert.

Sie haben die Möglichkeit hinzugefügt, die Start- und Endkappen von Polylinien mit einer benutzerdefinierten Bitmap anzupassen. Damit können Sie Ihren Polylinien Pfeilspitzen hinzufügen.

Weitere Informationen zu Line Caps finden Sie unter Shapes Guide. Sehen Sie sich ein example im Polylinien- und Polygon-Tutorial an.

Sie können auch die entsprechenden Blog-Eintrag hier lesen:

https://maps-apis.googleblog.com/2017/02/styling-and-custom-data-for-polylines.html