【问题标题】:Dynamically updating markers in swing JXMapKit [closed]Swing JXMapKit中的动态更新标记[关闭]
【发布时间】:2013-04-23 14:11:47
【问题描述】:

我正在寻找一种以编程方式将航点添加到使用JXMapKit(在Java Swing 工具包上运行)显示的地图的方法。我想在列表中提供地理坐标列表。

【问题讨论】:

    标签: java swing jxmapkit


    【解决方案1】:

    您必须通过WaypointPainter 提供Waypoints 并将这个painter 传递给JXMapViewer。默认情况下,WaypointPainter 接受 Set<Waypoint>,因此我们可以使用我们自己的接受 List 的类来扩展 WaypointPainer

    import org.jdesktop.swingx.JXMapKit;
    import org.jdesktop.swingx.JXMapViewer;
    import org.jdesktop.swingx.mapviewer.DefaultWaypoint;
    import org.jdesktop.swingx.mapviewer.Waypoint;
    import org.jdesktop.swingx.mapviewer.WaypointPainter;
    
    import javax.swing.*;
    import java.util.ArrayList;
    import java.util.HashSet;
    import java.util.List;
    
    class CustomPainter extends WaypointPainter<JXMapViewer> {
        public void setWaypoints(List<? extends Waypoint> waypoints) {
            super.setWaypoints(new HashSet<Waypoint>(waypoints));
        }
    }
    
    public class Waypoints {
        public static void main(String[] args) {
            List<DefaultWaypoint> waypoints = new ArrayList<DefaultWaypoint>();
            waypoints.add(new DefaultWaypoint(51.5, 0));
    
            JXMapKit jxMapKit = new JXMapKit();
            jxMapKit.setDefaultProvider(JXMapKit.DefaultProviders.OpenStreetMaps);
            CustomPainter painter = new CustomPainter();
            painter.setWaypoints(waypoints);
            jxMapKit.getMainMap().setOverlayPainter(painter);
    
            final JFrame frame = new JFrame();
            frame.add(jxMapKit);
            frame.setSize(300, 300);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLocationRelativeTo(null);
            SwingUtilities.invokeLater(new Runnable() {
                @Override
                public void run() {
                    frame.setVisible(true);
                }
            });
        }
    }
    

    【讨论】:

    • 谢谢....它的工作!!!
    猜你喜欢
    • 1970-01-01
    • 2012-08-03
    • 2010-12-26
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    • 2015-02-22
    • 1970-01-01
    • 2012-02-13
    相关资源
    最近更新 更多