我正在尝试找出哪些映射工具最适合我的基于Java Swing的OSM地图。之前,我基于MapPanel制作了一个功能性地图。后来,我几乎可以克隆该应用程序,并仅用JMapViewer替换MapPanel即可使其正常工作。我更喜欢后者,因为它具有在地图上放置标记和多边形的功能。但是,缺点是由于某种原因,我无法使用鼠标拖动地图。在JMapViewer的包中,有一个演示类显示相同的行为。如何使JMapViewer中的OSM地图可拖动?
编辑:此代码将绘制一个可以在面板中显示的地图,并通过添加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;
}