2013-10-21 127 views
1

我有一個JMapViewer作爲面板上的JFrame和一個按鈕。如果我按下按鈕,我想讓JMapViewer顯示滾動的地圖摘錄。以編程方式滾動JMapViewer地圖

我試圖設置另一個顯示位置的緯度/經度,但我不知道如何獲得舊的mapcentered緯度/經度值..?

我的按鈕的ActionListener,它應該表現出小幅上揚移動地圖摘錄:

btn_PanUp.addActionListener(new ActionListener(){ 

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

但我不知道如何獲取地圖中心的當前緯度/經度值。我如何獲得它們?

回答

2

看看JMapViewer有一個名爲getPosition()的方法,可以給你當前的地圖中心。

來源: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); 
    }