6

如何在 Android 谷歌地图 v2 中显示折线上的箭头

我已经浏览了几个链接,其中大多数都提供了指向 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但它不起作用我无法生成地图活动,因此我不能' t 使用 locationoverlays

我也有一些评论的帖子,因为它在 v3 中可用,但现在我的要求是在 v2 中

这个问题在这里被问了很多次我知道但我仍然找不到任何正确的答案

如何在折线上显示箭头以显示我应该去的方向

任何示例或教程都会非常有帮助。

谢谢

4

2 回答 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º 绘制两条线,使箭头。

于 2013-10-06T02:28:18.457 回答
2

最近,Google 在 Google Maps Android API v2 中为折线实现了此功能。

他们添加了使用自定义位图自定义多段线的起点和终点的功能。使用它,您将能够向折线添加箭头。

请参阅形状指南中有关线帽的信息。请参阅折线和多边形教程中的示例

您还可以在此处阅读相应的博客文章:

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

于 2017-03-10T13:13:30.080 回答