2011-05-05 65 views
1

我使用JXMapKit与openStreetMap作为提供程序,我试图找到一种方法来显示地图上的路线。然后使用路线,以便车辆可以跟随它们。无论如何这样做还是有其他选择吗?JXMapKit OpenStreetmaps创建路由

在此先感谢。

回答

1

是的,你可以。从这个链接摘自:http://www.naxos-software.com/blog/index.php?/archives/92-TracknMash-Openstreetmap-Karten-in-JavaSwing-mit-JXMapViewer.html

你写你自己的画家类并覆盖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对象,形成路线的列表。

然后你这个画家添加到您的MapKit作为OverlayPainter:

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