Android谷歌路线图中折线上的箭头标记

6
如何在Android Google地图V2上显示多段线的箭头?
我查阅了一些链接,大多数都给出了JS的链接 https://google-developers.appspot.com/maps/documentation/javascript/examples/overlay-symbol-arrow ,但是我需要Android而不是JS,并且我无法在Android中使用那些代码。
有些人使用MapActivity,我也按照教程创建了一个MapActivity https://developers.google.com/maps/documentation/android/v1/hello-mapview ,但它没有起作用,我无法生成mapactivity,因此我无法使用locationoverlays。
我还看到一些帖子评论说它在V3中可用,但现在我的需求是在V2中。
我知道这个问题在这里被问了很多次,但仍然找不到任何正确的答案。
如何在多段线上显示箭头以指示方向,将要去哪里?
任何示例或教程都将非常有帮助。
谢谢。

2
可能是如何在Android中为我的折线创建方向箭头的重复问题。 - ByteSlinger
2个回答

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点(在那里您将显示箭头)并使用45º的翻译算法绘制两条线以形成箭头。

1
这个几乎完美地工作。问题在于位图的底部从您指定的位置开始,因此箭头出现在线的上方。它看起来像这样几乎 <____ 而不是 <---。有什么解决办法吗? - Kartik_Koro
1
当您添加标记时,可以标记位移。marker.setAnchor(0.5f, 0f); 只需调整变量即可。 - Alpha

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接