2
JXMapKit
(Java Swing 툴킷에서 실행)을 사용하여 프로그래밍 방식으로 웨이 포인트를지도에 추가하는 방법을 찾고 있습니다. 지리 좌표 목록을 목록에 제공하고 싶습니다.swing에서 마커를 동적으로 업데이트하기 JXMapKit
JXMapKit
(Java Swing 툴킷에서 실행)을 사용하여 프로그래밍 방식으로 웨이 포인트를지도에 추가하는 방법을 찾고 있습니다. 지리 좌표 목록을 목록에 제공하고 싶습니다.swing에서 마커를 동적으로 업데이트하기 JXMapKit
Waypoints
을 WaypointPainter
통해 제공하고이 페인터를 JXMapViewer에 전달해야합니다. 기본적으로 WaypointPainter
은 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);
}
});
}
}
감사합니다 .... 그 작업 !!! –