JXMapKit OpenStreetmaps создает маршруты - PullRequest
1 голос
/ 05 мая 2011

Я использую JXMapKit с openStreetMap в качестве поставщика и пытаюсь найти способ отображения маршрутов на карте.Затем маршруты используются, чтобы транспортные средства могли следовать за ними.Есть ли в любом случае, чтобы сделать это или есть какие-либо альтернативы?

Заранее спасибо.

1 Ответ

1 голос
/ 04 ноября 2011

Да, вы можете. По этой ссылке: http://www.naxos -software.com / blog / index.php? /Archives/92-TracknMash-Openstreetmap-Karten-in-JavaSwing-mit-JXMapViewer.html

Вы пишете свой собственный класс Painter и переопределяете метод рисования для рисования линий:

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 в свой MapKit как OverlayPainter:

myMapKit.getMainMap().setOverlayPainter(new MyPainter(myMockPoints)); 
...