1

我正在使用 JXMapKit 和 openStreetMap 作为提供者,我正在尝试找到一种在地图上显示路线的方法。然后使用这些路线,以便车辆可以跟随它们。反正有这样做还是有其他选择?

提前致谢。

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();
    }
}

其中 points 是您的 GeoPosition 对象列表,它们构成您的路线。

然后将此 Painter 作为 OverlayPainter 添加到 MapKit:

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