Мне нужно нарисовать полигон из нескольких точек (у меня есть их широта, долгота).
Я основываю свою реализацию на этих двух ответах:
Рисование пустого многоугольника с учетом набора точек на карте Overylay (Android 2.1)
Рисование линии / пути на Картах Google
В моем MapOverlayAction.java я установил оверлей для некоторых пинов, как это:
mapOverlays.add(itemizedoverlay);
setLocationOverlay(mapView, mapController);
, где itemizedoverlay - массив элементов OverlayItems
Это отлично работает. Но мне также нужно нарисовать многоугольник для этих точек (где каждая точка является вершиной). Итак, что я делаю:
Path path = new Path();
for (int j = 0; j < itemizedoverlay.size(); j++) {
GeoPoint gP1 = itemizedoverlay.getItem(j).getPoint();
Point currentScreenPoint = new Point();
Projection projection = mapView.getProjection();
projection.toPixels(gP1, currentScreenPoint);
if (j == 0)
path.moveTo(currentScreenPoint.x, currentScreenPoint.y);
else
path.lineTo(currentScreenPoint.x, currentScreenPoint.y);
}
В обоих ответах, основанных на моем решении, вызывается следующий метод:
Paint mPaint = new Paint();
mPaint.setDither(true);
mPaint.setColor(Color.RED);
mPaint.setStyle(Paint.Style.FILL_AND_STROKE);
mPaint.setStrokeJoin(Paint.Join.ROUND);
mPaint.setStrokeCap(Paint.Cap.ROUND);
mPaint.setStrokeWidth(2);
canvas.drawPath(path, mPaint);
Мой вопрос: откуда мне взять этот холст?
У меня есть весь этот код в моем классе деятельности.
Спасибо!