如何在Android Google地图v2中显示Polyline上的箭头
我已经浏览了几个链接,其中大部分都链接到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
这个问题在这里被多次询问我知道,但我仍然找不到任何正确的答案
如何在折线上显示箭头以显示我应该去的方向
任何示例或教程都会非常有用。
感谢
答案 0 :(得分: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 :(得分:2)
最近,Google在Google Maps Android API v2中为折线实现了此功能。
他们添加了使用自定义位图自定义折线的起始和结束大写的功能。使用此功能,您可以将箭头添加到折线。
在Shapes Guide中查看有关行上限的信息。请参阅“折线和多边形”教程中的example。
您还可以在此处阅读相应的博文:
https://maps-apis.googleblog.com/2017/02/styling-and-custom-data-for-polylines.html