首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JXMapKit OpenStreetmaps创建路由

JXMapKit OpenStreetmaps创建路由
EN

Stack Overflow用户
提问于 2011-05-05 15:52:01
回答 1查看 1.9K关注 0票数 1

我正在使用JXMapKit和openStreetMap作为提供商,我正在尝试找到一种在地图上显示路线的方法。然后使用这些路线,以便车辆可以跟随它们。有没有办法这样做,或者有什么替代方案?

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-04 22:20:25

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

您可以编写自己的Painter类并覆盖paint方法来绘制线条:

代码语言:javascript
复制
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中:

代码语言:javascript
复制
myMapKit.getMainMap().setOverlayPainter(new MyPainter(myMockPoints)); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5894377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档