我有一个 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/