Как я могу нарисовать стрелку, показывающую направление вождения в MapView?
-
30-09-2019 - |
Вопрос
Я использую этот компонент Google Maps MapView
в приложении Android. Я могу использовать местоположение GPS, чтобы показать свое местоположение с точкой. Но вместо этого я хотел бы показать стрелу, которая указывает на направление вождения (подшипник). Я думаю, что я могу использовать bearing
значение, чтобы получить угол стрелки.
Как я могу это сделать?
Решение
Предполагая, что у вас есть местоположение, затем получите подшипник, выполняя:
float myBearing = location.getBearing();
Для реализации наложения, которое вы будете использовать Исследование и Overlayitem. Анкет Вам нужно будет подключить OplayItem, чтобы добавить функциональность, чтобы повернуть притяжительные. Что-то вроде:
public BitmapDrawable rotateDrawable(float angle)
{
Bitmap arrowBitmap = BitmapFactory.decodeResource(context.getResources(),
R.drawable.map_pin);
// Create blank bitmap of equal size
Bitmap canvasBitmap = arrowBitmap.copy(Bitmap.Config.ARGB_8888, true);
canvasBitmap.eraseColor(0x00000000);
// Create canvas
Canvas canvas = new Canvas(canvasBitmap);
// Create rotation matrix
Matrix rotateMatrix = new Matrix();
rotateMatrix.setRotate(angle, canvas.getWidth()/2, canvas.getHeight()/2);
// Draw bitmap onto canvas using matrix
canvas.drawBitmap(arrowBitmap, rotateMatrix, null);
return new BitmapDrawable(canvasBitmap);
}
Тогда все, что еще предстоит сделать, - это применить этот новый притяжение к Overlayitem. Это делается с использованием метода setmarer ().