2017-02-13 7 views
0

Как вы получаете полилинию, которая уже нанесена на карту Google в качестве изображения? Только полилиния, без макета карты.Android - Получите полилинию как изображение

Я построил полилинию на карте Google, и я хочу получить полилинию как изображение. Так что только показать красную линию без карты

https://i.stack.imgur.com/vUqS3.png

+0

Удалось ли решить эту проблему? Мне нужна точно такая же вещь – Favolas

+0

@Favolas yup. проверьте мой ответ. извините за поздний ответ tho – Alooza

+0

Мне также удалось добиться этого. Вот мой [подход] (http://stackoverflow.com/questions/44303951/coordinates-scale-not-correct-when-drawing-a-polyline-on-an-view). – Favolas

ответ

1

мне удалось решить эту проблему путем изменения координат к точке

private Bitmap createPolylineBitmap() { 
    Bitmap bitmap = Bitmap.createBitmap(mapFragment.getView().getWidth(), mapFragment.getView().getHeight(), Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(bitmap); 

    Paint paint = new Paint(); 
    paint.setColor(ContextCompat.getColor(this, R.color.purple)); 
    paint.setStrokeWidth(10); 
    paint.setDither(true); 
    paint.setStyle(Paint.Style.STROKE); 
    paint.setStrokeJoin(Paint.Join.ROUND); 
    paint.setStrokeCap(Paint.Cap.ROUND); 
    paint.setAntiAlias(true); 

    for (int i = 0; i < coordinates.size(); i++) { 
     LatLng latLng1 = new LatLng(coordinates.get(i).latitude, coordinates.get(i).longitude); 
     LatLng latLng2 = new LatLng(coordinates.get(i + 1).latitude, coordinatest.get(i + 1).longitude); 
     canvas.drawLine((LatLngToPoint(latLng1).x), ((LatLngToPoint(latLng1).y)), (LatLngToPoint(latLng2).x), (LatLngToPoint(latLng2).y), paint); 
    } 

    return bitmap; 
} 

private Point LatLngToPoint(LatLng coordinate) { 
    Projection projection = googleMap.getProjection(); 

    return projection.toScreenLocation(coordinate); 
}