JXMapKit
(Java Swing ツールキットで実行される)を使用して表示されるマップにウェイポイントをプログラムで追加する方法を探しています。リスト内の地理座標のリストを提供したいと思います。
質問する
1893 次
1 に答える
3
Waypoints
を介して提供し、WaypointPainter
このペインタを JXMapViewer に渡す必要があります。デフォルトでは、WaypointPainter
は a を受け入れるので、代わりにa を受け入れる独自のクラスでSet<Waypoint>
拡張できます。WaypointPainer
List
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);
}
});
}
}
于 2013-04-23T20:02:31.080 に答える