-1

javaだけを使用して、つまりasp.net、php、または他の言語を使用せずに、GoogleマップAPIでマーカーを接続する方法は? 私はただの初心者です。Google android プロジェクトの対応する場所を示す複数のマーカーがマップ上にあります。

4

1 に答える 1

1

(マーカーの表示に使用される をOverlay使用する代わりに)独自のクラスを作成し、線を描画するメソッドを実装します。マーカーを表示するために使用する通常のオーバーレイを追加する前に、このオーバーレイを次のように追加します。ItemizedOverlaydraw()MapView

mMapView.getOverlays().add(mPathOverlay);
mMapView.getOverlays().add(mMarkersOverlay);

クラスは次のPathOverlayようになります。位置は、すでに s に変換されているマーカーの位置になりますGeoPoint

public class PathOverlay extends Overlay {

    private List<GeoPoint> mPositions;
    private Path mPath;
    private Paint mPathPaint;
    private Point mHelperPoint = new Point();

    public PathOverlay(List<GeoPoint> positions) {
        mPositions = positions;
        mPath = new Path();
        mPathPaint = new Paint();
        mPathPaint.setColor(0xDDA4C639);
        mPathPaint.setStyle(Paint.Style.STROKE);
        // add more path styling here
    }

    @Override
    public void draw(Canvas canvas, MapView mapView, boolean shadow) {
        if (shadow) {
            return; // path has no shadow
        }
        mPath.reset();
        boolean start = true;
        Point prev = new Point();
        for (Position p : mPositions) {
            mapView.getProjection().toPixels(p.geoPoint, mHelperPoint);
            if (start) {
                mPath.moveTo(mHelperPoint.x, mHelperPoint.y);
                prev.set(mHelperPoint.x, mHelperPoint.y);
                start = false;
            } else {
                int dx = prev.x - mHelperPoint.x;
                int dy = prev.y - mHelperPoint.y;
                mPath.lineTo(mHelperPoint.x, mHelperPoint.y);
                prev.set(mHelperPoint.x, mHelperPoint.y);
            }
        }
        canvas.drawPath(mPath, mPathPaint);
    }
}
于 2012-11-18T19:13:07.060 に答える