私は、JavaSwingベースのOSMマップに最適なマッピングツールを見つけようとしています。以前、 MapPanelに基づいて機能するマップを作成しました。後で、アプリケーションのクローンを作成し、MapPanelをJMapViewerに置き換えるだけで、これも機能するようになりました。マップ上にマーカーとポリゴンを配置する機能があるので、後者の方が好きです。ただし、欠点は、何らかの理由でマップをマウスでドラッグできないことです。JMapViewerのパッケージには、同じ動作を表示するDemoクラスがあります。OSMマップをJMapViewer内でドラッグ可能にするにはどうすればよいですか?
編集:このコードは、パネルに表示できるマップを描画し、mapController
とを追加することでマップをドラッグ可能にしsetMovementMouseButton()
ます。
private JMapViewer drawOpenStreetMap(double lon, double lat, int zoom) {
mapViewer = new JMapViewer();
mapViewer.setZoom(zoom);
mapViewer.setDisplayPositionByLatLon(lat, lon, zoom);
mapViewer.repaint();
DefaultMapController mapController = new DefaultMapController(mapViewer);
mapController.setMovementMouseButton(MouseEvent.BUTTON1);
mapViewer.addMapMarker(new MapMarkerDot(52, 5.5));
return mapViewer;
}