0

簡単な作業で問題が発生しています。

下の地図の左上に正方形を描いてみました。(地図投影の左上)

ここに画像の説明を入力してください

しかし、TileSystem(TileSystem.PixelXYToLatLong)を使用してピクセル0,0を緯度と経度に変換すると、ポイントは地図上ではなく画面上に描画されているように見えます...なぜですか?

コード:

@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow) {
    // Translate point to x y coordinates on the screen

    Paint paint = new Paint();
    paint.setStyle(Paint.Style.FILL);

    Point point1_draw = new Point();
    Point point2_draw = new Point();
    Point point3_draw = new Point();
    Point point4_draw = new Point();

    mapView.getProjection().toPixels(geoPointFromScreenCoords(0,0,mapView),
            point1_draw);
    mapView.getProjection().toPixels(geoPointFromScreenCoords(0,100,mapView),
            point2_draw);
    mapView.getProjection().toPixels(geoPointFromScreenCoords(100,0,mapView),
            point3_draw);
    mapView.getProjection().toPixels(geoPointFromScreenCoords(100,100,mapView),
            point4_draw);

    Path path = new Path();
    path.setFillType(Path.FillType.EVEN_ODD);
    path.moveTo(point1_draw.x, point1_draw.y);
    path.lineTo(point2_draw.x, point2_draw.y);
    path.lineTo(point3_draw.x, point3_draw.y);
    path.lineTo(point4_draw.x, point4_draw.y);
    path.lineTo(point1_draw.x, point1_draw.y);
    path.close();

     //canvas.drawCircle(120, 20, 15, paint);
    canvas.drawPath(path, paint);

    super.draw(canvas, mapView, false);


}`

ItemizedOverlayを拡張しています。そして、このパスは地図上ではなく画面上に描画されます。だから私が走り去ると、この道は地図と一緒に移動します...そして私はそれを望んでいません。

4

1 に答える 1

0

なぜdraw代わりにオーバーライドするのaddItemですか?

これが地図に描く方法のビデオです

于 2012-05-03T17:49:13.500 に答える