是否可以使用百度地图在折线上添加箭头?
答案 0 :(得分:0)
我找到了自己的答案并发布了答案,因此可以为他人提供帮助。 就我而言,我需要在折线的末尾添加箭头。
我找不到使用百度SDK执行此操作的任何内置方法,因此我想出了自定义解决方案。 想法是找到折线的最后两个点之间的航向角,然后将箭头位图旋转该角度,然后将角度定位在折线的末端。
val points = polyline.points
val p1 = points[points.size -1]
val p2 = points[points.size -2]
// heading angle between points (+180 is for bringing the value in 0..360 range, as heading's default range is -180..180 degree)
val angle = SphericalUtil.computeHeading(p1,p2)+180 // SphericalUtil link -> https://github.com/googlemaps/android-maps-utils
// rotate the bitmap to fit last two points direction
val rotatedArrowBitmap = arrowBitmap.rotate(angle) // .rotate(value) is a kotlin extention, find ful method below
val markerOptions = MarkerOptions().position(LatLng(p1.latitude, p1.longitude))
.icon(BitmapDescriptorFactory.fromBitmap(bitmap))
.anchor(0.5f, 0.5f) // this will fit marker center with the p1 coordinate
.flat(true) // this will make marker rotate with map
map.addOverlay(markerOptions)