3

我试图找出哪些映射工具最适合我的基于 java swing 的 OSM 映射。早些时候,我在MapPanel的基础上制作了一张功能地图。后来我几乎可以克隆应用程序,只需将 MapPanel 替换为JMapViewer 即可使其正常工作。我更喜欢后者,因为它具有在地图上放置标记和多边形的功能。然而,缺点是由于某种原因我不能用鼠标拖动地图。在 JMapViewer 的包中有一个 Demo 类,它显示相同的行为。如何在 JMapViewer 中使 OSM 地图可拖动?

编辑:此代码将绘制一个可以在面板中显示的地图,并通过添加使地图可拖动。mapControllersetMovementMouseButton()

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 回答