java - 以编程方式滚动 JMapViewer map

标签 java swing jmapviewer

我有一个 JMapViewer 作为 JFrame 和一个按钮上的面板。如果我按下按钮,我希望 JMapViewer 显示滚动的 map 摘录。

我试图按纬度/经度设置另一个显示位置,但我不知道如何获取旧的 map 中心纬度/经度值..?

我的按钮操作监听器,应显示稍微向上移动的 map 摘录:

btn_PanUp.addActionListener(new ActionListener(){

    @Override
    public void actionPerformed(ActionEvent arg0) {
         jmv.setDisplayPositionByLatLon(lat+0.01, lon, zoom)
         jmv.invalidate();
    }
});

但我不知道如何获取 map 中心当前的经纬度值。我如何获得它们?

最佳答案

看看 JMapViewer,有一个名为 getPosition() 的方法,它可以为您提供当前的 map 中心。

来源:https://github.com/balloob/JMapViewer/blob/master/org/openstreetmap/gui/jmapviewer/JMapViewer.java

 /**
     * Calculates the latitude/longitude coordinate of the center of the
     * currently displayed map area.
     * 
     * @return latitude / longitude
     */
    public Coordinate getPosition() {
        double lon = OsmMercator.XToLon(center.x, zoom);
        double lat = OsmMercator.YToLat(center.y, zoom);
        return new Coordinate(lat, lon);
    }

关于java - 以编程方式滚动 JMapViewer map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19495383/

相关文章:

java - 使用另一个数组计算一个数组中的重复项无法执行 (Java)

java - 泛型 - ?使用

java - java swing如何从不同的操作系统绘制到屏幕上?

java - 在java中用一个或多个词搜索整个数据库

java - 在 JMapViewer 中绘制折线

java - Android Studio 调试错误(Ubuntu)

java - java 中的 jcombobox 过滤器 - 外观独立

java - 如何向 JMapViewer 添加纬度/经度网格线

java - 如何在 JMapViewer 中的两点之间放置像箭头一样的图像

java - 第二个音频剪辑不播放。