多角形をいくつかの点から描画する必要があります(緯度、経度があります)。 私はこれらの2つの答えから私の実装を基づかています:私はこのようないくつかのピンのためのオーバーレイを設定し、私のMapOverlayAction.javaで Drawing an empty polygon given a set of points on a Map Overylay (Android 2.1) Drawing a line/path on Google MapsキャンバスがAndroidのマップビューでポリゴンを描画する
:
itemizedoverlayはOverlayItems の配列ですmapOverlays.add(itemizedoverlay);
setLocationOverlay(mapView, mapController);
これは正常に動作します。しかし、私はまた、これらの点(それぞれの点が頂点である)のためのポリゴンを描く必要があります。だから私は何をすべきかは、次のとおりです。answersIの両方で
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);
私の質問があり、どこからそのキャンバスを得るのですか? 私はすべてこのコードを私のアクティビティクラスに持っています。
ありがとうございます!
ありがとう、私は私の質問で引用された私の解決策でその質問を使用しています。とにかく、今私はちょうどそれが別の方法でやり遂げることができると思ったと言いました。ありがとう – marimaf