2013-08-16 42 views
7

如何顯示在Android的谷歌地圖V2在折線箭頭箭頭標記過折線在谷歌Android路線圖

我已經通過幾個環節不見了,他們大多給出了鏈接到JS https://google-developers.appspot.com/maps/documentation/javascript/examples/overlay-symbol-arrow,但我在Android中不需要JS我不能使用這些代碼在Android的

一些使用mapActivity我也跟着教程來創造地圖活動太 https://developers.google.com/maps/documentation/android/v1/hello-mapview但它沒有工作,我無法生成mapactivity,因此我不能使用locationoverlays

我也有一些帖子評論因爲它是在V3可用,但現在我的要求是在V2

這個問題已經被問很多很多次在這裏我都知道,但是我找不到任何合適的回答

我怎麼可以顯示一個箭頭在多段線顯示我應該去的方向

任何示例或教程都將非常有幫助。

感謝

回答

3

Google Maps API v2 Demo有一個MarkerDemoActivity類中,你可以看到一個自定義圖像是如何設置的GoogleMap的。你可以使用一個標記,以表明這樣的箭頭:

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

一些澄清: 當你繪製的路線,或者如果你只是得到了兩個點來繪製,得到rotationDegrees你可以讓他們通過這樣做:

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

經典的旋轉游戲算法:d

確保了您的箭頭圖像朝上。請注意,如果您不想使用圖像來顯示箭頭,而不是使用圖像,則只需使用多段線,您可以通過獲取最後的LatLng點(您要顯示箭頭的位置)並使用translation算法以45º繪製出兩個箭頭所在的線。

+1

這工作幾乎是完美的。問題是位圖的底部從你指定的位置開始,所以箭頭出現在線的上方。它看起來像這個<____而不是<---。任何解決方案 –

+1

當你添加標記,你可以標記位移。 marker.setAnchor(0.5f,0f);只是玩變數 – Alpha