【发布时间】:2012-07-25 21:43:38
【问题描述】:
我正在尝试找出最适合我基于 java swing 的 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;
}
【问题讨论】:
-
Demo类图为here。
标签: java swing openstreetmap jmapviewer