2013-08-16 22 views
7

jak pokazać groty strzałek ponad polilinii w Android Google Map v2Strzałka Mark nad polilinii w Androidzie Google Trasa Map

I już przez kilka linków, większość z nich daje link JS https://google-developers.appspot.com/maps/documentation/javascript/examples/overlay-symbol-arrow ale muszę w Androidzie nie JS i nie mogę korzystać z tych kodów w Androidzie

Niektórzy stosują mapActivity i przestrzegać samouczek creat aktywność mapę zbyt https://developers.google.com/maps/documentation/android/v1/hello-mapview ale nie zrobił praca nie mogę wygenerować mapactivity a więc nie mogłem korzystać z locationoverlays

Mam też kilka komentarzy do komentowania jak jest ona dostępna w v3 ale teraz moje wymóg jest w v2

kwestia ta został poproszony wiele wiele razy tutaj wiem, ale wciąż nie mogłem znaleźć żadnego właściwą odpowiedź

jak mogę pokazać się grot nad polilinia, aby wskazać kierunek, w którym mam się udać,

wszelkie przykłady lub samouczki będą bardzo pomocne.

dzięki

Odpowiedz

3

W Google Maps API v2 Demo istnieje klasa MarkerDemoActivity, w którym można zobaczyć, jak własny obraz jest ustawiony na GoogleMap. Można użyć markera pokazać grot tak:

// 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)); 

Niektóre wyjaśnienia: Podczas rysowania trasy, lub jeśli po prostu dostał dwa punkty rysować, aby uzyskać rotationDegrees można je dostać w ten sposób:

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

klasyczny algorytm rotacji gry: D

Bądź pewny, że grot obraz jest skierowana w górę. Zwróć uwagę, że jeśli nie chcesz używać Obrazka do pokazania grotu strzałki, a zamiast tego chcesz używać tylko Polilinii, możesz to osiągnąć, biorąc ostatni punkt LatLng (gdzie zamierzasz wyświetlić grot strzałki) i użyć translation algorytm o 45º, aby narysować dwie linie tworzące grot strzałki.

+1

To działa prawie idealnie. Problem polega na tym, że dolna część mapy bitowej rozpoczyna się od określonej pozycji, więc strzałka pojawia się nieco powyżej linii. Wygląda to prawie <____ zamiast <---. Jakieś rozwiązania? –

+1

po dodaniu znacznika można oznaczyć przemieszczenie. marker.setAnchor (0,5f, 0f); po prostu baw się zmiennymi – Alpha

2

Niedawno Google zaimplementowało tę funkcję dla polilinii w Google Maps Android API v2.

Dodano możliwość dostosowania początkowych i końcowych limitów polilinii za pomocą niestandardowej mapy bitowej. Używając tego, będziesz mógł dodawać groty strzałek do twoich polilinii.

Zobacz informacje na temat numerów linii w polu Shapes Guide. Zobacz example w samouczku Polilinii i Poligonów.

Można również przeczytać odpowiedni blogu tutaj:

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