3

私は、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;
}
4

1 に答える 1

3

実行中Demo.javaに、マップをcontrolキーを押しながらクリックするか右クリックして、ビューをパンします。setMovementMouseButton()動作を制御するために使用します。

于 2012-07-25T23:41:32.577 に答える