1

私はプロバイダーとしてopenStreetMapでJXMapKitを使用しており、地図上にルートを表示する方法を見つけようとしています。その後、車両がルートをたどることができるようにルートが使用されます。とにかくそうする方法はありますか、それとも代替手段はありますか?

前もって感謝します。

4

1 に答える 1

1

はい、できます。このリンクから取得:http://www.naxos-software.com/blog/index.php?/ archives / 92-TracknMash-Openstreetmap-Karten-in-JavaSwing-mit-JXMapViewer.html

独自のPainterクラスを作成し、paintメソッドをオーバーライドして線を描画します。

public void paint... {
g = (Graphics2D) g.create();
    // convert from viewport to world bitmap
    Rectangle rect = object.getViewportBounds();
    g.translate(-rect.x, -rect.y);

    //set the line properties
    g.setColor(Color.RED);
    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    g.setStroke(new BasicStroke(2));

    // do the drawing
    int lastX = -1;
    int lastY = -1;
    for (GeoPosition point : points) {
        Point2D pt = object.getTileFactory().geoToPixel(point, object.getZoom());
        if (lastX != -1 && lastY != -1) {
            g.drawLine(lastX, lastY, (int) pt.getX(), (int) pt.getY());
        }
        lastX = (int) pt.getX();
        lastY = (int) pt.getY();
    }
}

ポイントは、ルートを形成するGeoPositionオブジェクトのリストです。

次に、このPainterをOverlayPainterとしてMapKitに追加します。

myMapKit.getMainMap().setOverlayPainter(new MyPainter(myMockPoints)); 
于 2011-11-04T14:20:25.060 に答える